changed the way to change language, now is «NewPipe's language» selector
This commit is contained in:
parent
dea1e0dcb9
commit
3ad0e313ca
10 changed files with 209 additions and 29 deletions
|
|
@ -56,7 +56,6 @@ import androidx.fragment.app.FragmentManager;
|
|||
import com.google.android.material.navigation.NavigationView;
|
||||
|
||||
import org.schabi.newpipe.extractor.NewPipe;
|
||||
import org.schabi.newpipe.extractor.ServiceList;
|
||||
import org.schabi.newpipe.extractor.StreamingService;
|
||||
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
|
||||
import org.schabi.newpipe.extractor.services.peertube.PeertubeInstance;
|
||||
|
|
@ -67,7 +66,6 @@ import org.schabi.newpipe.fragments.list.search.SearchFragment;
|
|||
import org.schabi.newpipe.report.ErrorActivity;
|
||||
import org.schabi.newpipe.util.Constants;
|
||||
import org.schabi.newpipe.util.KioskTranslator;
|
||||
import org.schabi.newpipe.util.Localization;
|
||||
import org.schabi.newpipe.util.NavigationHelper;
|
||||
import org.schabi.newpipe.util.PeertubeHelper;
|
||||
import org.schabi.newpipe.util.PermissionHelper;
|
||||
|
|
@ -78,8 +76,10 @@ import org.schabi.newpipe.util.ThemeHelper;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import static org.schabi.newpipe.util.Localization.changeAppLanguage;
|
||||
import static org.schabi.newpipe.util.Localization.getAppLanguage;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
private static final String TAG = "MainActivity";
|
||||
|
|
@ -116,10 +116,9 @@ public class MainActivity extends AppCompatActivity {
|
|||
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
|
||||
TLSSocketFactoryCompat.setAsDefault();
|
||||
}
|
||||
|
||||
ThemeHelper.setTheme(this, ServiceHelper.getSelectedServiceId(this));
|
||||
|
||||
changeAppLanguage(Localization.getPreferredLocale(getApplicationContext()), getResources());
|
||||
changeAppLanguage(getAppLanguage(getApplicationContext()), getResources());
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
|
|
@ -424,6 +423,7 @@ public class MainActivity extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
changeAppLanguage(getAppLanguage(getApplicationContext()), getResources());
|
||||
super.onResume();
|
||||
|
||||
// close drawer on return, and don't show animation, so its looks like the drawer isn't open
|
||||
|
|
|
|||
|
|
@ -25,6 +25,11 @@ import org.schabi.newpipe.R;
|
|||
import org.schabi.newpipe.util.NavigationHelper;
|
||||
import org.schabi.newpipe.util.ThemeHelper;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import static org.schabi.newpipe.util.Localization.changeAppLanguage;
|
||||
import static org.schabi.newpipe.util.Localization.getAppLanguage;
|
||||
|
||||
public class AboutActivity extends AppCompatActivity {
|
||||
|
||||
/**
|
||||
|
|
@ -62,6 +67,7 @@ public class AboutActivity extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
changeAppLanguage(getAppLanguage(getApplicationContext()), getResources());
|
||||
super.onCreate(savedInstanceState);
|
||||
ThemeHelper.setTheme(this);
|
||||
|
||||
|
|
|
|||
|
|
@ -15,9 +15,14 @@ import org.schabi.newpipe.R;
|
|||
import org.schabi.newpipe.settings.SettingsActivity;
|
||||
import org.schabi.newpipe.util.ThemeHelper;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import us.shandian.giga.service.DownloadManagerService;
|
||||
import us.shandian.giga.ui.fragment.MissionsFragment;
|
||||
|
||||
import static org.schabi.newpipe.util.Localization.changeAppLanguage;
|
||||
import static org.schabi.newpipe.util.Localization.getAppLanguage;
|
||||
|
||||
public class DownloadActivity extends AppCompatActivity {
|
||||
|
||||
private static final String MISSIONS_FRAGMENT_TAG = "fragment_tag";
|
||||
|
|
@ -29,6 +34,7 @@ public class DownloadActivity extends AppCompatActivity {
|
|||
i.setClass(this, DownloadManagerService.class);
|
||||
startService(i);
|
||||
|
||||
changeAppLanguage(getAppLanguage(getApplicationContext()), getResources());
|
||||
ThemeHelper.setTheme(this);
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_downloader);
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
|||
|
||||
private Localization initialSelectedLocalization;
|
||||
private ContentCountry initialSelectedContentCountry;
|
||||
private String initialLanguage;
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
|
|
@ -64,6 +65,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
|||
|
||||
initialSelectedLocalization = org.schabi.newpipe.util.Localization.getPreferredLocalization(requireContext());
|
||||
initialSelectedContentCountry = org.schabi.newpipe.util.Localization.getPreferredContentCountry(requireContext());
|
||||
initialLanguage = androidx.preference.PreferenceManager.getDefaultSharedPreferences(getContext()).getString("newpipes_language_key", "en");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -125,9 +127,10 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
|||
.getPreferredLocalization(requireContext());
|
||||
final ContentCountry selectedContentCountry = org.schabi.newpipe.util.Localization
|
||||
.getPreferredContentCountry(requireContext());
|
||||
final String selectedLanguage = androidx.preference.PreferenceManager.getDefaultSharedPreferences(getContext()).getString("newpipes_language_key", "en");
|
||||
|
||||
if (!selectedLocalization.equals(initialSelectedLocalization)
|
||||
|| !selectedContentCountry.equals(initialSelectedContentCountry)) {
|
||||
|| !selectedContentCountry.equals(initialSelectedContentCountry) || !selectedLanguage.equals(initialLanguage)) {
|
||||
Toast.makeText(requireContext(), R.string.localization_changes_requires_app_restart, Toast.LENGTH_LONG).show();
|
||||
|
||||
NewPipe.setupLocalization(selectedLocalization, selectedContentCountry);
|
||||
|
|
|
|||
|
|
@ -14,6 +14,11 @@ import android.view.MenuItem;
|
|||
import org.schabi.newpipe.R;
|
||||
import org.schabi.newpipe.util.ThemeHelper;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import static org.schabi.newpipe.util.Localization.changeAppLanguage;
|
||||
import static org.schabi.newpipe.util.Localization.getAppLanguage;
|
||||
|
||||
|
||||
/*
|
||||
* Created by Christian Schabesberger on 31.08.15.
|
||||
|
|
@ -44,7 +49,7 @@ public class SettingsActivity extends AppCompatActivity implements BasePreferenc
|
|||
@Override
|
||||
protected void onCreate(Bundle savedInstanceBundle) {
|
||||
setTheme(ThemeHelper.getSettingsThemeStyle(this));
|
||||
|
||||
changeAppLanguage(getAppLanguage(getApplicationContext()), getResources());
|
||||
super.onCreate(savedInstanceBundle);
|
||||
setContentView(R.layout.settings_layout);
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,11 @@ import android.content.res.Resources;
|
|||
import android.preference.PreferenceManager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.PluralsRes;
|
||||
import androidx.annotation.StringRes;
|
||||
|
||||
import org.ocpsoft.prettytime.PrettyTime;
|
||||
import org.ocpsoft.prettytime.units.Decade;
|
||||
|
|
@ -21,10 +26,6 @@ import java.util.Date;
|
|||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.PluralsRes;
|
||||
import androidx.annotation.StringRes;
|
||||
|
||||
/*
|
||||
* Created by chschtsch on 12/29/15.
|
||||
*
|
||||
|
|
@ -226,4 +227,21 @@ public class Localization {
|
|||
conf.setLocale(loc);
|
||||
res.updateConfiguration(conf, dm);
|
||||
}
|
||||
|
||||
public static Locale getAppLanguage(Context context) {
|
||||
SharedPreferences prefs = androidx.preference.PreferenceManager.getDefaultSharedPreferences(context);
|
||||
String lang = prefs.getString("newpipes_language_key", "en");
|
||||
Locale loc;
|
||||
if (lang.equals("system")) {
|
||||
loc = Locale.getDefault();
|
||||
} else if (lang.matches(".*-.*")) {
|
||||
String[] localisation = lang.split("-");
|
||||
lang = localisation[0];
|
||||
String country = localisation[1];
|
||||
loc = new Locale(lang, country);
|
||||
} else {
|
||||
loc = new Locale(lang);
|
||||
}
|
||||
return loc;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue