diff --git a/src/com/android/settings/AirplaneModeEnabler.java b/src/com/android/settings/AirplaneModeEnabler.java index a843a046c98..6028c188d9f 100644 --- a/src/com/android/settings/AirplaneModeEnabler.java +++ b/src/com/android/settings/AirplaneModeEnabler.java @@ -19,6 +19,7 @@ package com.android.settings; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; +import android.os.Looper; import android.os.UserHandle; import android.provider.Settings; import android.telephony.PhoneStateListener; @@ -62,8 +63,6 @@ public class AirplaneModeEnabler extends GlobalSettingsChangeListener { @VisibleForTesting PhoneStateListener mPhoneStateListener; - private GlobalSettingsChangeListener mAirplaneModeObserver; - public AirplaneModeEnabler(Context context, OnAirplaneModeChangedListener listener) { super(context, Settings.Global.AIRPLANE_MODE_ON); @@ -73,7 +72,7 @@ public class AirplaneModeEnabler extends GlobalSettingsChangeListener { mTelephonyManager = context.getSystemService(TelephonyManager.class); - mPhoneStateListener = new PhoneStateListener() { + mPhoneStateListener = new PhoneStateListener(Looper.getMainLooper()) { @Override public void onRadioPowerStateChanged(int state) { if (DEBUG) { @@ -87,6 +86,7 @@ public class AirplaneModeEnabler extends GlobalSettingsChangeListener { /** * Implementation of GlobalSettingsChangeListener.onChanged */ + @Override public void onChanged(String field) { if (DEBUG) { Log.d(LOG_TAG, "Airplane mode configuration update"); @@ -94,12 +94,18 @@ public class AirplaneModeEnabler extends GlobalSettingsChangeListener { onAirplaneModeChanged(); } - public void resume() { + /** + * Start listening to the phone state change + */ + public void start() { mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_RADIO_POWER_STATE_CHANGED); } - public void pause() { + /** + * Stop listening to the phone state change + */ + public void stop() { mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); } diff --git a/src/com/android/settings/network/AirplaneModePreferenceController.java b/src/com/android/settings/network/AirplaneModePreferenceController.java index e852b80e00d..122b9752ca8 100644 --- a/src/com/android/settings/network/AirplaneModePreferenceController.java +++ b/src/com/android/settings/network/AirplaneModePreferenceController.java @@ -35,11 +35,11 @@ import com.android.settings.AirplaneModeEnabler; import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; -import com.android.settingslib.core.lifecycle.events.OnPause; -import com.android.settingslib.core.lifecycle.events.OnResume; +import com.android.settingslib.core.lifecycle.events.OnStart; +import com.android.settingslib.core.lifecycle.events.OnStop; public class AirplaneModePreferenceController extends TogglePreferenceController - implements LifecycleObserver, OnResume, OnPause, + implements LifecycleObserver, OnStart, OnStop, AirplaneModeEnabler.OnAirplaneModeChangedListener { public static final int REQUEST_CODE_EXIT_ECM = 1; @@ -120,16 +120,16 @@ public class AirplaneModePreferenceController extends TogglePreferenceController } @Override - public void onResume() { + public void onStart() { if (isAvailable()) { - mAirplaneModeEnabler.resume(); + mAirplaneModeEnabler.start(); } } @Override - public void onPause() { + public void onStop() { if (isAvailable()) { - mAirplaneModeEnabler.pause(); + mAirplaneModeEnabler.stop(); } } diff --git a/src/com/android/settings/network/SubscriptionsChangeListener.java b/src/com/android/settings/network/SubscriptionsChangeListener.java index 1b50a54ba45..192ee53fdb9 100644 --- a/src/com/android/settings/network/SubscriptionsChangeListener.java +++ b/src/com/android/settings/network/SubscriptionsChangeListener.java @@ -23,6 +23,7 @@ import android.content.IntentFilter; import android.database.ContentObserver; import android.net.Uri; import android.os.Handler; +import android.os.Looper; import android.provider.Settings; import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener; @@ -45,11 +46,11 @@ public class SubscriptionsChangeListener extends ContentObserver { private BroadcastReceiver mBroadcastReceiver; public SubscriptionsChangeListener(Context context, SubscriptionsChangeListenerClient client) { - super(new Handler()); + super(new Handler(Looper.getMainLooper())); mContext = context; mClient = client; mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class); - mSubscriptionsChangedListener = new OnSubscriptionsChangedListener() { + mSubscriptionsChangedListener = new OnSubscriptionsChangedListener(Looper.getMainLooper()) { @Override public void onSubscriptionsChanged() { subscriptionsChangedCallback(); diff --git a/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java b/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java index d3fb437a36c..cbe0912f0e9 100644 --- a/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java +++ b/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java @@ -17,6 +17,7 @@ package com.android.settings.network.telephony; import android.content.Context; +import android.os.Looper; import android.os.PersistableBundle; import android.telephony.CarrierConfigManager; import android.telephony.PhoneStateListener; @@ -187,7 +188,7 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc private class PhoneCallStateListener extends PhoneStateListener { PhoneCallStateListener() { - super(); + super(Looper.getMainLooper()); } private TelephonyManager mTelephonyManager; diff --git a/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java b/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java index eed40467c84..d235a9ac36a 100644 --- a/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java +++ b/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java @@ -17,6 +17,7 @@ package com.android.settings.network.telephony; import android.content.Context; +import android.os.Looper; import android.os.PersistableBundle; import android.telephony.CarrierConfigManager; import android.telephony.PhoneStateListener; @@ -164,7 +165,7 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC private class PhoneCallStateListener extends PhoneStateListener { PhoneCallStateListener() { - super(); + super(Looper.getMainLooper()); } private TelephonyManager mTelephonyManager; diff --git a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java index e928dba734c..bec8a51adda 100644 --- a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java +++ b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java @@ -20,6 +20,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.os.Looper; import android.os.PersistableBundle; import android.provider.Settings; import android.telecom.PhoneAccountHandle; @@ -194,7 +195,7 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont private class PhoneCallStateListener extends PhoneStateListener { PhoneCallStateListener() { - super(); + super(Looper.getMainLooper()); } private TelephonyManager mTelephonyManager; diff --git a/src/com/android/settings/slices/SlicesIndexer.java b/src/com/android/settings/slices/SlicesIndexer.java index 3a68a322853..e527fd657ab 100644 --- a/src/com/android/settings/slices/SlicesIndexer.java +++ b/src/com/android/settings/slices/SlicesIndexer.java @@ -104,7 +104,10 @@ class SlicesIndexer implements Runnable { values.put(IndexColumns.SLICE_URI, dataRow.getUri().toSafeString()); values.put(IndexColumns.TITLE, dataRow.getTitle()); values.put(IndexColumns.SUMMARY, dataRow.getSummary()); - values.put(IndexColumns.SCREENTITLE, dataRow.getScreenTitle().toString()); + final CharSequence screenTitle = dataRow.getScreenTitle(); + if (screenTitle != null) { + values.put(IndexColumns.SCREENTITLE, screenTitle.toString()); + } values.put(IndexColumns.KEYWORDS, dataRow.getKeywords()); values.put(IndexColumns.ICON_RESOURCE, dataRow.getIconResource()); values.put(IndexColumns.FRAGMENT, dataRow.getFragmentClassName()); diff --git a/tests/robotests/src/com/android/settings/AirplaneModeEnablerTest.java b/tests/robotests/src/com/android/settings/AirplaneModeEnablerTest.java index 24abac9f258..6c5b9f2323f 100644 --- a/tests/robotests/src/com/android/settings/AirplaneModeEnablerTest.java +++ b/tests/robotests/src/com/android/settings/AirplaneModeEnablerTest.java @@ -53,7 +53,7 @@ public final class AirplaneModeEnablerTest { @Test public void onRadioPowerStateChanged_beenInvoke_invokeOnAirplaneModeChanged() { - mAirplaneModeEnabler.resume(); + mAirplaneModeEnabler.start(); ShadowSettings.setAirplaneMode(true); diff --git a/tests/robotests/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java index 54c36833d45..cb68e2a6aa9 100644 --- a/tests/robotests/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java @@ -102,8 +102,8 @@ public class AirplaneModePreferenceControllerTest { mController.displayPreference(mScreen); // This should not crash - mController.onResume(); - mController.onPause(); + mController.onStart(); + mController.onStop(); } @Test @@ -115,8 +115,8 @@ public class AirplaneModePreferenceControllerTest { mController.displayPreference(mScreen); // This should not crash - mController.onResume(); - mController.onPause(); + mController.onStart(); + mController.onStop(); } @Test @@ -147,7 +147,7 @@ public class AirplaneModePreferenceControllerTest { Settings.Global.putInt(mResolver, Settings.Global.AIRPLANE_MODE_ON, ON); mController.displayPreference(mScreen); - mController.onResume(); + mController.onStart(); assertThat(mController.isChecked()).isTrue(); @@ -161,7 +161,7 @@ public class AirplaneModePreferenceControllerTest { Settings.Global.putInt(mResolver, Settings.Global.AIRPLANE_MODE_ON, OFF); mController.displayPreference(mScreen); - mController.onResume(); + mController.onStop(); assertThat(mPreference.isChecked()).isFalse();