diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dbd51999..d670b479 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -28,6 +28,13 @@ <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" /> </intent-filter> </activity> + <activity + android:name=".presentation.widgets.AnalogClockWidgetConfig" + android:exported="false"> + <intent-filter> + <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" /> + </intent-filter> + </activity> <activity android:name=".ui.MainActivity" android:exported="true" @@ -50,9 +57,9 @@ android:name=".presentation.screens.alarm.AlarmActivity" android:configChanges="orientation|keyboardHidden|keyboard|navigation" android:excludeFromRecents="true" - android:theme="@style/Theme.ClockYou" android:launchMode="singleInstance" - android:taskAffinity="" /> + android:taskAffinity="" + android:theme="@style/Theme.ClockYou" /> <receiver android:name=".util.receivers.AlarmReceiver" diff --git a/app/src/main/java/com/bnyro/clock/domain/model/AnalogClockFace.kt b/app/src/main/java/com/bnyro/clock/domain/model/AnalogClockFace.kt new file mode 100644 index 00000000..02c09b16 --- /dev/null +++ b/app/src/main/java/com/bnyro/clock/domain/model/AnalogClockFace.kt @@ -0,0 +1,89 @@ +package com.bnyro.clock.domain.model + +import androidx.annotation.DrawableRes +import com.bnyro.clock.R + +sealed class AnalogClockFace( + val name: String, + val author: String? = null, + val authorUrl: String? = null, + @DrawableRes val dial: Int = 0, + @DrawableRes val hourHand: Int = 0, + @DrawableRes val minuteHand: Int = 0, + @DrawableRes val secondHand: Int = 0 +) { + + object System : AnalogClockFace( + name = "System" + ) + + object Classic76 : AnalogClockFace( + name = "Classic76", + author = "§", + authorUrl = "https://github.com/shuvashish76", + dial = R.drawable.classic76_dial, + hourHand = R.drawable.classic76_hour_hand, + minuteHand = R.drawable.classic76_minute_hand, + secondHand = R.drawable.classic76_second_hand + ) + + object TwoDBall : AnalogClockFace( + name = "2D Ball", + author = "§", + authorUrl = "https://github.com/shuvashish76", + dial = R.drawable.twod_ball_dial, + hourHand = R.drawable.twod_ball_hour_hand, + minuteHand = R.drawable.twod_ball_minute_hand, + secondHand = R.drawable.twod_ball_second_hand + ) + + object ClassicClockYou : AnalogClockFace( + name = "Classic Clock You", + author = "SuhasDissa", + authorUrl = "https://github.com/SuhasDissa", + dial = R.drawable.classic_clock_you_dial, + hourHand = R.drawable.classic_clock_you_hour_hand, + minuteHand = R.drawable.classic_clock_you_minute_hand + ) + + object AnalogClock : AnalogClockFace( + name = "Analog Clock", + author = "DG-RA", + authorUrl = "https://openclipart.org/artist/DG-RA", + dial = R.drawable.analog_clock_black_dial, + hourHand = R.drawable.analog_clock_black_hour_hand, + minuteHand = R.drawable.analog_clock_black_minute_hand, + secondHand = R.drawable.analog_clock_black_second_hand + ) + + object MinimalisticCircular : AnalogClockFace( + name = "Minimalistic - Circular", + author = "§", + authorUrl = "https://github.com/shuvashish76", + dial = R.drawable.minimalistic_circular_dial, + hourHand = R.drawable.minimalistic_circular_hour_hand, + minuteHand = R.drawable.minimalistic_circular_minute_hand + ) + + object MinimalisticBar : AnalogClockFace( + name = "Minimalistic - Bar", + author = "§", + authorUrl = "https://github.com/shuvashish76", + dial = R.drawable.minimalistic_bar_dial, + hourHand = R.drawable.minimalistic_bar_hour_hand, + minuteHand = R.drawable.minimalistic_bar_minute_hand + ) + + companion object { + val all = listOf( + System, + Classic76, + TwoDBall, + ClassicClockYou, + AnalogClock, + MinimalisticCircular, + MinimalisticBar + ) + } + +} diff --git a/app/src/main/java/com/bnyro/clock/domain/model/AnalogClockWidgetOptions.kt b/app/src/main/java/com/bnyro/clock/domain/model/AnalogClockWidgetOptions.kt new file mode 100644 index 00000000..f15ded86 --- /dev/null +++ b/app/src/main/java/com/bnyro/clock/domain/model/AnalogClockWidgetOptions.kt @@ -0,0 +1,11 @@ +package com.bnyro.clock.domain.model + +import androidx.annotation.DrawableRes + +data class AnalogClockWidgetOptions( + var clockFaceName: String, + @DrawableRes var hourHand: Int, + @DrawableRes var minuteHand: Int, + @DrawableRes var secondHand: Int, + @DrawableRes var dial: Int +) \ No newline at end of file diff --git a/app/src/main/java/com/bnyro/clock/presentation/widgets/AnalogClockWidget.kt b/app/src/main/java/com/bnyro/clock/presentation/widgets/AnalogClockWidget.kt index 099cf70e..4235764a 100644 --- a/app/src/main/java/com/bnyro/clock/presentation/widgets/AnalogClockWidget.kt +++ b/app/src/main/java/com/bnyro/clock/presentation/widgets/AnalogClockWidget.kt @@ -8,6 +8,9 @@ import android.content.Intent import android.widget.RemoteViews import com.bnyro.clock.R import com.bnyro.clock.ui.MainActivity +import com.bnyro.clock.util.widgets.applyAnalogClockWidgetOptions +import com.bnyro.clock.util.widgets.deleteAnalogClockWidgetPref +import com.bnyro.clock.util.widgets.loadAnalogClockWidgetSettings class AnalogClockWidget : AppWidgetProvider() { @@ -16,7 +19,7 @@ class AnalogClockWidget : AppWidgetProvider() { appWidgetManager: AppWidgetManager, appWidgetIds: IntArray ) { - appWidgetIds.forEach { appWidgetId -> + for (appWidgetId in appWidgetIds) { val pendingIntent: PendingIntent = PendingIntent.getActivity( context, 0, @@ -27,8 +30,16 @@ class AnalogClockWidget : AppWidgetProvider() { val views = RemoteViews(context.packageName, R.layout.analog_clock).apply { setOnClickPendingIntent(R.id.analog_clock, pendingIntent) } - + val options = context.loadAnalogClockWidgetSettings(appWidgetId) + views.applyAnalogClockWidgetOptions(options, context) appWidgetManager.updateAppWidget(appWidgetId, views) } } + + override fun onDeleted(context: Context, appWidgetIds: IntArray) { + for (appWidgetId in appWidgetIds) { + context.deleteAnalogClockWidgetPref(appWidgetId) + } + super.onDeleted(context, appWidgetIds) + } } diff --git a/app/src/main/java/com/bnyro/clock/presentation/widgets/AnalogClockWidgetConfig.kt b/app/src/main/java/com/bnyro/clock/presentation/widgets/AnalogClockWidgetConfig.kt new file mode 100644 index 00000000..c96c1a6e --- /dev/null +++ b/app/src/main/java/com/bnyro/clock/presentation/widgets/AnalogClockWidgetConfig.kt @@ -0,0 +1,258 @@ +package com.bnyro.clock.presentation.widgets + +import android.app.Activity +import android.appwidget.AppWidgetManager +import android.content.Intent +import android.os.Build +import android.os.Bundle +import android.widget.AnalogClock +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge +import androidx.annotation.RequiresApi +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.grid.GridCells +import androidx.compose.foundation.lazy.grid.LazyVerticalGrid +import androidx.compose.foundation.lazy.grid.items +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.Card +import androidx.compose.material3.CenterAlignedTopAppBar +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Surface +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.platform.LocalUriHandler +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.ExperimentalTextApi +import androidx.compose.ui.unit.dp +import androidx.compose.ui.viewinterop.AndroidView +import androidx.lifecycle.viewmodel.compose.viewModel +import com.bnyro.clock.R +import com.bnyro.clock.domain.model.AnalogClockFace +import com.bnyro.clock.domain.model.AnalogClockWidgetOptions +import com.bnyro.clock.presentation.screens.settings.model.SettingsModel +import com.bnyro.clock.ui.theme.ClockYouTheme +import com.bnyro.clock.util.ThemeUtil +import com.bnyro.clock.util.widgets.loadAnalogClockWidgetSettings +import com.bnyro.clock.util.widgets.saveAnalogClockWidgetSettings +import com.bnyro.clock.util.widgets.updateAnalogClockWidget +import android.graphics.drawable.Icon as AndroidIcon + + +class AnalogClockWidgetConfig : ComponentActivity() { + + private var appWidgetId: Int = AppWidgetManager.INVALID_APPWIDGET_ID + + @OptIn(ExperimentalMaterial3Api::class) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + intent?.extras?.getInt( + AppWidgetManager.EXTRA_APPWIDGET_ID, + AppWidgetManager.INVALID_APPWIDGET_ID + )?.let { + appWidgetId = it + } + val resultValue = Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId) + setResult(Activity.RESULT_CANCELED, resultValue) + + // get settings + + val options = loadAnalogClockWidgetSettings(appWidgetId) + enableEdgeToEdge() + setContent { + val settingsModel: SettingsModel = viewModel() + + val darkTheme = when (settingsModel.themeMode) { + SettingsModel.Theme.SYSTEM -> isSystemInDarkTheme() + SettingsModel.Theme.DARK, SettingsModel.Theme.AMOLED -> true + else -> false + } + ClockYouTheme( + darkTheme = darkTheme, + customColorScheme = ThemeUtil.getSchemeFromSeed( + settingsModel.customColor, + darkTheme + ) + ) { + Surface( + modifier = Modifier.fillMaxSize(), + color = MaterialTheme.colorScheme.background + ) { + Scaffold(topBar = { + CenterAlignedTopAppBar(title = { Text(text = stringResource(R.string.select_clock_face)) }) + }) { pV -> + AnalogClockWidgetSettings( + modifier = Modifier.padding(pV), + options = options, + onComplete = this::complete + ) + } + } + } + } + } + + private fun complete(options: AnalogClockWidgetOptions) { + saveAnalogClockWidgetSettings(appWidgetId, options) + updateAnalogClockWidget(appWidgetId, options) + // return the result + val resultValue = Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId) + setResult(Activity.RESULT_OK, resultValue) + finish() + } +} + +@Composable +fun AnalogClockWidgetSettings( + modifier: Modifier = Modifier, + options: AnalogClockWidgetOptions, + onComplete: (AnalogClockWidgetOptions) -> Unit +) { + + Column( + modifier = modifier.padding(8.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.SpaceBetween + ) { + var clockFace by remember { + val face = AnalogClockFace.all.let { all -> + all.firstOrNull { it.name == options.clockFaceName } ?: all.first() + } + mutableStateOf(face) + } + Column( + modifier = Modifier.weight(1f), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(8.dp) + ) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + LazyVerticalGrid( + modifier = Modifier.weight(1f), + columns = GridCells.Adaptive(350.dp), + horizontalArrangement = Arrangement.spacedBy(8.dp), + verticalArrangement = Arrangement.spacedBy(8.dp), + contentPadding = PaddingValues(horizontal = 16.dp) + ) { + items(AnalogClockFace.all) { face -> + AnalogClockPreview( + face = face, + selected = face == clockFace, + onClick = { + clockFace = face + }) + } + } + } + } + Button( + modifier = Modifier.padding(bottom = 16.dp), + onClick = { + options.apply { + clockFaceName = clockFace.name + dial = clockFace.dial + hourHand = clockFace.hourHand + minuteHand = clockFace.minuteHand + secondHand = clockFace.secondHand + } + onComplete.invoke(options) + }) { + Text(stringResource(R.string.save)) + } + } +} + +@OptIn(ExperimentalTextApi::class) +@RequiresApi(Build.VERSION_CODES.S) +@Composable +fun AnalogClockPreview(face: AnalogClockFace, selected: Boolean, onClick: () -> Unit) { + Card( + onClick = onClick, + shape = RoundedCornerShape(32.dp), + border = BorderStroke(if (selected) 3.dp else 0.dp, MaterialTheme.colorScheme.primary) + ) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(16.dp) + ) { + Box( + Modifier + .fillMaxWidth() + .aspectRatio(1f) + .clip(RoundedCornerShape(32.dp)) + .background(MaterialTheme.colorScheme.surfaceContainerLowest), + contentAlignment = Alignment.Center + ) { + AndroidView( + modifier = Modifier + .fillMaxSize() + .padding(32.dp), + factory = { context -> + AnalogClock(context).apply { + if (face.dial != 0) setDial( + AndroidIcon.createWithResource( + context, + face.dial + ) + ) + if (face.hourHand != 0) setHourHand( + AndroidIcon.createWithResource( + context, + face.hourHand + ) + ) + if (face.minuteHand != 0) setMinuteHand( + AndroidIcon.createWithResource( + context, + face.minuteHand + ) + ) + if (face.secondHand != 0) setSecondHand( + AndroidIcon.createWithResource( + context, + face.secondHand + ) + ) + } + }) + } + Text(face.name, style = MaterialTheme.typography.headlineSmall) + if (face.author != null) { + val uriHandler = LocalUriHandler.current + Text( + text = stringResource(id = R.string.design_by, face.author), + style = MaterialTheme.typography.titleMedium, + modifier = Modifier.clickable { + if (face.authorUrl != null) { + uriHandler.openUri(face.authorUrl) + } + } + ) + } + Spacer(Modifier.height(16.dp)) + } + } +} diff --git a/app/src/main/java/com/bnyro/clock/presentation/widgets/DigitalClockWidgetConfig.kt b/app/src/main/java/com/bnyro/clock/presentation/widgets/DigitalClockWidgetConfig.kt index 3f74fad7..c492dede 100644 --- a/app/src/main/java/com/bnyro/clock/presentation/widgets/DigitalClockWidgetConfig.kt +++ b/app/src/main/java/com/bnyro/clock/presentation/widgets/DigitalClockWidgetConfig.kt @@ -91,7 +91,7 @@ class DigitalClockWidgetConfig : ComponentActivity() { darkTheme = darkTheme, customColorScheme = ThemeUtil.getSchemeFromSeed( settingsModel.customColor, - true + darkTheme ) ) { Surface( diff --git a/app/src/main/java/com/bnyro/clock/util/widgets/AnalogClockWidget.kt b/app/src/main/java/com/bnyro/clock/util/widgets/AnalogClockWidget.kt new file mode 100644 index 00000000..a88d1a62 --- /dev/null +++ b/app/src/main/java/com/bnyro/clock/util/widgets/AnalogClockWidget.kt @@ -0,0 +1,97 @@ +package com.bnyro.clock.util.widgets + +import android.appwidget.AppWidgetManager +import android.content.Context +import android.graphics.drawable.Icon +import android.os.Build +import android.widget.RemoteViews +import androidx.core.content.edit +import com.bnyro.clock.R +import com.bnyro.clock.domain.model.AnalogClockWidgetOptions + +fun Context.saveAnalogClockWidgetSettings( + appWidgetId: Int, options: AnalogClockWidgetOptions +) = widgetPreferences.edit { + putInt(PREF_CLOCK_HOUR_HAND + appWidgetId, options.hourHand) + putInt(PREF_CLOCK_MINUTE_HAND + appWidgetId, options.minuteHand) + putInt(PREF_CLOCK_SECOND_HAND + appWidgetId, options.secondHand) + putInt(PREF_CLOCK_DIAL + appWidgetId, options.dial) + putString(PREF_CLOCK_FACE_NAME + appWidgetId, options.clockFaceName) +} + +fun Context.loadAnalogClockWidgetSettings( + appWidgetId: Int +): AnalogClockWidgetOptions = with(widgetPreferences) { + val hourHand = getInt( + PREF_CLOCK_HOUR_HAND + appWidgetId, 0 + ) + + val minuteHand = getInt( + PREF_CLOCK_MINUTE_HAND + appWidgetId, 0 + ) + val secondHand = getInt( + PREF_CLOCK_SECOND_HAND + appWidgetId, 0 + ) + val dial = getInt( + PREF_CLOCK_DIAL + appWidgetId, 0 + ) + val clockFaceName = getString( + PREF_CLOCK_FACE_NAME + appWidgetId, "Default" + ) ?: "Default" + + return AnalogClockWidgetOptions( + hourHand = hourHand, + minuteHand = minuteHand, + secondHand = secondHand, + dial = dial, + clockFaceName = clockFaceName + ) +} + +fun Context.deleteAnalogClockWidgetPref(appWidgetId: Int) = + widgetPreferences.edit { + remove(PREF_CLOCK_HOUR_HAND + appWidgetId) + remove(PREF_CLOCK_MINUTE_HAND + appWidgetId) + remove(PREF_CLOCK_SECOND_HAND + appWidgetId) + remove(PREF_CLOCK_DIAL + appWidgetId) + } + +fun Context.updateAnalogClockWidget( + appWidgetId: Int, options: AnalogClockWidgetOptions +) { + val appWidgetManager = AppWidgetManager.getInstance(this) + val views = RemoteViews(packageName, R.layout.analog_clock) + views.applyAnalogClockWidgetOptions(options, this) + appWidgetManager.updateAppWidget(appWidgetId, views) +} + +fun RemoteViews.applyAnalogClockWidgetOptions( + options: AnalogClockWidgetOptions, context: Context +) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (options.dial != 0) { + setIcon( + R.id.analog_clock, "setDial", Icon.createWithResource(context, options.dial) + ) + } + if (options.hourHand != 0) { + setIcon( + R.id.analog_clock, "setHourHand", Icon.createWithResource(context, options.hourHand) + ) + } + if (options.minuteHand != 0) { + setIcon( + R.id.analog_clock, + "setMinuteHand", + Icon.createWithResource(context, options.minuteHand) + ) + } + if (options.secondHand != 0) { + setIcon( + R.id.analog_clock, + "setSecondHand", + Icon.createWithResource(context, options.secondHand) + ) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/bnyro/clock/util/widgets/WidgetPreferences.kt b/app/src/main/java/com/bnyro/clock/util/widgets/WidgetPreferences.kt index 951c9abf..036eb25c 100644 --- a/app/src/main/java/com/bnyro/clock/util/widgets/WidgetPreferences.kt +++ b/app/src/main/java/com/bnyro/clock/util/widgets/WidgetPreferences.kt @@ -14,4 +14,11 @@ internal const val PREF_SHOW_BACKGROUND = "showBackground:" internal const val PREF_DATE_TEXT_SIZE = "dateTextSize:" internal const val PREF_TIME_TEXT_SIZE = "timeTextSize:" internal const val PREF_TIME_ZONE = "timeZone:" -internal const val PREF_TIME_ZONE_NAME = "timeZoneName:" \ No newline at end of file +internal const val PREF_TIME_ZONE_NAME = "timeZoneName:" + +// Analog Clock widget +internal const val PREF_CLOCK_HOUR_HAND = "analogClockHour:" +internal const val PREF_CLOCK_MINUTE_HAND = "analogClockMinute:" +internal const val PREF_CLOCK_SECOND_HAND = "analogClockSecond:" +internal const val PREF_CLOCK_DIAL = "analogClockDial:" +internal const val PREF_CLOCK_FACE_NAME = "analogClockFaceName:" \ No newline at end of file diff --git a/app/src/main/res/drawable/analog_clock_black_dial.xml b/app/src/main/res/drawable/analog_clock_black_dial.xml new file mode 100644 index 00000000..be0328e2 --- /dev/null +++ b/app/src/main/res/drawable/analog_clock_black_dial.xml @@ -0,0 +1,453 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt" + android:width="300dp" + android:height="300dp" + android:viewportWidth="79.375" + android:viewportHeight="79.375"> + <path + android:pathData="m75.648,39.688c0,19.86 -16.1,35.961 -35.961,35.961 -19.861,0 -35.961,-16.1 -35.961,-35.961 0,-19.861 16.1,-35.961 35.961,-35.961 19.861,0 35.961,16.1 35.961,35.961z" + android:strokeWidth="0.206" + android:strokeColor="#00000000"> + <aapt:attr name="android:fillColor"> + <gradient + android:startX="44.891" + android:startY="14.928" + android:endX="75.752" + android:endY="39.687" + android:type="linear"> + <item + android:offset="0" + android:color="#FFF5F5F5" /> + <item + android:offset="1" + android:color="#FF9293A0" /> + </gradient> + </aapt:attr> + </path> + <path + android:pathData="m7.019,39.452c0,-17.912 14.521,-32.434 32.434,-32.434 17.913,0 32.434,14.521 32.434,32.434 0,17.913 -14.521,32.434 -32.434,32.434 -17.913,0 -32.434,-14.521 -32.434,-32.434z" + android:strokeWidth="0.186" + android:strokeColor="#e6e6e6"> + <aapt:attr name="android:fillColor"> + <gradient + android:startX="34.76" + android:startY="61.783" + android:endX="6.926" + android:endY="39.452" + android:type="linear"> + <item + android:offset="0" + android:color="#FFF5F5F5" /> + <item + android:offset="1" + android:color="#FFCCCCCC" /> + </gradient> + </aapt:attr> + </path> + <path + android:pathData="m39.688,7.75a31.937,31.937 0,0 0,-31.938 31.938,31.937 31.937,0 0,0 31.938,31.937 31.937,31.937 0,0 0,31.937 -31.937,31.937 31.937,0 0,0 -31.937,-31.938z" + android:strokeLineJoin="miter" + android:strokeWidth="1.533" + android:fillColor="#1a1a1a" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m64.304,40.777q0,-0.273 -0.035,-0.461 -0.024,-0.188 -0.105,-0.308 -0.221,-0.282 -0.628,-0.444 0.384,-0.128 0.558,-0.342 0.128,-0.137 0.163,-0.325 0.046,-0.188 0.046,-0.444 0,-1.017 -1.034,-1.307 -0.302,-0.077 -0.837,-0.12 -0.535,-0.043 -1.337,-0.043l-1.395,0q-1.406,0 -2.057,0.273 -0.895,0.376 -0.895,1.324 0,0.077 0.105,0.077l0.721,0q0.105,0 0.105,-0.077 0.024,-0.589 0.697,-0.777 0.453,-0.111 1.511,-0.111l1.058,0q0.593,0 0.988,0.017 0.407,0.009 0.604,0.051 0.418,0.068 0.639,0.248 0.232,0.171 0.232,0.444 0,0.871 -1.929,0.871 -0.174,0 -0.407,-0.009 -0.221,-0.009 -0.535,-0.025 -0.302,-0.017 -0.5,-0.025 -0.198,-0.009 -0.302,-0.009 -0.07,0 -0.07,0.085l0,0.538q0,0.085 0.07,0.085 0.128,0 0.337,-0.009 0.221,-0.017 0.535,-0.034 0.337,-0.017 0.593,-0.025 0.256,-0.017 0.43,-0.017 1.778,0 1.778,0.897 0,0.666 -0.779,0.829 -0.418,0.094 -1.662,0.094l-1.174,0q-1.069,0 -1.453,-0.111 -0.337,-0.068 -0.5,-0.265 -0.151,-0.205 -0.163,-0.487 0,-0.077 -0.105,-0.077l-0.721,0q-0.105,0 -0.105,0.077 0.023,1.008 0.895,1.316 0.581,0.239 2.069,0.239l1.383,0q1.604,0 2.243,-0.222 0.965,-0.316 0.965,-1.393z" + android:strokeWidth="0.249" + android:fillColor="#7ccce8" + android:strokeColor="#00000000" /> + <path + android:pathData="m36.878,20.505q0.105,0 0.105,-0.077l0,-5.246q0,-0.085 -0.105,-0.085l-1.069,0q-0.035,0 -0.082,0.034l-1.999,1.572l0,-0.009q-0.035,0.025 -0.035,0.06 0,0.051 0.035,0.06l0,-0.009l0.488,0.376q0.024,0.017 0.058,0.017 0.046,0 0.093,-0.017l1.674,-1.264l0,4.511q0,0.077 0.105,0.077z" + android:strokeWidth="0.249" + android:fillColor="#7ccce8" + android:strokeColor="#00000000" /> + <path + android:pathData="m45.682,16.917q0,-0.607 -0.256,-0.991 -0.256,-0.385 -0.755,-0.581 -0.349,-0.145 -0.965,-0.205 -0.616,-0.068 -1.488,-0.068l-0.848,0q-1.592,0 -2.278,0.214 -1.209,0.333 -1.209,1.324 0,0.077 0.093,0.077l0.79,0q0.116,0 0.116,-0.077 0.012,-0.282 0.209,-0.478 0.209,-0.196 0.639,-0.265 0.232,-0.043 0.628,-0.068 0.395,-0.025 1.011,-0.025l0.848,0q1.337,0 1.79,0.128 0.372,0.111 0.558,0.376 0.186,0.256 0.186,0.641 0,0.589 -0.674,0.803 -0.535,0.188 -1.639,0.188 -0.128,0 -0.314,0 -0.174,0 -0.43,-0.009 -0.244,-0.009 -0.418,-0.009 -0.174,0 -0.314,0 -1.43,0 -2.15,0.265 -0.988,0.393 -0.988,1.375l0,0.897q0,0.077 0.082,0.077l7.636,0q0.105,0 0.105,-0.077l0,-0.547q0,-0.077 -0.105,-0.077l-6.776,0l0,-0.282q0,-0.299 0.151,-0.487 0.151,-0.188 0.43,-0.308l0,0.009q0.477,-0.162 1.569,-0.162 0.093,0 0.221,0 0.128,0 0.291,0.009l0.163,0q0.024,0 0.058,0.009 0.035,0 0.081,0 0.046,0 0.07,0.009 0.035,0 0.082,0l0.139,0 0.558,0q0.732,0 1.255,-0.068 0.535,-0.068 0.895,-0.222l-0.012,0q0.488,-0.196 0.721,-0.547 0.244,-0.359 0.244,-0.846z" + android:strokeWidth="0.249" + android:fillColor="#7ccce8" + android:strokeColor="#00000000" /> + <path + android:pathData="m43.611,62.843q0,-1.034 -0.663,-1.435 -0.546,-0.367 -2.022,-0.367l-2.522,0q-0.674,0 -1.034,0.077 -0.198,0.034 -0.36,0.102 -0.151,0.06 -0.279,0.145l0,-0.607q0,-0.384 0.093,-0.615 0.093,-0.231 0.291,-0.367 0.384,-0.231 1.371,-0.231l2.232,0q0.43,0 0.755,0.043 0.325,0.034 0.535,0.102 0.314,0.094 0.465,0.282 0.151,0.188 0.151,0.436 0,0.077 0.105,0.077l0.721,0q0.105,0 0.105,-0.077 0,-0.965 -1.058,-1.316 -0.744,-0.248 -2.139,-0.248l-1.523,0q-0.779,0 -1.348,0.094 -0.569,0.094 -0.907,0.265 -0.814,0.461 -0.814,1.563l0,1.598q0,1.102 0.628,1.538 0.546,0.402 2.057,0.402l2.476,0q0.628,0 1.092,-0.06 0.465,-0.06 0.767,-0.205l0.012,-0.017q0.814,-0.359 0.814,-1.179zM42.623,62.792q0,0.812 -1.499,0.812l-2.964,0q-1.43,0 -1.43,-0.812l0,-0.231q0,-0.812 1.453,-0.812l2.964,0q1.476,0 1.476,0.812z" + android:strokeWidth="0.249" + android:fillColor="#7ccce8" + android:strokeColor="#00000000" /> + <path + android:pathData="m22.917,40.499l0,-1.589q0,-1.119 -0.604,-1.538 -0.581,-0.41 -2.08,-0.41l-2.464,0q-1.255,0 -1.883,0.273l-0.023,0.017q-0.79,0.342 -0.79,1.179 0,0.504 0.163,0.863 0.163,0.35 0.511,0.572 0.291,0.171 0.79,0.265 0.5,0.094 1.232,0.094l2.522,0q0.651,0 1,-0.068 0.418,-0.077 0.674,-0.256l0,0.607q0,0.718 -0.395,0.974 -0.198,0.111 -0.535,0.179 -0.325,0.06 -0.848,0.06l-2.208,0q-0.872,0 -1.325,-0.154 -0.302,-0.094 -0.453,-0.273 -0.139,-0.188 -0.151,-0.436 0,-0.077 -0.093,-0.077l-0.744,0q-0.082,0 -0.082,0.077 0,0.957 1.069,1.316 0.663,0.239 2.139,0.239l1.499,0q1.615,0 2.255,-0.359 0.825,-0.453 0.825,-1.555zM21.964,38.705q0,0.82 -1.465,0.82l-2.964,0q-1.476,0 -1.476,-0.82l0,-0.231q0,-0.812 1.488,-0.812l2.964,0q1.453,0 1.453,0.812z" + android:strokeWidth="0.249" + android:fillColor="#7ccce8" + android:strokeColor="#00000000" /> + <path + android:pathData="m39.688,9.038c-16.921,0 -30.65,13.729 -30.65,30.65 -0,16.921 13.729,30.65 30.65,30.65 16.921,-0 30.65,-13.729 30.65,-30.65 0,-16.921 -13.729,-30.65 -30.65,-30.65zM39.688,10.187c16.299,0 29.5,13.201 29.5,29.5 0,16.299 -13.201,29.501 -29.5,29.501 -16.299,-0 -29.501,-13.201 -29.501,-29.501 0,-16.299 13.201,-29.5 29.501,-29.5z" + android:strokeLineJoin="miter" + android:strokeWidth="1.15" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:fillType="nonZero" + android:strokeLineCap="butt" /> + <path + android:pathData="m36.967,11.151l0.265,2.518c0.016,0.153 -0.093,0.289 -0.247,0.305 -0.153,0.016 -0.289,-0.094 -0.305,-0.247l-0.265,-2.518c-0.016,-0.153 0.093,-0.289 0.247,-0.305 0.153,-0.016 0.289,0.094 0.305,0.247z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m42.408,68.224l-0.265,-2.518c-0.016,-0.153 0.093,-0.289 0.247,-0.305 0.153,-0.016 0.289,0.094 0.305,0.247l0.265,2.518c0.016,0.153 -0.093,0.289 -0.247,0.305 -0.153,0.016 -0.289,-0.094 -0.305,-0.247z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m33.999,11.592l0.526,2.477c0.032,0.15 -0.063,0.297 -0.214,0.329 -0.15,0.032 -0.297,-0.063 -0.329,-0.214l-0.526,-2.477c-0.032,-0.15 0.063,-0.297 0.214,-0.329 0.15,-0.032 0.297,0.063 0.329,0.214z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m45.376,67.783l-0.526,-2.477c-0.032,-0.15 0.063,-0.297 0.214,-0.329 0.15,-0.032 0.297,0.063 0.329,0.214l0.526,2.477c0.032,0.15 -0.063,0.297 -0.214,0.329 -0.15,0.032 -0.297,-0.063 -0.329,-0.214z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m31.094,12.341l0.782,2.408c0.047,0.146 -0.031,0.302 -0.178,0.35 -0.146,0.047 -0.302,-0.032 -0.349,-0.178l-0.782,-2.408c-0.047,-0.146 0.031,-0.302 0.178,-0.35 0.146,-0.047 0.302,0.032 0.349,0.178z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m48.282,67.035l-0.782,-2.408c-0.047,-0.146 0.031,-0.302 0.178,-0.35 0.146,-0.047 0.302,0.032 0.349,0.178l0.782,2.408c0.047,0.146 -0.031,0.302 -0.178,0.35 -0.146,0.047 -0.302,-0.032 -0.349,-0.178z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m28.282,13.389l1.03,2.313c0.063,0.14 0,0.304 -0.141,0.366 -0.14,0.062 -0.304,-0 -0.366,-0.141l-1.03,-2.313c-0.063,-0.14 -0,-0.303 0.141,-0.366 0.14,-0.062 0.304,0 0.366,0.141z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m51.093,65.987l-1.03,-2.313c-0.063,-0.14 -0,-0.304 0.141,-0.366 0.14,-0.062 0.304,0 0.366,0.141l1.03,2.313c0.063,0.14 0,0.303 -0.141,0.366 -0.14,0.062 -0.304,-0 -0.366,-0.141z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m23.064,16.335l1.488,2.048c0.09,0.124 0.063,0.297 -0.061,0.387 -0.124,0.09 -0.297,0.063 -0.387,-0.061l-1.488,-2.048c-0.09,-0.124 -0.063,-0.297 0.061,-0.387 0.124,-0.09 0.297,-0.063 0.387,0.061z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m56.312,63.04l-1.488,-2.048c-0.09,-0.124 -0.063,-0.297 0.061,-0.387 0.124,-0.09 0.297,-0.063 0.387,0.061l1.488,2.048c0.09,0.124 0.063,0.297 -0.061,0.387 -0.124,0.09 -0.297,0.063 -0.387,-0.061z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m20.714,18.2l1.694,1.882c0.103,0.114 0.094,0.289 -0.02,0.392 -0.114,0.103 -0.289,0.094 -0.392,-0.021l-1.694,-1.882c-0.103,-0.114 -0.094,-0.289 0.02,-0.392 0.114,-0.103 0.289,-0.094 0.392,0.021z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m58.662,61.175l-1.694,-1.882c-0.103,-0.114 -0.094,-0.289 0.02,-0.392 0.114,-0.103 0.289,-0.094 0.392,0.021l1.694,1.882c0.103,0.114 0.094,0.289 -0.02,0.392 -0.114,0.103 -0.289,0.094 -0.392,-0.021z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m18.572,20.301l1.882,1.694c0.114,0.103 0.124,0.277 0.021,0.392 -0.103,0.114 -0.277,0.123 -0.392,0.02l-1.882,-1.694c-0.114,-0.103 -0.124,-0.277 -0.021,-0.392 0.103,-0.114 0.277,-0.123 0.392,-0.02z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m60.804,59.074l-1.882,-1.694c-0.114,-0.103 -0.124,-0.277 -0.021,-0.392 0.103,-0.114 0.277,-0.123 0.392,-0.02l1.882,1.694c0.114,0.103 0.124,0.277 0.021,0.392 -0.103,0.114 -0.277,0.123 -0.392,0.02z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m16.661,22.615l2.048,1.488c0.124,0.09 0.152,0.263 0.061,0.387 -0.09,0.124 -0.263,0.152 -0.387,0.061l-2.048,-1.488c-0.124,-0.09 -0.152,-0.263 -0.061,-0.387 0.09,-0.124 0.263,-0.152 0.387,-0.061z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m62.715,56.76l-2.048,-1.488c-0.124,-0.09 -0.152,-0.263 -0.061,-0.387 0.09,-0.124 0.263,-0.152 0.387,-0.061l2.048,1.488c0.124,0.09 0.152,0.263 0.061,0.387 -0.09,0.124 -0.263,0.152 -0.387,0.061z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m13.614,27.775l2.313,1.03c0.14,0.063 0.203,0.225 0.141,0.366 -0.062,0.14 -0.226,0.203 -0.366,0.141l-2.313,-1.03c-0.14,-0.063 -0.203,-0.225 -0.141,-0.366 0.062,-0.14 0.226,-0.203 0.366,-0.141z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m65.761,51.6l-2.313,-1.03c-0.14,-0.063 -0.203,-0.225 -0.141,-0.366 0.062,-0.14 0.226,-0.203 0.366,-0.141l2.313,1.03c0.14,0.063 0.203,0.225 0.141,0.366 -0.062,0.14 -0.226,0.203 -0.366,0.141z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m12.512,30.566l2.408,0.782c0.146,0.047 0.226,0.203 0.178,0.349 -0.047,0.146 -0.203,0.226 -0.35,0.178l-2.408,-0.782c-0.146,-0.047 -0.226,-0.203 -0.178,-0.349 0.047,-0.146 0.203,-0.226 0.35,-0.178z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m66.863,48.809l-2.408,-0.782c-0.146,-0.047 -0.226,-0.203 -0.178,-0.349 0.047,-0.146 0.203,-0.226 0.35,-0.178l2.408,0.782c0.146,0.047 0.226,0.203 0.178,0.349 -0.047,0.146 -0.203,0.226 -0.35,0.178z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m11.707,33.457l2.477,0.526c0.15,0.032 0.246,0.178 0.214,0.329 -0.032,0.15 -0.179,0.246 -0.329,0.214l-2.477,-0.526c-0.15,-0.032 -0.246,-0.178 -0.214,-0.329 0.032,-0.15 0.179,-0.246 0.329,-0.214z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m67.668,45.918l-2.477,-0.526c-0.15,-0.032 -0.246,-0.178 -0.214,-0.329 0.032,-0.15 0.179,-0.246 0.329,-0.214l2.477,0.526c0.15,0.032 0.246,0.178 0.214,0.329 -0.032,0.15 -0.179,0.246 -0.329,0.214z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m11.209,36.416l2.518,0.265c0.153,0.016 0.263,0.151 0.247,0.305 -0.016,0.153 -0.152,0.263 -0.305,0.247l-2.518,-0.265c-0.153,-0.016 -0.263,-0.151 -0.247,-0.305 0.016,-0.153 0.152,-0.263 0.305,-0.247z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m68.166,42.96l-2.518,-0.265c-0.153,-0.016 -0.263,-0.151 -0.247,-0.305 0.016,-0.153 0.152,-0.263 0.305,-0.247l2.518,0.265c0.153,0.016 0.263,0.151 0.247,0.305 -0.016,0.153 -0.152,0.263 -0.305,0.247z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m11.152,42.408l2.518,-0.265c0.153,-0.016 0.289,0.093 0.305,0.247 0.016,0.153 -0.094,0.289 -0.247,0.305l-2.518,0.265c-0.153,0.016 -0.289,-0.093 -0.305,-0.247 -0.016,-0.153 0.094,-0.289 0.247,-0.305z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m68.224,36.967l-2.518,0.265c-0.153,0.016 -0.289,-0.093 -0.305,-0.247 -0.016,-0.153 0.094,-0.289 0.247,-0.305l2.518,-0.265c0.153,-0.016 0.289,0.093 0.305,0.247 0.016,0.153 -0.094,0.289 -0.247,0.305z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m11.592,45.376l2.477,-0.526c0.15,-0.032 0.297,0.063 0.329,0.214 0.032,0.15 -0.063,0.297 -0.214,0.329l-2.477,0.526c-0.15,0.032 -0.297,-0.063 -0.329,-0.214 -0.032,-0.15 0.063,-0.297 0.214,-0.329z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m67.783,33.999l-2.477,0.526c-0.15,0.032 -0.297,-0.063 -0.329,-0.214 -0.032,-0.15 0.063,-0.297 0.214,-0.329l2.477,-0.526c0.15,-0.032 0.297,0.063 0.329,0.214 0.032,0.15 -0.063,0.297 -0.214,0.329z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m12.341,48.282l2.408,-0.782c0.146,-0.047 0.302,0.031 0.35,0.178 0.047,0.146 -0.032,0.302 -0.178,0.349l-2.408,0.782c-0.146,0.047 -0.302,-0.031 -0.35,-0.178 -0.047,-0.146 0.032,-0.302 0.178,-0.349z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m67.035,31.093l-2.408,0.782c-0.146,0.047 -0.302,-0.031 -0.35,-0.178 -0.047,-0.146 0.032,-0.302 0.178,-0.349l2.408,-0.782c0.146,-0.047 0.302,0.031 0.35,0.178 0.047,0.146 -0.032,0.302 -0.178,0.349z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m13.389,51.093l2.313,-1.03c0.14,-0.063 0.304,-0 0.366,0.141 0.062,0.14 -0,0.304 -0.141,0.366l-2.313,1.03c-0.14,0.063 -0.303,0 -0.366,-0.141 -0.062,-0.14 0,-0.304 0.141,-0.366z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m65.987,28.282l-2.313,1.03c-0.14,0.063 -0.304,0 -0.366,-0.141 -0.062,-0.14 0,-0.304 0.141,-0.366l2.313,-1.03c0.14,-0.063 0.303,-0 0.366,0.141 0.062,0.14 -0,0.304 -0.141,0.366z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m16.335,56.312l2.048,-1.488c0.124,-0.09 0.297,-0.063 0.387,0.061 0.09,0.124 0.063,0.297 -0.061,0.387l-2.048,1.488c-0.124,0.09 -0.297,0.063 -0.387,-0.061 -0.09,-0.124 -0.063,-0.297 0.061,-0.387z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m63.041,23.063l-2.048,1.488c-0.124,0.09 -0.297,0.063 -0.387,-0.061 -0.09,-0.124 -0.063,-0.297 0.061,-0.387l2.048,-1.488c0.124,-0.09 0.297,-0.063 0.387,0.061 0.09,0.124 0.063,0.297 -0.061,0.387z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m18.2,58.662l1.882,-1.694c0.114,-0.103 0.289,-0.094 0.392,0.02 0.103,0.114 0.094,0.289 -0.021,0.392l-1.882,1.694c-0.114,0.103 -0.289,0.094 -0.392,-0.02 -0.103,-0.114 -0.094,-0.289 0.021,-0.392z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m61.175,20.713l-1.882,1.694c-0.114,0.103 -0.289,0.094 -0.392,-0.02 -0.103,-0.114 -0.094,-0.289 0.021,-0.392l1.882,-1.694c0.114,-0.103 0.289,-0.094 0.392,0.02 0.103,0.114 0.094,0.289 -0.021,0.392z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m20.302,60.804l1.694,-1.882c0.103,-0.114 0.277,-0.124 0.392,-0.021 0.114,0.103 0.123,0.277 0.02,0.392l-1.694,1.882c-0.103,0.114 -0.277,0.124 -0.392,0.021 -0.114,-0.103 -0.123,-0.277 -0.02,-0.392z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m59.074,18.571l-1.694,1.882c-0.103,0.114 -0.277,0.124 -0.392,0.021 -0.114,-0.103 -0.123,-0.277 -0.02,-0.392l1.694,-1.882c0.103,-0.114 0.277,-0.124 0.392,-0.021 0.114,0.103 0.123,0.277 0.02,0.392z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m22.615,62.715l1.488,-2.048c0.09,-0.124 0.263,-0.152 0.387,-0.061 0.124,0.09 0.152,0.263 0.061,0.387l-1.488,2.048c-0.09,0.124 -0.263,0.152 -0.387,0.061 -0.124,-0.09 -0.152,-0.263 -0.061,-0.387z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m56.76,16.66l-1.488,2.048c-0.09,0.124 -0.263,0.152 -0.387,0.061 -0.124,-0.09 -0.152,-0.263 -0.061,-0.387l1.488,-2.048c0.09,-0.124 0.263,-0.152 0.387,-0.061 0.124,0.09 0.152,0.263 0.061,0.387z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m27.776,65.761l1.03,-2.313c0.063,-0.14 0.225,-0.203 0.366,-0.141 0.14,0.062 0.203,0.226 0.141,0.366l-1.03,2.313c-0.063,0.14 -0.225,0.203 -0.366,0.141 -0.14,-0.062 -0.203,-0.226 -0.141,-0.366z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m51.6,13.614l-1.03,2.313c-0.063,0.14 -0.225,0.203 -0.366,0.141 -0.14,-0.062 -0.203,-0.226 -0.141,-0.366l1.03,-2.313c0.063,-0.14 0.225,-0.203 0.366,-0.141 0.14,0.062 0.203,0.226 0.141,0.366z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m30.566,66.863l0.782,-2.408c0.047,-0.146 0.203,-0.226 0.349,-0.178 0.146,0.047 0.226,0.203 0.178,0.35l-0.782,2.408c-0.047,0.146 -0.203,0.226 -0.349,0.178 -0.146,-0.047 -0.226,-0.203 -0.178,-0.35z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m48.809,12.512l-0.782,2.408c-0.047,0.146 -0.203,0.226 -0.349,0.178 -0.146,-0.047 -0.226,-0.203 -0.178,-0.35l0.782,-2.408c0.047,-0.146 0.203,-0.226 0.349,-0.178 0.146,0.047 0.226,0.203 0.178,0.35z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m33.457,67.668l0.526,-2.477c0.032,-0.15 0.178,-0.246 0.329,-0.214 0.15,0.032 0.246,0.179 0.214,0.329l-0.526,2.477c-0.032,0.15 -0.178,0.246 -0.329,0.214 -0.15,-0.032 -0.246,-0.179 -0.214,-0.329z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m45.919,11.707l-0.526,2.477c-0.032,0.15 -0.178,0.246 -0.329,0.214 -0.15,-0.032 -0.246,-0.179 -0.214,-0.329l0.526,-2.477c0.032,-0.15 0.178,-0.246 0.329,-0.214 0.15,0.032 0.246,0.179 0.214,0.329z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m36.416,68.166l0.265,-2.518c0.016,-0.153 0.151,-0.263 0.305,-0.247 0.153,0.016 0.263,0.152 0.247,0.305l-0.265,2.518c-0.016,0.153 -0.151,0.263 -0.305,0.247 -0.153,-0.016 -0.263,-0.152 -0.247,-0.305z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m42.96,11.209l-0.265,2.518c-0.016,0.153 -0.151,0.263 -0.305,0.247 -0.153,-0.016 -0.263,-0.152 -0.247,-0.305l0.265,-2.518c0.016,-0.153 0.151,-0.263 0.305,-0.247 0.153,0.016 0.263,0.152 0.247,0.305z" + android:strokeLineJoin="miter" + android:strokeWidth="0.511" + android:fillColor="#63737c" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> + <path + android:pathData="m36.99,55.433q-0.126,0.108 -0.29,0.108 -0.126,0 -0.319,-0.097 -0.122,-0.061 -0.296,-0.178 -0.144,-0.097 -0.154,-0.097 -0.01,0 -0.091,0.007 -0.082,0.01 -0.093,0.01 -0.343,0 -0.584,-0.213 -0.242,-0.215 -0.242,-0.529 0,-0.33 0.27,-0.542 0.254,-0.2 0.603,-0.2 0.347,0 0.593,0.195 0.26,0.206 0.26,0.531 0,0.186 -0.093,0.349 -0.11,0.191 -0.321,0.297 0.451,0.377 0.759,0.36zM36.377,54.474q0,-0.238 -0.148,-0.416 -0.168,-0.204 -0.455,-0.204 -0.262,0 -0.428,0.163 -0.158,0.156 -0.158,0.393 0,0.239 0.15,0.419 0.17,0.204 0.455,0.204 0.262,0 0.426,-0.161 0.158,-0.158 0.158,-0.399z" + android:strokeWidth="0.049" + android:fillColor="#fecb6d" + android:strokeColor="#00000000" /> + <path + android:pathData="m38.426,55.151l-0.357,0q0.014,-0.072 0,-0.134 -0.055,0.076 -0.203,0.126 -0.132,0.043 -0.254,0.043 -0.189,0 -0.349,-0.095 -0.195,-0.117 -0.195,-0.316l0,-0.891q0,-0.034 -0.034,-0.085 -0.034,-0.054 -0.067,-0.061l0.442,0q-0.034,0.019 -0.063,0.057 -0.038,0.048 -0.038,0.095l0,0.811q0,0.148 0.108,0.241 0.108,0.091 0.268,0.091 0.11,0 0.233,-0.06 0.158,-0.076 0.158,-0.199l0,-0.883q0,-0.045 -0.038,-0.093 -0.03,-0.041 -0.063,-0.061l0.442,0q-0.037,0 -0.071,0.065 -0.03,0.057 -0.03,0.097l0,1.097q0,0.043 0.033,0.087 0.034,0.045 0.077,0.067z" + android:strokeWidth="0.049" + android:fillColor="#fecb6d" + android:strokeColor="#00000000" /> + <path + android:pathData="m40.229,55.149l-0.481,0q0.083,-0.039 0.083,-0.085 0,-0.016 -0.065,-0.174 -0.065,-0.16 -0.118,-0.269l-0.584,0q-0.164,0.425 -0.164,0.431 0,0.061 0.083,0.098l-0.424,0q0.033,-0.016 0.097,-0.093 0.067,-0.078 0.083,-0.121 0.051,-0.121 0.296,-0.67 0.179,-0.397 0.179,-0.442 0,-0.048 -0.075,-0.087l0.377,0q0.083,0.171 0.256,0.583 0.168,0.397 0.246,0.551 0.128,0.251 0.211,0.278zM39.582,54.459 L39.356,53.921 39.123,54.459z" + android:strokeWidth="0.049" + android:fillColor="#fecb6d" + android:strokeColor="#00000000" /> + <path + android:pathData="m41.785,55.151l-0.272,0q-0.13,0 -0.41,-0.34 -0.209,-0.252 -0.286,-0.393 0.175,-0.028 0.278,-0.098 0.118,-0.082 0.118,-0.208 0,-0.121 -0.099,-0.186 -0.083,-0.056 -0.197,-0.056 -0.099,0 -0.166,0.024l0,1.102q0,0.043 0.034,0.087 0.033,0.043 0.069,0.065l-0.444,0q0.029,-0.007 0.065,-0.06 0.037,-0.054 0.037,-0.085l0,-1.112q0,-0.046 -0.038,-0.098 -0.03,-0.041 -0.061,-0.057l0.639,0q0.15,0 0.272,0.095 0.13,0.104 0.13,0.251 0,0.252 -0.369,0.384 0.154,0.176 0.306,0.351 0.199,0.212 0.396,0.334z" + android:strokeWidth="0.049" + android:fillColor="#fecb6d" + android:strokeColor="#00000000" /> + <path + android:pathData="m42.995,53.72 l-0.077,0.26q-0.011,-0.019 -0.065,-0.05 -0.053,-0.034 -0.075,-0.035l-0.28,0l0,1.086q0,0.031 0.038,0.089 0.041,0.063 0.082,0.08l-0.461,0q0.03,-0.016 0.065,-0.061 0.037,-0.052 0.037,-0.093l0,-1.099l-0.272,0q-0.037,0 -0.118,0.034 -0.065,0.028 -0.097,0.05l0.075,-0.26q0.055,0.024 0.077,0.024l1.011,0q0.014,0 0.03,-0.007 0.016,-0.009 0.03,-0.016z" + android:strokeWidth="0.049" + android:fillColor="#fecb6d" + android:strokeColor="#00000000" /> + <path + android:pathData="m44.455,54.884 l-0.13,0.267l-1.244,0l0.848,-1.232 -0.42,-0.022q-0.095,0 -0.134,0.009 -0.059,0.015 -0.201,0.082l0.122,-0.241l1.029,0l-0.838,1.223q0.325,0.031 0.522,0.031 0.126,0 0.229,-0.03 0.087,-0.024 0.217,-0.087z" + android:strokeWidth="0.049" + android:fillColor="#fecb6d" + android:strokeColor="#00000000" /> +</vector> diff --git a/app/src/main/res/drawable/analog_clock_black_hour_hand.xml b/app/src/main/res/drawable/analog_clock_black_hour_hand.xml new file mode 100644 index 00000000..1fbfc469 --- /dev/null +++ b/app/src/main/res/drawable/analog_clock_black_hour_hand.xml @@ -0,0 +1,21 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="79.375" + android:viewportHeight="79.375"> + <path + android:pathData="m37.982,39.631c0.002,1.02 0.803,1.709 1.75,1.742 0.947,0.033 1.648,-0.84 1.677,-1.669 0.021,-0.61 -0.344,-1.371 -0.933,-1.627 0,0 0.677,-4.408 -0.834,-14.225 -1.301,10.022 -0.566,14.176 -0.566,14.176 -0.605,0.214 -1.059,0.87 -1.094,1.603z" + android:strokeLineJoin="round" + android:strokeWidth="0.192" + android:fillColor="#1d1d1b" + android:strokeColor="#63737c" + android:strokeLineCap="square" /> + <path + android:pathData="m40.377,36.111c0.003,0.941 -1.2,1.132 -1.255,0.057 -0.117,-3.99 -0.035,-5.699 0.54,-8.914 0.675,3.134 0.759,4.737 0.715,8.857z" + android:strokeLineJoin="miter" + android:strokeWidth="0.044" + android:fillColor="#7ccce8" + android:strokeColor="#7ba6b9" + android:fillType="evenOdd" + android:strokeLineCap="butt" /> +</vector> diff --git a/app/src/main/res/drawable/analog_clock_black_minute_hand.xml b/app/src/main/res/drawable/analog_clock_black_minute_hand.xml new file mode 100644 index 00000000..04afb392 --- /dev/null +++ b/app/src/main/res/drawable/analog_clock_black_minute_hand.xml @@ -0,0 +1,21 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="79.375" + android:viewportHeight="79.375"> + <path + android:pathData="m37.848,39.513c0.014,0.892 0.756,1.798 1.77,1.748 1.156,-0.057 1.723,-0.928 1.709,-1.757 -0.011,-0.693 -0.321,-1.195 -0.908,-1.468 -0.033,0.575 1.224,-4.883 -0.756,-20.574 -1.792,15.736 -0.669,20.498 -0.669,20.498 -0.531,0.324 -1.027,0.625 -1.146,1.552z" + android:strokeLineJoin="round" + android:strokeWidth="0.192" + android:fillColor="#1d1d1b" + android:strokeColor="#63737c" + android:strokeLineCap="square" /> + <path + android:pathData="m40.342,36.405c-0.019,0.941 -1.208,1.07 -1.238,-0.006 -0.474,-4.646 -0.043,-11.576 0.556,-12.744 0.669,1.222 1.108,7.936 0.681,12.75z" + android:strokeLineJoin="miter" + android:strokeWidth="0.044" + android:fillColor="#7ccce8" + android:strokeColor="#7ba6b9" + android:fillType="evenOdd" + android:strokeLineCap="butt" /> +</vector> diff --git a/app/src/main/res/drawable/analog_clock_black_second_hand.xml b/app/src/main/res/drawable/analog_clock_black_second_hand.xml new file mode 100644 index 00000000..2e227fa3 --- /dev/null +++ b/app/src/main/res/drawable/analog_clock_black_second_hand.xml @@ -0,0 +1,18 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="79.375" + android:viewportHeight="79.375"> + <path + android:pathData="m39.734,10.046c-0.013,-0.012 -0.029,-0.02 -0.048,-0.023 -0.076,-0.013 -0.102,0.138 -0.123,0.251l-0.09,27.482a1.977,1.977 88.518,0 0,-1.22 0.604,1.977 1.977,88.518 0,0 0.072,2.796 1.977,1.977 88.518,0 0,1.048 0.516l-0.554,5.349c0.01,0.158 0.736,0.247 0.888,0.273 0.158,-0.01 0.878,-0.118 0.867,-0.276l-0.537,-5.353a1.977,1.977 88.518,0 0,1.084 -0.582,1.977 1.977,88.518 0,0 -0.073,-2.795 1.977,1.977 88.518,0 0,-1.109 -0.525l-0.143,-27.486c-0.008,-0.118 -0.024,-0.194 -0.064,-0.23z" + android:strokeWidth="0.038" + android:fillColor="#00ffff" + android:fillType="nonZero" /> + <path + android:pathData="m40.132,40.177a0.637,0.637 45.173,0 1,-0.9 -0.012,0.637 0.637,45.173 0,1 0.012,-0.9 0.637,0.637 45.173,0 1,0.9 0.012,0.637 0.637,45.173 0,1 -0.012,0.9z" + android:strokeLineJoin="miter" + android:strokeWidth="0.044" + android:fillColor="#ffffff" + android:strokeColor="#00000000" + android:strokeLineCap="butt" /> +</vector> diff --git a/app/src/main/res/drawable/classic76_dial.xml b/app/src/main/res/drawable/classic76_dial.xml new file mode 100644 index 00000000..b0118549 --- /dev/null +++ b/app/src/main/res/drawable/classic76_dial.xml @@ -0,0 +1,17 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="M150.05,150m-135,0a135,135 0,1 1,270 0a135,135 0,1 1,-270 0" + android:strokeWidth="0" + android:fillColor="?attr/colorSurfaceContainer" /> + <path + android:pathData="m150.69,19.24l0,18.62m-65.46,-1.43 l9.31,16.13m-57.41,31.5 l16.13,9.31M19.29,149.36l18.62,0m-1.43,65.46 l16.13,-9.31m31.5,57.41 l9.31,-16.13m55.98,33.97l0,-18.62m65.46,1.43 l-9.31,-16.13m57.41,-31.5 l-16.13,-9.31m33.97,-55.98l-18.62,0m1.43,-65.46 l-16.13,9.31m-31.5,-57.41 l-9.31,16.13" + android:strokeLineJoin="bevel" + android:strokeWidth="4.5" + android:fillColor="?attr/colorPrimary" + android:strokeColor="?attr/colorPrimary" + android:strokeLineCap="butt" /> +</vector> diff --git a/app/src/main/res/drawable/classic76_hour_hand.xml b/app/src/main/res/drawable/classic76_hour_hand.xml new file mode 100644 index 00000000..78881d01 --- /dev/null +++ b/app/src/main/res/drawable/classic76_hour_hand.xml @@ -0,0 +1,15 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="m152.71,142.76 l-0.03,-2.28c0.55,-1.2 0.85,-2.61 0.97,-3.53 0.24,-11.1 0.95,-22.03 2.21,-33.13 0.17,-1.5 -1.11,-4.78 -3.01,-6.51l0.04,-4.69c0.02,-0.8 -0.63,-1.53 -1.36,-1.9l0.08,-17.59c-0.05,-0.45 -0.43,-0.75 -1,-0.8 -0.45,0.05 -0.88,0.33 -0.83,0.78l-0.08,17.59c-0.88,0.33 -1.48,1.08 -1.5,1.88l-0.04,4.69c-2.1,1.61 -3.43,5.07 -3.15,6.52 1.24,11.05 1.91,22.05 1.9,33.12 0,1.03 0.4,2.58 0.98,3.66l-0.1,2.18c-2.86,1.01 -4.96,3.64 -5.05,6.85 -0.12,4.01 3.22,7.29 7.2,7.18 4.11,-0.01 7.29,-3.22 7.28,-7.33 -0,-3.08 -1.91,-5.84 -4.77,-6.88zM152.88,98.56c1.15,1.13 1.81,2.88 1.68,3.81 -0.96,11.75 -1.57,23.58 -1.66,35.01 0.03,0.23 -0.05,0.58 -0.12,0.93zM149.65,96.18c-0.05,-0.45 0.37,-0.73 1.05,-0.8 0.45,-0.05 0.95,0.35 1,0.8l0.03,0.23c-0.35,-0.07 -0.7,-0.15 -0.93,-0.12 -0.35,-0.07 -0.68,0.08 -0.9,0.1l-0.03,-0.23zM149.57,97.56c0.33,-0.15 0.55,-0.18 0.9,-0.1 0.35,0.07 0.7,0.15 0.93,0.12l-0.18,34.95c0.05,0.45 -0.37,0.73 -0.93,0.9 -0.58,-0.05 -0.95,-0.35 -1,-0.8l0.18,-34.95zM147.77,137.38c-0.04,-11.53 -0.55,-23.23 -1.42,-35 -0.13,-1.13 0.6,-2.81 1.72,-3.96l-0.18,40.09c-0.05,-0.45 -0.2,-0.78 -0.13,-1.13z" + android:strokeAlpha="0.994628" + android:strokeLineJoin="round" + android:strokeWidth="0.5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorOutline" + android:fillType="nonZero" + android:strokeLineCap="round" /> +</vector> diff --git a/app/src/main/res/drawable/classic76_minute_hand.xml b/app/src/main/res/drawable/classic76_minute_hand.xml new file mode 100644 index 00000000..756b45d4 --- /dev/null +++ b/app/src/main/res/drawable/classic76_minute_hand.xml @@ -0,0 +1,15 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="m153.45,143.1 l-0.03,-80.22c0.06,-1.16 -0.64,-2.09 -1.73,-2.5l-0.01,-24.07c0.03,-0.58 -0.39,-1.09 -1.06,-0.99 -0.58,-0.03 -1.09,0.39 -0.99,1.06l0.01,24.07c-0.96,0.48 -1.64,1.38 -1.7,2.54l0.03,80.22c-2.6,1.06 -4.52,3.63 -4.43,6.71 0,4.01 3.21,7.22 7.22,7.22 4.01,-0 7.22,-3.21 7.22,-7.22 0.03,-2.98 -1.83,-5.58 -4.53,-6.8zM149.67,67.88c0.03,-0.58 0.42,-1.09 0.99,-1.06 0.58,0.03 1.09,0.42 1.06,0.99l-0.02,49.51c-0.03,0.58 -0.42,1.09 -0.99,1.06 -0.58,-0.03 -1.09,-0.42 -1.06,-0.99z" + android:strokeAlpha="0.989309" + android:strokeLineJoin="round" + android:strokeWidth="0.5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorOutline" + android:fillType="nonZero" + android:strokeLineCap="round" /> +</vector> diff --git a/app/src/main/res/drawable/classic76_second_hand.xml b/app/src/main/res/drawable/classic76_second_hand.xml new file mode 100644 index 00000000..a0a73a84 --- /dev/null +++ b/app/src/main/res/drawable/classic76_second_hand.xml @@ -0,0 +1,14 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="m158.46,150.1c0.07,-4.06 -3.05,-7.55 -7.03,-8.1L151.08,27.04c-0.05,-0.66 -0.15,-1 -0.46,-1.06 -0.32,-0.06 -0.43,0.58 -0.51,1.05l-0.62,114.95c-4.15,0.4 -7.38,3.9 -7.32,8.15 -0.07,4.06 3.08,7.39 6.87,8.07l-2.37,22.39c0.05,0.66 3.07,1.04 3.71,1.15 0.66,-0.05 3.67,-0.49 3.63,-1.15l-2.2,-22.39c3.73,-0.8 6.59,-4.04 6.63,-7.94z" + android:strokeLineJoin="round" + android:strokeWidth="0.5" + android:fillColor="?attr/colorSecondary" + android:strokeColor="?attr/colorSecondary" + android:fillType="nonZero" + android:strokeLineCap="round" /> +</vector> diff --git a/app/src/main/res/drawable/classic_clock_you_dial.xml b/app/src/main/res/drawable/classic_clock_you_dial.xml new file mode 100644 index 00000000..91bcd921 --- /dev/null +++ b/app/src/main/res/drawable/classic_clock_you_dial.xml @@ -0,0 +1,34 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="M150,150m-135,0a135,135 0,1 1,270 0a135,135 0,1 1,-270 0" + android:strokeWidth="1.84425" + android:fillColor="?attr/colorSurfaceContainer" /> + <path + android:pathData="m150.64,25.24v4.03m-13.04,-3.41 l0.42,4.01m-13.33,-2.03 l0.84,3.94m-13.47,-0.62 l1.24,3.83m-13.46,0.79 l1.64,3.68m-13.3,2.19 l2.01,3.49m-13,3.57 l2.37,3.26m-12.56,4.91 l2.7,2.99m-11.98,6.19 l2.99,2.7M49.44,76.15 L52.7,78.52m-10.43,8.55 l3.49,2.01m-9.48,9.59 l3.68,1.64m-8.42,10.53 l3.83,1.24m-7.28,11.35 l3.94,0.84m-6.05,12.05 l4.01,0.42m-4.76,12.62h4.03m-3.41,13.04 l4.01,-0.42m-2.03,13.33 l3.94,-0.84m-0.62,13.47 l3.83,-1.24m0.79,13.46 l3.68,-1.64m2.19,13.3 l3.49,-2.01m3.57,13 l3.26,-2.37m4.91,12.56 l2.99,-2.7m6.19,11.98 l2.7,-2.99m7.41,11.26 l2.37,-3.26m8.55,10.43 l2.01,-3.49m9.59,9.48 l1.64,-3.68m10.53,8.42 l1.24,-3.83m11.35,7.28 l0.84,-3.94m12.05,6.05 l0.42,-4.01m12.62,4.76v-4.03m13.04,3.41 l-0.42,-4.01m13.33,2.03 l-0.84,-3.94m13.47,0.62 l-1.24,-3.83m13.46,-0.79 l-1.64,-3.68m13.3,-2.19 l-2.01,-3.49m13,-3.57 l-2.37,-3.26m12.56,-4.91 l-2.7,-2.99m11.98,-6.19 l-2.99,-2.7m11.26,-7.41 l-3.26,-2.37m10.43,-8.55 l-3.49,-2.01m9.48,-9.59 l-3.68,-1.64m8.42,-10.53 l-3.83,-1.24m7.28,-11.35 l-3.94,-0.84m6.05,-12.05 l-4.01,-0.42m4.76,-12.62h-4.03m3.41,-13.04 l-4.01,0.42m2.03,-13.33 l-3.94,0.84m0.62,-13.47 l-3.83,1.24m-0.79,-13.46 l-3.68,1.64m-2.19,-13.3 l-3.49,2.01m-3.57,-13 l-3.26,2.37m-4.91,-12.56 l-2.99,2.7m-6.19,-11.98 l-2.7,2.99m-7.41,-11.26 l-2.37,3.26m-8.55,-10.43 l-2.01,3.49m-9.59,-9.48 l-1.64,3.68m-10.53,-8.42 l-1.24,3.83m-11.35,-7.28 l-0.84,3.94m-12.05,-6.05 l-0.42,4.01" + android:strokeLineJoin="round" + android:strokeWidth="2.3" + android:strokeColor="?attr/colorTertiary" + android:strokeLineCap="round" /> + <path + android:pathData="m150.64,25.24v14.03m-62.46,2.36 l7.02,12.15m-52.91,33.28 l12.15,7.02M25.24,149.36h14.03m2.36,62.46 l12.15,-7.02m33.28,52.91 l7.02,-12.15m55.28,29.18v-14.03m62.46,-2.36 l-7.02,-12.15m52.91,-33.28 l-12.15,-7.02m29.18,-55.28h-14.03m-2.36,-62.46 l-12.15,7.02m-33.28,-52.91 l-7.02,12.15" + android:strokeLineJoin="round" + android:strokeWidth="4.2" + android:strokeColor="?attr/colorPrimary" + android:strokeLineCap="round" /> + <path + android:fillColor="?attr/colorTertiary" + android:pathData="m122.89,201.51c-0.89,0.92 -1.63,1.27 -2.66,1.27 -1.99,0 -3.61,-1.66 -3.61,-3.67 0,-0.87 0.33,-1.8 0.89,-2.45 0.66,-0.77 1.59,-1.18 2.68,-1.18 1.25,0 2.1,0.41 2.82,1.35h2.23c-0.42,-0.93 -0.8,-1.44 -1.53,-2.04 -0.99,-0.8 -2.26,-1.24 -3.57,-1.24 -3.04,0 -5.53,2.49 -5.53,5.53 0,3.12 2.52,5.6 5.66,5.6 2.21,0 4.12,-1.22 4.96,-3.19zM126.31,204.51h1.94v-10.76h-1.94zM133.72,196.26c-2.34,0 -4.26,1.91 -4.26,4.22 0,2.33 1.92,4.22 4.28,4.22 2.34,0 4.29,-1.89 4.29,-4.16 0,-2.4 -1.88,-4.28 -4.31,-4.28zM133.73,198.03c1.3,0 2.34,1.09 2.34,2.45 0,1.35 -1.05,2.45 -2.33,2.45 -1.31,0 -2.34,-1.09 -2.34,-2.47 0,-1.32 1.05,-2.42 2.33,-2.42zM144.9,201.86c-0.48,0.74 -1.03,1.06 -1.83,1.06 -1.34,0 -2.34,-1.05 -2.34,-2.46 0,-1.43 0.95,-2.43 2.3,-2.43 0.87,0 1.48,0.36 1.88,1.11h2.18c-0.28,-0.82 -0.54,-1.24 -1.09,-1.75 -0.79,-0.73 -1.85,-1.14 -2.97,-1.14 -2.39,0 -4.25,1.85 -4.25,4.22 0,2.34 1.92,4.22 4.31,4.22 1.89,0 3.33,-1.03 4,-2.84zM148.29,204.51h1.94v-3.77l2.75,3.77h2.61l-3.35,-4.12 2.88,-3.94h-2.31l-2.58,3.8v-6.49h-1.94zM163.6,204.51h1.99v-3.97l3.54,-6.78h-2.15l-2.39,4.95 -2.37,-4.95h-2.15l3.54,6.78zM172.82,196.26c-2.34,0 -4.26,1.91 -4.26,4.22 0,2.33 1.92,4.22 4.28,4.22 2.34,0 4.29,-1.89 4.29,-4.16 0,-2.4 -1.88,-4.28 -4.31,-4.28zM172.83,198.03c1.3,0 2.34,1.09 2.34,2.45 0,1.35 -1.05,2.45 -2.33,2.45 -1.31,0 -2.34,-1.09 -2.34,-2.47 0,-1.32 1.05,-2.42 2.33,-2.42zM185.39,196.45h-1.94v3.8c0,1.08 -0.07,1.59 -0.31,1.94 -0.28,0.48 -0.82,0.74 -1.47,0.74 -0.49,0 -0.87,-0.16 -1.14,-0.51 -0.28,-0.35 -0.39,-0.93 -0.39,-2.02v-3.94h-1.94v4.32c0,1.37 0.16,2.08 0.61,2.74 0.54,0.77 1.4,1.19 2.46,1.19 0.98,0 1.57,-0.25 2.31,-0.96v0.77h1.79z" + android:strokeLineJoin="round" + android:strokeWidth="10.1894" + android:strokeLineCap="round" /> + <path + android:fillColor="?attr/colorPrimary" + android:pathData="m142.1,60.04h2.84L144.93,44.28h-4.82v2.67h1.98zM149.63,60.04h10.2v-2.67h-6.21l3.22,-2.92c2.3,-2.07 3.05,-3.39 3.05,-5.33 0,-2.92 -2.2,-5.12 -5.14,-5.12 -1.83,0 -3.5,0.87 -4.39,2.3 -0.6,0.94 -0.83,1.9 -0.83,3.41h2.79c0,-1.88 0.98,-3.11 2.45,-3.11 1.3,0 2.28,1.07 2.28,2.47 0,1.02 -0.51,1.94 -1.81,3.16l-5.61,5.31zM99.08,74.14h2.84L101.92,58.38h-4.82v2.67h1.98zM111.03,74.14h2.84L113.87,58.38h-4.82v2.67h1.98zM197.98,71.9h2.84L200.81,56.13L195.99,56.13v2.67h1.98zM231.4,108.8h10.2v-2.67h-6.21l3.22,-2.92c2.3,-2.07 3.05,-3.39 3.05,-5.33 0,-2.92 -2.2,-5.12 -5.14,-5.12 -1.83,0 -3.5,0.87 -4.39,2.3 -0.6,0.94 -0.83,1.9 -0.83,3.41h2.79c0,-1.88 0.98,-3.11 2.45,-3.11 1.3,0 2.28,1.07 2.28,2.47 0,1.02 -0.51,1.94 -1.81,3.16l-5.61,5.31zM230.29,200.62v2.3h6.81v2.37h2.84v-2.37h1.66v-2.54h-1.66v-10.86h-2.39zM237.09,200.38h-3.93l3.93,-6.08zM195.05,232.96 L197.57,233.64c0.7,-0.87 1.3,-1.19 2.2,-1.19 1.47,0 2.56,1.22 2.56,2.82 0,1.71 -1.07,2.9 -2.6,2.9 -1.37,0 -2.26,-0.85 -2.56,-2.39h-2.84c0.15,2.84 2.54,4.99 5.48,4.99 3.07,0 5.35,-2.37 5.35,-5.55 0,-3.09 -2.11,-5.38 -4.99,-5.38 -0.73,0 -1.19,0.11 -2.03,0.45l0.51,-2.9h4.99v-2.67h-7.13zM95.58,238.84h3.2l5.76,-13.1v-2.67h-9.28v2.67h6.29zM59.59,195.64c-0.73,0.41 -1.05,0.66 -1.37,1.09 -0.58,0.7 -0.9,1.73 -0.9,2.75 0,2.94 2.28,5.21 5.27,5.21 2.99,0 5.23,-2.24 5.23,-5.23 0,-1.13 -0.34,-2.13 -0.96,-2.86 -0.32,-0.36 -0.62,-0.6 -1.26,-0.96 0.92,-0.73 1.32,-1.66 1.32,-2.99 0,-2.45 -1.83,-4.29 -4.31,-4.29 -2.41,0 -4.33,1.92 -4.33,4.33 0,1.17 0.32,1.9 1.3,2.94zM62.64,190.97c0.87,0 1.58,0.75 1.58,1.71 0,0.96 -0.7,1.73 -1.6,1.73 -0.92,0 -1.62,-0.75 -1.62,-1.71 0,-0.98 0.7,-1.73 1.64,-1.73zM62.62,197.14c1.3,0 2.37,1.11 2.37,2.47 0,1.41 -1.02,2.47 -2.37,2.47 -1.39,0 -2.45,-1.09 -2.45,-2.5 0,-1.39 1.07,-2.45 2.45,-2.45zM62.58,111.27h2.84L65.42,95.51h-4.82v2.67h1.98zM80.48,100.5c0,-3.2 -2.07,-5.27 -5.27,-5.27 -3.24,0 -5.29,2.09 -5.29,5.4v5.38c0,1.51 0.3,2.58 1,3.54 0.98,1.3 2.5,2.01 4.42,2.01 1.81,0 3.22,-0.66 4.14,-1.92 0.7,-1 1,-2.05 1,-3.63zM72.76,100.63c0,-1.73 0.94,-2.79 2.47,-2.79 1.54,0 2.41,1 2.41,2.79v5.35c0,1.98 -0.79,2.97 -2.39,2.97 -1.62,0 -2.5,-1.07 -2.5,-3.03zM49.35,157.88 L53.47,151.7c1.13,-1.69 1.56,-2.88 1.56,-4.39 0,-3.14 -2.35,-5.46 -5.53,-5.46 -3.14,0 -5.35,2.35 -5.35,5.65 0,2.86 1.86,5.03 4.33,5.03 0.49,0 0.77,-0.06 1.28,-0.26l-3.8,5.61zM49.5,144.44c1.56,0 2.69,1.15 2.69,2.77 0,1.66 -1.07,2.79 -2.62,2.79 -1.49,0 -2.58,-1.17 -2.58,-2.79 0,-1.64 1.02,-2.77 2.52,-2.77zM248.2,150.29h0.47c1.9,0 3.09,1.05 3.09,2.65 0,1.51 -1.05,2.62 -2.47,2.62 -1.39,0 -2.37,-0.96 -2.56,-2.45L243.87,153.1c0.17,2.97 2.41,5.06 5.44,5.06 3.05,0 5.29,-2.24 5.29,-5.29 0,-1.98 -0.81,-3.33 -2.45,-4.07 0.92,-0.66 1.32,-1.49 1.32,-2.71 0,-2.43 -1.81,-4.25 -4.25,-4.25 -1.24,0 -2.37,0.49 -3.16,1.34 -0.66,0.73 -0.92,1.41 -1.02,2.69h2.88c0.13,-1 0.53,-1.43 1.32,-1.43 0.81,0 1.39,0.62 1.39,1.49 0,0.68 -0.32,1.17 -0.92,1.41 -0.36,0.15 -0.75,0.19 -1.51,0.21zM150.21,236.39 L146.1,242.57c-1.15,1.71 -1.56,2.88 -1.56,4.42 0,3.11 2.35,5.44 5.53,5.44 3.16,0 5.4,-2.35 5.4,-5.65 0,-2.9 -1.83,-4.99 -4.35,-4.99 -0.51,0 -0.79,0.04 -1.28,0.21l3.78,-5.61zM150.02,244.26c1.49,0 2.6,1.17 2.6,2.79 0,1.64 -1.05,2.77 -2.54,2.77 -1.58,0 -2.71,-1.15 -2.71,-2.77 0,-1.66 1.07,-2.79 2.65,-2.79z" + android:strokeLineJoin="round" + android:strokeWidth="8.4" + android:strokeLineCap="round" /> +</vector> diff --git a/app/src/main/res/drawable/classic_clock_you_hour_hand.xml b/app/src/main/res/drawable/classic_clock_you_hour_hand.xml new file mode 100644 index 00000000..0d02cf68 --- /dev/null +++ b/app/src/main/res/drawable/classic_clock_you_hour_hand.xml @@ -0,0 +1,11 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="m150.59,66.69c-3.12,0 -5.65,2.53 -5.65,5.65v74.44h11.3V72.34c-0,-3.12 -2.53,-5.65 -5.65,-5.65z" + android:strokeLineJoin="round" + android:fillColor="?attr/colorSecondary" + android:strokeLineCap="round" /> +</vector> diff --git a/app/src/main/res/drawable/classic_clock_you_minute_hand.xml b/app/src/main/res/drawable/classic_clock_you_minute_hand.xml new file mode 100644 index 00000000..1003aa51 --- /dev/null +++ b/app/src/main/res/drawable/classic_clock_you_minute_hand.xml @@ -0,0 +1,11 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="m150.44,43.43c-2.15,-0 -3.9,1.75 -3.9,3.9v97.15c-1.71,1.25 -2.82,3.27 -2.82,5.53 0,3.77 3.09,6.86 6.86,6.86 3.77,0 6.86,-3.09 6.86,-6.86 0,-2.38 -1.24,-4.5 -3.1,-5.73L154.34,47.33c0,-2.15 -1.75,-3.9 -3.9,-3.9zM150.58,146.94c1.71,0 3.06,1.35 3.06,3.06 0,1.71 -1.35,3.06 -3.06,3.06 -1.71,0 -3.06,-1.35 -3.06,-3.06 0,-1.71 1.35,-3.06 3.06,-3.06z" + android:strokeLineJoin="round" + android:fillColor="?attr/colorSecondary" + android:strokeLineCap="round" /> +</vector> diff --git a/app/src/main/res/drawable/minimalistic_bar_dial.xml b/app/src/main/res/drawable/minimalistic_bar_dial.xml new file mode 100644 index 00000000..b171f6a1 --- /dev/null +++ b/app/src/main/res/drawable/minimalistic_bar_dial.xml @@ -0,0 +1,74 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="M150,150m-135,0a135,135 0,1 1,270 0a135,135 0,1 1,-270 0" + android:strokeWidth="2" + android:fillColor="?attr/colorSurfaceContainer" /> + <path + android:pathData="m150.62,26.98l0,47.68" + android:strokeWidth="5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorPrimary" /> + <path + android:pathData="m90.05,43.27 l12.29,21.29" + android:strokeWidth="5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorPrimary" /> + <path + android:pathData="m45.28,87.66 l21.29,12.29" + android:strokeWidth="5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorPrimary" /> + <path + android:pathData="m28.56,150l47.68,0" + android:strokeWidth="5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorPrimary" /> + <path + android:pathData="m44.65,209.7 l21.29,-12.29" + android:strokeWidth="5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorPrimary" /> + <path + android:pathData="m89.76,254.98 l12.29,-21.29" + android:strokeWidth="5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorPrimary" /> + <path + android:pathData="m150.62,223.43l0,47.68" + android:strokeWidth="5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorPrimary" /> + <path + android:pathData="m199.72,234.21 l12.29,21.29" + android:strokeWidth="5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorPrimary" /> + <path + android:pathData="m235.17,197.66 l21.29,12.29" + android:strokeWidth="5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorPrimary" /> + <path + android:pathData="m225,150l47.68,0" + android:strokeWidth="5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorPrimary" /> + <path + android:pathData="m235.2,100.88 l21.29,-12.29" + android:strokeWidth="5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorPrimary" /> + <path + android:pathData="m199.6,64.86 l12.29,-21.29" + android:strokeWidth="5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorPrimary" /> + <path + android:pathData="m163.8,150a13.18,13.18 60.42,1 1,-26.37 0,13.18 13.18,60.42 1,1 26.37,0z" + android:fillColor="?attr/colorOutline" + android:strokeColor="#00000000" /> +</vector> diff --git a/app/src/main/res/drawable/minimalistic_bar_hour_hand.xml b/app/src/main/res/drawable/minimalistic_bar_hour_hand.xml new file mode 100644 index 00000000..86a989dd --- /dev/null +++ b/app/src/main/res/drawable/minimalistic_bar_hour_hand.xml @@ -0,0 +1,13 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="m150.62,106.33 l-5.12,8.94 0.17,36.4 10.33,-0.07 -0.17,-36.4z" + android:strokeLineJoin="miter" + android:strokeWidth="3" + android:fillColor="#00000000" + android:strokeColor="?attr/colorOutline" + android:strokeLineCap="butt" /> +</vector> diff --git a/app/src/main/res/drawable/minimalistic_bar_minute_hand.xml b/app/src/main/res/drawable/minimalistic_bar_minute_hand.xml new file mode 100644 index 00000000..c3c1bf44 --- /dev/null +++ b/app/src/main/res/drawable/minimalistic_bar_minute_hand.xml @@ -0,0 +1,13 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="m150.62,79.53 l-3.74,12.32 0.15,50.11 7.56,-0.11 -0.15,-50.11z" + android:strokeLineJoin="miter" + android:strokeWidth="1.5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorOutline" + android:strokeLineCap="butt" /> +</vector> diff --git a/app/src/main/res/drawable/minimalistic_circular_dial.xml b/app/src/main/res/drawable/minimalistic_circular_dial.xml new file mode 100644 index 00000000..febca96b --- /dev/null +++ b/app/src/main/res/drawable/minimalistic_circular_dial.xml @@ -0,0 +1,120 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="M150,149.99m-135,0a135,135 0,1 1,270 0a135,135 0,1 1,-270 0" + android:strokeWidth="1.84425" + android:fillColor="?attr/colorSurfaceContainer" /> + <path + android:pathData="M150.62,164.73l-5.76,-1.22l-4.65,-3.21l-3.21,-4.65l-1.11,-5.65l1.11,-5.76l3.21,-4.65l4.65,-3.21l5.76,-1.11l5.65,1.11l4.65,3.21l3.21,4.65l1.22,5.76l-1.22,5.65l-3.21,4.65l-4.65,3.21l-5.65,1.22" + android:strokeLineJoin="round" + android:strokeWidth="1" + android:fillColor="#00000000" + android:strokeColor="?attr/colorOnSecondaryContainer" + android:strokeLineCap="round" /> + <path + android:pathData="M150.62,155.53l-2.21,-0.55l-1.66,-1.22l-1.22,-1.66l-0.44,-2.1l0.44,-2.21l1.22,-1.77l1.66,-1.22l2.21,-0.33l2.1,0.33l1.66,1.22l1.33,1.77l0.44,2.21l-0.44,2.1l-1.33,1.66l-1.66,1.22l-2.1,0.55" + android:strokeLineJoin="round" + android:strokeWidth="1" + android:fillColor="#00000000" + android:strokeColor="?attr/colorOnSecondaryContainer" + android:strokeLineCap="round" /> + <path + android:pathData="M150.34,41.06m-7.92,0a7.92,7.92 0,1 1,15.83 0a7.92,7.92 0,1 1,-15.83 0" + android:strokeLineJoin="round" + android:strokeWidth="0.5" + android:fillColor="?attr/colorOnSecondaryContainer" + android:strokeColor="#00000000" + android:fillType="nonZero" + android:strokeLineCap="round" /> + <path + android:pathData="M96.08,55.5m-7.92,0a7.92,7.92 0,1 1,15.83 0a7.92,7.92 0,1 1,-15.83 0" + android:strokeLineJoin="round" + android:strokeWidth="0.5" + android:fillColor="?attr/colorOnSecondaryContainer" + android:strokeColor="#00000000" + android:fillType="nonZero" + android:strokeLineCap="round" /> + <path + android:pathData="M59.87,94.96m-7.92,0a7.92,7.92 0,1 1,15.83 0a7.92,7.92 0,1 1,-15.83 0" + android:strokeLineJoin="round" + android:strokeWidth="0.5" + android:fillColor="?attr/colorOnSecondaryContainer" + android:strokeColor="#00000000" + android:fillType="nonZero" + android:strokeLineCap="round" /> + <path + android:pathData="M40.37,149.78m-7.92,0a7.92,7.92 0,1 1,15.83 0a7.92,7.92 0,1 1,-15.83 0" + android:strokeLineJoin="round" + android:strokeWidth="0.5" + android:fillColor="?attr/colorOnSecondaryContainer" + android:strokeColor="#00000000" + android:fillType="nonZero" + android:strokeLineCap="round" /> + <path + android:pathData="M56.34,204.18m-7.92,0a7.92,7.92 0,1 1,15.83 0a7.92,7.92 0,1 1,-15.83 0" + android:strokeLineJoin="round" + android:strokeWidth="0.5" + android:fillColor="?attr/colorOnSecondaryContainer" + android:strokeColor="#00000000" + android:fillType="nonZero" + android:strokeLineCap="round" /> + <path + android:pathData="M96.01,244.07m-7.92,0a7.92,7.92 0,1 1,15.83 0a7.92,7.92 0,1 1,-15.83 0" + android:strokeLineJoin="round" + android:strokeWidth="0.5" + android:fillColor="?attr/colorOnSecondaryContainer" + android:strokeColor="#00000000" + android:fillType="nonZero" + android:strokeLineCap="round" /> + <path + android:pathData="M150.34,258.93m-7.92,0a7.92,7.92 0,1 1,15.83 0a7.92,7.92 0,1 1,-15.83 0" + android:strokeLineJoin="round" + android:strokeWidth="0.5" + android:fillColor="?attr/colorOnSecondaryContainer" + android:strokeColor="#00000000" + android:fillType="nonZero" + android:strokeLineCap="round" /> + <path + android:pathData="M204.6,244.49m-7.92,0a7.92,7.92 0,1 1,15.83 0a7.92,7.92 0,1 1,-15.83 0" + android:strokeLineJoin="round" + android:strokeWidth="0.5" + android:fillColor="?attr/colorOnSecondaryContainer" + android:strokeColor="#00000000" + android:fillType="nonZero" + android:strokeLineCap="round" /> + <path + android:pathData="M244.63,204.61m-7.92,0a7.92,7.92 0,1 1,15.83 0a7.92,7.92 0,1 1,-15.83 0" + android:strokeLineJoin="round" + android:strokeWidth="0.5" + android:fillColor="?attr/colorOnSecondaryContainer" + android:strokeColor="#00000000" + android:fillType="nonZero" + android:strokeLineCap="round" /> + <path + android:pathData="M259.63,149.78m-7.92,0a7.92,7.92 0,1 1,15.83 0a7.92,7.92 0,1 1,-15.83 0" + android:strokeLineJoin="round" + android:strokeWidth="0.5" + android:fillColor="?attr/colorOnSecondaryContainer" + android:strokeColor="#00000000" + android:fillType="nonZero" + android:strokeLineCap="round" /> + <path + android:pathData="M245.05,94.96m-7.92,0a7.92,7.92 0,1 1,15.83 0a7.92,7.92 0,1 1,-15.83 0" + android:strokeLineJoin="round" + android:strokeWidth="0.5" + android:fillColor="?attr/colorOnSecondaryContainer" + android:strokeColor="#00000000" + android:fillType="nonZero" + android:strokeLineCap="round" /> + <path + android:pathData="M205.02,55.08m-7.92,0a7.92,7.92 0,1 1,15.83 0a7.92,7.92 0,1 1,-15.83 0" + android:strokeLineJoin="round" + android:strokeWidth="0.5" + android:fillColor="?attr/colorOnSecondaryContainer" + android:strokeColor="#00000000" + android:fillType="nonZero" + android:strokeLineCap="round" /> +</vector> diff --git a/app/src/main/res/drawable/minimalistic_circular_hour_hand.xml b/app/src/main/res/drawable/minimalistic_circular_hour_hand.xml new file mode 100644 index 00000000..cec15116 --- /dev/null +++ b/app/src/main/res/drawable/minimalistic_circular_hour_hand.xml @@ -0,0 +1,13 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="M151.01,127.47l-3.65,-48.46l3.26,-2.51l3.31,1.56l-2.92,49.41" + android:strokeLineJoin="round" + android:strokeWidth="2" + android:fillColor="#00000000" + android:strokeColor="?attr/colorOnSecondaryContainer" + android:strokeLineCap="round" /> +</vector> diff --git a/app/src/main/res/drawable/minimalistic_circular_minute_hand.xml b/app/src/main/res/drawable/minimalistic_circular_minute_hand.xml new file mode 100644 index 00000000..36b9482c --- /dev/null +++ b/app/src/main/res/drawable/minimalistic_circular_minute_hand.xml @@ -0,0 +1,13 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="M150.22,126.69l-4.41,-68.88l4.81,-3.27l3.2,4.9l-3.59,67.25" + android:strokeLineJoin="round" + android:strokeWidth="1.5" + android:fillColor="#00000000" + android:strokeColor="?attr/colorOnSecondaryContainer" + android:strokeLineCap="round" /> +</vector> diff --git a/app/src/main/res/drawable/twod_ball_dial.xml b/app/src/main/res/drawable/twod_ball_dial.xml new file mode 100644 index 00000000..5b07bab8 --- /dev/null +++ b/app/src/main/res/drawable/twod_ball_dial.xml @@ -0,0 +1,18 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="M150.05,150m-135,0a135,135 0,1 1,270 0a135,135 0,1 1,-270 0" + android:strokeWidth="0" + android:fillColor="?attr/colorSurfaceContainer" /> + <path + android:pathData="m150.69,19.24l0,18.62m-65.46,-1.43 l9.31,16.13m-57.41,31.5 l16.13,9.31M19.29,149.36l18.62,0m-1.43,65.46 l16.13,-9.31m31.5,57.41 l9.31,-16.13m55.98,33.97l0,-18.62m65.46,1.43 l-9.31,-16.13m57.41,-31.5 l-16.13,-9.31m33.97,-55.98l-18.62,0m1.43,-65.46 l-16.13,9.31m-31.5,-57.41 l-9.31,16.13" + android:strokeLineJoin="round" + android:strokeWidth="3" + android:fillColor="#00000000" + android:strokeColor="?attr/colorPrimary" + android:fillAlpha="0.998622" + android:strokeLineCap="round" /> +</vector> diff --git a/app/src/main/res/drawable/twod_ball_hour_hand.xml b/app/src/main/res/drawable/twod_ball_hour_hand.xml new file mode 100644 index 00000000..e317ed13 --- /dev/null +++ b/app/src/main/res/drawable/twod_ball_hour_hand.xml @@ -0,0 +1,17 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="M149.75,158.01L150.62,69.75" + android:strokeWidth="3" + android:fillColor="#00000000" + android:strokeLineCap="round" + android:strokeColor="?attr/colorOutline" /> + <path + android:pathData="m150.19,113.88c-8.86,-0.09 -15.98,-7.34 -15.89,-16.2 0.09,-8.86 7.34,-15.98 16.2,-15.89 8.86,0.09 15.98,7.34 15.89,16.2 -0.09,8.86 -7.34,15.98 -16.2,15.89z" + android:strokeWidth="3" + android:fillColor="?attr/colorTertiary" + android:strokeColor="?attr/colorOutline" /> +</vector> diff --git a/app/src/main/res/drawable/twod_ball_minute_hand.xml b/app/src/main/res/drawable/twod_ball_minute_hand.xml new file mode 100644 index 00000000..d48b31a7 --- /dev/null +++ b/app/src/main/res/drawable/twod_ball_minute_hand.xml @@ -0,0 +1,18 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="M151.46,158.02L150.62,45.69" + android:strokeWidth="2" + android:fillColor="#00000000" + android:strokeColor="?attr/colorOutline" + android:strokeLineCap="round" /> + <path + android:pathData="m150.66,51.71c5.54,-0.04 10.06,4.41 10.1,9.95 0.04,5.54 -4.41,10.06 -9.95,10.1 -5.54,0.04 -10.06,-4.41 -10.1,-9.95 -0.04,-5.54 4.41,-10.06 9.95,-10.1z" + android:strokeWidth="2" + android:fillColor="?attr/colorSecondary" + android:strokeColor="?attr/colorOutline" + android:strokeLineCap="butt" /> +</vector> diff --git a/app/src/main/res/drawable/twod_ball_second_hand.xml b/app/src/main/res/drawable/twod_ball_second_hand.xml new file mode 100644 index 00000000..5fc88917 --- /dev/null +++ b/app/src/main/res/drawable/twod_ball_second_hand.xml @@ -0,0 +1,23 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="300dp" + android:height="300dp" + android:viewportWidth="300" + android:viewportHeight="300"> + <path + android:pathData="M150.62,158.81L150.62,34.44" + android:strokeWidth="1" + android:fillColor="#00000000" + android:strokeLineCap="round" + android:strokeColor="?attr/colorOutline" /> + <path + android:pathData="m156.64,42.46c-0,3.32 -2.69,6.02 -6.02,6.02 -3.32,-0 -6.02,-2.69 -6.02,-6.02 0,-3.32 2.69,-6.02 6.02,-6.02 3.32,0 6.02,2.69 6.02,6.02z" + android:strokeWidth="1" + android:fillColor="?attr/colorPrimary" + android:strokeColor="?attr/colorOutline" /> + <path + android:pathData="m170.68,150.78c0,11.08 -8.98,20.06 -20.06,20.06 -11.08,0 -20.06,-8.98 -20.06,-20.06 0,-11.08 8.98,-20.06 20.06,-20.06 11.08,0 20.06,8.98 20.06,20.06z" + android:strokeWidth="4" + android:fillColor="?attr/colorSurfaceContainer" + android:strokeColor="?attr/colorOutline" + android:strokeLineCap="butt" /> +</vector> diff --git a/app/src/main/res/layout-v31/analog_clock.xml b/app/src/main/res/layout-v31/analog_clock.xml index 3e7938a6..949853b6 100644 --- a/app/src/main/res/layout-v31/analog_clock.xml +++ b/app/src/main/res/layout-v31/analog_clock.xml @@ -8,9 +8,6 @@ android:id="@+id/analog_clock" android:layout_gravity="center" android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:hand_hourTint="?attr/colorSecondary" - android:hand_minuteTint="?attr/colorPrimary" - android:dialTint="?attr/colorSurfaceContainer" /> + android:layout_height="wrap_content" /> </FrameLayout> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5bcb4f2a..1e670008 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -127,4 +127,6 @@ <string name="alarm_permission_title">Alarm Permission</string> <string name="allow">Allow</string> <string name="maybe_later">Maybe later</string> + <string name="design_by">Design by %1$s</string> + <string name="select_clock_face">Select Clock Face</string> </resources> \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index ea3f28c5..ee98976e 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <style name="Theme.ClockYou" parent="android:Theme.Material.Light.NoActionBar"> + <style name="Theme.ClockYou" parent="Theme.Material3.DynamicColors.DayNight"> <item name="android:windowActionModeOverlay">true</item> <item name="android:windowContentOverlay">@color/windowBackground</item> diff --git a/app/src/main/res/xml/analog_clock_widget.xml b/app/src/main/res/xml/analog_clock_widget.xml index 64509db6..d91e9416 100644 --- a/app/src/main/res/xml/analog_clock_widget.xml +++ b/app/src/main/res/xml/analog_clock_widget.xml @@ -1,10 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:description="@string/analog_clock" - android:minWidth="180dp" - android:minHeight="50dp" - android:resizeMode="horizontal|vertical" - android:previewLayout="@layout/analog_clock" - android:widgetCategory="home_screen" - tools:targetApi="s" /> \ No newline at end of file + xmlns:tools="http://schemas.android.com/tools" + android:description="@string/analog_clock" + android:configure="com.bnyro.clock.presentation.widgets.AnalogClockWidgetConfig" + android:widgetFeatures="reconfigurable" + android:minWidth="180dp" + android:minHeight="50dp" + android:resizeMode="horizontal|vertical" + android:previewLayout="@layout/analog_clock" + android:widgetCategory="home_screen" + tools:targetApi="s" /> \ No newline at end of file