diff --git a/app/build.gradle b/app/build.gradle index e0f63e9e1..c505bbdbc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,8 +18,8 @@ android { applicationId 'org.koitharu.kotatsu' minSdk = 21 targetSdk = 35 - versionCode = 689 - versionName = '7.7-beta1' + versionCode = 690 + versionName = '7.7-beta2' generatedDensities = [] testInstrumentationRunner 'org.koitharu.kotatsu.HiltTestRunner' ksp { diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 79c61d6e5..00337a665 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -27,3 +27,4 @@ -keep class org.acra.security.NoKeyStoreFactory { *; } -keep class org.acra.config.DefaultRetryPolicy { *; } -keep class org.acra.attachment.DefaultAttachmentProvider { *; } +-keep class org.acra.sender.JobSenderService diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/browser/cloudflare/CaptchaNotifier.kt b/app/src/main/kotlin/org/koitharu/kotatsu/browser/cloudflare/CaptchaNotifier.kt index 33439e8b0..48d900c10 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/browser/cloudflare/CaptchaNotifier.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/browser/cloudflare/CaptchaNotifier.kt @@ -44,7 +44,7 @@ class CaptchaNotifier( .setContentTitle(channel.name) .setPriority(NotificationCompat.PRIORITY_LOW) .setDefaults(0) - .setSmallIcon(android.R.drawable.stat_notify_error) + .setSmallIcon(R.drawable.ic_bot) .setGroup(GROUP_CAPTCHA) .setAutoCancel(true) .setVisibility( diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/prefs/AppSettings.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/prefs/AppSettings.kt index 0d134583b..0deade46f 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/prefs/AppSettings.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/prefs/AppSettings.kt @@ -472,7 +472,10 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) { get() = prefs.getBoolean(KEY_BACKUP_PERIODICAL_ENABLED, false) val periodicalBackupFrequency: Long - get() = TimeUnit.DAYS.toMillis(prefs.getString(KEY_BACKUP_PERIODICAL_FREQUENCY, null)?.toLongOrNull() ?: 7L) + get() = prefs.getString(KEY_BACKUP_PERIODICAL_FREQUENCY, null)?.toLongOrNull() ?: 7L + + val periodicalBackupFrequencyMillis: Long + get() = TimeUnit.DAYS.toMillis(periodicalBackupFrequency) val periodicalBackupMaxCount: Int get() = if (prefs.getBoolean(KEY_BACKUP_PERIODICAL_TRIM, true)) { diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/BaseActivity.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/BaseActivity.kt index 451dd4a97..f9c89b131 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/BaseActivity.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/BaseActivity.kt @@ -112,9 +112,13 @@ abstract class BaseActivity : } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { - if (BuildConfig.DEBUG && keyCode == KeyEvent.KEYCODE_VOLUME_UP) { - ActivityCompat.recreate(this) - return true + if (BuildConfig.DEBUG) { + if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) { + ActivityCompat.recreate(this) + return true + } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { + throw RuntimeException("Test crash") + } } return super.onKeyDown(keyCode, event) } diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/settings/backup/PeriodicalBackupService.kt b/app/src/main/kotlin/org/koitharu/kotatsu/settings/backup/PeriodicalBackupService.kt index 81602e128..51b90f8e0 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/settings/backup/PeriodicalBackupService.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/settings/backup/PeriodicalBackupService.kt @@ -26,7 +26,7 @@ class PeriodicalBackupService : CoroutineIntentService() { return } val lastBackupDate = externalBackupStorage.getLastBackupDate() - if (lastBackupDate != null && lastBackupDate.time + settings.periodicalBackupFrequency > System.currentTimeMillis()) { + if (lastBackupDate != null && lastBackupDate.time + settings.periodicalBackupFrequencyMillis > System.currentTimeMillis()) { return } val output = BackupZipOutput.createTemp(applicationContext) diff --git a/app/src/main/res/drawable-anydpi-v24/ic_bot.xml b/app/src/main/res/drawable-anydpi-v24/ic_bot.xml new file mode 100644 index 000000000..0171d5838 --- /dev/null +++ b/app/src/main/res/drawable-anydpi-v24/ic_bot.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable-hdpi/ic_bot.png b/app/src/main/res/drawable-hdpi/ic_bot.png new file mode 100644 index 000000000..68f9535b9 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_bot.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_bot.png b/app/src/main/res/drawable-mdpi/ic_bot.png new file mode 100644 index 000000000..c895cd287 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_bot.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_bot.png b/app/src/main/res/drawable-xhdpi/ic_bot.png new file mode 100644 index 000000000..73637b125 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_bot.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_bot.png b/app/src/main/res/drawable-xxhdpi/ic_bot.png new file mode 100644 index 000000000..8b1f3afb7 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_bot.png differ