diff --git a/.editorconfig b/.editorconfig index 1606d61f..c79c990f 100644 --- a/.editorconfig +++ b/.editorconfig @@ -17,7 +17,7 @@ insert_final_newline = true charset = utf-8 indent_style = space indent_size = 4 -continuation_indent_size = 8 +continuation_indent_size = 4 [*.xml] continuation_indent_size = 4 diff --git a/CHANGELOG.md b/CHANGELOG.md index e86a5da0..d78b5bda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ Changelog ========== +Version 5.5.0 *(2020-12-29)* +---------------------------- + + * Added some stability and translation improvements + * Require a Simple Thank You purchase for color customization + Version 5.4.0 *(2020-11-05)* ---------------------------- diff --git a/README.md b/README.md index d0d04ff6..3f3d0564 100644 --- a/README.md +++ b/README.md @@ -21,8 +21,8 @@ This app is just one piece of a bigger series of apps. You can find the rest of Get it on F-Droid
-App image -App image -App image +App image +App image +App image
diff --git a/app/build.gradle b/app/build.gradle index 2f4877ad..b912d133 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,8 +15,8 @@ android { applicationId "com.simplemobiletools.clock" minSdkVersion 21 targetSdkVersion 30 - versionCode 21 - versionName "5.4.0" + versionCode 22 + versionName "5.5.0" setProperty("archivesBaseName", "clock") vectorDrawables.useSupportLibrary = true } @@ -66,14 +66,14 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.31.24' + implementation 'com.github.SimpleMobileTools:Simple-Commons:99a97f2e16' implementation 'com.facebook.stetho:stetho:1.5.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.0-rc1' + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation 'com.shawnlin:number-picker:2.4.6' - implementation "androidx.preference:preference:1.1.1" - implementation "androidx.work:work-runtime-ktx:2.4.0" - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.7' - implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.2.0' + implementation "androidx.preference:preference-ktx:1.1.1" + implementation "androidx.work:work-runtime-ktx:2.5.0" + implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.1' + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' implementation 'org.greenrobot:eventbus:3.2.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' } diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/clock/activities/SettingsActivity.kt index f4e29e65..ffb5a770 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/activities/SettingsActivity.kt @@ -49,15 +49,16 @@ class SettingsActivity : SimpleActivity() { } private fun setupPurchaseThankYou() { - settings_purchase_thank_you_holder.beVisibleIf(!isThankYouInstalled()) + settings_purchase_thank_you_holder.beGoneIf(isOrWasThankYouInstalled()) settings_purchase_thank_you_holder.setOnClickListener { launchPurchaseThankYouIntent() } } private fun setupCustomizeColors() { + settings_customize_colors_label.text = getCustomizeColorsString() settings_customize_colors_holder.setOnClickListener { - startCustomizationActivity() + handleCustomizeColorsClick() } } diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/EditAlarmDialog.kt b/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/EditAlarmDialog.kt index 1bd76c51..0ef20a82 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/EditAlarmDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/dialogs/EditAlarmDialog.kt @@ -3,6 +3,7 @@ package com.simplemobiletools.clock.dialogs import android.app.TimePickerDialog import android.graphics.drawable.Drawable import android.media.AudioManager +import android.media.RingtoneManager import android.widget.TextView import androidx.appcompat.app.AlertDialog import com.simplemobiletools.clock.R @@ -13,9 +14,9 @@ import com.simplemobiletools.clock.helpers.TODAY_BIT import com.simplemobiletools.clock.helpers.TOMORROW_BIT import com.simplemobiletools.clock.helpers.getCurrentDayMinutes import com.simplemobiletools.clock.models.Alarm +import com.simplemobiletools.commons.dialogs.ConfirmationDialog import com.simplemobiletools.commons.dialogs.SelectAlarmSoundDialog import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.ALARM_SOUND_TYPE_ALARM import com.simplemobiletools.commons.models.AlarmSound import kotlinx.android.synthetic.main.dialog_edit_alarm.view.* import java.util.* @@ -36,18 +37,18 @@ class EditAlarmDialog(val activity: SimpleActivity, val alarm: Alarm, val callba edit_alarm_sound.colorLeftDrawable(textColor) edit_alarm_sound.text = alarm.soundTitle edit_alarm_sound.setOnClickListener { - SelectAlarmSoundDialog(activity, alarm.soundUri, AudioManager.STREAM_ALARM, PICK_AUDIO_FILE_INTENT_ID, ALARM_SOUND_TYPE_ALARM, true, + SelectAlarmSoundDialog(activity, alarm.soundUri, AudioManager.STREAM_ALARM, PICK_AUDIO_FILE_INTENT_ID, RingtoneManager.TYPE_ALARM, true, onAlarmPicked = { if (it != null) { updateSelectedAlarmSound(it) } }, onAlarmSoundDeleted = { - if (alarm.soundUri == it.uri) { - val defaultAlarm = context.getDefaultAlarmSound(ALARM_SOUND_TYPE_ALARM) - updateSelectedAlarmSound(defaultAlarm) - } - activity.checkAlarmsWithDeletedSoundUri(it.uri) - }) + if (alarm.soundUri == it.uri) { + val defaultAlarm = context.getDefaultAlarmSound(RingtoneManager.TYPE_ALARM) + updateSelectedAlarmSound(defaultAlarm) + } + activity.checkAlarmsWithDeletedSoundUri(it.uri) + }) } edit_alarm_vibrate.colorLeftDrawable(textColor) @@ -101,6 +102,15 @@ class EditAlarmDialog(val activity: SimpleActivity, val alarm: Alarm, val callba .create().apply { activity.setupDialogStuff(view, this) { getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener { + if (!activity.config.wasAlarmWarningShown) { + ConfirmationDialog(activity, messageId = R.string.alarm_warning, positive = R.string.ok, negative = 0) { + activity.config.wasAlarmWarningShown = true + it.performClick() + } + + return@setOnClickListener + } + if (alarm.days <= 0) { alarm.days = if (alarm.timeInMinutes > getCurrentDayMinutes()) { TODAY_BIT diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt index 4dc1754a..ba3a1a9c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt @@ -7,8 +7,8 @@ import android.content.ComponentName import android.content.Context import android.content.Intent import android.media.AudioAttributes -import android.media.AudioManager import android.media.AudioManager.STREAM_ALARM +import android.media.RingtoneManager import android.net.Uri import android.os.PowerManager import android.text.SpannableString @@ -33,7 +33,6 @@ import com.simplemobiletools.commons.helpers.* import java.util.* import kotlin.math.pow - val Context.config: Config get() = Config.newInstance(applicationContext) val Context.dbHelper: DBHelper get() = DBHelper.newInstance(applicationContext) @@ -74,7 +73,7 @@ fun Context.getAllTimeZonesModified(): ArrayList { fun Context.getModifiedTimeZoneTitle(id: Int) = getAllTimeZonesModified().firstOrNull { it.id == id }?.title ?: getDefaultTimeZoneTitle(id) fun Context.createNewAlarm(timeInMinutes: Int, weekDays: Int): Alarm { - val defaultAlarmSound = getDefaultAlarmSound(ALARM_SOUND_TYPE_ALARM) + val defaultAlarmSound = getDefaultAlarmSound(RingtoneManager.TYPE_ALARM) return Alarm(0, timeInMinutes, weekDays, false, false, defaultAlarmSound.title, defaultAlarmSound.uri, "") } @@ -408,7 +407,7 @@ fun Context.getReminderActivityIntent(): PendingIntent { } fun Context.checkAlarmsWithDeletedSoundUri(uri: String) { - val defaultAlarmSound = getDefaultAlarmSound(ALARM_SOUND_TYPE_ALARM) + val defaultAlarmSound = getDefaultAlarmSound(RingtoneManager.TYPE_ALARM) dbHelper.getAlarmsWithUri(uri).forEach { it.soundTitle = defaultAlarmSound.title it.soundUri = defaultAlarmSound.uri diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/fragments/TimerFragment.kt b/app/src/main/kotlin/com/simplemobiletools/clock/fragments/TimerFragment.kt index 10e5b66f..cac7c2c7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/fragments/TimerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/fragments/TimerFragment.kt @@ -2,6 +2,7 @@ package com.simplemobiletools.clock.fragments import android.graphics.Color import android.media.AudioManager +import android.media.RingtoneManager import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -15,7 +16,6 @@ import com.simplemobiletools.clock.helpers.PICK_AUDIO_FILE_INTENT_ID import com.simplemobiletools.clock.models.TimerState import com.simplemobiletools.commons.dialogs.SelectAlarmSoundDialog import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.ALARM_SOUND_TYPE_ALARM import com.simplemobiletools.commons.models.AlarmSound import kotlinx.android.synthetic.main.fragment_timer.view.* import org.greenrobot.eventbus.EventBus @@ -45,7 +45,7 @@ class TimerFragment : Fragment() { timer_time.text = config.timerSeconds.getFormattedDuration() timer_label.setText(config.timerLabel) - requiredActivity.updateTextColors(timer_fragment) + activity?.updateTextColors(timer_fragment) timer_play_pause.background = resources.getColoredDrawableWithColor(R.drawable.circle_background_filled, requireContext().getAdjustedPrimaryColor()) timer_play_pause.applyColorFilter(if (requireContext().getAdjustedPrimaryColor() == Color.WHITE) Color.BLACK else Color.WHITE) timer_reset.applyColorFilter(textColor) @@ -80,12 +80,12 @@ class TimerFragment : Fragment() { stopTimer() } + timer_time.setOnClickListener { + changeDuration() + } + timer_initial_time.setOnClickListener { - MyTimePickerDialogDialog(activity as SimpleActivity, config.timerSeconds) { seconds -> - val timerSeconds = if (seconds <= 0) 10 else seconds - config.timerSeconds = timerSeconds - timer_initial_time.text = timerSeconds.getFormattedDuration() - } + changeDuration() } timer_vibrate_holder.setOnClickListener { @@ -96,7 +96,7 @@ class TimerFragment : Fragment() { timer_sound.setOnClickListener { SelectAlarmSoundDialog(activity as SimpleActivity, config.timerSoundUri, AudioManager.STREAM_ALARM, PICK_AUDIO_FILE_INTENT_ID, - ALARM_SOUND_TYPE_ALARM, true, + RingtoneManager.TYPE_ALARM, true, onAlarmPicked = { sound -> if (sound != null) { updateAlarmSound(sound) @@ -104,7 +104,7 @@ class TimerFragment : Fragment() { }, onAlarmSoundDeleted = { sound -> if (config.timerSoundUri == sound.uri) { - val defaultAlarm = context.getDefaultAlarmSound(ALARM_SOUND_TYPE_ALARM) + val defaultAlarm = context.getDefaultAlarmSound(RingtoneManager.TYPE_ALARM) updateAlarmSound(defaultAlarm) } @@ -122,8 +122,21 @@ class TimerFragment : Fragment() { private fun stopTimer() { EventBus.getDefault().post(TimerState.Idle) - requiredActivity.hideTimerNotification() - view.timer_time.text = requiredActivity.config.timerSeconds.getFormattedDuration() + activity?.hideTimerNotification() + view.timer_time.text = activity?.config?.timerSeconds?.getFormattedDuration() + } + + private fun changeDuration() { + MyTimePickerDialogDialog(activity as SimpleActivity, requireContext().config.timerSeconds) { seconds -> + val timerSeconds = if (seconds <= 0) 10 else seconds + activity?.config?.timerSeconds = timerSeconds + val duration = timerSeconds.getFormattedDuration() + view.timer_initial_time.text = duration + + if (view.timer_reset.isGone()) { + stopTimer() + } + } } @Subscribe(threadMode = ThreadMode.MAIN) @@ -159,7 +172,7 @@ class TimerFragment : Fragment() { R.drawable.ic_play_vector } - val iconColor = if (requiredActivity.getAdjustedPrimaryColor() == Color.WHITE) { + val iconColor = if (activity?.getAdjustedPrimaryColor() == Color.WHITE) { Color.BLACK } else { Color.WHITE @@ -169,8 +182,8 @@ class TimerFragment : Fragment() { } fun updateAlarmSound(alarmSound: AlarmSound) { - requiredActivity.config.timerSoundTitle = alarmSound.title - requiredActivity.config.timerSoundUri = alarmSound.uri + activity?.config?.timerSoundTitle = alarmSound.title + activity?.config?.timerSoundUri = alarmSound.uri view.timer_sound.text = alarmSound.title } } diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Config.kt index bac2027d..f8835dbd 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/helpers/Config.kt @@ -2,13 +2,13 @@ package com.simplemobiletools.clock.helpers import android.content.Context import com.simplemobiletools.clock.models.AlarmSort +import android.media.RingtoneManager import com.simplemobiletools.clock.extensions.gson.gson import com.simplemobiletools.clock.models.Alarm import com.simplemobiletools.clock.models.StateWrapper import com.simplemobiletools.clock.models.TimerState +import com.simplemobiletools.commons.extensions.getDefaultAlarmSound import com.simplemobiletools.commons.extensions.getDefaultAlarmTitle -import com.simplemobiletools.commons.extensions.getDefaultAlarmUri -import com.simplemobiletools.commons.helpers.ALARM_SOUND_TYPE_ALARM import com.simplemobiletools.commons.helpers.BaseConfig class Config(context: Context) : BaseConfig(context) { @@ -43,11 +43,11 @@ class Config(context: Context) : BaseConfig(context) { set(timerVibrate) = prefs.edit().putBoolean(TIMER_VIBRATE, timerVibrate).apply() var timerSoundUri: String - get() = prefs.getString(TIMER_SOUND_URI, context.getDefaultAlarmUri(ALARM_SOUND_TYPE_ALARM).toString())!! + get() = prefs.getString(TIMER_SOUND_URI, context.getDefaultAlarmSound(RingtoneManager.TYPE_ALARM).uri)!! set(timerSoundUri) = prefs.edit().putString(TIMER_SOUND_URI, timerSoundUri).apply() var timerSoundTitle: String - get() = prefs.getString(TIMER_SOUND_TITLE, context.getDefaultAlarmTitle(ALARM_SOUND_TYPE_ALARM))!! + get() = prefs.getString(TIMER_SOUND_TITLE, context.getDefaultAlarmTitle(RingtoneManager.TYPE_ALARM))!! set(timerSoundTitle) = prefs.edit().putString(TIMER_SOUND_TITLE, timerSoundTitle).apply() var timerMaxReminderSecs: Int @@ -59,8 +59,7 @@ class Config(context: Context) : BaseConfig(context) { set(label) = prefs.edit().putString(TIMER_LABEL, label).apply() var alarmSort: AlarmSort - get() = AlarmSort.valueOf(prefs.getInt(ALARM_SORT, AlarmSort.default().value)) - ?: AlarmSort.default() + get() = AlarmSort.valueOf(prefs.getInt(ALARM_SORT, AlarmSort.default().value)) ?: AlarmSort.default() set(alarmSort) = prefs.edit().putInt(ALARM_SORT, alarmSort.value).apply() var alarmMaxReminderSecs: Int diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/AlarmReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/AlarmReceiver.kt index a9442c2b..60200b52 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/AlarmReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/AlarmReceiver.kt @@ -16,6 +16,7 @@ import com.simplemobiletools.clock.activities.ReminderActivity import com.simplemobiletools.clock.extensions.* import com.simplemobiletools.clock.helpers.ALARM_ID import com.simplemobiletools.clock.helpers.ALARM_NOTIF_ID +import com.simplemobiletools.commons.extensions.showErrorToast import com.simplemobiletools.commons.helpers.isOreoPlus class AlarmReceiver : BroadcastReceiver() { @@ -59,7 +60,11 @@ class AlarmReceiver : BroadcastReceiver() { .setCategory(NotificationCompat.CATEGORY_ALARM) .setFullScreenIntent(pendingIntent, true) - notificationManager.notify(ALARM_NOTIF_ID, builder.build()) + try { + notificationManager.notify(ALARM_NOTIF_ID, builder.build()) + } catch (e: Exception) { + context.showErrorToast(e) + } } else { Intent(context, ReminderActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index a74cbaf9..43a1ff10 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -44,7 +44,7 @@ android:paddingBottom="@dimen/activity_margin"> Check out the full suite of Simple Tools here: + Entdecke die gesamte Serie an schlichten Apps hier: https://www.simplemobiletools.com Facebook: diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 553bea28..7458d25a 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -5,23 +5,23 @@ Created at Time of day Värinä - Nimi + Tunniste Ei päiviä valittuna Ajastin - Väliaika + Kierrosaika Sekuntikello pysäytetty Ajastin on pysäytetty Herätyksen maksimikesto Ajastimen aika päättynyt Kello ja päivä - Käytä tekstin varjoa - Pyyhkäise oikealle sammuttaaksesi, vasemmalle torkuttaaksesi. + Tekstin varjostus + Pyyhkäise oikealle sammuttaaksesi tai vasemmalle torkuttaaksesi.   - Kello - Herätyskello - Sekuntikello - Ajastin + Kello-välilehti + Herätyskello-välilehti + Sekuntikello-välilehti + Ajastin-välilehti Näytä sekunnit Lisää äänen voimakkuutta asteittain   diff --git a/build.gradle b/build.gradle index 1ff09348..ac335a39 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.4.10' + ext.kotlin_version = '1.4.32' repositories { google() @@ -9,7 +9,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:4.1.0' + classpath 'com.android.tools.build:gradle:4.1.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong diff --git a/fastlane/metadata/android/en-US/changelogs/22.txt b/fastlane/metadata/android/en-US/changelogs/22.txt new file mode 100644 index 00000000..388a0e7e --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/22.txt @@ -0,0 +1,2 @@ + * Added some stability and translation improvements + * Require a Simple Thank You purchase for color customization diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/app_1.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/app_1.jpg deleted file mode 100644 index d6e4165b..00000000 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/app_1.jpg and /dev/null differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/app_2.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/app_2.jpg deleted file mode 100644 index 86d8f997..00000000 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/app_2.jpg and /dev/null differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/app_3.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/app_3.jpg deleted file mode 100644 index 7b201c04..00000000 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/app_3.jpg and /dev/null differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/app_4.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/app_4.jpg deleted file mode 100644 index 60e61b05..00000000 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/app_4.jpg and /dev/null differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/app_5.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/app_5.jpg deleted file mode 100644 index 6fa74117..00000000 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/app_5.jpg and /dev/null differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/app_6.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/app_6.jpg deleted file mode 100644 index b54dd374..00000000 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/app_6.jpg and /dev/null differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/english/1.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/english/1.jpg new file mode 100644 index 00000000..65a25e0e Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/english/1.jpg differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/english/2.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/english/2.jpg new file mode 100644 index 00000000..155bc5ce Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/english/2.jpg differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/english/3.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/english/3.jpg new file mode 100644 index 00000000..77b42a25 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/english/3.jpg differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/english/4.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/english/4.jpg new file mode 100644 index 00000000..7583396b Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/english/4.jpg differ