Skip to content

Commit 7cb8e7c

Browse files
authored
Merge pull request #2326 from Luna712/remove-prerelease-setting
Replace the "Update to prereleases" setting with a new button
2 parents 1e9e9b4 + 8012339 commit 7cb8e7c

File tree

50 files changed

+55
-114
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+55
-114
lines changed

app/build.gradle.kts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ android {
6666
versionName = "4.6.1"
6767

6868
resValue("string", "commit_hash", getGitCommitHash())
69-
resValue("bool", "is_prerelease", "false")
7069

7170
manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get()
7271

@@ -120,11 +119,9 @@ android {
120119
productFlavors {
121120
create("stable") {
122121
dimension = "state"
123-
resValue("bool", "is_prerelease", "false")
124122
}
125123
create("prerelease") {
126124
dimension = "state"
127-
resValue("bool", "is_prerelease", "true")
128125
applicationIdSuffix = ".prerelease"
129126
if (signingConfigs.names.contains("prerelease")) {
130127
signingConfig = signingConfigs.getByName("prerelease")

app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsUpdates.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import com.lagradost.cloudstream3.ui.settings.utils.getChooseFolderLauncher
3333
import com.lagradost.cloudstream3.utils.BackupUtils
3434
import com.lagradost.cloudstream3.utils.BackupUtils.restorePrompt
3535
import com.lagradost.cloudstream3.utils.Coroutines.ioSafe
36+
import com.lagradost.cloudstream3.utils.InAppUpdater.installPreReleaseIfNeeded
3637
import com.lagradost.cloudstream3.utils.InAppUpdater.runAutoUpdate
3738
import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showBottomDialog
3839
import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showDialog
@@ -243,6 +244,14 @@ class SettingsUpdates : BasePreferenceFragmentCompat() {
243244
return@setOnPreferenceClickListener true
244245
}
245246
}
247+
248+
getPref(R.string.install_prerelease_key)?.let { pref ->
249+
pref.isVisible = BuildConfig.FLAVOR == "stable"
250+
pref.setOnPreferenceClickListener {
251+
activity?.installPreReleaseIfNeeded()
252+
return@setOnPreferenceClickListener true
253+
}
254+
}
246255

247256
getPref(R.string.auto_download_plugins_key)?.setOnPreferenceClickListener {
248257
val prefNames = resources.getStringArray(R.array.auto_download_plugin)

app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.lagradost.cloudstream3.utils
33
import android.app.Activity
44
import android.content.Context
55
import android.content.Intent
6+
import android.content.pm.PackageManager.NameNotFoundException
67
import android.net.Uri
78
import android.text.TextUtils
89
import android.util.Log
@@ -37,6 +38,7 @@ object InAppUpdater {
3738
private const val GITHUB_USER_NAME = "recloudstream"
3839
private const val GITHUB_REPO = "cloudstream"
3940

41+
private const val PRERELEASE_PACKAGE_NAME = "com.lagradost.cloudstream3.prerelease"
4042
private const val LOG_TAG = "InAppUpdater"
4143

4244
private data class GithubAsset(
@@ -73,17 +75,14 @@ object InAppUpdater {
7375
@JsonProperty("updateNodeId") val updateNodeId: String?,
7476
)
7577

76-
private suspend fun Activity.getAppUpdate(): Update {
78+
private suspend fun Activity.getAppUpdate(installPrerelease: Boolean): Update {
7779
return try {
78-
val settingsManager = PreferenceManager.getDefaultSharedPreferences(this)
79-
if (
80-
settingsManager.getBoolean(
81-
getString(R.string.prerelease_update_key),
82-
resources.getBoolean(R.bool.is_prerelease)
83-
)
84-
) {
85-
getPreReleaseUpdate()
86-
} else getReleaseUpdate()
80+
when {
81+
// No updates on debug version
82+
BuildConfig.DEBUG -> Update(false, null, null, null, null)
83+
BuildConfig.FLAVOR == "prerelease" || installPrerelease -> getPreReleaseUpdate()
84+
else -> getReleaseUpdate()
85+
}
8786
} catch (e: Exception) {
8887
Log.e(LOG_TAG, Log.getStackTraceString(e))
8988
Update(false, null, null, null, null)
@@ -226,17 +225,42 @@ object InAppUpdater {
226225
}
227226
}
228227

228+
fun Activity.installPreReleaseIfNeeded() {
229+
ioSafe {
230+
val isInstalled = try {
231+
packageManager.getPackageInfo(PRERELEASE_PACKAGE_NAME, 0)
232+
true
233+
} catch (_: NameNotFoundException) {
234+
false
235+
}
236+
237+
if (isInstalled) {
238+
runOnUiThread {
239+
showToast(R.string.prerelease_already_installed)
240+
}
241+
} else if (runAutoUpdate(false, true) == false) {
242+
runOnUiThread {
243+
showToast(R.string.prerelease_install_failed)
244+
}
245+
}
246+
}
247+
}
248+
229249
/**
230250
* @param checkAutoUpdate if the update check was launched automatically
251+
* @param installPrerelease if we want to install the pre-release version
231252
*/
232-
suspend fun Activity.runAutoUpdate(checkAutoUpdate: Boolean = true): Boolean {
253+
suspend fun Activity.runAutoUpdate(
254+
checkAutoUpdate: Boolean = true,
255+
installPrerelease: Boolean = false
256+
): Boolean {
233257
val settingsManager = PreferenceManager.getDefaultSharedPreferences(this)
234258
if (!checkAutoUpdate || settingsManager.getBoolean(
235259
getString(R.string.auto_update_key),
236260
true
237261
)
238262
) {
239-
val update = getAppUpdate()
263+
val update = getAppUpdate(installPrerelease)
240264
if (update.shouldUpdate && update.updateURL != null) {
241265
// Check if update should be skipped
242266
val updateNodeId = settingsManager.getString(

app/src/main/res/values-b+apc/strings.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
<string name="subs_hold_to_reset_to_default">ضلّ كابس لترجع السَتِنگز كيف كانة أول ما نزلتو الآپ</string>
1313
<string name="season_format">%1$s%2$d%3$s</string>
1414
<string name="subs_default_reset_toast">رجِعت السَتِنگز ل كيف كانت أساسًا</string>
15-
<string name="uprereleases_settings_des">نبش على تجديدات بال نسخة التجريبية كمان</string>
1615
<string name="subs_outline_color">لون حدود الكتيبة</string>
1716
<string name="search_poster_img_des">پوستر</string>
1817
<string name="backup_frequency">كلّ قديش بيعمل الآپ نسخة إحتياطية</string>
@@ -112,7 +111,6 @@
112111
<string name="result_open_in_browser">فتحو بمتصفح الوَب</string>
113112
<string name="use_system_brightness_settings">عوز ضوّ السيستام</string>
114113
<string name="double_tap_to_pause_settings_des">كبوس مرتين بال نُصّ حتى توقف الڤيديو</string>
115-
<string name="uprereleases_settings">جدد الآب وعوز النسخة التجريبية</string>
116114
<string name="no_data">مافي بيانات</string>
117115
<string name="player_subtitles_settings">الترجمة</string>
118116
<string name="subs_font">الخط</string>

app/src/main/res/values-b+ar/strings.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,6 @@
150150
<string name="automatic_plugin_download">تنزيل الإضافات تلقائيًا</string>
151151
<string name="updates_settings">التحديث التلقائي</string>
152152
<string name="updates_settings_des">ابحث تلقائيا عن التحديثات الجديدة بعد بدء التطبيق.</string>
153-
<string name="uprereleases_settings">التحديث إلى الاصدارات التجريبية (بيتا)</string>
154-
<string name="uprereleases_settings_des">البحث عن التحديثات التجريبية بدلاً من الإصدارات الكاملة فقط</string>
155153
<string name="github">غيت هاب</string>
156154
<string name="lightnovel">تطبيق روايات خفيف من نفس المطورين</string>
157155
<string name="anim">تطبيق أنمي من نفس المطورين</string>

app/src/main/res/values-b+ars/strings.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,8 @@
9292
<string name="pref_filter_search_quality">إخفاء جودة الفيديو المحددة في نتائج البحث</string>
9393
<string name="automatic_plugin_updates">تحديثات البرنامج المساعد التلقائي</string>
9494
<string name="updates_settings_des">البحث تلقائيًا عن التحديثات الجديدة بعد بدء تشغيل التطبيق.</string>
95-
<string name="uprereleases_settings">التحديث إلى الإصداراالمسبق</string>
9695
<string name="automatic_plugin_download">تنزيل المكونات الإضافية تلقائيًا</string>
9796
<string name="redo_setup_process">إعادة عملية الإعداد</string>
98-
<string name="uprereleases_settings_des">ابحث عن تحديثات الإصدار التجريبي بدلاً من الإصدارات الكاملة فقط</string>
9997
<string name="automatic_plugin_download_mode_title">حدد الوضع لتصفية تنزيل المكونات الإضافية</string>
10098
<string name="automatic_plugin_download_summary">قم تلقائيًا بتثبيت جميع المكونات الإضافية التي لم يتم تثبيتها بعد من المستودعات المضافة.</string>
10199
<string name="chromecast_subtitles_settings_des">إعدادات ترجمات كرومكاست</string>

app/src/main/res/values-b+as/strings.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,6 @@
218218
<string name="automatic_plugin_updates">স্বয়ংক্ৰিয় প্লাগইন আপডেট</string>
219219
<string name="updates_settings">এপ্‌ আপডেট দেখুৱাওক</string>
220220
<string name="redo_setup_process">পুনৰ চেটআপ প্ৰক্ৰিয়া কৰক</string>
221-
<string name="uprereleases_settings">প্ৰাকমুক্তিৰ বাবে আপডেট কৰক</string>
222221
<string name="apk_installer_settings">APK ইনষ্টলাৰ</string>
223222
<string name="apk_installer_settings_des">কিছুমান ফোনে নতুন পেকেজ ইনষ্টলাৰ সমৰ্থন নকৰে। আপডেটসমূহ ইনষ্টল নকৰিলে লিগেচি বিকল্প পৰীক্ষা কৰক।</string>
224223
<string name="github">Github</string>
@@ -588,7 +587,6 @@
588587
<string name="biometric_warning">আপোনাৰ CloudStream ডেটা এতিয়া সংৰক্ষণ কৰা হৈছে। এইৰ সম্ভাৱনা অত্যন্ত কম, কিন্তু সকলো ডিভাইচৰ ব্যৱহাৰ ভিন্ন হ\'ব পাৰে। যদি এপ্লিকেচনটোত প্রবেশ কৰিব নোৱাৰা অৱস্থাত পৰাৰ কম সম্ভাৱনাৰ ঘটনা ঘটে, তেন্তে সম্পূৰ্ণভাবে এপ্প ডেটা মচি দিয়ক আৰু সংৰক্ষণৰ পৰা পুনৰুদ্ধাৰ কৰক। কোনো অশান্তিৰ বাবে আমাৰ দুখিত হওক।</string>
589588
<string name="download">ডাউনলোড</string>
590589
<string name="updates_settings_des">এপ্‌ আৰম্ভণিৰ পিছত নতুন আপডেটৰ সন্ধান কৰক।</string>
591-
<string name="uprereleases_settings_des">কেৱল সম্পূৰ্ণ মুক্তিৰ সলনি প্ৰাকমুক্তিৰ আপডেটৰ সন্ধান কৰক</string>
592590
<string name="anim">একেই ডেভেলপাৰৰ দ্বাৰা এনিম এপ্‌</string>
593591
<string name="new_update_format" formatted="true">নতুন আপডেট পোৱা গ’ল!
594592
\n%1$s -&gt; %2$s</string>

app/src/main/res/values-b+bg/strings.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,6 @@
154154
<string name="automatic_plugin_updates">Автоматични актуализации на плъгини</string>
155155
<string name="updates_settings">Показвай актуализации на приложението</string>
156156
<string name="updates_settings_des">Автоматично търси нови актуализации при стартиране на приложението.</string>
157-
<string name="uprereleases_settings">Актуализация до експериментални версии</string>
158-
<string name="uprereleases_settings_des">Търсете експериментални актуализации вместо само пълни версии</string>
159157
<string name="github">Github</string>
160158
<string name="lightnovel">Light novel - приложение от същите разработчици</string>
161159
<string name="anim">Приложение за аниме от същите разработчици</string>

app/src/main/res/values-b+bn/strings.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,6 @@
149149
<string name="double_tap_to_seek_settings_des">সামনে বা পিছনের দিকে যেতে ডান বা বাম দিকে দুবার আলতো চাপুন</string>
150150
<string name="delete_file">ফাইল ডিলিট</string>
151151
<string name="subs_default_reset_toast">মান ডিফল্ট এ রিসেট করুন</string>
152-
<string name="uprereleases_settings_des">ফুল রিলিজের পরিবর্তে শুধুমাত্র প্রি-রিলিজ আপডেটের জন্য অনুসন্ধান করুন</string>
153152
<string name="updates_settings_des">স্টার্টআপে নতুন আপডেটের জন্য স্বয়ংক্রিয়ভাবে অনুসন্ধান করুন</string>
154153
<string name="movies_singular">সিনেমা</string>
155154
<string name="show_fillers_settings">এনিমে এর ফিলার পর্ব দেখায়</string>
@@ -200,7 +199,6 @@
200199
<string name="advanced_search_des">প্রোভাইডার অনুযায়ী আপনাকে পৃথক অনুসন্ধান ফলাফল দেয়</string>
201200
<string name="tv_series_singular">সিরিজ</string>
202201
<string name="rating">রেটিং</string>
203-
<string name="uprereleases_settings">প্রি-রিলিজে আপডেট করুন</string>
204202
<string name="redo_setup_process">সেটআপ প্রক্রিয়া পুনরায় করুন</string>
205203
<string name="benene">ভাই এক কাপ চা খাওয়াও ☕</string>
206204
<string name="restore_settings">ব্যাকআপ থেকে ডেটা পুনরুদ্ধার করুন</string>

app/src/main/res/values-b+cs/strings.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,6 @@
146146
<string name="show_fillers_settings">Zobrazit výplňové epizody u anime</string>
147147
<string name="updates_settings">Zobrazit aktualizace aplikace</string>
148148
<string name="updates_settings_des">Při spuštění aplikace automaticky zkontrolovat nové aktualizace.</string>
149-
<string name="uprereleases_settings">Aktualizovat na předběžná vydání</string>
150-
<string name="uprereleases_settings_des">Kontrolovat aktualizace předběžných vydání, místo normálních plných vydání</string>
151149
<string name="github">GitHub</string>
152150
<string name="lightnovel">Nenáročná aplikace pro romány od stejných vývojářů</string>
153151
<string name="anim">Anime aplikace od stejných vývojářů</string>

0 commit comments

Comments
 (0)