mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-31 07:13:00 +00:00 
			
		
		
		
	Group private Localization methods together.
This commit is contained in:
		| @@ -56,7 +56,6 @@ import java.util.stream.Collectors; | ||||
|  */ | ||||
|  | ||||
| public final class Localization { | ||||
|  | ||||
|     public static final String DOT_SEPARATOR = " • "; | ||||
|     private static PrettyTime prettyTime; | ||||
|  | ||||
| @@ -90,18 +89,6 @@ public final class Localization { | ||||
|         return new ContentCountry(contentCountry); | ||||
|     } | ||||
|  | ||||
|     private static Locale getLocaleFromPrefs(final Context context, @StringRes final int prefKey) { | ||||
|         final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); | ||||
|         final String defaultKey = context.getString(R.string.default_localization_key); | ||||
|         final String languageCode = sp.getString(context.getString(prefKey), defaultKey); | ||||
|  | ||||
|         if (languageCode.equals(defaultKey)) { | ||||
|             return Locale.getDefault(); | ||||
|         } else { | ||||
|             return Locale.forLanguageTag(languageCode); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static Locale getPreferredLocale(final Context context) { | ||||
|         return getLocaleFromPrefs(context, R.string.content_language_key); | ||||
|     } | ||||
| @@ -176,13 +163,13 @@ public final class Localization { | ||||
|  | ||||
|         final double value = (double) count; | ||||
|         if (count >= 1000000000) { | ||||
|             return localizeNumber(context, round(value / 1000000000, 1)) | ||||
|             return localizeNumber(context, round(value / 1000000000)) | ||||
|                     + context.getString(R.string.short_billion); | ||||
|         } else if (count >= 1000000) { | ||||
|             return localizeNumber(context, round(value / 1000000, 1)) | ||||
|             return localizeNumber(context, round(value / 1000000)) | ||||
|                     + context.getString(R.string.short_million); | ||||
|         } else if (count >= 1000) { | ||||
|             return localizeNumber(context, round(value / 1000, 1)) | ||||
|             return localizeNumber(context, round(value / 1000)) | ||||
|                     + context.getString(R.string.short_thousand); | ||||
|         } else { | ||||
|             return localizeNumber(context, value); | ||||
| @@ -219,21 +206,6 @@ public final class Localization { | ||||
|                 deletedCount, shortCount(context, deletedCount)); | ||||
|     } | ||||
|  | ||||
|     private static String getQuantity(final Context context, @PluralsRes final int pluralId, | ||||
|                                       @StringRes final int zeroCaseStringId, final long count, | ||||
|                                       final String formattedCount) { | ||||
|         if (count == 0) { | ||||
|             return context.getString(zeroCaseStringId); | ||||
|         } | ||||
|  | ||||
|         // As we use the already formatted count | ||||
|         // is not the responsibility of this method handle long numbers | ||||
|         // (it probably will fall in the "other" category, | ||||
|         // or some language have some specific rule... then we have to change it) | ||||
|         final int safeCount = (int) MathUtils.clamp(count, Integer.MIN_VALUE, Integer.MAX_VALUE); | ||||
|         return context.getResources().getQuantityString(pluralId, safeCount, formattedCount); | ||||
|     } | ||||
|  | ||||
|     public static String getDurationString(final long duration) { | ||||
|         final String output; | ||||
|  | ||||
| @@ -307,18 +279,42 @@ public final class Localization { | ||||
|         return prettyTime.formatUnrounded(offsetDateTime); | ||||
|     } | ||||
|  | ||||
|     private static void changeAppLanguage(final Resources res, final Locale loc) { | ||||
|     public static void assureCorrectAppLanguage(final Context c) { | ||||
|         final Resources res = c.getResources(); | ||||
|         final DisplayMetrics dm = res.getDisplayMetrics(); | ||||
|         final Configuration conf = res.getConfiguration(); | ||||
|         conf.setLocale(loc); | ||||
|         conf.setLocale(getAppLocale(c)); | ||||
|         res.updateConfiguration(conf, dm); | ||||
|     } | ||||
|  | ||||
|     public static void assureCorrectAppLanguage(final Context c) { | ||||
|         changeAppLanguage(c.getResources(), getAppLocale(c)); | ||||
|     private static Locale getLocaleFromPrefs(final Context context, @StringRes final int prefKey) { | ||||
|         final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); | ||||
|         final String defaultKey = context.getString(R.string.default_localization_key); | ||||
|         final String languageCode = sp.getString(context.getString(prefKey), defaultKey); | ||||
|  | ||||
|         if (languageCode.equals(defaultKey)) { | ||||
|             return Locale.getDefault(); | ||||
|         } else { | ||||
|             return Locale.forLanguageTag(languageCode); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static double round(final double value, final int places) { | ||||
|         return new BigDecimal(value).setScale(places, RoundingMode.HALF_UP).doubleValue(); | ||||
|     private static double round(final double value) { | ||||
|         return new BigDecimal(value).setScale(1, RoundingMode.HALF_UP).doubleValue(); | ||||
|     } | ||||
|  | ||||
|     private static String getQuantity(final Context context, @PluralsRes final int pluralId, | ||||
|                                       @StringRes final int zeroCaseStringId, final long count, | ||||
|                                       final String formattedCount) { | ||||
|         if (count == 0) { | ||||
|             return context.getString(zeroCaseStringId); | ||||
|         } | ||||
|  | ||||
|         // As we use the already formatted count | ||||
|         // is not the responsibility of this method handle long numbers | ||||
|         // (it probably will fall in the "other" category, | ||||
|         // or some language have some specific rule... then we have to change it) | ||||
|         final int safeCount = (int) MathUtils.clamp(count, Integer.MIN_VALUE, Integer.MAX_VALUE); | ||||
|         return context.getResources().getQuantityString(pluralId, safeCount, formattedCount); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Isira Seneviratne
					Isira Seneviratne