summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTaesu Lee <taesu82.lee@samsung.com>2020-05-04 17:00:36 +0900
committerMichael Bestas <mkbestas@lineageos.org>2020-05-24 20:13:50 +0300
commite3485c132a6d2ebabca95dbfdc74ff5b91f64609 (patch)
treef1022e93ea7313bff175f796b65b69264819b82f
parent2af21a4e05a443d785596642f0e0e2dc82a8f420 (diff)
downloadpackages_apps_Messaging-e3485c132a6d2ebabca95dbfdc74ff5b91f64609.tar.gz
packages_apps_Messaging-e3485c132a6d2ebabca95dbfdc74ff5b91f64609.tar.bz2
packages_apps_Messaging-e3485c132a6d2ebabca95dbfdc74ff5b91f64609.zip
Hide APN prefs if platform APIs are used
The APN prefs is available if legacy APIs are used with local APN db only. Test: Manual Change-Id: I5883dcb2c406acc601787edd02e0d3272732e6d7 Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
-rw-r--r--src/android/support/v7/mms/MmsManager.java23
-rw-r--r--src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java17
2 files changed, 26 insertions, 14 deletions
diff --git a/src/android/support/v7/mms/MmsManager.java b/src/android/support/v7/mms/MmsManager.java
index 4a72a32..642a141 100644
--- a/src/android/support/v7/mms/MmsManager.java
+++ b/src/android/support/v7/mms/MmsManager.java
@@ -135,13 +135,13 @@ public class MmsManager {
*/
public static void sendMultimediaMessage(int subId, Context context, Uri contentUri,
String locationUrl, PendingIntent sentIntent) {
- if (Utils.hasMmsApi() && !sForceLegacyMms) {
+ if (shouldUseLegacyMms()) {
+ MmsService.startRequest(context, new SendRequest(locationUrl, contentUri, sentIntent));
+ } else {
subId = Utils.getEffectiveSubscriptionId(subId);
final SmsManager smsManager = Utils.getSmsManager(subId);
smsManager.sendMultimediaMessage(context, contentUri, locationUrl,
getConfigOverrides(subId), sentIntent);
- } else {
- MmsService.startRequest(context, new SendRequest(locationUrl, contentUri, sentIntent));
}
}
@@ -157,18 +157,27 @@ public class MmsManager {
*/
public static void downloadMultimediaMessage(int subId, Context context, String locationUrl,
Uri contentUri, PendingIntent downloadedIntent) {
- if (Utils.hasMmsApi() && !sForceLegacyMms) {
+ if (shouldUseLegacyMms()) {
+ MmsService.startRequest(context,
+ new DownloadRequest(locationUrl, contentUri, downloadedIntent));
+ } else {
subId = Utils.getEffectiveSubscriptionId(subId);
final SmsManager smsManager = Utils.getSmsManager(subId);
smsManager.downloadMultimediaMessage(context, locationUrl, contentUri,
getConfigOverrides(subId), downloadedIntent);
- } else {
- MmsService.startRequest(context,
- new DownloadRequest(locationUrl, contentUri, downloadedIntent));
}
}
/**
+ * Checks if we should use legacy APIs for MMS.
+ *
+ * @return true if forced to use legacy APIs or platform doesn't supports MMS APIs.
+ */
+ public static boolean shouldUseLegacyMms() {
+ return sForceLegacyMms || !Utils.hasMmsApi();
+ }
+
+ /**
* Get carrier configuration values overrides when platform MMS API is called.
* We only need to compute this if customized carrier config values loader or
* user agent info loader are set
diff --git a/src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java b/src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java
index 9ad90d8..18a3f47 100644
--- a/src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java
+++ b/src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java
@@ -28,10 +28,12 @@ import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment;
import android.preference.PreferenceScreen;
-import androidx.core.app.NavUtils;
import android.text.TextUtils;
import android.view.MenuItem;
+import androidx.appcompat.mms.MmsManager;
+import androidx.core.app.NavUtils;
+
import com.android.messaging.Factory;
import com.android.messaging.R;
import com.android.messaging.datamodel.ParticipantRefresh;
@@ -159,17 +161,18 @@ public class PerSubscriptionSettingsActivity extends BugleActionBarActivity {
}
// Access Point Names (APNs)
- final Preference apnsPref = findPreference(getString(R.string.sms_apns_key));
+ final PreferenceScreen apnsScreen =
+ (PreferenceScreen) findPreference(getString(R.string.sms_apns_key));
- if (MmsUtils.useSystemApnTable() && !ApnDatabase.doesDatabaseExist()) {
- // Don't remove the ability to edit the local APN prefs if this device lets us
+ if (!MmsManager.shouldUseLegacyMms()
+ || (MmsUtils.useSystemApnTable() && !ApnDatabase.doesDatabaseExist())) {
+ // 1) Remove the ability to edit the local APN prefs if it doesn't use legacy APIs.
+ // 2) Don't remove the ability to edit the local APN prefs if this device lets us
// access the system APN, but we can't find the MCC/MNC in the APN table and we
// created the local APN table in case the MCC/MNC was in there. In other words,
// if the local APN table exists, let the user edit it.
- advancedCategory.removePreference(apnsPref);
+ advancedCategory.removePreference((Preference) apnsScreen);
} else {
- final PreferenceScreen apnsScreen = (PreferenceScreen) findPreference(
- getString(R.string.sms_apns_key));
apnsScreen.setIntent(UIIntents.get()
.getApnSettingsIntent(getPreferenceScreen().getContext(), mSubId));
}