Prevent showing notification megaphone if not translated.

This commit is contained in:
Alan Evans
2021-02-25 14:16:50 -04:00
parent 8f6ff215aa
commit 3f6c8cb622
6 changed files with 60 additions and 15 deletions

View File

@@ -8,7 +8,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import org.signal.core.util.EnglishResourceUtil;
import org.signal.core.util.ResourceUtil;
import org.thoughtcrime.securesms.BuildConfig;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
@@ -37,7 +37,7 @@ public final class SupportEmailUtil {
}
private static @NonNull String buildSystemInfo(@NonNull Context context, @StringRes int subject) {
Resources englishResources = EnglishResourceUtil.getEnglishResources(context);
Resources englishResources = ResourceUtil.getEnglishResources(context);
return "--- " + context.getString(R.string.HelpFragment__support_info) + " ---" +
"\n" +

View File

@@ -3,6 +3,8 @@ package org.thoughtcrime.securesms.util.dynamiclanguage;
import android.content.Context;
import android.content.res.Configuration;
import androidx.annotation.NonNull;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import java.util.Locale;
@@ -13,15 +15,19 @@ import java.util.Locale;
public final class DynamicLanguageContextWrapper {
private DynamicLanguageContextWrapper() {}
public static void prepareOverrideConfiguration(Context context, Configuration base) {
String language = TextSecurePreferences.getLanguage(context);
Locale newLocale = LocaleParser.findBestMatchingLocaleForLanguage(language);
public static void prepareOverrideConfiguration(@NonNull Context context, @NonNull Configuration base) {
Locale newLocale = getUsersSelectedLocale(context);
Locale.setDefault(newLocale);
base.setLocale(newLocale);
}
public static void updateContext(Context base) {
public static @NonNull Locale getUsersSelectedLocale(@NonNull Context context) {
String language = TextSecurePreferences.getLanguage(context);
return LocaleParser.findBestMatchingLocaleForLanguage(language);
}
public static void updateContext(@NonNull Context base) {
Configuration config = base.getResources().getConfiguration();
prepareOverrideConfiguration(base, config);

View File

@@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.util.dynamiclanguage;
import android.content.res.Configuration;
import android.content.res.Resources;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.os.ConfigurationCompat;
@@ -20,7 +21,7 @@ final class LocaleParser {
* Given a language, gets the best choice from the apps list of supported languages and the
* Systems set of languages.
*/
static Locale findBestMatchingLocaleForLanguage(@Nullable String language) {
static @NonNull Locale findBestMatchingLocaleForLanguage(@Nullable String language) {
final Locale locale = LanguageString.parseLocale(language);
if (appSupportsTheExactLocale(locale)) {
return locale;
@@ -39,7 +40,7 @@ final class LocaleParser {
/**
* Get the first preferred language the app supports.
*/
private static Locale findBestSystemLocale() {
private static @NonNull Locale findBestSystemLocale() {
final Configuration config = Resources.getSystem().getConfiguration();
final Locale firstMatch = ConfigurationCompat.getLocales(config)