Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d01f6eec authored by Brad Ebinger's avatar Brad Ebinger
Browse files

Decouple Content Name Locale from Content Language Locale

There was an assumption that content language Locale was
a 1:1 mapping with content locale name, which is not the
case. This change separates the two and provides a new
API for retreiving the set of Locales for content name.

Test: Manual
Change-Id: I44cb527ceb77fe321500f9d5fc00f6880ee52cb7
parent 8078996f
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -40523,6 +40523,7 @@ package android.telephony.mbms {
  public class ServiceInfo {
  public class ServiceInfo {
    method public java.util.List<java.util.Locale> getLocales();
    method public java.util.List<java.util.Locale> getLocales();
    method public java.lang.CharSequence getNameForLocale(java.util.Locale);
    method public java.lang.CharSequence getNameForLocale(java.util.Locale);
    method public java.util.Set<java.util.Locale> getNamedContentLocales();
    method public java.lang.String getServiceClassName();
    method public java.lang.String getServiceClassName();
    method public java.lang.String getServiceId();
    method public java.lang.String getServiceId();
    method public java.util.Date getSessionEndTime();
    method public java.util.Date getSessionEndTime();
+1 −0
Original line number Original line Diff line number Diff line
@@ -44049,6 +44049,7 @@ package android.telephony.mbms {
  public class ServiceInfo {
  public class ServiceInfo {
    method public java.util.List<java.util.Locale> getLocales();
    method public java.util.List<java.util.Locale> getLocales();
    method public java.lang.CharSequence getNameForLocale(java.util.Locale);
    method public java.lang.CharSequence getNameForLocale(java.util.Locale);
    method public java.util.Set<java.util.Locale> getNamedContentLocales();
    method public java.lang.String getServiceClassName();
    method public java.lang.String getServiceClassName();
    method public java.lang.String getServiceId();
    method public java.lang.String getServiceId();
    method public java.util.Date getSessionEndTime();
    method public java.util.Date getSessionEndTime();
+1 −0
Original line number Original line Diff line number Diff line
@@ -40745,6 +40745,7 @@ package android.telephony.mbms {
  public class ServiceInfo {
  public class ServiceInfo {
    method public java.util.List<java.util.Locale> getLocales();
    method public java.util.List<java.util.Locale> getLocales();
    method public java.lang.CharSequence getNameForLocale(java.util.Locale);
    method public java.lang.CharSequence getNameForLocale(java.util.Locale);
    method public java.util.Set<java.util.Locale> getNamedContentLocales();
    method public java.lang.String getServiceClassName();
    method public java.lang.String getServiceClassName();
    method public java.lang.String getServiceId();
    method public java.lang.String getServiceId();
    method public java.util.Date getSessionEndTime();
    method public java.util.Date getSessionEndTime();
+13 −7
Original line number Original line Diff line number Diff line
@@ -23,6 +23,7 @@ import android.os.Parcelable;
import android.text.TextUtils;
import android.text.TextUtils;


import java.util.ArrayList;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.Date;
import java.util.HashMap;
import java.util.HashMap;
import java.util.List;
import java.util.List;
@@ -62,12 +63,6 @@ public class ServiceInfo {
            throw new RuntimeException("bad locales length " + newLocales.size());
            throw new RuntimeException("bad locales length " + newLocales.size());
        }
        }


        for (Locale l : newLocales) {
            if (!newNames.containsKey(l)) {
                throw new IllegalArgumentException("A name must be provided for each locale");
            }
        }

        names = new HashMap(newNames.size());
        names = new HashMap(newNames.size());
        names.putAll(newNames);
        names.putAll(newNames);
        className = newClassName;
        className = newClassName;
@@ -127,7 +122,7 @@ public class ServiceInfo {
     * Get the user-displayable name for this cell-broadcast service corresponding to the
     * Get the user-displayable name for this cell-broadcast service corresponding to the
     * provided {@link Locale}.
     * provided {@link Locale}.
     * @param locale The {@link Locale} in which you want the name of the service. This must be a
     * @param locale The {@link Locale} in which you want the name of the service. This must be a
     *               value from the list returned by {@link #getLocales()} -- an
     *               value from the set returned by {@link #getNamedContentLocales()} -- an
     *               {@link java.util.NoSuchElementException} may be thrown otherwise.
     *               {@link java.util.NoSuchElementException} may be thrown otherwise.
     * @return The {@link CharSequence} providing the name of the service in the given
     * @return The {@link CharSequence} providing the name of the service in the given
     *         {@link Locale}
     *         {@link Locale}
@@ -139,6 +134,17 @@ public class ServiceInfo {
        return names.get(locale);
        return names.get(locale);
    }
    }


    /**
     * Return an unmodifiable set of the current {@link Locale}s that have a user-displayable name
     * associated with them. The user-displayable name associated with any {@link Locale} in this
     * set can be retrieved with {@link #getNameForLocale(Locale)}.
     * @return An unmodifiable set of {@link Locale} objects corresponding to a user-displayable
     * content name in that locale.
     */
    public @NonNull Set<Locale> getNamedContentLocales() {
        return Collections.unmodifiableSet(names.keySet());
    }

    /**
    /**
     * The class name for this service - used to categorize and filter
     * The class name for this service - used to categorize and filter
     */
     */