diff options
author | RaindropsSys <raindrops@equestria.dev> | 2023-12-22 21:45:27 +0100 |
---|---|---|
committer | RaindropsSys <raindrops@equestria.dev> | 2023-12-22 21:45:27 +0100 |
commit | a31e6186ee8ba7801fa44f921d364ad23f656f23 (patch) | |
tree | 028b7076f5d971bd1128be1b9011917a611af482 | |
parent | f958fcf11b9441823dd28b5f13eca52f59196a56 (diff) | |
download | ponywatch-a31e6186ee8ba7801fa44f921d364ad23f656f23.tar.gz ponywatch-a31e6186ee8ba7801fa44f921d364ad23f656f23.tar.bz2 ponywatch-a31e6186ee8ba7801fa44f921d364ad23f656f23.zip |
Updated 13 files and added 2 files (automated)
-rw-r--r-- | app/build.gradle | 14 | ||||
-rw-r--r-- | app/release/app-release.apk | bin | 8962553 -> 13451540 bytes | |||
-rw-r--r-- | app/release/app-release.apk.zip | bin | 0 -> 8644078 bytes | |||
-rw-r--r-- | app/release/output-metadata.json | 4 | ||||
-rw-r--r-- | app/src/main/AndroidManifest.xml | 8 | ||||
-rw-r--r-- | app/src/main/java/dev/equestria/ponywatch/AlicornFace.kt | 126 | ||||
-rw-r--r-- | app/src/main/java/dev/equestria/ponywatch/BlueyBingoFace.kt | 200 | ||||
-rw-r--r-- | app/src/main/java/dev/equestria/ponywatch/BlueyBlueyFace.kt | 200 | ||||
-rw-r--r-- | app/src/main/java/dev/equestria/ponywatch/CutiemarkFace.kt | 105 | ||||
-rw-r--r-- | app/src/main/java/dev/equestria/ponywatch/FeathersFace.kt | 116 | ||||
-rw-r--r-- | app/src/main/java/dev/equestria/ponywatch/GlitterFace.kt | 116 | ||||
-rw-r--r-- | app/src/main/java/dev/equestria/ponywatch/UnitedFace.kt | 403 | ||||
-rw-r--r-- | app/src/main/java/dev/equestria/ponywatch/UnityFace.kt | 115 | ||||
-rw-r--r-- | app/src/main/res/drawable-nodpi/preview_united.png | bin | 0 -> 175090 bytes | |||
-rw-r--r-- | app/src/main/res/values/colors.xml | 19 |
15 files changed, 359 insertions, 1067 deletions
diff --git a/app/build.gradle b/app/build.gradle index bac5400..c423e67 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,7 +12,7 @@ android { minSdk 30 targetSdk 33 versionCode 9 - versionName "5.0" + versionName "5.1" } @@ -21,18 +21,6 @@ android { minifyEnabled false } } - - flavorDimensions "version" - productFlavors { - plural { - buildConfigField 'boolean', 'ENABLE_PLURALITY', 'true' - versionNameSuffix ".plural" - } - general { - buildConfigField 'boolean', 'ENABLE_PLURALITY', 'false' - versionNameSuffix ".general" - } - } } dependencies { diff --git a/app/release/app-release.apk b/app/release/app-release.apk Binary files differindex e3dbf2b..8fd5248 100644 --- a/app/release/app-release.apk +++ b/app/release/app-release.apk diff --git a/app/release/app-release.apk.zip b/app/release/app-release.apk.zip Binary files differnew file mode 100644 index 0000000..132e64a --- /dev/null +++ b/app/release/app-release.apk.zip diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index 574613f..7d82120 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,8 +11,8 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 3, - "versionName": "2.0", + "versionCode": 9, + "versionName": "5.1", "outputFile": "app-release.apk" } ], diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f9818b8..77f5ca0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -20,7 +20,7 @@ android:name="com.google.android.wearable.standalone" android:value="true" /> - <service + <!--<service android:name=".CutiemarkFace" android:exported="true" android:label="Cutie Mark" @@ -148,7 +148,7 @@ <category android:name="com.google.android.wearable.watchface.category.WATCH_FACE" /> </intent-filter> - </service> + </service>--> <service android:name=".UnitedFace" @@ -164,10 +164,10 @@ android:resource="@xml/watch_face" /> <meta-data android:name="com.google.android.wearable.watchface.preview" - android:resource="@drawable/preview_unity" /> + android:resource="@drawable/preview_united" /> <meta-data android:name="com.google.android.wearable.watchface.preview_circular" - android:resource="@drawable/preview_unity" /> + android:resource="@drawable/preview_united" /> <intent-filter> <action android:name="android.service.wallpaper.WallpaperService" /> diff --git a/app/src/main/java/dev/equestria/ponywatch/AlicornFace.kt b/app/src/main/java/dev/equestria/ponywatch/AlicornFace.kt index 5b09e4e..ad81b45 100644 --- a/app/src/main/java/dev/equestria/ponywatch/AlicornFace.kt +++ b/app/src/main/java/dev/equestria/ponywatch/AlicornFace.kt @@ -95,8 +95,6 @@ class AlicornFace : CanvasWatchFaceService() { private var mCenterY: Float = 0F private var mHeight: Float = 0F - private var lastRefreshMinute: Int = -1 - private var mSecondHandLength: Float = 0F private var sMinuteHandLength: Float = 0F private var sHourHandLength: Float = 0F @@ -111,10 +109,6 @@ class AlicornFace : CanvasWatchFaceService() { private var mLowBitAmbient: Boolean = false private var mBurnInProtection: Boolean = false - private var twoFronters: Boolean = false - private var bmp: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) - private var bmp2: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) - /* Handler to update the time once a second in interactive mode. */ private val mUpdateTimeHandler = EngineHandler(this) @@ -275,11 +269,8 @@ class AlicornFace : CanvasWatchFaceService() { } private fun drawBackground(canvas: Canvas) { - - if (mAmbient && (mLowBitAmbient || mBurnInProtection)) { + if (mAmbient) { canvas.drawColor(Color.BLACK) - } else if (mAmbient) { - canvas.drawBitmap(mGrayBackgroundBitmap, 0f, 0f, mBackgroundPaint) } else { canvas.drawBitmap(mBackgroundBitmap, 0f, 0f, mBackgroundPaint) } @@ -318,12 +309,22 @@ class AlicornFace : CanvasWatchFaceService() { /* Restore the canvas" original orientation. */ canvas.restore() - val paint = Paint().apply { - color = Color.WHITE - isAntiAlias = true - setShadowLayer( - SHADOW_RADIUS, 5f, 0f, mWatchHandShadowColor - ) + val paint = if (mAmbient) { + Paint().apply { + color = resources.getColor(R.color.ambient) + isAntiAlias = true + setShadowLayer( + SHADOW_RADIUS, 5f, 0f, mWatchHandShadowColor + ) + } + } else { + Paint().apply { + color = Color.WHITE + isAntiAlias = true + setShadowLayer( + SHADOW_RADIUS, 5f, 0f, mWatchHandShadowColor + ) + } } paint.textAlign = Paint.Align.CENTER @@ -344,91 +345,7 @@ class AlicornFace : CanvasWatchFaceService() { m.toString() } - canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), 150f, paint) - - if (BuildConfig.ENABLE_PLURALITY) { - if (mCalendar.get(Calendar.MINUTE) != lastRefreshMinute) { - lastRefreshMinute = mCalendar.get(Calendar.MINUTE) - - val target = object : Target { - override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) { - try { - if (bitmap != null) { - bmp = bitmap - bmp = Bitmap.createScaledBitmap( - bmp, - 48, - 48, true - ) - - canvas.drawBitmap(bmp, mCenterX - 48f/2f, 49f, mBackgroundPaint) - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - - val volleyQueue = Volley.newRequestQueue(baseContext) - - val jsonObjectRequest = JsonObjectRequest("https://ponycule.equestria.horse/api/raindrops-two", - - { response -> - Log.i("HTTPRequest", response.toString()) - twoFronters = response!!.get("multiple") as Boolean - - if (twoFronters) { - val target = object : Target { - override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) { - try { - if (bitmap != null) { - bmp2 = bitmap - bmp2 = Bitmap.createScaledBitmap( - bmp2, - 48, - 48, true - ) - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - } - - override fun onBitmapFailed(e: Exception?, errorDrawable: Drawable?) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img2-round" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } - }, - - { error -> Log.e("HTTPRequest", "Request error: ${error.localizedMessage}") }) - - volleyQueue.add(jsonObjectRequest) - } - - override fun onBitmapFailed(e: Exception?, errorDrawable: Drawable?) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img-round" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } else { - if (twoFronters) { - canvas.drawBitmap(bmp2, mCenterX + 6f/2f, 20f, mBackgroundPaint) - canvas.drawBitmap(bmp, mCenterX - 102f/2f, 20f, mBackgroundPaint) - } else { - canvas.drawBitmap(bmp, mCenterX - 48f/2f, 20f, mBackgroundPaint) - } - } - } + canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), if (mAmbient) (canvas.height / 2 + 40).toFloat() else 150f, paint) } override fun onVisibilityChanged(visible: Boolean) { @@ -489,7 +406,12 @@ class AlicornFace : CanvasWatchFaceService() { invalidate() if (shouldTimerBeRunning()) { val timeMs = System.currentTimeMillis() - val delayMs = INTERACTIVE_UPDATE_RATE_MS - timeMs % INTERACTIVE_UPDATE_RATE_MS + val updateRate = if (mAmbient) { + 1000 + } else { + INTERACTIVE_UPDATE_RATE_MS + } + val delayMs = updateRate - timeMs % updateRate mUpdateTimeHandler.sendEmptyMessageDelayed(MSG_UPDATE_TIME, delayMs) } } diff --git a/app/src/main/java/dev/equestria/ponywatch/BlueyBingoFace.kt b/app/src/main/java/dev/equestria/ponywatch/BlueyBingoFace.kt index 66c0cbb..f620512 100644 --- a/app/src/main/java/dev/equestria/ponywatch/BlueyBingoFace.kt +++ b/app/src/main/java/dev/equestria/ponywatch/BlueyBingoFace.kt @@ -95,15 +95,10 @@ class BlueyBingoFace : CanvasWatchFaceService() { private var mCenterY: Float = 0F private var mHeight: Float = 0F - private var lastRefreshMinute: Int = -1 - private var mSecondHandLength: Float = 0F private var sMinuteHandLength: Float = 0F private var sHourHandLength: Float = 0F - /* Colors for all hands (hour, minute, seconds, ticks) based on photo loaded. */ - private var mWatchHandColor: Int = 0 - private var mWatchHandHighlightColor: Int = 0 private var mWatchHandShadowColor: Int = 0 private lateinit var mBackgroundPaint: Paint @@ -116,9 +111,6 @@ class BlueyBingoFace : CanvasWatchFaceService() { private var currentDay: Int = 0 private var currentHour: Int = 0 - private var twoFronters: Boolean = false - private var bmp: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) - private var bmp2: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) /* Handler to update the time once a second in interactive mode. */ private val mUpdateTimeHandler = EngineHandler(this) @@ -292,11 +284,8 @@ class BlueyBingoFace : CanvasWatchFaceService() { } private fun drawBackground(canvas: Canvas) { - - if (mAmbient && (mLowBitAmbient || mBurnInProtection)) { + if (mAmbient) { canvas.drawColor(Color.BLACK) - } else if (mAmbient) { - canvas.drawBitmap(mGrayBackgroundBitmap, 0f, 0f, mBackgroundPaint) } else { canvas.drawBitmap(mBackgroundBitmap, 0f, 0f, mBackgroundPaint) } @@ -331,12 +320,22 @@ class BlueyBingoFace : CanvasWatchFaceService() { /* Restore the canvas" original orientation. */ canvas.restore() - val paint = Paint().apply { - color = resources.getColor(R.color.bluey_bingo_text) - isAntiAlias = true - setShadowLayer( - 1.5f, 0f, 0f, mWatchHandShadowColor - ) + val paint = if (mAmbient) { + Paint().apply { + color = resources.getColor(R.color.bluey_bingo_ambient) + isAntiAlias = true + setShadowLayer( + SHADOW_RADIUS, 5f, 0f, mWatchHandShadowColor + ) + } + } else { + Paint().apply { + color = resources.getColor(R.color.bluey_bingo_text) + isAntiAlias = true + setShadowLayer( + 1.5f, 0f, 0f, mWatchHandShadowColor + ) + } } paint.textAlign = Paint.Align.CENTER @@ -360,7 +359,7 @@ class BlueyBingoFace : CanvasWatchFaceService() { val d = mCalendar.get(Calendar.DAY_OF_MONTH) val i = mCalendar.get(Calendar.MONTH) - canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), 116f, paint) + canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), if (mAmbient) (canvas.height / 2 + 40).toFloat() else 116f, paint) if (showDate) { val it = when (i) { @@ -382,143 +381,43 @@ class BlueyBingoFace : CanvasWatchFaceService() { paint.textSize = 36f paint.alpha = 191 - canvas.drawText("$d", canvas.width - 48f, (canvas.height / 2).toFloat() - 20f + 7f, paint) - canvas.drawText("$it", canvas.width - 48f, (canvas.height / 2).toFloat() + 20f + 7f, paint) + canvas.drawText("$d", canvas.width - 48f, (canvas.height / 2 + 40).toFloat() - 20f + 7f, paint) + canvas.drawText("$it", canvas.width - 48f, (canvas.height / 2 + 40).toFloat() + 20f + 7f, paint) } - if (BuildConfig.ENABLE_PLURALITY) { - if (mCalendar.get(Calendar.MINUTE) != lastRefreshMinute) { - lastRefreshMinute = mCalendar.get(Calendar.MINUTE) - - val target = object : Target { - override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) { - try { - if (bitmap != null) { - bmp = bitmap - bmp = Bitmap.createScaledBitmap( - bmp, - 36, - 36, true - ) - bmp.prepareToDraw() - - if (showDate) { - canvas.drawBitmap(bmp, mCenterX - 36f/2f, 0f, mBackgroundPaint) - } - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - - val volleyQueue = Volley.newRequestQueue(baseContext) - - val jsonObjectRequest = - JsonObjectRequest("https://ponycule.equestria.horse/api/raindrops-two", - - { response -> - Log.i("HTTPRequest", response.toString()) - twoFronters = response!!.get("multiple") as Boolean - - if (twoFronters) { - val target = object : Target { - override fun onBitmapLoaded( - bitmap: Bitmap?, - from: Picasso.LoadedFrom? - ) { - try { - if (bitmap != null) { - bmp2 = bitmap - bmp2 = Bitmap.createScaledBitmap( - bmp2, - 36, - 36, true - ) - bmp2.prepareToDraw() - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - } - - override fun onBitmapFailed( - e: Exception?, - errorDrawable: Drawable? - ) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img2-round2" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } - }, - - { error -> - Log.e( - "HTTPRequest", - "Request error: ${error.localizedMessage}" - ) - }) - - volleyQueue.add(jsonObjectRequest) - } - - override fun onBitmapFailed(e: Exception?, errorDrawable: Drawable?) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img-round2" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } else { - if (showDate) { - if (twoFronters) { - canvas.drawBitmap(bmp2, mCenterX - 4f/2f, 0f, mBackgroundPaint) - canvas.drawBitmap(bmp, mCenterX - 88f/2f, 0f, mBackgroundPaint) - } else { - canvas.drawBitmap(bmp, mCenterX - 36f/2f, 0f, mBackgroundPaint) - } - } + if (!mAmbient) { + val paintOut2 = Paint().apply { + color = resources.getColor(R.color.bluey_bingo_circle) + style = Paint.Style.STROKE + strokeWidth = 15f + strokeCap = Paint.Cap.ROUND + isAntiAlias = true + setShadowLayer( + 1.5f, 0f, 0f, resources.getColor(R.color.cutiemark_shadow) + ) } - } - val paintOut2 = Paint().apply { - color = resources.getColor(R.color.bluey_bingo_circle) - style = Paint.Style.STROKE - strokeWidth = 15f - strokeCap = Paint.Cap.ROUND - isAntiAlias = true - setShadowLayer( - 1.5f, 0f, 0f, resources.getColor(R.color.cutiemark_shadow) - ) - } + val seconds = + mCalendar.get(Calendar.SECOND) + mCalendar.get(Calendar.MILLISECOND) / 1000f + val secondsRotation = seconds * 6f - val seconds = - mCalendar.get(Calendar.SECOND) + mCalendar.get(Calendar.MILLISECOND) / 1000f - val secondsRotation = seconds * 6f + val currentDayFetched = mCalendar.get(Calendar.DAY_OF_WEEK) - 1 + val currentHourFetched = mCalendar.get(Calendar.HOUR_OF_DAY) - val currentDayFetched = mCalendar.get(Calendar.DAY_OF_WEEK) - 1 - val currentHourFetched = mCalendar.get(Calendar.HOUR_OF_DAY) + if (currentDayFetched > currentDay || currentDayFetched < currentDay) { + currentDay = currentDayFetched + initializeBackground() + initializeWatchFace() + } - if (currentDayFetched > currentDay || currentDayFetched < currentDay) { - currentDay = currentDayFetched - initializeBackground() - initializeWatchFace() - } + if (currentHourFetched > currentHour || currentHourFetched < currentHour) { + currentHour = currentHourFetched + initializeBackground() + initializeWatchFace() + } - if (currentHourFetched > currentHour || currentHourFetched < currentHour) { - currentHour = currentHourFetched - initializeBackground() - initializeWatchFace() + canvas.drawArc(10f, 10f, mCenterX * 2f - 10f, mCenterY * 2f - 10f, secondsRotation - 1f + 270f, 0.15f, false, paintOut2) } - - canvas.drawArc(10f, 10f, mCenterX * 2f - 10f, mCenterY * 2f - 10f, secondsRotation - 1f + 270f, 0.15f, false, paintOut2) } override fun onVisibilityChanged(visible: Boolean) { @@ -580,7 +479,12 @@ class BlueyBingoFace : CanvasWatchFaceService() { invalidate() if (shouldTimerBeRunning()) { val timeMs = System.currentTimeMillis() - val delayMs = INTERACTIVE_UPDATE_RATE_MS - timeMs % INTERACTIVE_UPDATE_RATE_MS + val updateRate = if (mAmbient) { + 1000 + } else { + INTERACTIVE_UPDATE_RATE_MS + } + val delayMs = updateRate - timeMs % updateRate mUpdateTimeHandler.sendEmptyMessageDelayed(MSG_UPDATE_TIME, delayMs) } } diff --git a/app/src/main/java/dev/equestria/ponywatch/BlueyBlueyFace.kt b/app/src/main/java/dev/equestria/ponywatch/BlueyBlueyFace.kt index 2dd109c..d432819 100644 --- a/app/src/main/java/dev/equestria/ponywatch/BlueyBlueyFace.kt +++ b/app/src/main/java/dev/equestria/ponywatch/BlueyBlueyFace.kt @@ -95,15 +95,10 @@ class BlueyBlueyFace : CanvasWatchFaceService() { private var mCenterY: Float = 0F private var mHeight: Float = 0F - private var lastRefreshMinute: Int = -1 - private var mSecondHandLength: Float = 0F private var sMinuteHandLength: Float = 0F private var sHourHandLength: Float = 0F - /* Colors for all hands (hour, minute, seconds, ticks) based on photo loaded. */ - private var mWatchHandColor: Int = 0 - private var mWatchHandHighlightColor: Int = 0 private var mWatchHandShadowColor: Int = 0 private lateinit var mBackgroundPaint: Paint @@ -116,9 +111,6 @@ class BlueyBlueyFace : CanvasWatchFaceService() { private var currentDay: Int = 0 private var currentHour: Int = 0 - private var twoFronters: Boolean = false - private var bmp: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) - private var bmp2: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) /* Handler to update the time once a second in interactive mode. */ private val mUpdateTimeHandler = EngineHandler(this) @@ -292,11 +284,8 @@ class BlueyBlueyFace : CanvasWatchFaceService() { } private fun drawBackground(canvas: Canvas) { - - if (mAmbient && (mLowBitAmbient || mBurnInProtection)) { + if (mAmbient) { canvas.drawColor(Color.BLACK) - } else if (mAmbient) { - canvas.drawBitmap(mGrayBackgroundBitmap, 0f, 0f, mBackgroundPaint) } else { canvas.drawBitmap(mBackgroundBitmap, 0f, 0f, mBackgroundPaint) } @@ -331,12 +320,22 @@ class BlueyBlueyFace : CanvasWatchFaceService() { /* Restore the canvas" original orientation. */ canvas.restore() - val paint = Paint().apply { - color = resources.getColor(R.color.bluey_bluey_text) - isAntiAlias = true - setShadowLayer( - 1.5f, 0f, 0f, mWatchHandShadowColor - ) + val paint = if (mAmbient) { + Paint().apply { + color = resources.getColor(R.color.bluey_bluey_ambient) + isAntiAlias = true + setShadowLayer( + SHADOW_RADIUS, 5f, 0f, mWatchHandShadowColor + ) + } + } else { + Paint().apply { + color = resources.getColor(R.color.bluey_bluey_text) + isAntiAlias = true + setShadowLayer( + 1.5f, 0f, 0f, mWatchHandShadowColor + ) + } } paint.textAlign = Paint.Align.CENTER @@ -360,7 +359,7 @@ class BlueyBlueyFace : CanvasWatchFaceService() { val d = mCalendar.get(Calendar.DAY_OF_MONTH) val i = mCalendar.get(Calendar.MONTH) - canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), 116f, paint) + canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), if (mAmbient) (canvas.height / 2 + 40).toFloat() else 116f, paint) if (showDate) { val it = when (i) { @@ -382,143 +381,43 @@ class BlueyBlueyFace : CanvasWatchFaceService() { paint.textSize = 36f paint.alpha = 191 - canvas.drawText("$d", canvas.width - 48f, (canvas.height / 2).toFloat() - 20f + 7f, paint) - canvas.drawText("$it", canvas.width - 48f, (canvas.height / 2).toFloat() + 20f + 7f, paint) + canvas.drawText("$d", canvas.width - 48f, (canvas.height / 2 + 40).toFloat() - 20f + 7f, paint) + canvas.drawText("$it", canvas.width - 48f, (canvas.height / 2 + 40).toFloat() + 20f + 7f, paint) } - if (BuildConfig.ENABLE_PLURALITY) { - if (mCalendar.get(Calendar.MINUTE) != lastRefreshMinute) { - lastRefreshMinute = mCalendar.get(Calendar.MINUTE) - - val target = object : Target { - override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) { - try { - if (bitmap != null) { - bmp = bitmap - bmp = Bitmap.createScaledBitmap( - bmp, - 36, - 36, true - ) - bmp.prepareToDraw() - - if (showDate) { - canvas.drawBitmap(bmp, mCenterX - 36f/2f, 0f, mBackgroundPaint) - } - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - - val volleyQueue = Volley.newRequestQueue(baseContext) - - val jsonObjectRequest = - JsonObjectRequest("https://ponycule.equestria.horse/api/raindrops-two", - - { response -> - Log.i("HTTPRequest", response.toString()) - twoFronters = response!!.get("multiple") as Boolean - - if (twoFronters) { - val target = object : Target { - override fun onBitmapLoaded( - bitmap: Bitmap?, - from: Picasso.LoadedFrom? - ) { - try { - if (bitmap != null) { - bmp2 = bitmap - bmp2 = Bitmap.createScaledBitmap( - bmp2, - 36, - 36, true - ) - bmp2.prepareToDraw() - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - } - - override fun onBitmapFailed( - e: Exception?, - errorDrawable: Drawable? - ) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img2-round2" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } - }, - - { error -> - Log.e( - "HTTPRequest", - "Request error: ${error.localizedMessage}" - ) - }) - - volleyQueue.add(jsonObjectRequest) - } - - override fun onBitmapFailed(e: Exception?, errorDrawable: Drawable?) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img-round2" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } else { - if (showDate) { - if (twoFronters) { - canvas.drawBitmap(bmp2, mCenterX - 4f/2f, 0f, mBackgroundPaint) - canvas.drawBitmap(bmp, mCenterX - 88f/2f, 0f, mBackgroundPaint) - } else { - canvas.drawBitmap(bmp, mCenterX - 36f/2f, 0f, mBackgroundPaint) - } - } + if (!mAmbient) { + val paintOut2 = Paint().apply { + color = resources.getColor(R.color.bluey_bluey_circle) + style = Paint.Style.STROKE + strokeWidth = 15f + strokeCap = Paint.Cap.ROUND + isAntiAlias = true + setShadowLayer( + 1.5f, 0f, 0f, resources.getColor(R.color.cutiemark_shadow) + ) } - } - val paintOut2 = Paint().apply { - color = resources.getColor(R.color.bluey_bluey_circle) - style = Paint.Style.STROKE - strokeWidth = 15f - strokeCap = Paint.Cap.ROUND - isAntiAlias = true - setShadowLayer( - 1.5f, 0f, 0f, resources.getColor(R.color.cutiemark_shadow) - ) - } + val seconds = + mCalendar.get(Calendar.SECOND) + mCalendar.get(Calendar.MILLISECOND) / 1000f + val secondsRotation = seconds * 6f - val seconds = - mCalendar.get(Calendar.SECOND) + mCalendar.get(Calendar.MILLISECOND) / 1000f - val secondsRotation = seconds * 6f + val currentDayFetched = mCalendar.get(Calendar.DAY_OF_WEEK) - 1 + val currentHourFetched = mCalendar.get(Calendar.HOUR_OF_DAY) - val currentDayFetched = mCalendar.get(Calendar.DAY_OF_WEEK) - 1 - val currentHourFetched = mCalendar.get(Calendar.HOUR_OF_DAY) + if (currentDayFetched > currentDay || currentDayFetched < currentDay) { + currentDay = currentDayFetched + initializeBackground() + initializeWatchFace() + } - if (currentDayFetched > currentDay || currentDayFetched < currentDay) { - currentDay = currentDayFetched - initializeBackground() - initializeWatchFace() - } + if (currentHourFetched > currentHour || currentHourFetched < currentHour) { + currentHour = currentHourFetched + initializeBackground() + initializeWatchFace() + } - if (currentHourFetched > currentHour || currentHourFetched < currentHour) { - currentHour = currentHourFetched - initializeBackground() - initializeWatchFace() + canvas.drawArc(10f, 10f, mCenterX * 2f - 10f, mCenterY * 2f - 10f, secondsRotation - 1f + 270f, 0.15f, false, paintOut2) } - - canvas.drawArc(10f, 10f, mCenterX * 2f - 10f, mCenterY * 2f - 10f, secondsRotation - 1f + 270f, 0.15f, false, paintOut2) } override fun onVisibilityChanged(visible: Boolean) { @@ -580,7 +479,12 @@ class BlueyBlueyFace : CanvasWatchFaceService() { invalidate() if (shouldTimerBeRunning()) { val timeMs = System.currentTimeMillis() - val delayMs = INTERACTIVE_UPDATE_RATE_MS - timeMs % INTERACTIVE_UPDATE_RATE_MS + val updateRate = if (mAmbient) { + 1000 + } else { + INTERACTIVE_UPDATE_RATE_MS + } + val delayMs = updateRate - timeMs % updateRate mUpdateTimeHandler.sendEmptyMessageDelayed(MSG_UPDATE_TIME, delayMs) } } diff --git a/app/src/main/java/dev/equestria/ponywatch/CutiemarkFace.kt b/app/src/main/java/dev/equestria/ponywatch/CutiemarkFace.kt index ae5461a..a0c5bfc 100644 --- a/app/src/main/java/dev/equestria/ponywatch/CutiemarkFace.kt +++ b/app/src/main/java/dev/equestria/ponywatch/CutiemarkFace.kt @@ -86,13 +86,10 @@ class CutiemarkFace : CanvasWatchFaceService() { private var mCenterY: Float = 0F private var mHeight: Float = 0F - private var lastRefreshMinute: Int = -1 - private var mSecondHandLength: Float = 0F private var sMinuteHandLength: Float = 0F private var sHourHandLength: Float = 0F - /* Colors for all hands (hour, minute, seconds, ticks) based on photo loaded. */ private var mWatchHandColor: Int = 0 private var mWatchHandHighlightColor: Int = 0 private var mWatchHandShadowColor: Int = 0 @@ -109,10 +106,6 @@ class CutiemarkFace : CanvasWatchFaceService() { private var mLowBitAmbient: Boolean = false private var mBurnInProtection: Boolean = false - private var twoFronters: Boolean = false - private var bmp: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) - private var bmp2: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) - /* Handler to update the time once a second in interactive mode. */ private val mUpdateTimeHandler = EngineHandler(this) @@ -350,11 +343,8 @@ class CutiemarkFace : CanvasWatchFaceService() { } private fun drawBackground(canvas: Canvas) { - - if (mAmbient && (mLowBitAmbient || mBurnInProtection)) { + if (mAmbient) { canvas.drawColor(Color.BLACK) - } else if (mAmbient) { - canvas.drawBitmap(mGrayBackgroundBitmap, 0f, 0f, mBackgroundPaint) } else { canvas.drawBitmap(mBackgroundBitmap, 0f, 0f, mBackgroundPaint) } @@ -469,91 +459,7 @@ class CutiemarkFace : CanvasWatchFaceService() { m.toString() } - canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), 40f, paint) - - if (BuildConfig.ENABLE_PLURALITY) { - if (mCalendar.get(Calendar.MINUTE) != lastRefreshMinute) { - lastRefreshMinute = mCalendar.get(Calendar.MINUTE) - - val target = object : Target { - override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) { - try { - if (bitmap != null) { - bmp = bitmap - bmp = Bitmap.createScaledBitmap( - bmp, - 48, - 48, true - ) - - canvas.drawBitmap(bmp, mCenterX - 48f/2f, 49f, mBackgroundPaint) - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - - val volleyQueue = Volley.newRequestQueue(baseContext) - - val jsonObjectRequest = JsonObjectRequest("https://ponycule.equestria.horse/api/raindrops-two", - - { response -> - Log.i("HTTPRequest", response.toString()) - twoFronters = response!!.get("multiple") as Boolean - - if (twoFronters) { - val target = object : Target { - override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) { - try { - if (bitmap != null) { - bmp2 = bitmap - bmp2 = Bitmap.createScaledBitmap( - bmp2, - 48, - 48, true - ) - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - } - - override fun onBitmapFailed(e: Exception?, errorDrawable: Drawable?) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img2-round" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } - }, - - { error -> Log.e("HTTPRequest", "Request error: ${error.localizedMessage}") }) - - volleyQueue.add(jsonObjectRequest) - } - - override fun onBitmapFailed(e: Exception?, errorDrawable: Drawable?) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img-round" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } else { - if (twoFronters) { - canvas.drawBitmap(bmp2, mCenterX + 6f/2f, 49f, mBackgroundPaint) - canvas.drawBitmap(bmp, mCenterX - 102f/2f, 49f, mBackgroundPaint) - } else { - canvas.drawBitmap(bmp, mCenterX - 48f/2f, 49f, mBackgroundPaint) - } - } - } + canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), if (mAmbient) (canvas.height / 2 + 40).toFloat() else 40f, paint) } override fun onVisibilityChanged(visible: Boolean) { @@ -614,7 +520,12 @@ class CutiemarkFace : CanvasWatchFaceService() { invalidate() if (shouldTimerBeRunning()) { val timeMs = System.currentTimeMillis() - val delayMs = INTERACTIVE_UPDATE_RATE_MS - timeMs % INTERACTIVE_UPDATE_RATE_MS + val updateRate = if (mAmbient) { + 1000 + } else { + INTERACTIVE_UPDATE_RATE_MS + } + val delayMs = updateRate - timeMs % updateRate mUpdateTimeHandler.sendEmptyMessageDelayed(MSG_UPDATE_TIME, delayMs) } } diff --git a/app/src/main/java/dev/equestria/ponywatch/FeathersFace.kt b/app/src/main/java/dev/equestria/ponywatch/FeathersFace.kt index ebb4fc2..0873fba 100644 --- a/app/src/main/java/dev/equestria/ponywatch/FeathersFace.kt +++ b/app/src/main/java/dev/equestria/ponywatch/FeathersFace.kt @@ -100,8 +100,6 @@ class FeathersFace : CanvasWatchFaceService() { private var mCenterY: Float = 0F private var mHeight: Float = 0F - private var lastRefreshMinute: Int = -1 - private var mSecondHandLength: Float = 0F private var sMinuteHandLength: Float = 0F private var sHourHandLength: Float = 0F @@ -116,10 +114,6 @@ class FeathersFace : CanvasWatchFaceService() { private var mLowBitAmbient: Boolean = false private var mBurnInProtection: Boolean = false - private var twoFronters: Boolean = false - private var bmp: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) - private var bmp2: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) - /* Handler to update the time once a second in interactive mode. */ private val mUpdateTimeHandler = EngineHandler(this) @@ -280,11 +274,8 @@ class FeathersFace : CanvasWatchFaceService() { } private fun drawBackground(canvas: Canvas) { - - if (mAmbient && (mLowBitAmbient || mBurnInProtection)) { + if (mAmbient) { canvas.drawColor(Color.BLACK) - } else if (mAmbient) { - canvas.drawBitmap(mGrayBackgroundBitmap, 0f, 0f, mBackgroundPaint) } else { canvas.drawBitmap(mBackgroundBitmap, 0f, 0f, mBackgroundPaint) } @@ -349,103 +340,7 @@ class FeathersFace : CanvasWatchFaceService() { m.toString() } - canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), 150f, paint) - - if (BuildConfig.ENABLE_PLURALITY) { - if (mCalendar.get(Calendar.MINUTE) != lastRefreshMinute) { - lastRefreshMinute = mCalendar.get(Calendar.MINUTE) - - val target = object : Target { - override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) { - try { - if (bitmap != null) { - bmp = bitmap - bmp = Bitmap.createScaledBitmap( - bmp, - 48, - 48, true - ) - - canvas.drawBitmap(bmp, mCenterX - 48f/2f, 49f, mBackgroundPaint) - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - - val volleyQueue = Volley.newRequestQueue(baseContext) - - val jsonObjectRequest = - JsonObjectRequest("https://ponycule.equestria.horse/api/raindrops-two", - - { response -> - Log.i("HTTPRequest", response.toString()) - twoFronters = response!!.get("multiple") as Boolean - - if (twoFronters) { - val target = object : Target { - override fun onBitmapLoaded( - bitmap: Bitmap?, - from: Picasso.LoadedFrom? - ) { - try { - if (bitmap != null) { - bmp2 = bitmap - bmp2 = Bitmap.createScaledBitmap( - bmp2, - 48, - 48, true - ) - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - } - - override fun onBitmapFailed( - e: Exception?, - errorDrawable: Drawable? - ) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img2-round" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } - }, - - { error -> - Log.e( - "HTTPRequest", - "Request error: ${error.localizedMessage}" - ) - }) - - volleyQueue.add(jsonObjectRequest) - } - - override fun onBitmapFailed(e: Exception?, errorDrawable: Drawable?) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img-round" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } else { - if (twoFronters) { - canvas.drawBitmap(bmp2, mCenterX + 6f/2f, 20f, mBackgroundPaint) - canvas.drawBitmap(bmp, mCenterX - 102f/2f, 20f, mBackgroundPaint) - } else { - canvas.drawBitmap(bmp, mCenterX - 48f/2f, 20f, mBackgroundPaint) - } - } - } + canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), if (mAmbient) (canvas.height / 2 + 40).toFloat() else 150f, paint) } override fun onVisibilityChanged(visible: Boolean) { @@ -506,7 +401,12 @@ class FeathersFace : CanvasWatchFaceService() { invalidate() if (shouldTimerBeRunning()) { val timeMs = System.currentTimeMillis() - val delayMs = INTERACTIVE_UPDATE_RATE_MS - timeMs % INTERACTIVE_UPDATE_RATE_MS + val updateRate = if (mAmbient) { + 1000 + } else { + INTERACTIVE_UPDATE_RATE_MS + } + val delayMs = updateRate - timeMs % updateRate mUpdateTimeHandler.sendEmptyMessageDelayed(MSG_UPDATE_TIME, delayMs) } } diff --git a/app/src/main/java/dev/equestria/ponywatch/GlitterFace.kt b/app/src/main/java/dev/equestria/ponywatch/GlitterFace.kt index f58d5c4..4f2982a 100644 --- a/app/src/main/java/dev/equestria/ponywatch/GlitterFace.kt +++ b/app/src/main/java/dev/equestria/ponywatch/GlitterFace.kt @@ -100,8 +100,6 @@ class GlitterFace : CanvasWatchFaceService() { private var mCenterY: Float = 0F private var mHeight: Float = 0F - private var lastRefreshMinute: Int = -1 - private var mSecondHandLength: Float = 0F private var sMinuteHandLength: Float = 0F private var sHourHandLength: Float = 0F @@ -116,10 +114,6 @@ class GlitterFace : CanvasWatchFaceService() { private var mLowBitAmbient: Boolean = false private var mBurnInProtection: Boolean = false - private var twoFronters: Boolean = false - private var bmp: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) - private var bmp2: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) - /* Handler to update the time once a second in interactive mode. */ private val mUpdateTimeHandler = EngineHandler(this) @@ -280,11 +274,8 @@ class GlitterFace : CanvasWatchFaceService() { } private fun drawBackground(canvas: Canvas) { - - if (mAmbient && (mLowBitAmbient || mBurnInProtection)) { + if (mAmbient) { canvas.drawColor(Color.BLACK) - } else if (mAmbient) { - canvas.drawBitmap(mGrayBackgroundBitmap, 0f, 0f, mBackgroundPaint) } else { canvas.drawBitmap(mBackgroundBitmap, 0f, 0f, mBackgroundPaint) } @@ -349,103 +340,7 @@ class GlitterFace : CanvasWatchFaceService() { m.toString() } - canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), 150f, paint) - - if (BuildConfig.ENABLE_PLURALITY) { - if (mCalendar.get(Calendar.MINUTE) != lastRefreshMinute) { - lastRefreshMinute = mCalendar.get(Calendar.MINUTE) - - val target = object : Target { - override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) { - try { - if (bitmap != null) { - bmp = bitmap - bmp = Bitmap.createScaledBitmap( - bmp, - 48, - 48, true - ) - - canvas.drawBitmap(bmp, mCenterX - 48f/2f, 49f, mBackgroundPaint) - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - - val volleyQueue = Volley.newRequestQueue(baseContext) - - val jsonObjectRequest = - JsonObjectRequest("https://ponycule.equestria.horse/api/raindrops-two", - - { response -> - Log.i("HTTPRequest", response.toString()) - twoFronters = response!!.get("multiple") as Boolean - - if (twoFronters) { - val target = object : Target { - override fun onBitmapLoaded( - bitmap: Bitmap?, - from: Picasso.LoadedFrom? - ) { - try { - if (bitmap != null) { - bmp2 = bitmap - bmp2 = Bitmap.createScaledBitmap( - bmp2, - 48, - 48, true - ) - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - } - - override fun onBitmapFailed( - e: Exception?, - errorDrawable: Drawable? - ) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img2-round" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } - }, - - { error -> - Log.e( - "HTTPRequest", - "Request error: ${error.localizedMessage}" - ) - }) - - volleyQueue.add(jsonObjectRequest) - } - - override fun onBitmapFailed(e: Exception?, errorDrawable: Drawable?) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img-round" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } else { - if (twoFronters) { - canvas.drawBitmap(bmp2, mCenterX + 6f/2f, 20f, mBackgroundPaint) - canvas.drawBitmap(bmp, mCenterX - 102f/2f, 20f, mBackgroundPaint) - } else { - canvas.drawBitmap(bmp, mCenterX - 48f/2f, 20f, mBackgroundPaint) - } - } - } + canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), if (mAmbient) (canvas.height / 2 + 40).toFloat() else 150f, paint) } override fun onVisibilityChanged(visible: Boolean) { @@ -506,7 +401,12 @@ class GlitterFace : CanvasWatchFaceService() { invalidate() if (shouldTimerBeRunning()) { val timeMs = System.currentTimeMillis() - val delayMs = INTERACTIVE_UPDATE_RATE_MS - timeMs % INTERACTIVE_UPDATE_RATE_MS + val updateRate = if (mAmbient) { + 1000 + } else { + INTERACTIVE_UPDATE_RATE_MS + } + val delayMs = updateRate - timeMs % updateRate mUpdateTimeHandler.sendEmptyMessageDelayed(MSG_UPDATE_TIME, delayMs) } } diff --git a/app/src/main/java/dev/equestria/ponywatch/UnitedFace.kt b/app/src/main/java/dev/equestria/ponywatch/UnitedFace.kt index 87c4a7b..3afb861 100644 --- a/app/src/main/java/dev/equestria/ponywatch/UnitedFace.kt +++ b/app/src/main/java/dev/equestria/ponywatch/UnitedFace.kt @@ -95,15 +95,10 @@ class UnitedFace : CanvasWatchFaceService() { private var mCenterY: Float = 0F private var mHeight: Float = 0F - private var lastRefreshMinute: Int = -1 - private var mSecondHandLength: Float = 0F private var sMinuteHandLength: Float = 0F private var sHourHandLength: Float = 0F - /* Colors for all hands (hour, minute, seconds, ticks) based on photo loaded. */ - private var mWatchHandColor: Int = 0 - private var mWatchHandHighlightColor: Int = 0 private var mWatchHandShadowColor: Int = 0 private lateinit var mBackgroundPaint: Paint @@ -116,9 +111,6 @@ class UnitedFace : CanvasWatchFaceService() { private var currentDay: Int = 0 private var currentHour: Int = 0 - private var twoFronters: Boolean = false - private var bmp: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) - private var bmp2: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) /* Handler to update the time once a second in interactive mode. */ private val mUpdateTimeHandler = EngineHandler(this) @@ -333,11 +325,8 @@ class UnitedFace : CanvasWatchFaceService() { } private fun drawBackground(canvas: Canvas) { - - if (mAmbient && (mLowBitAmbient || mBurnInProtection)) { + if (mAmbient) { canvas.drawColor(Color.BLACK) - } else if (mAmbient) { - canvas.drawBitmap(mGrayBackgroundBitmap, 0f, 0f, mBackgroundPaint) } else { canvas.drawBitmap(mBackgroundBitmap, 0f, 0f, mBackgroundPaint) } @@ -372,53 +361,104 @@ class UnitedFace : CanvasWatchFaceService() { /* Restore the canvas" original orientation. */ canvas.restore() - val paint = Paint().apply { - color = resources.getColor(when (currentDay) { - 0 -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_0_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_0_1 - else -> R.color.united_text_0_0 - } - 1 -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_1_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_1_1 - else -> R.color.united_text_1_0 - } - 2 -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_2_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_2_1 - else -> R.color.united_text_2_0 - } - 3 -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_3_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_3_1 - else -> R.color.united_text_3_0 - } - 4 -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_4_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_4_1 - else -> R.color.united_text_4_0 - } - 5 -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_5_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_5_1 - else -> R.color.united_text_5_0 - } - 6 -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_6_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_6_1 - else -> R.color.united_text_6_0 - } - else -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_0_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_0_1 - else -> R.color.united_text_0_0 - } - }) - isAntiAlias = true - setShadowLayer( - 1.5f, 0f, 0f, mWatchHandShadowColor - ) + val paint = if (mAmbient) { + Paint().apply { + color = resources.getColor(when (currentDay) { + 0 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_ambient_0_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_ambient_0_1 + else -> R.color.united_ambient_0_0 + } + 1 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_ambient_1_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_ambient_1_1 + else -> R.color.united_ambient_1_0 + } + 2 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_ambient_2_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_ambient_2_1 + else -> R.color.united_ambient_2_0 + } + 3 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_ambient_3_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_ambient_3_1 + else -> R.color.united_ambient_3_0 + } + 4 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_ambient_4_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_ambient_4_1 + else -> R.color.united_ambient_4_0 + } + 5 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_ambient_5_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_ambient_5_1 + else -> R.color.united_ambient_5_0 + } + 6 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_ambient_6_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_ambient_6_1 + else -> R.color.united_ambient_6_0 + } + else -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_ambient_0_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_ambient_0_1 + else -> R.color.united_ambient_0_0 + } + }) + isAntiAlias = true + setShadowLayer( + SHADOW_RADIUS, 5f, 0f, mWatchHandShadowColor + ) + } + } else { + Paint().apply { + color = resources.getColor(when (currentDay) { + 0 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_0_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_0_1 + else -> R.color.united_text_0_0 + } + 1 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_1_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_1_1 + else -> R.color.united_text_1_0 + } + 2 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_2_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_2_1 + else -> R.color.united_text_2_0 + } + 3 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_3_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_3_1 + else -> R.color.united_text_3_0 + } + 4 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_4_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_4_1 + else -> R.color.united_text_4_0 + } + 5 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_5_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_5_1 + else -> R.color.united_text_5_0 + } + 6 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_6_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_6_1 + else -> R.color.united_text_6_0 + } + else -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_text_0_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_text_0_1 + else -> R.color.united_text_0_0 + } + }) + isAntiAlias = true + setShadowLayer( + 1.5f, 0f, 0f, mWatchHandShadowColor + ) + } } paint.textAlign = Paint.Align.CENTER @@ -442,7 +482,7 @@ class UnitedFace : CanvasWatchFaceService() { val d = mCalendar.get(Calendar.DAY_OF_MONTH) val i = mCalendar.get(Calendar.MONTH) - canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), 116f, paint) + canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), if (mAmbient) (canvas.height / 2 + 40).toFloat() else 116f, paint) if (showDate) { val it = when (i) { @@ -464,184 +504,84 @@ class UnitedFace : CanvasWatchFaceService() { paint.textSize = 36f paint.alpha = 191 - canvas.drawText("$d", canvas.width - 48f, (canvas.height / 2).toFloat() - 20f + 7f, paint) - canvas.drawText("$it", canvas.width - 48f, (canvas.height / 2).toFloat() + 20f + 7f, paint) + canvas.drawText("$d", canvas.width - 48f, (canvas.height / 2 + 40).toFloat() - 20f + 7f, paint) + canvas.drawText("$it", canvas.width - 48f, (canvas.height / 2 + 40).toFloat() + 20f + 7f, paint) } - if (BuildConfig.ENABLE_PLURALITY) { - if (mCalendar.get(Calendar.MINUTE) != lastRefreshMinute) { - lastRefreshMinute = mCalendar.get(Calendar.MINUTE) - - val target = object : Target { - override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) { - try { - if (bitmap != null) { - bmp = bitmap - bmp = Bitmap.createScaledBitmap( - bmp, - 36, - 36, true - ) - bmp.prepareToDraw() - - if (showDate) { - canvas.drawBitmap(bmp, mCenterX - 36f/2f, 0f, mBackgroundPaint) - } - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - - val volleyQueue = Volley.newRequestQueue(baseContext) - - val jsonObjectRequest = - JsonObjectRequest("https://ponycule.equestria.horse/api/raindrops-two", - - { response -> - Log.i("HTTPRequest", response.toString()) - twoFronters = response!!.get("multiple") as Boolean - - if (twoFronters) { - val target = object : Target { - override fun onBitmapLoaded( - bitmap: Bitmap?, - from: Picasso.LoadedFrom? - ) { - try { - if (bitmap != null) { - bmp2 = bitmap - bmp2 = Bitmap.createScaledBitmap( - bmp2, - 36, - 36, true - ) - bmp2.prepareToDraw() - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - } - - override fun onBitmapFailed( - e: Exception?, - errorDrawable: Drawable? - ) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img2-round2" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } - }, - - { error -> - Log.e( - "HTTPRequest", - "Request error: ${error.localizedMessage}" - ) - }) - - volleyQueue.add(jsonObjectRequest) - } - - override fun onBitmapFailed(e: Exception?, errorDrawable: Drawable?) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img-round2" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } else { - if (showDate) { - if (twoFronters) { - canvas.drawBitmap(bmp2, mCenterX - 4f/2f, 0f, mBackgroundPaint) - canvas.drawBitmap(bmp, mCenterX - 88f/2f, 0f, mBackgroundPaint) - } else { - canvas.drawBitmap(bmp, mCenterX - 36f/2f, 0f, mBackgroundPaint) + if (!mAmbient) { + val paintOut2 = Paint().apply { + color = resources.getColor(when (currentDay) { + 0 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_0_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_0_1 + else -> R.color.united_circle_0_0 } - } + 1 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_1_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_1_1 + else -> R.color.united_circle_1_0 + } + 2 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_2_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_2_1 + else -> R.color.united_circle_2_0 + } + 3 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_3_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_3_1 + else -> R.color.united_circle_3_0 + } + 4 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_4_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_4_1 + else -> R.color.united_circle_4_0 + } + 5 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_5_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_5_1 + else -> R.color.united_circle_5_0 + } + 6 -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_6_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_6_1 + else -> R.color.united_circle_6_0 + } + else -> when { + mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_0_0 + mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_0_1 + else -> R.color.united_circle_0_0 + } + }) + style = Paint.Style.STROKE + strokeWidth = 15f + strokeCap = Paint.Cap.ROUND + isAntiAlias = true + setShadowLayer( + 1.5f, 0f, 0f, resources.getColor(R.color.cutiemark_shadow) + ) } - } - val paintOut2 = Paint().apply { - color = resources.getColor(when (currentDay) { - 0 -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_0_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_0_1 - else -> R.color.united_circle_0_0 - } - 1 -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_1_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_1_1 - else -> R.color.united_circle_1_0 - } - 2 -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_2_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_2_1 - else -> R.color.united_circle_2_0 - } - 3 -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_3_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_3_1 - else -> R.color.united_circle_3_0 - } - 4 -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_4_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_4_1 - else -> R.color.united_circle_4_0 - } - 5 -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_5_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_5_1 - else -> R.color.united_circle_5_0 - } - 6 -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_6_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_6_1 - else -> R.color.united_circle_6_0 - } - else -> when { - mCalendar.get(Calendar.HOUR_OF_DAY) < 12 -> R.color.united_circle_0_0 - mCalendar.get(Calendar.HOUR_OF_DAY) >= 12 -> R.color.united_circle_0_1 - else -> R.color.united_circle_0_0 - } - }) - style = Paint.Style.STROKE - strokeWidth = 15f - strokeCap = Paint.Cap.ROUND - isAntiAlias = true - setShadowLayer( - 1.5f, 0f, 0f, resources.getColor(R.color.cutiemark_shadow) - ) - } + val seconds = + mCalendar.get(Calendar.SECOND) + mCalendar.get(Calendar.MILLISECOND) / 1000f + val secondsRotation = seconds * 6f - val seconds = - mCalendar.get(Calendar.SECOND) + mCalendar.get(Calendar.MILLISECOND) / 1000f - val secondsRotation = seconds * 6f + val currentDayFetched = mCalendar.get(Calendar.DAY_OF_WEEK) - 1 + val currentHourFetched = mCalendar.get(Calendar.HOUR_OF_DAY) - val currentDayFetched = mCalendar.get(Calendar.DAY_OF_WEEK) - 1 - val currentHourFetched = mCalendar.get(Calendar.HOUR_OF_DAY) + if (currentDayFetched > currentDay || currentDayFetched < currentDay) { + currentDay = currentDayFetched + initializeBackground() + initializeWatchFace() + } - if (currentDayFetched > currentDay || currentDayFetched < currentDay) { - currentDay = currentDayFetched - initializeBackground() - initializeWatchFace() - } + if (currentHourFetched > currentHour || currentHourFetched < currentHour) { + currentHour = currentHourFetched + initializeBackground() + initializeWatchFace() + } - if (currentHourFetched > currentHour || currentHourFetched < currentHour) { - currentHour = currentHourFetched - initializeBackground() - initializeWatchFace() + canvas.drawArc(10f, 10f, mCenterX * 2f - 10f, mCenterY * 2f - 10f, secondsRotation - 1f + 270f, 0.15f, false, paintOut2) } - - canvas.drawArc(10f, 10f, mCenterX * 2f - 10f, mCenterY * 2f - 10f, secondsRotation - 1f + 270f, 0.15f, false, paintOut2) } override fun onVisibilityChanged(visible: Boolean) { @@ -703,7 +643,12 @@ class UnitedFace : CanvasWatchFaceService() { invalidate() if (shouldTimerBeRunning()) { val timeMs = System.currentTimeMillis() - val delayMs = INTERACTIVE_UPDATE_RATE_MS - timeMs % INTERACTIVE_UPDATE_RATE_MS + val updateRate = if (mAmbient) { + 1000 + } else { + INTERACTIVE_UPDATE_RATE_MS + } + val delayMs = updateRate - timeMs % updateRate mUpdateTimeHandler.sendEmptyMessageDelayed(MSG_UPDATE_TIME, delayMs) } } diff --git a/app/src/main/java/dev/equestria/ponywatch/UnityFace.kt b/app/src/main/java/dev/equestria/ponywatch/UnityFace.kt index 09f5507..dc96d0d 100644 --- a/app/src/main/java/dev/equestria/ponywatch/UnityFace.kt +++ b/app/src/main/java/dev/equestria/ponywatch/UnityFace.kt @@ -93,8 +93,6 @@ class UnityFace : CanvasWatchFaceService() { private var mCenterY: Float = 0F private var mHeight: Float = 0F - private var lastRefreshMinute: Int = -1 - private var mSecondHandLength: Float = 0F private var sMinuteHandLength: Float = 0F private var sHourHandLength: Float = 0F @@ -117,9 +115,6 @@ class UnityFace : CanvasWatchFaceService() { private var mBurnInProtection: Boolean = false private var currentDay: Int = 0 - private var twoFronters: Boolean = false - private var bmp: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) - private var bmp2: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.default_pony) /* Handler to update the time once a second in interactive mode. */ private val mUpdateTimeHandler = EngineHandler(this) @@ -385,11 +380,8 @@ class UnityFace : CanvasWatchFaceService() { } private fun drawBackground(canvas: Canvas) { - - if (mAmbient && (mLowBitAmbient || mBurnInProtection)) { + if (mAmbient) { canvas.drawColor(Color.BLACK) - } else if (mAmbient) { - canvas.drawBitmap(mGrayBackgroundBitmap, 0f, 0f, mBackgroundPaint) } else { canvas.drawBitmap(mBackgroundBitmap, 0f, 0f, mBackgroundPaint) } @@ -512,103 +504,7 @@ class UnityFace : CanvasWatchFaceService() { m.toString() } - canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), 40f, paint) - - if (BuildConfig.ENABLE_PLURALITY) { - if (mCalendar.get(Calendar.MINUTE) != lastRefreshMinute) { - lastRefreshMinute = mCalendar.get(Calendar.MINUTE) - - val target = object : Target { - override fun onBitmapLoaded(bitmap: Bitmap?, from: Picasso.LoadedFrom?) { - try { - if (bitmap != null) { - bmp = bitmap - bmp = Bitmap.createScaledBitmap( - bmp, - 48, - 48, true - ) - - canvas.drawBitmap(bmp, mCenterX - 48f/2f, 49f, mBackgroundPaint) - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - - val volleyQueue = Volley.newRequestQueue(baseContext) - - val jsonObjectRequest = - JsonObjectRequest("https://ponycule.equestria.horse/api/raindrops-two", - - { response -> - Log.i("HTTPRequest", response.toString()) - twoFronters = response!!.get("multiple") as Boolean - - if (twoFronters) { - val target = object : Target { - override fun onBitmapLoaded( - bitmap: Bitmap?, - from: Picasso.LoadedFrom? - ) { - try { - if (bitmap != null) { - bmp2 = bitmap - bmp2 = Bitmap.createScaledBitmap( - bmp2, - 48, - 48, true - ) - } - } catch (ex: IllegalArgumentException) { - Log.e("Picasso", ex.toString()) - } - } - - override fun onBitmapFailed( - e: Exception?, - errorDrawable: Drawable? - ) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img2-round" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } - }, - - { error -> - Log.e( - "HTTPRequest", - "Request error: ${error.localizedMessage}" - ) - }) - - volleyQueue.add(jsonObjectRequest) - } - - override fun onBitmapFailed(e: Exception?, errorDrawable: Drawable?) { - Log.e("Picasso", e.toString()) - } - - override fun onPrepareLoad(placeHolderDrawable: Drawable?) {} - } - - Picasso.get().load( - "https://ponycule.equestria.horse/api/raindrops-img-round" - ).memoryPolicy(MemoryPolicy.NO_CACHE).into(target) - } else { - if (twoFronters) { - canvas.drawBitmap(bmp2, mCenterX + 6f/2f, 49f, mBackgroundPaint) - canvas.drawBitmap(bmp, mCenterX - 102f/2f, 49f, mBackgroundPaint) - } else { - canvas.drawBitmap(bmp, mCenterX - 48f/2f, 49f, mBackgroundPaint) - } - } - } + canvas.drawText("$hs:$ms", (canvas.width / 2).toFloat(), if (mAmbient) (canvas.height / 2 + 40).toFloat() else 40f, paint) } override fun onVisibilityChanged(visible: Boolean) { @@ -669,7 +565,12 @@ class UnityFace : CanvasWatchFaceService() { invalidate() if (shouldTimerBeRunning()) { val timeMs = System.currentTimeMillis() - val delayMs = INTERACTIVE_UPDATE_RATE_MS - timeMs % INTERACTIVE_UPDATE_RATE_MS + val updateRate = if (mAmbient) { + 1000 + } else { + INTERACTIVE_UPDATE_RATE_MS + } + val delayMs = updateRate - timeMs % updateRate mUpdateTimeHandler.sendEmptyMessageDelayed(MSG_UPDATE_TIME, delayMs) } } diff --git a/app/src/main/res/drawable-nodpi/preview_united.png b/app/src/main/res/drawable-nodpi/preview_united.png Binary files differnew file mode 100644 index 0000000..228beca --- /dev/null +++ b/app/src/main/res/drawable-nodpi/preview_united.png diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index ecacc70..980d04c 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,7 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <color name="cutiemark_shadow">#77000000</color> + <color name="ambient">#80FFFFFF</color> + <color name="cutiemark_shadow">#77000000</color> <color name="cutiemark_hours">#f4c3ff</color> <color name="cutiemark_minutes">#ffffff</color> <color name="cutiemark_seconds">#c549ff</color> @@ -59,9 +60,25 @@ <color name="united_text_5_1">#b3ebff</color> <color name="united_text_6_0">#ffdbe6</color> <color name="united_text_6_1">#e9bfff</color> + <color name="united_ambient_0_0">#80ffddb8</color> + <color name="united_ambient_0_1">#80ffdbc8</color> + <color name="united_ambient_1_0">#809fefff</color> + <color name="united_ambient_1_1">#80b4ebfe</color> + <color name="united_ambient_2_0">#80d9e2ff</color> + <color name="united_ambient_2_1">#80b9eafe</color> + <color name="united_ambient_3_0">#80fad9ee</color> + <color name="united_ambient_3_1">#80fad9ee</color> + <color name="united_ambient_4_0">#80e9ddff</color> + <color name="united_ambient_4_1">#80dfe1fc</color> + <color name="united_ambient_5_0">#80b3ebff</color> + <color name="united_ambient_5_1">#80b3ebff</color> + <color name="united_ambient_6_0">#80ffdbe6</color> + <color name="united_ambient_6_1">#80e9bfff</color> <color name="bluey_bluey_text">#BFEDFF</color> + <color name="bluey_bluey_ambient">#80BFEDFF</color> <color name="bluey_bluey_circle">#536D78</color> <color name="bluey_bingo_text">#FFD9BF</color> + <color name="bluey_bingo_ambient">#80FFD9BF</color> <color name="bluey_bingo_circle">#786253</color> </resources>
\ No newline at end of file |