Merge branch 'master' into dev
This commit is contained in:
commit
07b4fa7b35
5 changed files with 71 additions and 43 deletions
|
|
@ -45,9 +45,9 @@ configure<ApplicationExtension> {
|
|||
minSdk = 23
|
||||
targetSdk = 35
|
||||
|
||||
versionCode = System.getProperty("versionCodeOverride")?.toInt() ?: 1010
|
||||
versionCode = System.getProperty("versionCodeOverride")?.toInt() ?: 1011
|
||||
|
||||
versionName = "0.28.5"
|
||||
versionName = "0.28.6"
|
||||
System.getProperty("versionNameSuffix")?.let { versionNameSuffix = it }
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import android.content.Intent;
|
|||
import android.content.IntentFilter;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
|
|
@ -203,6 +204,7 @@ public class MainActivity extends AppCompatActivity {
|
|||
// We want every release build (nightly, nightly-refactor) to show the popup
|
||||
if (!DEBUG) {
|
||||
showKeepAndroidDialog();
|
||||
showApi23RequirementDialog();
|
||||
}
|
||||
|
||||
MigrationManager.showUserInfoIfPresent(this);
|
||||
|
|
@ -984,55 +986,76 @@ public class MainActivity extends AppCompatActivity {
|
|||
|
||||
private void showKeepAndroidDialog() {
|
||||
final var prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
|
||||
final var lastCheckKey = getString(R.string.kao_last_checked_key);
|
||||
final var lastCheck = Instant.ofEpochMilli(prefs.getLong(lastCheckKey, 0));
|
||||
final var now = Instant.now();
|
||||
final var kaoLastCheck = Instant.ofEpochMilli(prefs.getLong(
|
||||
getString(R.string.kao_last_checked_key),
|
||||
0
|
||||
));
|
||||
|
||||
final var supportedLannguages = List.of("fr", "de", "ca", "es", "id", "it", "pl",
|
||||
"pt", "cs", "sk", "fa", "ar", "tr", "el", "th", "ru", "uk", "ko", "zh", "ja");
|
||||
final var locale = Localization.getAppLocale();
|
||||
final String kaoBaseUrl = "https://keepandroidopen.org/";
|
||||
final String kaoURI;
|
||||
if (supportedLannguages.contains(locale.getLanguage())) {
|
||||
if ("zh".equals(locale.getLanguage())) {
|
||||
kaoURI = kaoBaseUrl + ("TW".equals(locale.getCountry()) ? "zh-TW" : "zh-CN");
|
||||
} else {
|
||||
kaoURI = kaoBaseUrl + locale.getLanguage();
|
||||
}
|
||||
} else {
|
||||
kaoURI = kaoBaseUrl;
|
||||
}
|
||||
final var solutionURI =
|
||||
"https://github.com/woheller69/FreeDroidWarn?tab=readme-ov-file#solutions";
|
||||
if (lastCheck.plus(30, ChronoUnit.DAYS).isBefore(now)) {
|
||||
final String detailsUrl = getKeepAndroidOpenDetailsUrl();
|
||||
final var solutionUrl = "https://github.com/woheller69/FreeDroidWarn#solutions";
|
||||
|
||||
if (kaoLastCheck.plus(30, ChronoUnit.DAYS).isBefore(now)) {
|
||||
final var dialog = new AlertDialog.Builder(this)
|
||||
.setTitle("Keep Android Open")
|
||||
.setCancelable(false)
|
||||
.setMessage(this.getString(R.string.kao_dialog_warning))
|
||||
.setPositiveButton(this.getString(android.R.string.ok), (d, w) -> {
|
||||
prefs.edit()
|
||||
.putLong(
|
||||
getString(R.string.kao_last_checked_key),
|
||||
now.toEpochMilli()
|
||||
)
|
||||
.apply();
|
||||
})
|
||||
.setNeutralButton(this.getString(R.string.kao_solution), null)
|
||||
.setNegativeButton(this.getString(R.string.kao_dialog_more_info), null)
|
||||
.setMessage(R.string.kao_dialog_warning)
|
||||
.setPositiveButton(android.R.string.ok, (d, w) -> prefs.edit()
|
||||
.putLong(lastCheckKey, now.toEpochMilli())
|
||||
.apply())
|
||||
.setNeutralButton(R.string.kao_solution, null)
|
||||
.setNegativeButton(R.string.kao_dialog_more_info, null)
|
||||
.show();
|
||||
|
||||
// If we use setNeutralButton and etc. dialog will close after pressing the buttons,
|
||||
// but we want it to close only when positive button is pressed
|
||||
dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setOnClickListener(v ->
|
||||
ShareUtils.openUrlInBrowser(this, kaoURI)
|
||||
);
|
||||
dialog.getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v ->
|
||||
ShareUtils.openUrlInBrowser(this, solutionURI)
|
||||
);
|
||||
// If we use setNeutralButton/setNegativeButton, dialog will close after pressing the
|
||||
// buttons, but we want it to close only when positive button is pressed
|
||||
dialog.getButton(AlertDialog.BUTTON_NEGATIVE)
|
||||
.setOnClickListener(v -> ShareUtils.openUrlInBrowser(this, detailsUrl));
|
||||
dialog.getButton(AlertDialog.BUTTON_NEUTRAL)
|
||||
.setOnClickListener(v -> ShareUtils.openUrlInBrowser(this, solutionUrl));
|
||||
}
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private static String getKeepAndroidOpenDetailsUrl() {
|
||||
final var supportedLanguages = List.of("fr", "de", "ca", "es", "id", "it", "pl",
|
||||
"pt", "cs", "sk", "fa", "ar", "tr", "el", "th", "ru", "uk", "ko", "zh", "ja");
|
||||
final String kaoBaseUrl = "https://keepandroidopen.org/";
|
||||
final var locale = Localization.getAppLocale();
|
||||
if (supportedLanguages.contains(locale.getLanguage())) {
|
||||
if ("zh".equals(locale.getLanguage())) {
|
||||
return kaoBaseUrl + ("TW".equals(locale.getCountry()) ? "zh-TW" : "zh-CN");
|
||||
} else {
|
||||
return kaoBaseUrl + locale.getLanguage();
|
||||
}
|
||||
} else {
|
||||
return kaoBaseUrl;
|
||||
}
|
||||
}
|
||||
|
||||
private void showApi23RequirementDialog() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
return; // only show dialog on the devices that will stop being supported
|
||||
}
|
||||
|
||||
final var prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
final var shownKey = getString(R.string.api23_requirement_dialog_shown_key);
|
||||
if (prefs.getBoolean(shownKey, false)) {
|
||||
return; // dialog was already shown in the past, no need to show it again
|
||||
}
|
||||
|
||||
final var dialog = new AlertDialog.Builder(this)
|
||||
.setTitle(R.string.api23_requirement_dialog_title)
|
||||
.setCancelable(false)
|
||||
.setMessage(R.string.api23_requirement_dialog_message)
|
||||
.setPositiveButton(android.R.string.ok, (d, w) -> prefs.edit()
|
||||
.putBoolean(shownKey, true)
|
||||
.apply())
|
||||
.setNegativeButton(R.string.api23_requirement_dialog_blogpost, null)
|
||||
.show();
|
||||
|
||||
// If we use setNegativeButton, dialog will close after pressing the button,
|
||||
// but we want it to close only when positive button is pressed
|
||||
final var blogpostUrl = "https://newpipe.net/blog/pinned/announcement/drop-android-5/";
|
||||
dialog.getButton(AlertDialog.BUTTON_NEGATIVE)
|
||||
.setOnClickListener(v -> ShareUtils.openUrlInBrowser(this, blogpostUrl));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
<!-- Key values -->
|
||||
<string name="kao_last_checked_key">kao_last_checked</string>
|
||||
<string name="api23_requirement_dialog_shown_key">api23_requirement_dialog_shown</string>
|
||||
|
||||
<string name="download_path_video_key">download_path</string>
|
||||
<string name="download_path_audio_key">download_path_audio</string>
|
||||
|
|
|
|||
|
|
@ -900,4 +900,7 @@
|
|||
<string name="kao_dialog_warning">In August 2025, Google announced that as of September 2026, installing apps will require developer verification for all Android apps on certified devices, including those installed outside of the Play Store. Since the developers of NewPipe do not agree to this requirement, NewPipe will no longer work on certified Android devices after that time.</string>
|
||||
<string name="kao_dialog_more_info">Details</string>
|
||||
<string name="kao_solution">Solution</string>
|
||||
<string name="api23_requirement_dialog_title">NewPipe is dropping support for Android 5</string>
|
||||
<string name="api23_requirement_dialog_message">Unfortunately NewPipe depends on a few libraries that dropped support for Android 5.0 and 5.1. The next NewPipe release will therefore only work on devices with Android 6 or higher, sadly. Read more in the blogpost.</string>
|
||||
<string name="api23_requirement_dialog_blogpost">Blogpost</string>
|
||||
</resources>
|
||||
|
|
|
|||
1
fastlane/metadata/android/en-US/changelogs/1011.txt
Normal file
1
fastlane/metadata/android/en-US/changelogs/1011.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
Add popup to inform users that v0.28.7 will drop support for Android 5
|
||||
Loading…
Add table
Add a link
Reference in a new issue