parent
019964387a
commit
6d0bde716e
@ -27,7 +27,6 @@ import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
@ -36,16 +35,15 @@ import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import android.os.StrictMode;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.nostra13.universalimageloader.cache.disc.impl.LimitedAgeDiskCache;
|
||||
import com.nostra13.universalimageloader.cache.disc.naming.FileNameGenerator;
|
||||
import com.nostra13.universalimageloader.core.ImageLoader;
|
||||
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
|
||||
|
||||
import info.guardianproject.netcipher.NetCipher;
|
||||
import info.guardianproject.netcipher.proxy.OrbotHelper;
|
||||
import org.acra.ACRA;
|
||||
import org.acra.ReportingInteractionMode;
|
||||
import org.acra.annotation.ReportsCrashes;
|
||||
@ -59,17 +57,13 @@ import org.fdroid.fdroid.data.Repo;
|
||||
import org.fdroid.fdroid.installer.InstallHistoryService;
|
||||
import org.fdroid.fdroid.net.ImageLoaderForUIL;
|
||||
import org.fdroid.fdroid.net.WifiStateChangeService;
|
||||
import sun.net.www.protocol.bluetooth.Handler;
|
||||
|
||||
import java.net.URL;
|
||||
import java.net.URLStreamHandler;
|
||||
import java.net.URLStreamHandlerFactory;
|
||||
import java.security.Security;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import info.guardianproject.netcipher.NetCipher;
|
||||
import info.guardianproject.netcipher.proxy.OrbotHelper;
|
||||
import sun.net.www.protocol.bluetooth.Handler;
|
||||
|
||||
@ReportsCrashes(mailTo = "reports@f-droid.org",
|
||||
mode = ReportingInteractionMode.DIALOG,
|
||||
@ -82,8 +76,6 @@ public class FDroidApp extends Application {
|
||||
|
||||
public static final String SYSTEM_DIR_NAME = Environment.getRootDirectory().getAbsolutePath();
|
||||
|
||||
private static Locale locale;
|
||||
|
||||
// for the local repo on this device, all static since there is only one
|
||||
public static volatile int port;
|
||||
public static volatile String ipAddressString;
|
||||
@ -181,25 +173,10 @@ public class FDroidApp extends Application {
|
||||
repo = new Repo();
|
||||
}
|
||||
|
||||
public void updateLanguage() {
|
||||
Context ctx = getBaseContext();
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
|
||||
String lang = prefs.getString(Preferences.PREF_LANGUAGE, "");
|
||||
locale = Utils.getLocaleFromAndroidLangTag(lang);
|
||||
applyLanguage();
|
||||
}
|
||||
|
||||
private void applyLanguage() {
|
||||
Context ctx = getBaseContext();
|
||||
Configuration cfg = new Configuration();
|
||||
cfg.locale = locale == null ? Locale.getDefault() : locale;
|
||||
ctx.getResources().updateConfiguration(cfg, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
applyLanguage();
|
||||
Languages.setLanguage(this, Preferences.get().getLangauge(), false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -215,7 +192,9 @@ public class FDroidApp extends Application {
|
||||
.penaltyLog()
|
||||
.build());
|
||||
}
|
||||
updateLanguage();
|
||||
Preferences.setup(this);
|
||||
Languages.setup(getClass(), R.string.pref_language_default);
|
||||
Languages.setLanguage(this, Preferences.get().getLangauge(), false);
|
||||
|
||||
ACRA.init(this);
|
||||
if (isAcraProcess()) {
|
||||
@ -224,10 +203,8 @@ public class FDroidApp extends Application {
|
||||
|
||||
PRNGFixes.apply();
|
||||
|
||||
Preferences.setup(this);
|
||||
curTheme = Preferences.get().getTheme();
|
||||
Preferences.get().configureProxy();
|
||||
Languages.setup(getClass(), R.string.pref_language_default);
|
||||
|
||||
InstalledAppProviderService.compareToPackageManager(this);
|
||||
AppUpdateStatusService.scanDownloadedApks(this);
|
||||
@ -326,13 +303,13 @@ public class FDroidApp extends Application {
|
||||
|
||||
/**
|
||||
* Asks if the current process is "org.fdroid.fdroid:acra".
|
||||
*
|
||||
* <p>
|
||||
* This is helpful for bailing out of the {@link FDroidApp#onCreate} method early, preventing
|
||||
* problems that arise from executing the code twice. This happens due to the `android:process`
|
||||
* statement in AndroidManifest.xml causes another process to be created to run
|
||||
* {@link org.fdroid.fdroid.acra.CrashReportActivity}. This was causing lots of things to be
|
||||
* started/run twice including {@link CleanCacheService} and {@link WifiStateChangeService}.
|
||||
*
|
||||
* <p>
|
||||
* Note that it is not perfect, because some devices seem to not provide a list of running app
|
||||
* processes when asked. In such situations, F-Droid may regress to the behaviour where some
|
||||
* services may run twice and thus cause weirdness or slowness. However that is probably better
|
||||
|
@ -25,6 +25,7 @@ public final class Languages {
|
||||
|
||||
private static final Locale DEFAULT_LOCALE;
|
||||
private static final Locale TIBETAN = new Locale("bo");
|
||||
private static final Locale CHINESE_HONG_KONG = new Locale("zh", "HK");
|
||||
private static final String DEFAULT_STRING = "System Default";
|
||||
|
||||
private static Locale locale;
|
||||
@ -62,8 +63,10 @@ public final class Languages {
|
||||
tmpMap.put(Locale.SIMPLIFIED_CHINESE.toString(), "中文 (中国)"); // Chinese (China)
|
||||
} else if (locale.equals(Locale.TRADITIONAL_CHINESE)) {
|
||||
tmpMap.put(Locale.TRADITIONAL_CHINESE.toString(), "中文 (台灣)"); // Chinese (Taiwan)
|
||||
} else if (locale.equals(CHINESE_HONG_KONG)) {
|
||||
tmpMap.put(CHINESE_HONG_KONG.toString(), "中文 (香港)"); // Chinese (Hong Kong)
|
||||
} else {
|
||||
tmpMap.put(locale.getLanguage(), locale.getDisplayLanguage(locale));
|
||||
tmpMap.put(locale.getLanguage(), capitalize(locale.getDisplayLanguage(locale)));
|
||||
}
|
||||
}
|
||||
|
||||
@ -196,6 +199,10 @@ public final class Languages {
|
||||
return keys.toArray(new String[keys.size()]);
|
||||
}
|
||||
|
||||
private String capitalize(final String line) {
|
||||
return Character.toUpperCase(line.charAt(0)) + line.substring(1);
|
||||
}
|
||||
|
||||
private static final Locale[] LOCALES_TO_TEST = {
|
||||
Locale.ENGLISH,
|
||||
Locale.FRENCH,
|
||||
@ -205,6 +212,7 @@ public final class Languages {
|
||||
Locale.KOREAN,
|
||||
Locale.SIMPLIFIED_CHINESE,
|
||||
Locale.TRADITIONAL_CHINESE,
|
||||
CHINESE_HONG_KONG,
|
||||
TIBETAN,
|
||||
new Locale("af"),
|
||||
new Locale("am"),
|
||||
|
@ -229,6 +229,10 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh
|
||||
.replaceAll(" ", "-");
|
||||
}
|
||||
|
||||
public String getLangauge() {
|
||||
return preferences.getString(Preferences.PREF_LANGUAGE, "");
|
||||
}
|
||||
|
||||
public String getLocalRepoName() {
|
||||
return preferences.getString(PREF_LOCAL_REPO_NAME, getDefaultLocalRepoName());
|
||||
}
|
||||
|
@ -17,7 +17,6 @@ import info.guardianproject.netcipher.NetCipher;
|
||||
import info.guardianproject.netcipher.proxy.OrbotHelper;
|
||||
import org.fdroid.fdroid.AppDetails2;
|
||||
import org.fdroid.fdroid.CleanCacheService;
|
||||
import org.fdroid.fdroid.FDroidApp;
|
||||
import org.fdroid.fdroid.Languages;
|
||||
import org.fdroid.fdroid.Preferences;
|
||||
import org.fdroid.fdroid.R;
|
||||
@ -142,8 +141,9 @@ public class PreferencesFragment extends PreferenceFragment
|
||||
case Preferences.PREF_LANGUAGE:
|
||||
entrySummary(key);
|
||||
if (changing) {
|
||||
// TODO: Ask MainActivity to restart itself.
|
||||
((FDroidApp) getActivity().getApplication()).updateLanguage();
|
||||
Activity activity = getActivity();
|
||||
Languages.setLanguage(activity, Preferences.get().getLangauge(), false);
|
||||
Languages.forceChangeLanguage(activity);
|
||||
}
|
||||
break;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user