WallpaperComplication -> kt
This commit is contained in:
parent
60ea0421c8
commit
89f86df482
8 changed files with 80 additions and 123 deletions
|
@ -1,57 +0,0 @@
|
||||||
package info.nightscout.androidaps.complications;
|
|
||||||
|
|
||||||
import android.app.PendingIntent;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.res.AssetManager;
|
|
||||||
import android.graphics.Bitmap;
|
|
||||||
import android.graphics.BitmapFactory;
|
|
||||||
import android.graphics.drawable.Icon;
|
|
||||||
import android.support.wearable.complications.ComplicationData;
|
|
||||||
import android.util.DisplayMetrics;
|
|
||||||
import android.view.WindowManager;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
|
|
||||||
import info.nightscout.androidaps.data.RawDisplayData;
|
|
||||||
import info.nightscout.shared.logging.LTag;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Created by dlvoy on 2019-11-12
|
|
||||||
*/
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public abstract class WallpaperComplication extends BaseComplicationProviderService {
|
|
||||||
|
|
||||||
public abstract String getWallpaperAssetsFileName();
|
|
||||||
|
|
||||||
public ComplicationData buildComplicationData(int dataType, RawDisplayData raw, PendingIntent complicationPendingIntent) {
|
|
||||||
|
|
||||||
ComplicationData complicationData = null;
|
|
||||||
|
|
||||||
if (dataType == ComplicationData.TYPE_LARGE_IMAGE) {
|
|
||||||
|
|
||||||
DisplayMetrics metrics = new DisplayMetrics();
|
|
||||||
WindowManager windowManager = (WindowManager) getApplicationContext()
|
|
||||||
.getSystemService(Context.WINDOW_SERVICE);
|
|
||||||
windowManager.getDefaultDisplay().getMetrics(metrics);
|
|
||||||
int width = metrics.widthPixels;
|
|
||||||
int height = metrics.heightPixels;
|
|
||||||
|
|
||||||
final ComplicationData.Builder builder = new ComplicationData.Builder(ComplicationData.TYPE_LARGE_IMAGE);
|
|
||||||
|
|
||||||
AssetManager assetManager = getAssets();
|
|
||||||
try (InputStream iStr = assetManager.open(getWallpaperAssetsFileName())) {
|
|
||||||
Bitmap bitmap = BitmapFactory.decodeStream(iStr);
|
|
||||||
Bitmap scaled = Bitmap.createScaledBitmap(bitmap, width, height, true);
|
|
||||||
builder.setLargeImage(Icon.createWithBitmap(scaled));
|
|
||||||
} catch (IOException e) {
|
|
||||||
aapsLogger.error(LTag.WEAR, "Cannot read wallpaper asset: " + e.getMessage(), e);
|
|
||||||
}
|
|
||||||
|
|
||||||
complicationData = builder.build();
|
|
||||||
} else {
|
|
||||||
aapsLogger.warn(LTag.WEAR, "Unexpected complication type " + dataType);
|
|
||||||
}
|
|
||||||
return complicationData;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
@file:Suppress("DEPRECATION")
|
||||||
|
|
||||||
|
package info.nightscout.androidaps.complications
|
||||||
|
|
||||||
|
import android.app.PendingIntent
|
||||||
|
import android.graphics.Bitmap
|
||||||
|
import android.graphics.BitmapFactory
|
||||||
|
import android.graphics.drawable.Icon
|
||||||
|
import android.support.wearable.complications.ComplicationData
|
||||||
|
import android.util.DisplayMetrics
|
||||||
|
import android.view.WindowManager
|
||||||
|
import info.nightscout.androidaps.data.RawDisplayData
|
||||||
|
import info.nightscout.shared.logging.LTag
|
||||||
|
import java.io.IOException
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Created by dlvoy on 2019-11-12
|
||||||
|
*/
|
||||||
|
abstract class WallpaperComplication : BaseComplicationProviderService() {
|
||||||
|
|
||||||
|
abstract val wallpaperAssetsFileName: String
|
||||||
|
override fun buildComplicationData(dataType: Int, raw: RawDisplayData, complicationPendingIntent: PendingIntent): ComplicationData? {
|
||||||
|
var complicationData: ComplicationData? = null
|
||||||
|
if (dataType == ComplicationData.TYPE_LARGE_IMAGE) {
|
||||||
|
val metrics = DisplayMetrics()
|
||||||
|
val windowManager = applicationContext.getSystemService(WINDOW_SERVICE) as WindowManager
|
||||||
|
windowManager.defaultDisplay.getMetrics(metrics)
|
||||||
|
val width = metrics.widthPixels
|
||||||
|
val height = metrics.heightPixels
|
||||||
|
val builder = ComplicationData.Builder(ComplicationData.TYPE_LARGE_IMAGE)
|
||||||
|
val assetManager = assets
|
||||||
|
try {
|
||||||
|
assetManager.open(wallpaperAssetsFileName).use { iStr ->
|
||||||
|
val bitmap = BitmapFactory.decodeStream(iStr)
|
||||||
|
val scaled = Bitmap.createScaledBitmap(bitmap, width, height, true)
|
||||||
|
builder.setLargeImage(Icon.createWithBitmap(scaled))
|
||||||
|
}
|
||||||
|
} catch (e: IOException) {
|
||||||
|
aapsLogger.error(LTag.WEAR, "Cannot read wallpaper asset: " + e.message, e)
|
||||||
|
}
|
||||||
|
complicationData = builder.build()
|
||||||
|
} else {
|
||||||
|
aapsLogger.warn(LTag.WEAR, "Unexpected complication type $dataType")
|
||||||
|
}
|
||||||
|
return complicationData
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,22 +0,0 @@
|
||||||
package info.nightscout.androidaps.complications;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Created by dlvoy on 2019-11-12
|
|
||||||
*/
|
|
||||||
public class WallpaperDarkComplication extends WallpaperComplication {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getWallpaperAssetsFileName() {
|
|
||||||
return "watch_dark.jpg";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getProviderCanonicalName() {
|
|
||||||
return WallpaperDarkComplication.class.getCanonicalName();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ComplicationAction getComplicationAction() {
|
|
||||||
return ComplicationAction.NONE;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
package info.nightscout.androidaps.complications
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Created by dlvoy on 2019-11-12
|
||||||
|
*/
|
||||||
|
class WallpaperDarkComplication : WallpaperComplication() {
|
||||||
|
|
||||||
|
override val wallpaperAssetsFileName: String = "watch_dark.jpg"
|
||||||
|
override fun getProviderCanonicalName(): String = WallpaperDarkComplication::class.java.canonicalName!!
|
||||||
|
override fun getComplicationAction(): ComplicationAction = ComplicationAction.NONE
|
||||||
|
}
|
|
@ -1,22 +0,0 @@
|
||||||
package info.nightscout.androidaps.complications;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Created by dlvoy on 2019-11-12
|
|
||||||
*/
|
|
||||||
public class WallpaperGrayComplication extends WallpaperComplication {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getWallpaperAssetsFileName() {
|
|
||||||
return "watch_gray.jpg";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getProviderCanonicalName() {
|
|
||||||
return WallpaperGrayComplication.class.getCanonicalName();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ComplicationAction getComplicationAction() {
|
|
||||||
return ComplicationAction.NONE;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
package info.nightscout.androidaps.complications
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Created by dlvoy on 2019-11-12
|
||||||
|
*/
|
||||||
|
class WallpaperGrayComplication : WallpaperComplication() {
|
||||||
|
|
||||||
|
override val wallpaperAssetsFileName: String = "watch_gray.jpg"
|
||||||
|
override fun getProviderCanonicalName(): String = WallpaperGrayComplication::class.java.canonicalName!!
|
||||||
|
override fun getComplicationAction(): ComplicationAction = ComplicationAction.NONE
|
||||||
|
}
|
|
@ -1,22 +0,0 @@
|
||||||
package info.nightscout.androidaps.complications;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Created by dlvoy on 2019-11-12
|
|
||||||
*/
|
|
||||||
public class WallpaperLightComplication extends WallpaperComplication {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getWallpaperAssetsFileName() {
|
|
||||||
return "watch_light.jpg";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getProviderCanonicalName() {
|
|
||||||
return WallpaperLightComplication.class.getCanonicalName();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ComplicationAction getComplicationAction() {
|
|
||||||
return ComplicationAction.NONE;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
package info.nightscout.androidaps.complications
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Created by dlvoy on 2019-11-12
|
||||||
|
*/
|
||||||
|
class WallpaperLightComplication : WallpaperComplication() {
|
||||||
|
|
||||||
|
override val wallpaperAssetsFileName: String = "watch_light.jpg"
|
||||||
|
override fun getProviderCanonicalName(): String = WallpaperLightComplication::class.java.canonicalName!!
|
||||||
|
override fun getComplicationAction(): ComplicationAction = ComplicationAction.NONE
|
||||||
|
}
|
Loading…
Reference in a new issue