From d91471d1eec78cfe85e67129505c35335b85555c Mon Sep 17 00:00:00 2001 From: Tommaso Berlose Date: Wed, 13 May 2020 17:42:48 +0200 Subject: [PATCH] Fix #113, #111, #79, #107, #109 --- app/src/main/AndroidManifest.xml | 2 +- .../anotherwidget/global/Preferences.kt | 1 + .../anotherwidget/helpers/CalendarHelper.kt | 2 + .../anotherwidget/helpers/DateHelper.kt | 9 ++- .../anotherwidget/helpers/WidgetHelper.kt | 15 +---- .../ui/activities/CustomDateActivity.kt | 22 ++++++- .../ui/fragments/MainFragment.kt | 29 +++++---- .../ui/viewmodels/CustomDateViewModel.kt | 2 + .../anotherwidget/ui/widgets/MainWidget.kt | 9 ++- .../res/drawable-hdpi/round_format_size.png | Bin 0 -> 206 bytes .../round_format_size_black_24.png | Bin 0 -> 237 bytes .../round_format_size_black_36.png | Bin 0 -> 311 bytes .../round_format_size_black_48.png | Bin 0 -> 306 bytes .../drawable-hdpi/round_keyboard_capslock.png | Bin 0 -> 306 bytes .../round_keyboard_capslock_black_18.png | Bin 0 -> 167 bytes .../round_keyboard_capslock_black_24.png | Bin 0 -> 204 bytes .../round_keyboard_capslock_black_36.png | Bin 0 -> 268 bytes .../res/drawable-mdpi/round_format_size.png | Bin 0 -> 159 bytes .../round_format_size_black_24.png | Bin 0 -> 156 bytes .../round_format_size_black_36.png | Bin 0 -> 237 bytes .../round_format_size_black_48.png | Bin 0 -> 232 bytes .../drawable-mdpi/round_keyboard_capslock.png | Bin 0 -> 243 bytes .../round_keyboard_capslock_black_18.png | Bin 0 -> 147 bytes .../round_keyboard_capslock_black_24.png | Bin 0 -> 151 bytes .../round_keyboard_capslock_black_36.png | Bin 0 -> 204 bytes .../res/drawable-xhdpi/round_format_size.png | Bin 0 -> 237 bytes .../round_format_size_black_24.png | Bin 0 -> 232 bytes .../round_format_size_black_36.png | Bin 0 -> 306 bytes .../round_format_size_black_48.png | Bin 0 -> 405 bytes .../round_keyboard_capslock.png | Bin 0 -> 401 bytes .../round_keyboard_capslock_black_18.png | Bin 0 -> 204 bytes .../round_keyboard_capslock_black_24.png | Bin 0 -> 243 bytes .../round_keyboard_capslock_black_36.png | Bin 0 -> 306 bytes .../res/drawable-xxhdpi/round_format_size.png | Bin 0 -> 311 bytes .../round_format_size_black_24.png | Bin 0 -> 306 bytes .../round_format_size_black_36.png | Bin 0 -> 545 bytes .../round_format_size_black_48.png | Bin 0 -> 519 bytes .../round_keyboard_capslock.png | Bin 0 -> 551 bytes .../round_keyboard_capslock_black_18.png | Bin 0 -> 268 bytes .../round_keyboard_capslock_black_24.png | Bin 0 -> 306 bytes .../round_keyboard_capslock_black_36.png | Bin 0 -> 422 bytes .../drawable-xxxhdpi/round_format_size.png | Bin 0 -> 306 bytes .../round_format_size_black_24.png | Bin 0 -> 405 bytes .../round_format_size_black_36.png | Bin 0 -> 519 bytes .../round_format_size_black_48.png | Bin 0 -> 688 bytes .../round_keyboard_capslock.png | Bin 0 -> 724 bytes .../round_keyboard_capslock_black_18.png | Bin 0 -> 306 bytes .../round_keyboard_capslock_black_24.png | Bin 0 -> 401 bytes .../round_keyboard_capslock_black_36.png | Bin 0 -> 551 bytes .../res/drawable/round_format_size_24.xml | 10 +++ .../drawable/round_keyboard_capslock_24.xml | 10 +++ .../main/res/layout/activity_custom_date.xml | 58 +++++++++++++----- app/src/main/res/layout/fragment_app_main.xml | 2 - app/src/main/res/values/strings.xml | 1 + 54 files changed, 122 insertions(+), 50 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/round_format_size.png create mode 100644 app/src/main/res/drawable-hdpi/round_format_size_black_24.png create mode 100644 app/src/main/res/drawable-hdpi/round_format_size_black_36.png create mode 100644 app/src/main/res/drawable-hdpi/round_format_size_black_48.png create mode 100644 app/src/main/res/drawable-hdpi/round_keyboard_capslock.png create mode 100644 app/src/main/res/drawable-hdpi/round_keyboard_capslock_black_18.png create mode 100644 app/src/main/res/drawable-hdpi/round_keyboard_capslock_black_24.png create mode 100644 app/src/main/res/drawable-hdpi/round_keyboard_capslock_black_36.png create mode 100644 app/src/main/res/drawable-mdpi/round_format_size.png create mode 100644 app/src/main/res/drawable-mdpi/round_format_size_black_24.png create mode 100644 app/src/main/res/drawable-mdpi/round_format_size_black_36.png create mode 100644 app/src/main/res/drawable-mdpi/round_format_size_black_48.png create mode 100644 app/src/main/res/drawable-mdpi/round_keyboard_capslock.png create mode 100644 app/src/main/res/drawable-mdpi/round_keyboard_capslock_black_18.png create mode 100644 app/src/main/res/drawable-mdpi/round_keyboard_capslock_black_24.png create mode 100644 app/src/main/res/drawable-mdpi/round_keyboard_capslock_black_36.png create mode 100644 app/src/main/res/drawable-xhdpi/round_format_size.png create mode 100644 app/src/main/res/drawable-xhdpi/round_format_size_black_24.png create mode 100644 app/src/main/res/drawable-xhdpi/round_format_size_black_36.png create mode 100644 app/src/main/res/drawable-xhdpi/round_format_size_black_48.png create mode 100644 app/src/main/res/drawable-xhdpi/round_keyboard_capslock.png create mode 100644 app/src/main/res/drawable-xhdpi/round_keyboard_capslock_black_18.png create mode 100644 app/src/main/res/drawable-xhdpi/round_keyboard_capslock_black_24.png create mode 100644 app/src/main/res/drawable-xhdpi/round_keyboard_capslock_black_36.png create mode 100644 app/src/main/res/drawable-xxhdpi/round_format_size.png create mode 100644 app/src/main/res/drawable-xxhdpi/round_format_size_black_24.png create mode 100644 app/src/main/res/drawable-xxhdpi/round_format_size_black_36.png create mode 100644 app/src/main/res/drawable-xxhdpi/round_format_size_black_48.png create mode 100644 app/src/main/res/drawable-xxhdpi/round_keyboard_capslock.png create mode 100644 app/src/main/res/drawable-xxhdpi/round_keyboard_capslock_black_18.png create mode 100644 app/src/main/res/drawable-xxhdpi/round_keyboard_capslock_black_24.png create mode 100644 app/src/main/res/drawable-xxhdpi/round_keyboard_capslock_black_36.png create mode 100644 app/src/main/res/drawable-xxxhdpi/round_format_size.png create mode 100644 app/src/main/res/drawable-xxxhdpi/round_format_size_black_24.png create mode 100644 app/src/main/res/drawable-xxxhdpi/round_format_size_black_36.png create mode 100644 app/src/main/res/drawable-xxxhdpi/round_format_size_black_48.png create mode 100644 app/src/main/res/drawable-xxxhdpi/round_keyboard_capslock.png create mode 100644 app/src/main/res/drawable-xxxhdpi/round_keyboard_capslock_black_18.png create mode 100644 app/src/main/res/drawable-xxxhdpi/round_keyboard_capslock_black_24.png create mode 100644 app/src/main/res/drawable-xxxhdpi/round_keyboard_capslock_black_36.png create mode 100644 app/src/main/res/drawable/round_format_size_24.xml create mode 100644 app/src/main/res/drawable/round_keyboard_capslock_24.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c2a8776..15a772e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -25,7 +25,7 @@ android:supportsRtl="true" android:theme="@style/AppTheme" tools:ignore="LockedOrientationActivity"> - + diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt index 50dbad2..59befaf 100755 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/global/Preferences.kt @@ -30,6 +30,7 @@ object Preferences : KotprefModel() { var customLocationLon by stringPref(key = "PREF_CUSTOM_LOCATION_LON", default = "") var customLocationAdd by stringPref(key = "PREF_CUSTOM_LOCATION_ADD", default = "") var dateFormat by stringPref(default = "") + var isDateCapitalize by booleanPref(default = false) var weatherRefreshPeriod by intPref(key = "PREF_WEATHER_REFRESH_PERIOD", default = 1) var showUntil by intPref(key = "PREF_SHOW_UNTIL", default = 1) var calendarAppName by stringPref(key = "PREF_CALENDAR_APP_NAME", default = "") diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/CalendarHelper.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/CalendarHelper.kt index b30b6bc..ddc7e0a 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/CalendarHelper.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/CalendarHelper.kt @@ -4,6 +4,7 @@ import android.Manifest import android.content.ContentUris import android.content.Context import android.provider.CalendarContract +import android.util.Log import com.tommasoberlose.anotherwidget.services.EventListenerJob import com.tommasoberlose.anotherwidget.db.EventRepository import com.tommasoberlose.anotherwidget.models.Event @@ -61,6 +62,7 @@ object CalendarHelper { for (instance in instances) { try { val e = provider.getEvent(instance.eventId) + Log.d("ciao", "evento: $e") if (e != null && !e.deleted && instance.begin <= limit.timeInMillis && (Preferences.calendarAllDay || !e.allDay) && !getFilteredCalendarIdList().contains( e.calendarId ) && (Preferences.showDeclinedEvents || e.selfAttendeeStatus.toInt() != CalendarContract.Attendees.ATTENDEE_STATUS_DECLINED) diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/DateHelper.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/DateHelper.kt index 9fda22d..1539736 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/DateHelper.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/DateHelper.kt @@ -12,27 +12,30 @@ import java.util.* object DateHelper { fun getDateText(context: Context, date: Calendar): String { return if (Preferences.dateFormat != "") { - try { + val text = try { SimpleDateFormat(Preferences.dateFormat, Locale.getDefault()).format(date.time) } catch (e: Exception) { getDefaultDateText(context, date) } + if (Preferences.isDateCapitalize) text.getCapWordString() else text } else { val flags: Int = DateUtils.FORMAT_SHOW_DATE or DateUtils.FORMAT_NO_YEAR or DateUtils.FORMAT_ABBREV_MONTH - "%s, %s".format( + val text = "%s, %s".format( SimpleDateFormat("EEEE", Locale.getDefault()).format(date.time), DateUtils.formatDateTime(context, date.timeInMillis, flags) ) + if (Preferences.isDateCapitalize) text.getCapWordString() else text } } fun getDefaultDateText(context: Context, date: Calendar): String { val flags: Int = DateUtils.FORMAT_SHOW_DATE or DateUtils.FORMAT_NO_YEAR or DateUtils.FORMAT_ABBREV_MONTH - return "%s, %s".format( + val text = "%s, %s".format( SimpleDateFormat("EEEE", Locale.getDefault()).format(date.time), DateUtils.formatDateTime(context, date.timeInMillis, flags) ) + return if (Preferences.isDateCapitalize) text.getCapWordString() else text } } \ No newline at end of file diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/WidgetHelper.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/WidgetHelper.kt index de30152..728b92e 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/WidgetHelper.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/helpers/WidgetHelper.kt @@ -3,6 +3,7 @@ package com.tommasoberlose.anotherwidget.helpers import android.appwidget.AppWidgetManager import android.content.Context import android.content.res.Configuration.ORIENTATION_PORTRAIT +import android.util.Log import com.google.firebase.crashlytics.FirebaseCrashlytics import com.tommasoberlose.anotherwidget.db.EventRepository import com.tommasoberlose.anotherwidget.global.Preferences @@ -24,19 +25,9 @@ object WidgetHelper { return widthInPx to heightInPx } - private fun getWidgetWidth(isPortrait: Boolean, widgetId: Int): Int = - if (isPortrait) { - getWidgetSizeInDp(widgetId, AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH) - } else { - getWidgetSizeInDp(widgetId, AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH) - } + private fun getWidgetWidth(isPortrait: Boolean, widgetId: Int): Int = getWidgetSizeInDp(widgetId, AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH) - private fun getWidgetHeight(isPortrait: Boolean, widgetId: Int): Int = - if (isPortrait) { - getWidgetSizeInDp(widgetId, AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT) - } else { - getWidgetSizeInDp(widgetId, AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT) - } + private fun getWidgetHeight(isPortrait: Boolean, widgetId: Int): Int = getWidgetSizeInDp(widgetId, AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT) private fun getWidgetSizeInDp(widgetId: Int, key: String): Int = appWidgetManager.getAppWidgetOptions(widgetId).getInt(key, 0) diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/CustomDateActivity.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/CustomDateActivity.kt index db536f1..a643052 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/CustomDateActivity.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/activities/CustomDateActivity.kt @@ -18,7 +18,9 @@ import com.tommasoberlose.anotherwidget.databinding.ActivityCustomDateBinding import com.tommasoberlose.anotherwidget.global.Preferences import com.tommasoberlose.anotherwidget.helpers.DateHelper import com.tommasoberlose.anotherwidget.ui.viewmodels.CustomDateViewModel +import com.tommasoberlose.anotherwidget.utils.getCapWordString import com.tommasoberlose.anotherwidget.utils.openURI +import com.tommasoberlose.anotherwidget.utils.toast import kotlinx.android.synthetic.main.activity_custom_date.* import kotlinx.android.synthetic.main.activity_custom_location.action_back import kotlinx.android.synthetic.main.activity_custom_location.list_view @@ -78,7 +80,7 @@ class CustomDateActivity : AppCompatActivity() { } delay(200) - val text = if (dateFormat != "") { + var text = if (dateFormat != "") { try { SimpleDateFormat(dateFormat, Locale.getDefault()).format(DATE.time) } catch (e: Exception) { @@ -88,6 +90,10 @@ class CustomDateActivity : AppCompatActivity() { "__" } + if (Preferences.isDateCapitalize) { + text = text.getCapWordString() + } + withContext(Dispatchers.Main) { action_save.isVisible = text != ERROR_STRING loader.visibility = View.INVISIBLE @@ -96,6 +102,11 @@ class CustomDateActivity : AppCompatActivity() { } }) + + viewModel.isDateCapitalize.observe(this, Observer { + viewModel.dateInput.value = viewModel.dateInput.value + binding.isdCapitalizeEnabled = it + }) } private fun setupListener() { @@ -108,6 +119,15 @@ class CustomDateActivity : AppCompatActivity() { finish() } + action_capitalize.setOnClickListener { + Preferences.isDateCapitalize = !Preferences.isDateCapitalize + } + + action_capitalize.setOnLongClickListener { + toast(getString(R.string.action_capitalize_the_date)) + true + } + action_date_format_info.setOnClickListener { openURI("https://developer.android.com/reference/java/text/SimpleDateFormat") } diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/MainFragment.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/MainFragment.kt index d075ce1..33a1996 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/MainFragment.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/fragments/MainFragment.kt @@ -14,6 +14,7 @@ import android.util.TypedValue import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.ImageView import android.widget.RelativeLayout import androidx.core.animation.addListener import androidx.core.app.NotificationManagerCompat @@ -291,21 +292,27 @@ class MainFragment : Fragment(), SharedPreferences.OnSharedPreferenceChangeList activity?.let { act -> val wallpaper = act.getCurrentWallpaper() widget_bg.setImageDrawable(if (it) wallpaper else null) - widget_bg.layoutParams = widget_bg.layoutParams.apply { + if (wallpaper != null) { + widget_bg.layoutParams = + (widget_bg.layoutParams as ViewGroup.MarginLayoutParams).apply { - val metrics = DisplayMetrics() - act.windowManager.defaultDisplay.getMetrics(metrics) + val metrics = DisplayMetrics() + act.windowManager.defaultDisplay.getMetrics(metrics) - var newHeight = metrics.heightPixels - var newWidth = (wallpaper?.intrinsicWidth ?: 1) * metrics.heightPixels / (wallpaper?.intrinsicHeight ?: 1) + val dimensions: Pair = if (wallpaper.intrinsicWidth >= wallpaper.intrinsicHeight) { + metrics.heightPixels to (wallpaper.intrinsicWidth) * metrics.heightPixels / (wallpaper.intrinsicHeight) + } else { + metrics.widthPixels to (wallpaper.intrinsicHeight) * metrics.widthPixels / (wallpaper.intrinsicWidth) + } - if (newWidth < metrics.widthPixels) { - newWidth = metrics.widthPixels - newHeight = (wallpaper?.intrinsicHeight ?: 1) * metrics.widthPixels / (wallpaper?.intrinsicWidth ?: 1) - } + setMargins( + if (dimensions.first >= dimensions.second) (-80).toPixel(requireContext()) else 0, + (-80).toPixel(requireContext()), 0, 0 + ) - height = newHeight - width = newWidth + width = dimensions.first + height = dimensions.second + } } } }) diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/CustomDateViewModel.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/CustomDateViewModel.kt index 537881e..f116b46 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/CustomDateViewModel.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/viewmodels/CustomDateViewModel.kt @@ -3,8 +3,10 @@ package com.tommasoberlose.anotherwidget.ui.viewmodels import android.app.Application import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData +import com.chibatching.kotpref.livedata.asLiveData import com.tommasoberlose.anotherwidget.global.Preferences class CustomDateViewModel(application: Application) : AndroidViewModel(application) { val dateInput: MutableLiveData = MutableLiveData(if (Preferences.dateFormat == "") "EEEE, MMM dd" else Preferences.dateFormat) + val isDateCapitalize = Preferences.asLiveData(Preferences::isDateCapitalize) } \ No newline at end of file diff --git a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt index 21ba6ef..487896f 100644 --- a/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt +++ b/app/src/main/java/com/tommasoberlose/anotherwidget/ui/widgets/MainWidget.kt @@ -12,6 +12,7 @@ import android.graphics.Color import android.graphics.Typeface import android.os.Bundle import android.text.format.DateUtils +import android.util.Log import android.util.TypedValue import android.view.View import android.widget.ImageView @@ -34,6 +35,7 @@ import java.lang.Exception import java.text.DateFormat import java.util.* import java.util.concurrent.TimeUnit +import kotlin.math.min class MainWidget : AppWidgetProvider() { @@ -84,9 +86,10 @@ class MainWidget : AppWidgetProvider() { appWidgetId: Int) { val displayMetrics = Resources.getSystem().displayMetrics val width = displayMetrics.widthPixels + val height = displayMetrics.heightPixels val dimensions = WidgetHelper.WidgetSizeProvider(context, appWidgetManager).getWidgetsSize(appWidgetId) - generateWidgetView(context, appWidgetId, appWidgetManager, dimensions.first - 8.toPixel(context) /*width - 16.toPixel(context)*/) + generateWidgetView(context, appWidgetId, appWidgetManager, min(dimensions.first - 8.toPixel(context), min(width, height) - 16.toPixel(context))) } private fun generateWidgetView(context: Context, appWidgetId: Int, appWidgetManager: AppWidgetManager, w: Int) { @@ -498,8 +501,8 @@ class MainWidget : AppWidgetProvider() { } else { v.second_row_icon.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.round_today)) if (!nextEvent.allDay) { - val startHour = DateFormat.getTimeInstance(DateFormat.SHORT).format(nextEvent.startDate) - val endHour = DateFormat.getTimeInstance(DateFormat.SHORT).format(nextEvent.endDate) + val startHour = DateFormat.getTimeInstance(DateFormat.SHORT, Locale.getDefault()).format(nextEvent.startDate) + val endHour = DateFormat.getTimeInstance(DateFormat.SHORT, Locale.getDefault()).format(nextEvent.endDate) var dayDiff = TimeUnit.MILLISECONDS.toDays(nextEvent.endDate - nextEvent.startDate) diff --git a/app/src/main/res/drawable-hdpi/round_format_size.png b/app/src/main/res/drawable-hdpi/round_format_size.png new file mode 100644 index 0000000000000000000000000000000000000000..77261fe846ef6422af63fa07736cf2bc6e40b405 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i1|)m0ddeO{C*RC8(tWLV+^Bp->-UKticOm37oW^$PZG^Kx|n%ZDwo9--aV;8 z4mPrKJTrb+X-o|~y(vve`R+`qX{o}QGxKj+-NP)4 zr+Er2ZSy(6d}RK@wm0hGyep4Rw>SAO80O3=!Md1%K}2?9pjY+3M4$s1JYD@<);T3K F0RWIaNbvvw literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/round_format_size_black_24.png b/app/src/main/res/drawable-hdpi/round_format_size_black_24.png new file mode 100644 index 0000000000000000000000000000000000000000..d715d5d25248b5d84a468a9799c32554cd7514e4 GIT binary patch literal 237 zcmV42Da5xC^lb^ZFDG0*hU=UvCK~6b^`3ZxZ2VpSydm*~gZs%JK{`Z{6e)#0x z%=5ej*WnKP(i2ClGeH$hgHeK7n8+;?RAPh)bdXe{ML^6V7X-vA{3MG6DEt4Q99x7B z4p_}SsK5Z5XvBWbK@BX?blzK_R^NJkNUpS$P74JWZ7#00000NkvXXu0mjf^BQ0Y literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/round_format_size_black_36.png b/app/src/main/res/drawable-hdpi/round_format_size_black_36.png new file mode 100644 index 0000000000000000000000000000000000000000..ccbc7b53aa5f9bfcb01d2d41bc5717d9486a5e73 GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e?^f1WOmAr*{ouQ9S53J__1*e&41 z0YnB2JdBJ^3>=Cq3>=IKJPeEqEe0(HEDa2bJPd~!7~|L(HhXU0?fv{Y^P5Wc*(d)W zkx1^@$Z;;f;m1VwHw)F>d>^nL^iXq?RgmaDx?oLfqPC$%W@3a28}C8`nNpF%Z4(@> zDXic5VeiA6B4!r^+uvrj`5sM{IhOeA=!65JoA{S*Xl>k{D9ypeB~dAPE&She>ncex z=YT2Il4fCYWuL$FE$uoiHm~jLLx!i~&GR;teBT+qN1(k>0trPdsqc#|<`DJzTb%Ry yz}iPn*?)`QygnqRSI{)`u4RwmF^S|e3(PI!eKuZEUNQ$55)7WMelF{r5}E+?xplb! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/round_format_size_black_48.png b/app/src/main/res/drawable-hdpi/round_format_size_black_48.png new file mode 100644 index 0000000000000000000000000000000000000000..9d5cfae04c5b4d78adf06c6eab6040ff50bc9cc3 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!KRsO>Ln;{G-dMeP1Mq5ku&x?ZD+zUL$r&q@0Y7?cf|`4fI0s%8*> zkkPZ5VfKr;f-@U@fAo2*x#S?OV)k;ka^YmQSraWhnR`8C8dmF^W8z_0=AnM@d@ie6 z=p5O95B_q6EMO8{;jnIIQu|Fu0S|-VIrWwoRA$ItX$(8~W&t0N#nQ-Pd~^+vrRkQd zaL{KXL$lt5gk?W$tbZ_T?knLAS#Ta|2CLQt&qg@=LU3)o!JG51em5o7U%4mF^PAh? n#XIh{zuy(|cgzR69*D$`TZ%o~x}h)w7zhlWu6{1-oD!M<+Qe}Y literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/round_keyboard_capslock.png b/app/src/main/res/drawable-hdpi/round_keyboard_capslock.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e2d37b6756bc9e222e9f13eab8873d14666d60 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!KRsO>Ln;{G-Vi+Flqk{mP}+{C z?*4o0cXBL_6N)8T5(QX(eqwc;pdUX$f4KsO|DB1~?ybGI@9y<)Kgu3A*Y&A*P6DDO zOgxRu8<>B+&^#xWVI6%jRYrNQ@N(&s7H(CN$35->DdTfu7Gd(50?QfpzEWm=#1K%w zBw|j*l3$On$ZN`}%dPxpvDJ<1IHyb0q!@cSb(xil8)I$!EG~5&x%ScGp+~S#_M<|l ziSG``pEN!2%lUdHquT+-2!{V5Za~|E7@r-G%-Fxh)<9t;=LNN!EiLCdndW-Dn5J=I zVvAWPQ?KU=_A?Eq#Sh0css{Y906SR4vxbP0l+XkKfVO%2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/round_keyboard_capslock_black_18.png b/app/src/main/res/drawable-hdpi/round_keyboard_capslock_black_18.png new file mode 100644 index 0000000000000000000000000000000000000000..37e8d23cb3daf489f7cdcce8a4cdeff392e376e2 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i1|)m0diDnxu&yd%i~LQesHiFYqVL_eO_(NTc;V2Yq#Ut_8x3aU%w8aNhyC&o zNAr-_4;?3`FJ_o{i6i;cj*Q()}o>E)1SUCh8xz0P)B?xWoA QK${snUHx3vIVCg!0Aiav5dZ)H literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/round_keyboard_capslock_black_24.png b/app/src/main/res/drawable-hdpi/round_keyboard_capslock_black_24.png new file mode 100644 index 0000000000000000000000000000000000000000..1354428731c6ba38ea06570c659e6f2a1e772a0a GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBCVRR#hEy=VozlqKkRajW%-nK; zqgUY8VneAVj#3IO42)6>1nXEh6t6sFKD6A5^Lqt@O?!8XfYXPQ4;idy{8dytaCi=9 z;2a4j5mU7TQw3bRPbPYHD;<$oqv3Ssdf-aw$L>cbxII1gBan5;!~=4D(bP0l+XkK D=#NSF literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/round_keyboard_capslock_black_36.png b/app/src/main/res/drawable-hdpi/round_keyboard_capslock_black_36.png new file mode 100644 index 0000000000000000000000000000000000000000..eaed861c0aec50d3bdfb7de8e9859947f15b55c5 GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e?^%bqTdAr*{o&kOP}1v0dMRIuPU z#BSN%p6j@;rroh%!h3@=cP)7iDcCGmh%fl?OTkNS&%OHB-~Ml#|9-Z`^Et)mET5kW zP42uXQsDf@BH65MrQFBUp$5xmUOLaYjHURO=HEGWtB!gaET5+&bmrx9kjTL~b+7I} zTeW88mpiP#R-Bygb#AS~`qMzlbb|N?ha=q8Ps)xobjXQ*32fzk_9K)r+b2*9Xwka{ zxs4O7r94&(va;zYtacT-=@fQAVMf)WrY#L(v5MAb98ZE>Gp9KJz%-`+C8|~mK<_bl My85}Sb4q9e080jRR{#J2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/round_format_size.png b/app/src/main/res/drawable-mdpi/round_format_size.png new file mode 100644 index 0000000000000000000000000000000000000000..8040bff62f19e07fe2c649394cb7fd9a773033ab GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@RheG*1`DkP60RiJc4NJN`dD*xop! zeS#vBL(SX<$N7ynS|r3f88$MDoNv#v>sMLU2ia6F`HrotI37UoZZ4~LKa8euwI_U!!AVE636 z$2$!cX@bnZX7D~_|093Ck)O9j#qZ;~TLFUqYQL@4Gk;a|?t4zKHPAW+Pgg&ebxsLQ E0GGKp!T42Da5xC^lb^ZFDG0*hU=UvCK~6b^`3ZxZ2VpSydm*~gZs%JK{`Z{6e)#0x z%=5ej*WnKP(i2ClGeH$hgHeK7n8+;?RAPh)bdXe{ML^6V7X-vA{3MG6DEt4Q99x7B z4p_}SsK5Z5XvBWbK@BX?blzK_R^NJkNUpS$P74JWZ7#00000NkvXXu0mjf^BQ0Y literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/round_format_size_black_48.png b/app/src/main/res/drawable-mdpi/round_format_size_black_48.png new file mode 100644 index 0000000000000000000000000000000000000000..ba8c1099cd21e0114a4af6f6b001e7b1d5cf3435 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUt^`0({Ar*{orwQ^L4v=8uKDu-F zZuQSL&m9ZrRX(#>Zh19$MY>;e)vogom*0zisApN@>Hq6*vrJ1zN6$yW>pSG%SjW9= zh`y7kZj|s=V8aB)==O%0JQbxJ87T);?>%P!@gcwFSm6)zqwb$15*YTc`C4>|@xUg( z8iw6#xaAM%y*|Uf;qU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/round_keyboard_capslock.png b/app/src/main/res/drawable-mdpi/round_keyboard_capslock.png new file mode 100644 index 0000000000000000000000000000000000000000..b6d8286801104fc3124cdd114861502100feba33 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtU7jwEAr*{oFA54UIm)zt{GhP> zLCv88-T4W36;EiEpOF=7R+tYIIjq3Jw~hbN?6l|i{LJ^>KlA+m_T2`?K+vf>SMy?9 zn(8HopO+^eis`@Je?fk|)I$5X|H6+RE6aXSE;-KpOYqX;ugYJJuXg9?`~Oss_iOTT z@xC2_qHkY(e5xFGB|udD)Ro{RLDf|k9Nbr}n)~ADv@J@;o9zW(I8{CpTI;!Pv5wZn qJFylIyo#(ZcJwjL1cIB>?|s>P`rY}J`9FZZVDNPHb6Mw<&;$TpGHoUR literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/round_keyboard_capslock_black_18.png b/app/src/main/res/drawable-mdpi/round_keyboard_capslock_black_18.png new file mode 100644 index 0000000000000000000000000000000000000000..55a30c0058ec87cba8543f61badf85014d608900 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@RheC{Gv1kP61+1zZxWRt{^NRw^EJ z_#@q6&%BX$X`2k&qt^z9H4IzWJ5*1Y@+5NbDDdp|?Q-Nxa5iY<5QyfvTawJgd*#2y thx83nP7G3JR~=&dnZui}PT+B4WC)oqJx4cqjV90*22WQ%mvv4FO#sr*Dg^)l literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/round_keyboard_capslock_black_24.png b/app/src/main/res/drawable-mdpi/round_keyboard_capslock_black_24.png new file mode 100644 index 0000000000000000000000000000000000000000..c8748d9f7c7ed0f4a00c18ff4cb7553fe56b47de GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjah@)YAr*|t3$!Iz7dtR@q%(g^ zQFykn_2Ko#ANC^hY>`f-hZlY+PVrumWie%aV;<*Mo_40JNTL3-1v1ktCL}jbP0l+XkKjcheC literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/round_keyboard_capslock_black_36.png b/app/src/main/res/drawable-mdpi/round_keyboard_capslock_black_36.png new file mode 100644 index 0000000000000000000000000000000000000000..1354428731c6ba38ea06570c659e6f2a1e772a0a GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBCVRR#hEy=VozlqKkRajW%-nK; zqgUY8VneAVj#3IO42)6>1nXEh6t6sFKD6A5^Lqt@O?!8XfYXPQ4;idy{8dytaCi=9 z;2a4j5mU7TQw3bRPbPYHD;<$oqv3Ssdf-aw$L>cbxII1gBan5;!~=4D(bP0l+XkK D=#NSF literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/round_format_size.png b/app/src/main/res/drawable-xhdpi/round_format_size.png new file mode 100644 index 0000000000000000000000000000000000000000..d715d5d25248b5d84a468a9799c32554cd7514e4 GIT binary patch literal 237 zcmV42Da5xC^lb^ZFDG0*hU=UvCK~6b^`3ZxZ2VpSydm*~gZs%JK{`Z{6e)#0x z%=5ej*WnKP(i2ClGeH$hgHeK7n8+;?RAPh)bdXe{ML^6V7X-vA{3MG6DEt4Q99x7B z4p_}SsK5Z5XvBWbK@BX?blzK_R^NJkNUpS$P74JWZ7#00000NkvXXu0mjf^BQ0Y literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/round_format_size_black_24.png b/app/src/main/res/drawable-xhdpi/round_format_size_black_24.png new file mode 100644 index 0000000000000000000000000000000000000000..ba8c1099cd21e0114a4af6f6b001e7b1d5cf3435 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUt^`0({Ar*{orwQ^L4v=8uKDu-F zZuQSL&m9ZrRX(#>Zh19$MY>;e)vogom*0zisApN@>Hq6*vrJ1zN6$yW>pSG%SjW9= zh`y7kZj|s=V8aB)==O%0JQbxJ87T);?>%P!@gcwFSm6)zqwb$15*YTc`C4>|@xUg( z8iw6#xaAM%y*|Uf;qU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/round_format_size_black_36.png b/app/src/main/res/drawable-xhdpi/round_format_size_black_36.png new file mode 100644 index 0000000000000000000000000000000000000000..9d5cfae04c5b4d78adf06c6eab6040ff50bc9cc3 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!KRsO>Ln;{G-dMeP1Mq5ku&x?ZD+zUL$r&q@0Y7?cf|`4fI0s%8*> zkkPZ5VfKr;f-@U@fAo2*x#S?OV)k;ka^YmQSraWhnR`8C8dmF^W8z_0=AnM@d@ie6 z=p5O95B_q6EMO8{;jnIIQu|Fu0S|-VIrWwoRA$ItX$(8~W&t0N#nQ-Pd~^+vrRkQd zaL{KXL$lt5gk?W$tbZ_T?knLAS#Ta|2CLQt&qg@=LU3)o!JG51em5o7U%4mF^PAh? n#XIh{zuy(|cgzR69*D$`TZ%o~x}h)w7zhlWu6{1-oD!M<+Qe}Y literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/round_format_size_black_48.png b/app/src/main/res/drawable-xhdpi/round_format_size_black_48.png new file mode 100644 index 0000000000000000000000000000000000000000..9c5e96869613e97c05cd0d0238cfc74aa2f276d1 GIT binary patch literal 405 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>V2tr}aSW+oe0xhUz$H-R_(N_- zftK@{<<}Ex#XfO<;w)-ch*;hV1T|t}a&{-wPdqQvsGL$_RlYC(*?IoDfYLl>pjiwI z9wnmH9dnbs*ZluHH+lWW-)0S(Wqn^4Rd?Ura>#FET+Q*YE6Hp4H~DJ6un1^y)_zgE zfWcdP1^yW{Jl+uIMl>-w))*6FMKNBfcGH@V+hU!1>d zmffwpP;bd1z`)4jz`!V=@IP($uAN*PcHMk-C#INr$4$A;p7U0B9f~Vu3@$&VS#t_p9E$`oHe& z_9eG}-CzHET1ou>-=+5_#U%y*eSf{$dsp3S%M;%j!9l|CK$>rbhgQdXufHI^r>mdK II;Vst08G`V8vpV2to|aSW+oe0x!_fH_da?IClk zlY#^XOLKSQfvDQ9)*aU3kA+wGD+cgf$y^w~Bhu7(^gx)?%&@p+dn?P&nHT>(S3g0; za}pdakv3$z=1{&bJ)z~_QJEi1ZQZw-i~r4eEZ^{Oy7dv)ff``P^p1!d|vZQOt=HosP0p(*?S7e^FR?a3dFf-?37O^?~#3jUmcXzdMH zrzvZ%aA-=(yM}cse-?1$t6ZMeBQKNarnI{0<6`A4Dw{MU?5z&9q}<~^*5CEP$!W5@ zQi+4}9I+emf4*?_c;qmyX%O3?e9!g+gAF4u)a@m`nj0AH8Xg{7&wTB`43)G4f)ZN0 zYo~EUC#?8#O{HLsg@Zd&?NLTM&xG*823}5+11k@G>_0F?MJj>)%T%8ItZ5#IKv3}v bYRr$EVfA#!wgg^aP&0VC`njxgN@xNASmmIi literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/round_keyboard_capslock_black_18.png b/app/src/main/res/drawable-xhdpi/round_keyboard_capslock_black_18.png new file mode 100644 index 0000000000000000000000000000000000000000..1354428731c6ba38ea06570c659e6f2a1e772a0a GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBCVRR#hEy=VozlqKkRajW%-nK; zqgUY8VneAVj#3IO42)6>1nXEh6t6sFKD6A5^Lqt@O?!8XfYXPQ4;idy{8dytaCi=9 z;2a4j5mU7TQw3bRPbPYHD;<$oqv3Ssdf-aw$L>cbxII1gBan5;!~=4D(bP0l+XkK D=#NSF literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/round_keyboard_capslock_black_24.png b/app/src/main/res/drawable-xhdpi/round_keyboard_capslock_black_24.png new file mode 100644 index 0000000000000000000000000000000000000000..b6d8286801104fc3124cdd114861502100feba33 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtU7jwEAr*{oFA54UIm)zt{GhP> zLCv88-T4W36;EiEpOF=7R+tYIIjq3Jw~hbN?6l|i{LJ^>KlA+m_T2`?K+vf>SMy?9 zn(8HopO+^eis`@Je?fk|)I$5X|H6+RE6aXSE;-KpOYqX;ugYJJuXg9?`~Oss_iOTT z@xC2_qHkY(e5xFGB|udD)Ro{RLDf|k9Nbr}n)~ADv@J@;o9zW(I8{CpTI;!Pv5wZn qJFylIyo#(ZcJwjL1cIB>?|s>P`rY}J`9FZZVDNPHb6Mw<&;$TpGHoUR literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/round_keyboard_capslock_black_36.png b/app/src/main/res/drawable-xhdpi/round_keyboard_capslock_black_36.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e2d37b6756bc9e222e9f13eab8873d14666d60 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!KRsO>Ln;{G-Vi+Flqk{mP}+{C z?*4o0cXBL_6N)8T5(QX(eqwc;pdUX$f4KsO|DB1~?ybGI@9y<)Kgu3A*Y&A*P6DDO zOgxRu8<>B+&^#xWVI6%jRYrNQ@N(&s7H(CN$35->DdTfu7Gd(50?QfpzEWm=#1K%w zBw|j*l3$On$ZN`}%dPxpvDJ<1IHyb0q!@cSb(xil8)I$!EG~5&x%ScGp+~S#_M<|l ziSG``pEN!2%lUdHquT+-2!{V5Za~|E7@r-G%-Fxh)<9t;=LNN!EiLCdndW-Dn5J=I zVvAWPQ?KU=_A?Eq#Sh0css{Y906SR4vxbP0l+XkKfVO%2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/round_format_size.png b/app/src/main/res/drawable-xxhdpi/round_format_size.png new file mode 100644 index 0000000000000000000000000000000000000000..ccbc7b53aa5f9bfcb01d2d41bc5717d9486a5e73 GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e?^f1WOmAr*{ouQ9S53J__1*e&41 z0YnB2JdBJ^3>=Cq3>=IKJPeEqEe0(HEDa2bJPd~!7~|L(HhXU0?fv{Y^P5Wc*(d)W zkx1^@$Z;;f;m1VwHw)F>d>^nL^iXq?RgmaDx?oLfqPC$%W@3a28}C8`nNpF%Z4(@> zDXic5VeiA6B4!r^+uvrj`5sM{IhOeA=!65JoA{S*Xl>k{D9ypeB~dAPE&She>ncex z=YT2Il4fCYWuL$FE$uoiHm~jLLx!i~&GR;teBT+qN1(k>0trPdsqc#|<`DJzTb%Ry yz}iPn*?)`QygnqRSI{)`u4RwmF^S|e3(PI!eKuZEUNQ$55)7WMelF{r5}E+?xplb! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/round_format_size_black_24.png b/app/src/main/res/drawable-xxhdpi/round_format_size_black_24.png new file mode 100644 index 0000000000000000000000000000000000000000..9d5cfae04c5b4d78adf06c6eab6040ff50bc9cc3 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!KRsO>Ln;{G-dMeP1Mq5ku&x?ZD+zUL$r&q@0Y7?cf|`4fI0s%8*> zkkPZ5VfKr;f-@U@fAo2*x#S?OV)k;ka^YmQSraWhnR`8C8dmF^W8z_0=AnM@d@ie6 z=p5O95B_q6EMO8{;jnIIQu|Fu0S|-VIrWwoRA$ItX$(8~W&t0N#nQ-Pd~^+vrRkQd zaL{KXL$lt5gk?W$tbZ_T?knLAS#Ta|2CLQt&qg@=LU3)o!JG51em5o7U%4mF^PAh? n#XIh{zuy(|cgzR69*D$`TZ%o~x}h)w7zhlWu6{1-oD!M<+Qe}Y literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/round_format_size_black_36.png b/app/src/main/res/drawable-xxhdpi/round_format_size_black_36.png new file mode 100644 index 0000000000000000000000000000000000000000..98f1b104bc411863d875aa35e8ea8494fad28f7b GIT binary patch literal 545 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz1|<8_!p|}=Fuw3~aSW+oe0!VG#W_&I{i8vP zK$}4e!(jm?mX<^gMIOZ#gO>JophATf0VfVc2OyGY1F{~L37na6#TmU>HFvR>L{x`bQmf>G;MukTZsOc&|3Zgz3@a=g7Xz)yqq-PACR z7PX~PB|eHJ*+w^HTMI%aA9NFOiky7#on}j%FPnAe7tjA*niaQ2jwOEBxK3lv;>Ja^*Qsec?5eIhXgV3sj*LPwv2$#r7Qg1L;eNV zW?A1TsrurQ*|+y%gA`xb+WFn(S4uX#&kZ`YA)9^nl@ovFC7eHataQ`=+=mIt-;Ctn zoIJRybaLj4gsZ!f3tuKYzBQ9S%;Lt9**)@NTV!%BMJ@Zz`kRIQw_m%Qk>smpuBPU{ zOB|VZ&AKeQCEaSV*};R0{+uf?U@s;YX|F1kV}E_j*8gAH&i4B~)${&{PFeQC@LT1l z?JkQo;}+)}vG@OXt^Vh!r91`m3}%&lJp6g#T$}TY#lEiik<~3`%dY^73vi_TVsTn! WUjH#_OFb~^89ZJ6T-G@yGywoRvfPLO literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/round_format_size_black_48.png b/app/src/main/res/drawable-xxhdpi/round_format_size_black_48.png new file mode 100644 index 0000000000000000000000000000000000000000..a91f885dc287dc1c7c80e4308b1ea2d9339849e5 GIT binary patch literal 519 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=0t0+PT!A!oLCi`~C!mSaB|(0{ z3>N*z@BcsCtfR7fxrEL8#~Po#7e8Mg&T{>Cu%X@68w?DLUY;(FAr*{oZ)|To>>zOT z!a~W;d#Ap~zYtw8!J=P$z2hI}Nh+R`zGRE0hCXNf`tlCT^0z`4_!%XayPWY>m}aW@ zS)fJBu$EyPi>bqfc?*mMOw?bnu&A#5m+5FMP~sWD$`UIa!sNJ}MbzQK--$EyIF1@C z21|E{hivI%)Rf~~G3~&e{OjIwM(?9*I%|X(nt6;)C^YjlP3!&6%FK~8y|>Pxxgj+< z?t((X%^B<_91&(!WHpbI#tstTkL^y&7@dTg>A6*F+ z9qHE+F+g^RcYx!8O&|9qd~js9`_Tuq32Yr2G3(;z1KZ*kK5xw3?{c2`b{*p!_3eN8 zEd29+2XoJ1-~P8$mdKI;Vst E0Ol&F{r~^~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/round_keyboard_capslock.png b/app/src/main/res/drawable-xxhdpi/round_keyboard_capslock.png new file mode 100644 index 0000000000000000000000000000000000000000..9658371fca735b3651a10b60554f57ac54bef36d GIT binary patch literal 551 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$farf$^QEi(^Oy zwPEezaEFLv!+Zn6H`?~mn- zF>*2O)l5KB(LqA?-PQBL#joyuwPn|Bt{bb*tyJQAE(;Znl;=3IYz zmdo?2eupjQ%AfzzG0&tW`nJURmX3X)zjJ#Q=k}&MxwPl@Oa?QK=k`1XGrr%JXumB5 zRF!Aa^7-dSpZ*tX692^4&J{cVr^7C^`r~oIx&IeWk9!xcFMjWB>Q?#svx%iKb3@#( zuKg#wef9CHC;OkzU1y3EDrKt{zw-UMao4W2-7DsWe@{wg2Zqh6HCC(3lK=FFye|DS z%{?jdPIJUpH;wLU(bfAnQVZpirv^+bmt1WJWa}qgHD0LmE^*DR-qv!JZ x^2#rcIVsDlqV}%c7k9bfUbz3N|5zjAV!5uRefBNqqkGp9KJz%-`+C8|~mK<_bl My85}Sb4q9e080jRR{#J2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/round_keyboard_capslock_black_24.png b/app/src/main/res/drawable-xxhdpi/round_keyboard_capslock_black_24.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e2d37b6756bc9e222e9f13eab8873d14666d60 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!KRsO>Ln;{G-Vi+Flqk{mP}+{C z?*4o0cXBL_6N)8T5(QX(eqwc;pdUX$f4KsO|DB1~?ybGI@9y<)Kgu3A*Y&A*P6DDO zOgxRu8<>B+&^#xWVI6%jRYrNQ@N(&s7H(CN$35->DdTfu7Gd(50?QfpzEWm=#1K%w zBw|j*l3$On$ZN`}%dPxpvDJ<1IHyb0q!@cSb(xil8)I$!EG~5&x%ScGp+~S#_M<|l ziSG``pEN!2%lUdHquT+-2!{V5Za~|E7@r-G%-Fxh)<9t;=LNN!EiLCdndW-Dn5J=I zVvAWPQ?KU=_A?Eq#Sh0css{Y906SR4vxbP0l+XkKfVO%2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/round_keyboard_capslock_black_36.png b/app/src/main/res/drawable-xxhdpi/round_keyboard_capslock_black_36.png new file mode 100644 index 0000000000000000000000000000000000000000..58bbb9740e2e53242456fe3f77952dec062622b9 GIT binary patch literal 422 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz1|<8_!p|}=Fy?x?IEGX(zP%+F;F2iP_K>;T zQGhK`f^8>@qh0sIUqF)E(JoP-#nH}DfF)5vhsCkLTHx&&Hgn7G|L3PaE3QcAn+r4z z1{(IieYURn{LbZfLi5zU9;s|U#hd;6gsiLPoM-!r54Y8Z^{a*b%}ClR>bvIG#Urca z!IaS2zY&W>yT975%}AR2Of0xl?b>=ySK;hg7mo<7t<$*})u9>%RB^RmHEQxk7i}5u zEo@1hW``0dM*Q#GCN5hkDZM&i%kLLQ{0>GWFRFD@=j%EqC7f$*WpKJSwA)naR&>de zMNw-6FFw0CG4h?6`I_9R)}2=8%wn2TOI}%&Pu+cb?(?$6^ZwpRefQ4%N?;Bsbbw&< z9i{IRqMx>P=1$#x{%m#U*BR1MH+{wT%k<{HYus|iW(ptgJ6ox5*Ah0gXWZCyFrho+ zM%cTp3nTh>MlQLwSXaGHF1|?I_XrcjG!XfK{mFH~zdcJ2WPo^{u6{1-oD!M<-UYBX literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/round_format_size.png b/app/src/main/res/drawable-xxxhdpi/round_format_size.png new file mode 100644 index 0000000000000000000000000000000000000000..9d5cfae04c5b4d78adf06c6eab6040ff50bc9cc3 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!KRsO>Ln;{G-dMeP1Mq5ku&x?ZD+zUL$r&q@0Y7?cf|`4fI0s%8*> zkkPZ5VfKr;f-@U@fAo2*x#S?OV)k;ka^YmQSraWhnR`8C8dmF^W8z_0=AnM@d@ie6 z=p5O95B_q6EMO8{;jnIIQu|Fu0S|-VIrWwoRA$ItX$(8~W&t0N#nQ-Pd~^+vrRkQd zaL{KXL$lt5gk?W$tbZ_T?knLAS#Ta|2CLQt&qg@=LU3)o!JG51em5o7U%4mF^PAh? n#XIh{zuy(|cgzR69*D$`TZ%o~x}h)w7zhlWu6{1-oD!M<+Qe}Y literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/round_format_size_black_24.png b/app/src/main/res/drawable-xxxhdpi/round_format_size_black_24.png new file mode 100644 index 0000000000000000000000000000000000000000..9c5e96869613e97c05cd0d0238cfc74aa2f276d1 GIT binary patch literal 405 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>V2tr}aSW+oe0xhUz$H-R_(N_- zftK@{<<}Ex#XfO<;w)-ch*;hV1T|t}a&{-wPdqQvsGL$_RlYC(*?IoDfYLl>pjiwI z9wnmH9dnbs*ZluHH+lWW-)0S(Wqn^4Rd?Ura>#FET+Q*YE6Hp4H~DJ6un1^y)_zgE zfWcdP1^yW{Jl+uIMl>-w))*6FMKNBfcGH@V+hU!1>d zmffwpP;bd1z`)4jz`!V=@IP($uAN*PcHMk-C#INr$4$A;p7U0B9f~Vu3@$&VS#t_p9E$`oHe& z_9eG}-CzHET1ou>-=+5_#U%y*eSf{$dsp3S%M;%j!9l|CK$>rbhgQdXufHI^r>mdK II;Vst08G`V8vpN*z@BcsCtfR7fxrEL8#~Po#7e8Mg&T{>Cu%X@68w?DLUY;(FAr*{oZ)|To>>zOT z!a~W;d#Ap~zYtw8!J=P$z2hI}Nh+R`zGRE0hCXNf`tlCT^0z`4_!%XayPWY>m}aW@ zS)fJBu$EyPi>bqfc?*mMOw?bnu&A#5m+5FMP~sWD$`UIa!sNJ}MbzQK--$EyIF1@C z21|E{hivI%)Rf~~G3~&e{OjIwM(?9*I%|X(nt6;)C^YjlP3!&6%FK~8y|>Pxxgj+< z?t((X%^B<_91&(!WHpbI#tstTkL^y&7@dTg>A6*F+ z9qHE+F+g^RcYx!8O&|9qd~js9`_Tuq32Yr2G3(;z1KZ*kK5xw3?{c2`b{*p!_3eN8 zEd29+2XoJ1-~P8$mdKI;Vst E0Ol&F{r~^~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/round_format_size_black_48.png b/app/src/main/res/drawable-xxxhdpi/round_format_size_black_48.png new file mode 100644 index 0000000000000000000000000000000000000000..09e6cff24eb02084f5a58f779e14c349eeba7017 GIT binary patch literal 688 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE8Azrw%`pX1X#qYVu0Wa&pde?;HJ~+0B|(0{ z3?j*^kKg})cyTn3#N^-K>jk_&Kexya_E(u-{rGgV!RGY-?GqATFfcG)_jGX#sbGA2 z>tIn+fB@^oz|spED;6*=Ui9<-{4@8~zI0c;n*LvG@8TW8lTOdk=|ID!npfEPwAsuxefC? zSNAvm^1ES~aNf!>SANIGi8D?MsP=r1X0LGwiFe-9`ag}Ui;+ztp#er5c)xG`Zarxr zb@tx@whz1W%afRY+}-|jj@bhCvRDO%yS2NSL9)MJGO;CGXJz_uxBM_r+51_%56bUn zZDPo}{x_R3+^pe#?erXm{lE2YFw}jY>n~=&v|CTW;r+hd3Lw+&`bh}*gLI#``&}jh zsBBwp1LL1})sjtIKvS;APUnA6?<0wD6kgV!#SPlO=j~UI-Sqxv^(9sibM9ggv#M?1 z^Y@Vo%Y)D SGK;MNr8`eoKbLh*2~7YAa0%D| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/round_keyboard_capslock.png b/app/src/main/res/drawable-xxxhdpi/round_keyboard_capslock.png new file mode 100644 index 0000000000000000000000000000000000000000..bb9907541dd500ff5c7e310ea30bbb7bce1dea11 GIT binary patch literal 724 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE4M+yv$zf+;V4Cge;uuoF`1USiigcpPv4;-> zSeRK1L<~e20=k&EBoZ2!+7@UmXh_mnpwXo$(UoK&a@2t5pa2gmkE=k6KGWeX7vuKn zPk;W9ong=aCo*?tgDfKmcrI()UFP{~X5OXcU(6iydoLwN{aJ2*+PNVv^V0M!6=~rs zJuh^B?7y6J^jP15@SgjE34i(+9+$I7>{mYULzeN_dk%v-_Y3k6y5XZW6Q+{->1wyD zSS0={@NWOYVeqfxtu0)Ueie&>hk5Jq_%}d_-A(A`VmA+L8 z<^LbuvIpB;j<#i9`~Okgx~YB3vrFn*8nbX=<8tCWzS2^sM%b}fjYjIuN5);n#=Y0pg?!&e6Gj0 zfYdauR*Ln;{G-Vi+Flqk{mP}+{C z?*4o0cXBL_6N)8T5(QX(eqwc;pdUX$f4KsO|DB1~?ybGI@9y<)Kgu3A*Y&A*P6DDO zOgxRu8<>B+&^#xWVI6%jRYrNQ@N(&s7H(CN$35->DdTfu7Gd(50?QfpzEWm=#1K%w zBw|j*l3$On$ZN`}%dPxpvDJ<1IHyb0q!@cSb(xil8)I$!EG~5&x%ScGp+~S#_M<|l ziSG``pEN!2%lUdHquT+-2!{V5Za~|E7@r-G%-Fxh)<9t;=LNN!EiLCdndW-Dn5J=I zVvAWPQ?KU=_A?Eq#Sh0css{Y906SR4vxbP0l+XkKfVO%2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/round_keyboard_capslock_black_24.png b/app/src/main/res/drawable-xxxhdpi/round_keyboard_capslock_black_24.png new file mode 100644 index 0000000000000000000000000000000000000000..5a5268300e99ffc0cfa5b8309c633239da7a5ddd GIT binary patch literal 401 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>V2to|aSW+oe0x!_fH_da?IClk zlY#^XOLKSQfvDQ9)*aU3kA+wGD+cgf$y^w~Bhu7(^gx)?%&@p+dn?P&nHT>(S3g0; za}pdakv3$z=1{&bJ)z~_QJEi1ZQZw-i~r4eEZ^{Oy7dv)ff``P^p1!d|vZQOt=HosP0p(*?S7e^FR?a3dFf-?37O^?~#3jUmcXzdMH zrzvZ%aA-=(yM}cse-?1$t6ZMeBQKNarnI{0<6`A4Dw{MU?5z&9q}<~^*5CEP$!W5@ zQi+4}9I+emf4*?_c;qmyX%O3?e9!g+gAF4u)a@m`nj0AH8Xg{7&wTB`43)G4f)ZN0 zYo~EUC#?8#O{HLsg@Zd&?NLTM&xG*823}5+11k@G>_0F?MJj>)%T%8ItZ5#IKv3}v bYRr$EVfA#!wgg^aP&0VC`njxgN@xNASmmIi literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/round_keyboard_capslock_black_36.png b/app/src/main/res/drawable-xxxhdpi/round_keyboard_capslock_black_36.png new file mode 100644 index 0000000000000000000000000000000000000000..9658371fca735b3651a10b60554f57ac54bef36d GIT binary patch literal 551 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$farf$^QEi(^Oy zwPEezaEFLv!+Zn6H`?~mn- zF>*2O)l5KB(LqA?-PQBL#joyuwPn|Bt{bb*tyJQAE(;Znl;=3IYz zmdo?2eupjQ%AfzzG0&tW`nJURmX3X)zjJ#Q=k}&MxwPl@Oa?QK=k`1XGrr%JXumB5 zRF!Aa^7-dSpZ*tX692^4&J{cVr^7C^`r~oIx&IeWk9!xcFMjWB>Q?#svx%iKb3@#( zuKg#wef9CHC;OkzU1y3EDrKt{zw-UMao4W2-7DsWe@{wg2Zqh6HCC(3lK=FFye|DS z%{?jdPIJUpH;wLU(bfAnQVZpirv^+bmt1WJWa}qgHD0LmE^*DR-qv!JZ x^2#rcIVsDlqV}%c7k9bfUbz3N|5zjAV!5uRefBNqqk + + diff --git a/app/src/main/res/drawable/round_keyboard_capslock_24.xml b/app/src/main/res/drawable/round_keyboard_capslock_24.xml new file mode 100644 index 0000000..5ccc102 --- /dev/null +++ b/app/src/main/res/drawable/round_keyboard_capslock_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/activity_custom_date.xml b/app/src/main/res/layout/activity_custom_date.xml index 790c1a5..4129067 100644 --- a/app/src/main/res/layout/activity_custom_date.xml +++ b/app/src/main/res/layout/activity_custom_date.xml @@ -5,6 +5,9 @@ + - + android:layout_height="wrap_content"> + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ff8d561..cd9f5fd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -233,4 +233,5 @@ Icon pack Default Minimal + Capitalize the date