Merge "Change the Auto-select Network UI." into pi-dev
diff --git a/res/layout/preference_category_no_label.xml b/res/layout/preference_category_no_label.xml
new file mode 100644
index 0000000..becfba7
--- /dev/null
+++ b/res/layout/preference_category_no_label.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:background="?android:attr/dividerHorizontal"/>
+
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 213af8f..891a45b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1183,8 +1183,14 @@
<!-- RTT settings: used to turn on/off Real-Time Text, an accessibility feature similar to
TTY that allows users to send text over a phone call. -->
- <string name="rtt_mode_title">RTT</string>
- <string name="rtt_mode_summary">Turn RTT on or off</string>
+ <string name="rtt_mode_title">Real-time text(RTT) call</string>
+ <string name="rtt_mode_summary">Allow messaging within a voice call</string>
+ <string name="rtt_mode_more_information">
+ RTT assists callers who are deaf, hard hearing, have a speech disability,
+ or need more than voice alone.<br/>
+ <a href="<xliff:g example="http://www.google.com" id="url">http://support.google.com/mobile?p=telephony_rtt</xliff:g>">Learn more</a>
+ <br/> - RTT calls are saved as a message transcript
+ <br/> - RTT is not available for video calls</string>
<!-- Service option entries. -->
<string-array name="tty_mode_entries">
diff --git a/res/xml/gsm_umts_options.xml b/res/xml/gsm_umts_options.xml
index 1df4c84..3b4bc21 100644
--- a/res/xml/gsm_umts_options.xml
+++ b/res/xml/gsm_umts_options.xml
@@ -41,7 +41,9 @@
<!--We want separate APN setting from reset of settings because-->
<!--we want user to change it with caution.-->
<PreferenceCategory
- android:key="category_gsm_apn_key">
+ android:key="category_gsm_apn_key"
+ android:layout="@layout/preference_category_no_label">
+
<com.android.phone.RestrictedPreference
android:key="button_gsm_apn_key"
android:title="@string/apn_settings"
diff --git a/src/com/android/phone/NetworkSelectListPreference.java b/src/com/android/phone/NetworkSelectListPreference.java
index 146c76e..a8f29c9 100644
--- a/src/com/android/phone/NetworkSelectListPreference.java
+++ b/src/com/android/phone/NetworkSelectListPreference.java
@@ -411,7 +411,7 @@
String networkTitle = getNetworkTitle(cellInfo);
if (!networkEntriesList.contains(networkTitle)) {
networkEntriesList.add(networkTitle);
- networkEntryValuesList.add(Integer.toString(networkEntriesList.size() + 1));
+ networkEntryValuesList.add(getOperatorNumeric(cellInfo));
}
}
setEntries(networkEntriesList.toArray(new CharSequence[networkEntriesList.size()]));
@@ -510,6 +510,16 @@
}
/**
+ * Returns the operator numeric (MCCMNC) obtained in the manual search.
+ *
+ * @param cellInfo contains the information of the network.
+ * @return MCCMNC string.
+ */
+ private String getOperatorNumeric(CellInfo cellInfo) {
+ return getOperatorInfoFromCellInfo(cellInfo).getOperatorNumeric();
+ }
+
+ /**
* Wrap a cell info into an operator info.
*/
private OperatorInfo getOperatorInfoFromCellInfo(CellInfo cellInfo) {
diff --git a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsSampleDownloadService.java b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsSampleDownloadService.java
index 7bd0f70..6ddebb8 100644
--- a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsSampleDownloadService.java
+++ b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsSampleDownloadService.java
@@ -31,8 +31,9 @@
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import android.telephony.MbmsDownloadSession;
+import android.telephony.mbms.DownloadProgressListener;
import android.telephony.mbms.DownloadRequest;
-import android.telephony.mbms.DownloadStateCallback;
+import android.telephony.mbms.DownloadStatusListener;
import android.telephony.mbms.FileInfo;
import android.telephony.mbms.FileServiceInfo;
import android.telephony.mbms.MbmsDownloadSessionCallback;
@@ -143,9 +144,16 @@
}
@Override
- public int registerStateCallback(DownloadRequest downloadRequest,
- DownloadStateCallback callback) throws RemoteException {
- mDownloadStateCallbacks.put(downloadRequest, callback);
+ public int addStatusListener(DownloadRequest downloadRequest,
+ DownloadStatusListener callback) throws RemoteException {
+ mDownloadStatusCallbacks.put(downloadRequest, callback);
+ return MbmsErrors.SUCCESS;
+ }
+
+ @Override
+ public int addProgressListener(DownloadRequest downloadRequest,
+ DownloadProgressListener callback) throws RemoteException {
+ mDownloadProgressCallbacks.put(downloadRequest, callback);
return MbmsErrors.SUCCESS;
}
@@ -183,7 +191,9 @@
// A map of app-identifiers to (maps of service-ids to sets of temp file uris in use)
private final Map<FrontendAppIdentifier, Map<String, Set<Uri>>> mTempFilesInUse =
new ConcurrentHashMap<>();
- private final Map<DownloadRequest, DownloadStateCallback> mDownloadStateCallbacks =
+ private final Map<DownloadRequest, DownloadStatusListener> mDownloadStatusCallbacks =
+ new ConcurrentHashMap<>();
+ private final Map<DownloadRequest, DownloadProgressListener> mDownloadProgressCallbacks =
new ConcurrentHashMap<>();
private HandlerThread mHandlerThread;
@@ -334,13 +344,14 @@
UriPathPair tempFile, FileInfo fileToDownload) {
int result = MbmsDownloadSession.RESULT_SUCCESSFUL;
// Test Callback
- DownloadStateCallback c = mDownloadStateCallbacks.get(request);
- if (c != null) {
- c.onProgressUpdated(request, fileToDownload, 0, 10, 0, 10);
+ DownloadStatusListener statusListener = mDownloadStatusCallbacks.get(request);
+ DownloadProgressListener progressListener = mDownloadProgressCallbacks.get(request);
+ if (progressListener != null) {
+ progressListener.onProgressUpdated(request, fileToDownload, 0, 10, 0, 10);
}
// Test Callback
- if (c != null) {
- c.onStateUpdated(request, fileToDownload,
+ if (statusListener != null) {
+ statusListener.onStatusUpdated(request, fileToDownload,
MbmsDownloadSession.STATUS_ACTIVELY_DOWNLOADING);
}
try {
@@ -367,8 +378,8 @@
result = MbmsDownloadSession.RESULT_CANCELLED;
}
// Test Callback
- if (c != null) {
- c.onProgressUpdated(request, fileToDownload, 10, 10, 10, 10);
+ if (progressListener != null) {
+ progressListener.onProgressUpdated(request, fileToDownload, 10, 10, 10, 10);
}
// Take a round-trip through the download request serialization to exercise it
DownloadRequest request1 = DownloadRequest.Builder.fromSerializedRequest(
diff --git a/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/EmbmsTestDownloadApp.java b/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/EmbmsTestDownloadApp.java
index 76baf05..f77b4ac 100644
--- a/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/EmbmsTestDownloadApp.java
+++ b/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/EmbmsTestDownloadApp.java
@@ -27,8 +27,9 @@
import android.support.v7.widget.RecyclerView;
import android.telephony.MbmsDownloadSession;
import android.telephony.SubscriptionManager;
+import android.telephony.mbms.DownloadProgressListener;
import android.telephony.mbms.DownloadRequest;
-import android.telephony.mbms.DownloadStateCallback;
+import android.telephony.mbms.DownloadStatusListener;
import android.telephony.mbms.FileInfo;
import android.telephony.mbms.FileServiceInfo;
import android.telephony.mbms.MbmsDownloadSessionCallback;
@@ -292,8 +293,8 @@
"No DownloadRequest Pending for progress...", Toast.LENGTH_SHORT).show();
return;
}
- mDownloadManager.registerStateCallback(req, sInstance.getMainThreadHandler()::post,
- new DownloadStateCallback(DownloadStateCallback.PROGRESS_UPDATES) {
+ mDownloadManager.addProgressListener(req, sInstance.getMainThreadHandler()::post,
+ new DownloadProgressListener() {
@Override
public void onProgressUpdated(DownloadRequest request, FileInfo fileInfo,
int currentDownloadSize, int fullDownloadSize,
@@ -303,16 +304,6 @@
+ " fd: " + fullDownloadSize, Toast.LENGTH_SHORT)
.show();
}
-
- @Override
- public void onStateUpdated(DownloadRequest request, FileInfo fileInfo,
- @MbmsDownloadSession.DownloadStatus int state) {
- // only registered for state callback, this shouldn't happen!
- Toast.makeText(EmbmsTestDownloadApp.this,
- "State ERROR: received state update for callback that didn't"
- + " filter it",
- Toast.LENGTH_SHORT).show();
- }
});
});
@@ -330,21 +321,10 @@
"No DownloadRequest Pending for state...", Toast.LENGTH_SHORT).show();
return;
}
- mDownloadManager.registerStateCallback(req, sInstance.getMainThreadHandler()::post,
- new DownloadStateCallback(DownloadStateCallback.STATE_UPDATES) {
+ mDownloadManager.addStatusListener(req, sInstance.getMainThreadHandler()::post,
+ new DownloadStatusListener() {
@Override
- public void onProgressUpdated(DownloadRequest request, FileInfo fileInfo,
- int currentDownloadSize, int fullDownloadSize,
- int currentDecodedSize, int fullDecodedSize) {
- // only registered for state callback, this shouldn't happen!
- Toast.makeText(EmbmsTestDownloadApp.this,
- "Progress ERROR: received progress update for"
- + " callback that didn't "
- + "filter it", Toast.LENGTH_SHORT).show();
- }
-
- @Override
- public void onStateUpdated(DownloadRequest request, FileInfo fileInfo,
+ public void onStatusUpdated(DownloadRequest request, FileInfo fileInfo,
@MbmsDownloadSession.DownloadStatus int state) {
Toast.makeText(EmbmsTestDownloadApp.this,
"State Updated (" + fileInfo + ") state: " + state,
@@ -367,8 +347,20 @@
"No DownloadRequest Pending for state...", Toast.LENGTH_SHORT).show();
return;
}
- mDownloadManager.registerStateCallback(req, sInstance.getMainThreadHandler()::post,
- new DownloadStateCallback() {
+
+ mDownloadManager.addStatusListener(req, sInstance.getMainThreadHandler()::post,
+ new DownloadStatusListener() {
+ @Override
+ public void onStatusUpdated(DownloadRequest request, FileInfo fileInfo,
+ @MbmsDownloadSession.DownloadStatus int state) {
+ Toast.makeText(EmbmsTestDownloadApp.this,
+ "State Updated (" + fileInfo + ") state: " + state,
+ Toast.LENGTH_SHORT).show();
+ }
+ });
+
+ mDownloadManager.addProgressListener(req, sInstance.getMainThreadHandler()::post,
+ new DownloadProgressListener() {
@Override
public void onProgressUpdated(DownloadRequest request, FileInfo fileInfo,
int currentDownloadSize, int fullDownloadSize,
@@ -378,14 +370,6 @@
+ " fd: " + fullDownloadSize, Toast.LENGTH_SHORT)
.show();
}
-
- @Override
- public void onStateUpdated(DownloadRequest request, FileInfo fileInfo,
- @MbmsDownloadSession.DownloadStatus int state) {
- Toast.makeText(EmbmsTestDownloadApp.this,
- "State Updated (" + fileInfo + ") state: " + state,
- Toast.LENGTH_SHORT).show();
- }
});
});
}