Changed ServiceInfo.Locale to a List
EMBMS advertises all the locals a service supports. For streaming
it's up to the dash client API to select the audio stream. The
meaning is less clear for download content and perhaps they general
only list a single locale.
Test: builds
Change-Id: I78983c34cc48f0c3068b7bbcc09c009d97a9477f
diff --git a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamingServiceRepository.java b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamingServiceRepository.java
index 789da39..677f39b 100644
--- a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamingServiceRepository.java
+++ b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamingServiceRepository.java
@@ -19,6 +19,7 @@
import android.net.Uri;
import android.telephony.mbms.StreamingServiceInfo;
+import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -61,9 +62,14 @@
sServiceIdCounter++;
String id = "StreamingServiceId[" + sServiceIdCounter + "]";
Map<Locale, String> localeDict = new HashMap<Locale, String>() {{
- put(Locale.US, "Entertainment Source " + sServiceIdCounter);
+ put(Locale.US, "Entertainment Source " + sServiceIdCounter);
+ put(Locale.CANADA, "Entertainment Source, eh?" + sServiceIdCounter);
}};
- StreamingServiceInfo info = new StreamingServiceInfo(localeDict, className, Locale.US,
+ List<Locale> locales = new ArrayList<Locale>() {{
+ add(Locale.CANADA);
+ add(Locale.US);
+ }};
+ StreamingServiceInfo info = new StreamingServiceInfo(localeDict, className, locales,
id, new Date(System.currentTimeMillis() - 10000),
new Date(System.currentTimeMillis() + 10000));
sIdToServiceInfo.put(id, info);
diff --git a/testapps/EmbmsTestStreamingApp/src/com/android/phone/testapps/embmsfrontend/EmbmsTestStreamingApp.java b/testapps/EmbmsTestStreamingApp/src/com/android/phone/testapps/embmsfrontend/EmbmsTestStreamingApp.java
index c310064..aa4a15b 100644
--- a/testapps/EmbmsTestStreamingApp/src/com/android/phone/testapps/embmsfrontend/EmbmsTestStreamingApp.java
+++ b/testapps/EmbmsTestStreamingApp/src/com/android/phone/testapps/embmsfrontend/EmbmsTestStreamingApp.java
@@ -25,7 +25,6 @@
import android.telephony.MbmsStreamingManager;
import android.telephony.mbms.MbmsException;
import android.telephony.mbms.MbmsStreamingManagerCallback;
-import android.telephony.mbms.StreamingService;
import android.telephony.mbms.StreamingServiceInfo;
import android.view.View;
import android.view.ViewGroup;
@@ -39,8 +38,8 @@
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
-import java.util.Objects;
public class EmbmsTestStreamingApp extends Activity {
private static final String APP_NAME = "StreamingApp1";
@@ -62,11 +61,24 @@
super(context, resource);
}
+ private String getName(StreamingServiceInfo info) {
+ Map<Locale, String> names = info.getNames();
+ String name = "<No Name>";
+ if (!names.isEmpty()) {
+ Locale locale = Locale.getDefault();
+ if (!names.containsKey(locale)) {
+ locale = names.keySet().iterator().next();
+ }
+ name = names.get(locale);
+ }
+ return name;
+ }
+
@Override
public View getView(int position, View convertView, ViewGroup parent) {
StreamingServiceInfo info = getItem(position);
TextView result = new TextView(EmbmsTestStreamingApp.this);
- result.setText(info.getNames().get(info.getLocale()));
+ result.setText(getName(info));
return result;
}
@@ -75,7 +87,7 @@
StreamingServiceInfo info = getItem(position);
TextView result = new TextView(EmbmsTestStreamingApp.this);
String text = "name="
- + info.getNames().get(info.getLocale())
+ + getName(info)
+ ", "
+ "serviceId="
+ info.getServiceId();