summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaindropsSys <raindrops@equestria.dev>2023-12-22 21:45:27 +0100
committerRaindropsSys <raindrops@equestria.dev>2023-12-22 21:45:27 +0100
commita31e6186ee8ba7801fa44f921d364ad23f656f23 (patch)
tree028b7076f5d971bd1128be1b9011917a611af482
parentf958fcf11b9441823dd28b5f13eca52f59196a56 (diff)
downloadponywatch-a31e6186ee8ba7801fa44f921d364ad23f656f23.tar.gz
ponywatch-a31e6186ee8ba7801fa44f921d364ad23f656f23.tar.bz2
ponywatch-a31e6186ee8ba7801fa44f921d364ad23f656f23.zip
Updated 13 files and added 2 files (automated)
-rw-r--r--app/build.gradle14
-rw-r--r--app/release/app-release.apkbin8962553 -> 13451540 bytes
-rw-r--r--app/release/app-release.apk.zipbin0 -> 8644078 bytes
-rw-r--r--app/release/output-metadata.json4
-rw-r--r--app/src/main/AndroidManifest.xml8
-rw-r--r--app/src/main/java/dev/equestria/ponywatch/AlicornFace.kt126
-rw-r--r--app/src/main/java/dev/equestria/ponywatch/BlueyBingoFace.kt200
-rw-r--r--app/src/main/java/dev/equestria/ponywatch/BlueyBlueyFace.kt200
-rw-r--r--app/src/main/java/dev/equestria/ponywatch/CutiemarkFace.kt105
-rw-r--r--app/src/main/java/dev/equestria/ponywatch/FeathersFace.kt116
-rw-r--r--app/src/main/java/dev/equestria/ponywatch/GlitterFace.kt116
-rw-r--r--app/src/main/java/dev/equestria/ponywatch/UnitedFace.kt403
-rw-r--r--app/src/main/java/dev/equestria/ponywatch/UnityFace.kt115
-rw-r--r--app/src/main/res/drawable-nodpi/preview_united.pngbin0 -> 175090 bytes
-rw-r--r--app/src/main/res/values/colors.xml19
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
index e3dbf2b..8fd5248 100644
--- a/app/release/app-release.apk
+++ b/app/release/app-release.apk
Binary files differ
diff --git a/app/release/app-release.apk.zip b/app/release/app-release.apk.zip
new file mode 100644
index 0000000..132e64a
--- /dev/null
+++ b/app/release/app-release.apk.zip
Binary files differ
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
new file mode 100644
index 0000000..228beca
--- /dev/null
+++ b/app/src/main/res/drawable-nodpi/preview_united.png
Binary files differ
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