Skip to content

Commit 7e313d1

Browse files
Enable per-app language preferences for Android < 13
1 parent 938265d commit 7e313d1

22 files changed

+82
-144
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,15 @@
5757
</intent-filter>
5858
</receiver>
5959

60+
<service
61+
android:name="androidx.appcompat.app.AppLocalesMetadataHolderService"
62+
android:enabled="false"
63+
android:exported="false">
64+
<meta-data
65+
android:name="autoStoreLocales"
66+
android:value="true" />
67+
</service>
68+
6069
<service
6170
android:name=".player.PlayerService"
6271
android:exported="true"

app/src/main/java/org/schabi/newpipe/App.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public void onCreate() {
102102
NewPipe.init(getDownloader(),
103103
Localization.getPreferredLocalization(this),
104104
Localization.getPreferredContentCountry(this));
105-
Localization.initPrettyTime(Localization.resolvePrettyTime(getApplicationContext()));
105+
Localization.initPrettyTime(Localization.resolvePrettyTime());
106106

107107
BridgeStateSaverInitializer.init(this);
108108
StateSaver.init(this);

app/src/main/java/org/schabi/newpipe/MainActivity.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020

2121
package org.schabi.newpipe;
2222

23-
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
24-
2523
import android.content.BroadcastReceiver;
2624
import android.content.Context;
2725
import android.content.Intent;
@@ -141,6 +139,7 @@ protected void onCreate(final Bundle savedInstanceState) {
141139
+ "savedInstanceState = [" + savedInstanceState + "]");
142140
}
143141

142+
Localization.migrateAppLanguageSettingIfNecessary(getApplicationContext());
144143
ThemeHelper.setDayNightMode(this);
145144
ThemeHelper.setTheme(this, ServiceHelper.getSelectedServiceId(this));
146145

@@ -157,7 +156,6 @@ protected void onCreate(final Bundle savedInstanceState) {
157156
}
158157
}
159158

160-
assureCorrectAppLanguage(this);
161159
super.onCreate(savedInstanceState);
162160
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
163161
sharedPrefEditor = sharedPreferences.edit();
@@ -195,8 +193,6 @@ protected void onCreate(final Bundle savedInstanceState) {
195193
&& ReleaseVersionUtil.INSTANCE.isReleaseApk()) {
196194
UpdateSettingsFragment.askForConsentToUpdateChecks(this);
197195
}
198-
199-
Localization.migrateAppLanguageSettingIfNecessary(getApplicationContext());
200196
}
201197

202198
@Override
@@ -502,9 +498,8 @@ protected void onDestroy() {
502498

503499
@Override
504500
protected void onResume() {
505-
assureCorrectAppLanguage(this);
506501
// Change the date format to match the selected language on resume
507-
Localization.initPrettyTime(Localization.resolvePrettyTime(getApplicationContext()));
502+
Localization.initPrettyTime(Localization.resolvePrettyTime());
508503
super.onResume();
509504

510505
// Close drawer on return, and don't show animation,

app/src/main/java/org/schabi/newpipe/RouterActivity.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@
8484
import org.schabi.newpipe.util.Constants;
8585
import org.schabi.newpipe.util.DeviceUtils;
8686
import org.schabi.newpipe.util.ExtractorHelper;
87-
import org.schabi.newpipe.util.Localization;
8887
import org.schabi.newpipe.util.NavigationHelper;
8988
import org.schabi.newpipe.util.PermissionHelper;
9089
import org.schabi.newpipe.util.ThemeHelper;
@@ -132,7 +131,6 @@ protected void onCreate(final Bundle savedInstanceState) {
132131
ThemeHelper.setDayNightMode(this);
133132
setTheme(ThemeHelper.isLightThemeSelected(this)
134133
? R.style.RouterActivityThemeLight : R.style.RouterActivityThemeDark);
135-
Localization.assureCorrectAppLanguage(this);
136134

137135
// Pass-through touch events to background activities
138136
// so that our transparent window won't lock UI in the mean time

app/src/main/java/org/schabi/newpipe/about/AboutActivity.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,12 @@ import org.schabi.newpipe.BuildConfig
1616
import org.schabi.newpipe.R
1717
import org.schabi.newpipe.databinding.ActivityAboutBinding
1818
import org.schabi.newpipe.databinding.FragmentAboutBinding
19-
import org.schabi.newpipe.util.Localization
2019
import org.schabi.newpipe.util.ThemeHelper
2120
import org.schabi.newpipe.util.external_communication.ShareUtils
2221

2322
class AboutActivity : AppCompatActivity() {
2423

2524
override fun onCreate(savedInstanceState: Bundle?) {
26-
Localization.assureCorrectAppLanguage(this)
2725
super.onCreate(savedInstanceState)
2826
ThemeHelper.setTheme(this)
2927
title = getString(R.string.title_activity_about)

app/src/main/java/org/schabi/newpipe/about/LicenseFragment.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import org.schabi.newpipe.R
1919
import org.schabi.newpipe.databinding.FragmentLicensesBinding
2020
import org.schabi.newpipe.databinding.ItemSoftwareComponentBinding
2121
import org.schabi.newpipe.ktx.parcelableArrayList
22-
import org.schabi.newpipe.util.Localization
2322
import org.schabi.newpipe.util.external_communication.ShareUtils
2423

2524
/**
@@ -100,7 +99,6 @@ class LicenseFragment : Fragment() {
10099
val webView = WebView(context)
101100
webView.loadData(webViewData, "text/html; charset=UTF-8", "base64")
102101

103-
Localization.assureCorrectAppLanguage(context)
104102
val builder = AlertDialog.Builder(requireContext())
105103
.setTitle(softwareComponent.name)
106104
.setView(webView)

app/src/main/java/org/schabi/newpipe/download/DownloadActivity.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
import us.shandian.giga.service.DownloadManagerService;
2121
import us.shandian.giga.ui.fragment.MissionsFragment;
2222

23-
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
24-
2523
public class DownloadActivity extends AppCompatActivity {
2624

2725
private static final String MISSIONS_FRAGMENT_TAG = "fragment_tag";
@@ -33,7 +31,6 @@ protected void onCreate(final Bundle savedInstanceState) {
3331
i.setClass(this, DownloadManagerService.class);
3432
startService(i);
3533

36-
assureCorrectAppLanguage(this);
3734
ThemeHelper.setTheme(this);
3835

3936
super.onCreate(savedInstanceState);

app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import static org.schabi.newpipe.extractor.stream.DeliveryMethod.PROGRESSIVE_HTTP;
44
import static org.schabi.newpipe.util.ListHelper.getStreamsOfSpecifiedDelivery;
5-
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
65

76
import android.app.Activity;
87
import android.content.ComponentName;
@@ -751,7 +750,6 @@ private String getNameEditText() {
751750
}
752751

753752
private void showFailedDialog(@StringRes final int msg) {
754-
assureCorrectAppLanguage(requireContext());
755753
new AlertDialog.Builder(context)
756754
.setTitle(R.string.general_error)
757755
.setMessage(msg)

app/src/main/java/org/schabi/newpipe/error/ErrorActivity.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package org.schabi.newpipe.error;
22

3-
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
4-
53
import android.content.Context;
64
import android.content.Intent;
75
import android.net.Uri;
@@ -79,7 +77,6 @@ public class ErrorActivity extends AppCompatActivity {
7977

8078
@Override
8179
protected void onCreate(final Bundle savedInstanceState) {
82-
assureCorrectAppLanguage(this);
8380
super.onCreate(savedInstanceState);
8481

8582
ThemeHelper.setDayNightMode(this);
@@ -306,7 +303,7 @@ private String getContentLanguageString() {
306303
}
307304

308305
private String getAppLanguage() {
309-
return Localization.getAppLocale(getApplicationContext()).toString();
306+
return Localization.getAppLocale().toString();
310307
}
311308

312309
private String getOsString() {

app/src/main/java/org/schabi/newpipe/fragments/detail/DescriptionFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ protected void setupMetadata(final LayoutInflater inflater,
9393

9494
if (streamInfo.getLanguageInfo() != null) {
9595
addMetadataItem(inflater, layout, false, R.string.metadata_language,
96-
streamInfo.getLanguageInfo().getDisplayLanguage(getAppLocale(getContext())));
96+
streamInfo.getLanguageInfo().getDisplayLanguage(getAppLocale()));
9797
}
9898

9999
addMetadataItem(inflater, layout, true, R.string.metadata_support,

0 commit comments

Comments
 (0)