Use new MMS APIs in Lollipop onwards

Fixes #1937
Closes #2727
This commit is contained in:
Jake McGinty
2014-12-29 14:01:02 -08:00
committed by Moxie Marlinspike
parent dfda2f733c
commit 427c9a6b21
22 changed files with 841 additions and 460 deletions

View File

@@ -26,7 +26,7 @@ import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.components.CustomDefaultPreference;
import org.thoughtcrime.securesms.database.ApnDatabase;
import org.thoughtcrime.securesms.mms.MmsConnection;
import org.thoughtcrime.securesms.mms.LegacyMmsConnection;
import org.thoughtcrime.securesms.util.TelephonyUtil;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
@@ -52,10 +52,10 @@ public class MmsPreferencesFragment extends PreferenceFragment {
new LoadApnDefaultsTask().execute();
}
private class LoadApnDefaultsTask extends AsyncTask<Void, Void, MmsConnection.Apn> {
private class LoadApnDefaultsTask extends AsyncTask<Void, Void, LegacyMmsConnection.Apn> {
@Override
protected MmsConnection.Apn doInBackground(Void... params) {
protected LegacyMmsConnection.Apn doInBackground(Void... params) {
try {
Context context = getActivity();
@@ -72,7 +72,7 @@ public class MmsPreferencesFragment extends PreferenceFragment {
}
@Override
protected void onPostExecute(MmsConnection.Apn apnDefaults) {
protected void onPostExecute(LegacyMmsConnection.Apn apnDefaults) {
((CustomDefaultPreference)findPreference(TextSecurePreferences.MMSC_HOST_PREF))
.setValidator(new CustomDefaultPreference.UriValidator())
.setDefaultValue(apnDefaults.getMmsc());

View File

@@ -3,6 +3,8 @@ package org.thoughtcrime.securesms.preferences;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceScreen;
@@ -40,12 +42,13 @@ public class SmsMmsPreferenceFragment extends PreferenceFragment {
}
private void initializePlatformSpecificOptions() {
PreferenceScreen preferenceScreen = getPreferenceScreen();
Preference defaultPreference = findPreference(KITKAT_DEFAULT_PREF);
Preference allSmsPreference = findPreference(TextSecurePreferences.ALL_SMS_PREF);
Preference allMmsPreference = findPreference(TextSecurePreferences.ALL_MMS_PREF);
PreferenceScreen preferenceScreen = getPreferenceScreen();
Preference defaultPreference = findPreference(KITKAT_DEFAULT_PREF);
Preference allSmsPreference = findPreference(TextSecurePreferences.ALL_SMS_PREF);
Preference allMmsPreference = findPreference(TextSecurePreferences.ALL_MMS_PREF);
Preference manualMmsPreference = findPreference(MMS_PREF);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT ) {
if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) {
if (allSmsPreference != null) preferenceScreen.removePreference(allSmsPreference);
if (allMmsPreference != null) preferenceScreen.removePreference(allMmsPreference);
@@ -63,6 +66,10 @@ public class SmsMmsPreferenceFragment extends PreferenceFragment {
} else if (defaultPreference != null) {
preferenceScreen.removePreference(defaultPreference);
}
if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP && manualMmsPreference != null) {
preferenceScreen.removePreference(manualMmsPreference);
}
}
private class ApnPreferencesClickListener implements Preference.OnPreferenceClickListener {