Merge "Fix indexing error of mobile related controllers" into rvc-dev
diff --git a/src/com/android/settings/AirplaneModeEnabler.java b/src/com/android/settings/AirplaneModeEnabler.java
index a843a04..6028c18 100644
--- a/src/com/android/settings/AirplaneModeEnabler.java
+++ b/src/com/android/settings/AirplaneModeEnabler.java
@@ -19,6 +19,7 @@
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 @@
@VisibleForTesting
PhoneStateListener mPhoneStateListener;
- private GlobalSettingsChangeListener mAirplaneModeObserver;
-
public AirplaneModeEnabler(Context context, OnAirplaneModeChangedListener listener) {
super(context, Settings.Global.AIRPLANE_MODE_ON);
@@ -73,7 +72,7 @@
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 @@
/**
* Implementation of GlobalSettingsChangeListener.onChanged
*/
+ @Override
public void onChanged(String field) {
if (DEBUG) {
Log.d(LOG_TAG, "Airplane mode configuration update");
@@ -94,12 +94,18 @@
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 e852b80..122b975 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.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 @@
}
@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 1b50a54..192ee53 100644
--- a/src/com/android/settings/network/SubscriptionsChangeListener.java
+++ b/src/com/android/settings/network/SubscriptionsChangeListener.java
@@ -23,6 +23,7 @@
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 @@
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 d3fb437..cbe0912 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 @@
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 eed4046..d235a9a 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 @@
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 e928dba..bec8a51 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.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 @@
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 3a68a32..e527fd6 100644
--- a/src/com/android/settings/slices/SlicesIndexer.java
+++ b/src/com/android/settings/slices/SlicesIndexer.java
@@ -104,7 +104,10 @@
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 24abac9..6c5b9f2 100644
--- a/tests/robotests/src/com/android/settings/AirplaneModeEnablerTest.java
+++ b/tests/robotests/src/com/android/settings/AirplaneModeEnablerTest.java
@@ -53,7 +53,7 @@
@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 54c3683..cb68e2a 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 @@
mController.displayPreference(mScreen);
// This should not crash
- mController.onResume();
- mController.onPause();
+ mController.onStart();
+ mController.onStop();
}
@Test
@@ -115,8 +115,8 @@
mController.displayPreference(mScreen);
// This should not crash
- mController.onResume();
- mController.onPause();
+ mController.onStart();
+ mController.onStop();
}
@Test
@@ -147,7 +147,7 @@
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 @@
Settings.Global.putInt(mResolver, Settings.Global.AIRPLANE_MODE_ON, OFF);
mController.displayPreference(mScreen);
- mController.onResume();
+ mController.onStop();
assertThat(mPreference.isChecked()).isFalse();