diff options
author | Taesu Lee <taesu82.lee@samsung.com> | 2020-05-04 17:00:36 +0900 |
---|---|---|
committer | Michael Bestas <mkbestas@lineageos.org> | 2020-05-24 20:13:50 +0300 |
commit | e3485c132a6d2ebabca95dbfdc74ff5b91f64609 (patch) | |
tree | f1022e93ea7313bff175f796b65b69264819b82f | |
parent | 2af21a4e05a443d785596642f0e0e2dc82a8f420 (diff) | |
download | android_packages_apps_Messaging-e3485c132a6d2ebabca95dbfdc74ff5b91f64609.tar.gz android_packages_apps_Messaging-e3485c132a6d2ebabca95dbfdc74ff5b91f64609.tar.bz2 android_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.java | 23 | ||||
-rw-r--r-- | src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java | 17 |
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)); } |