40 lines
1.3 KiB
Java
40 lines
1.3 KiB
Java
package androidx.core.telephony.mbms;
|
|
|
|
import android.annotation.SuppressLint;
|
|
import android.annotation.TargetApi;
|
|
import android.content.Context;
|
|
import android.os.Build;
|
|
import android.os.LocaleList;
|
|
import android.telephony.mbms.ServiceInfo;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import java.util.Locale;
|
|
public final class MbmsHelper {
|
|
private MbmsHelper() {
|
|
}
|
|
|
|
@Nullable
|
|
@SuppressLint({"BanTargetApiAnnotation"})
|
|
@TargetApi(28)
|
|
public static CharSequence getBestNameForService(@NonNull Context context, @NonNull ServiceInfo serviceInfo) {
|
|
if (Build.VERSION.SDK_INT < 28) {
|
|
return null;
|
|
}
|
|
LocaleList locales = context.getResources().getConfiguration().getLocales();
|
|
int size = serviceInfo.getNamedContentLocales().size();
|
|
if (size == 0) {
|
|
return null;
|
|
}
|
|
String[] strArr = new String[size];
|
|
int i = 0;
|
|
for (Locale locale : serviceInfo.getNamedContentLocales()) {
|
|
strArr[i] = locale.toLanguageTag();
|
|
i++;
|
|
}
|
|
Locale firstMatch = locales.getFirstMatch(strArr);
|
|
if (firstMatch == null) {
|
|
return null;
|
|
}
|
|
return serviceInfo.getNameForLocale(firstMatch);
|
|
}
|
|
}
|