diff --git a/app/build.gradle b/app/build.gradle index 7035b8ae..d9f5c3f1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,7 +28,6 @@ android { proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } buildTypes.each { - it.buildConfigField('boolean', 'PRERELEASE', 'false') it.buildConfigField('boolean', 'CENSOR', 'false') } } @@ -39,7 +38,7 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - buildToolsVersion = '29.0.1' + buildToolsVersion = '29.0.2' } dependencies { diff --git a/app/src/main/java/xyz/quaver/pupil/ui/SettingsActivity.kt b/app/src/main/java/xyz/quaver/pupil/ui/SettingsActivity.kt index 291c7753..61b0fe96 100644 --- a/app/src/main/java/xyz/quaver/pupil/ui/SettingsActivity.kt +++ b/app/src/main/java/xyz/quaver/pupil/ui/SettingsActivity.kt @@ -45,10 +45,7 @@ import xyz.quaver.pupil.Pupil import xyz.quaver.pupil.R import xyz.quaver.pupil.types.Tags import xyz.quaver.pupil.ui.dialog.DownloadLocationDialog -import xyz.quaver.pupil.util.Lock -import xyz.quaver.pupil.util.LockManager -import xyz.quaver.pupil.util.byteToString -import xyz.quaver.pupil.util.getDownloadDirectory +import xyz.quaver.pupil.util.* import java.io.File import java.nio.charset.Charset import java.util.* @@ -120,7 +117,13 @@ class SettingsActivity : AppCompatActivity() { val manager = context.packageManager val info = manager.getPackageInfo(context.packageName, 0) - summary = info.versionName + summary = context.getString(R.string.settings_app_version_description, info.versionName) + + setOnPreferenceClickListener { + checkUpdate(activity as SettingsActivity, true) + + true + } } with(findPreference("delete_cache")) { diff --git a/app/src/main/java/xyz/quaver/pupil/util/update.kt b/app/src/main/java/xyz/quaver/pupil/util/update.kt index 13266ae6..a206be15 100644 --- a/app/src/main/java/xyz/quaver/pupil/util/update.kt +++ b/app/src/main/java/xyz/quaver/pupil/util/update.kt @@ -54,18 +54,17 @@ fun getReleases(url: String) : JsonArray { } } -fun checkUpdate(url: String) : JsonObject? { +fun checkUpdate(context: Context, url: String) : JsonObject? { val releases = getReleases(url) if (releases.isEmpty()) return null return releases.firstOrNull { - if (BuildConfig.PRERELEASE) { + if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean("beta", false)) true - } else { + else it.jsonObject["prerelease"]?.boolean == false - } }?.let { if (it.jsonObject["tag_name"]?.content == BuildConfig.VERSION_NAME) null @@ -82,13 +81,13 @@ fun getApkUrl(releases: JsonObject) : String? { } } -val UPDATE_NOTIFICATION_ID = 384823 -fun checkUpdate(context: AppCompatActivity) { +const val UPDATE_NOTIFICATION_ID = 384823 +fun checkUpdate(context: AppCompatActivity, force: Boolean = false) { val preferences = PreferenceManager.getDefaultSharedPreferences(context) val ignoreUpdateUntil = preferences.getLong("ignore_update_until", 0) - if (ignoreUpdateUntil > System.currentTimeMillis()) + if (!force && ignoreUpdateUntil > System.currentTimeMillis()) return fun extractReleaseNote(update: JsonObject, locale: Locale) : String { @@ -135,7 +134,7 @@ fun checkUpdate(context: AppCompatActivity) { CoroutineScope(Dispatchers.Default).launch { val update = - checkUpdate(context.getString(R.string.release_url)) ?: return@launch + checkUpdate(context, context.getString(R.string.release_url)) ?: return@launch val url = getApkUrl(update) ?: return@launch @@ -185,10 +184,11 @@ fun checkUpdate(context: AppCompatActivity) { notificationManager.notify(UPDATE_NOTIFICATION_ID, builder.build()) } } - setNegativeButton(R.string.ignore_update) { _, _ -> - preferences.edit() - .putLong("ignore_update_until", System.currentTimeMillis() + 604800000) - .apply() + setNegativeButton(if (force) android.R.string.no else R.string.ignore_update) { _, _ -> + if (!force) + preferences.edit() + .putLong("ignore_update_until", System.currentTimeMillis() + 604800000) + .apply() } } diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 625fcd2b..74bf6715 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -69,7 +69,7 @@ ディスコード アプリロック アップロックの種類 - バージョン + バージョン(アップデート確認) 生体認識 ロック確認のためもう一回入力してください。 有効 @@ -116,4 +116,6 @@ %s 使用可能 ダウンロードが完了しました ここをクリックしてアップデートを行えます + ベータチャンネルでアップデートを受信 + v%s \ No newline at end of file diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 5c2ecdde..bbaa7d97 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -69,7 +69,7 @@ 디스코드 앱 잠금 앱 잠금 종류 - 앱 버전 + 앱 버전(업데이트 확인) 생체 인식 잠금 확인을 위해 한번 더 입력해주세요 사용 중 @@ -116,4 +116,6 @@ %s 사용 가능 다운로드가 완료되었습니다 여기를 클릭해서 업데이트를 진행할 수 있습니다 + 베타 채널에서 업데이트 + v%s \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index afd7d1fd..d2852e5b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -115,7 +115,12 @@ Settings - App version + App version(Click to check update) + v%s + Update from beta channel + + + Search Settings Galleries per page Default query diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml index 4cf82f4e..01522582 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -6,6 +6,10 @@ app:title="@string/settings_app_version_title" app:key="app_version"/> + +