Telephony: Allow custom looper for OnSubscriptionsChangedListener

* Add OnSubscriptionsChangedListener(Looper looper) constructor

Bug: 69429540
Test: Use this constructor in HeadsetPhoneState.java
Change-Id: I37b6c8d970384466527acc8df7a818625865ab16
This commit is contained in:
Jack He
2017-11-16 15:54:14 -08:00
parent a89f6150dc
commit 9fc75740e1

View File

@@ -26,6 +26,7 @@ import android.content.res.Configuration;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -408,7 +409,15 @@ public class SubscriptionManager {
* for #onSubscriptionsChanged to be invoked.
*/
public static class OnSubscriptionsChangedListener {
private final Handler mHandler = new Handler() {
private class OnSubscriptionsChangedListenerHandler extends Handler {
OnSubscriptionsChangedListenerHandler() {
super();
}
OnSubscriptionsChangedListenerHandler(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
if (DBG) {
@@ -416,7 +425,22 @@ public class SubscriptionManager {
}
OnSubscriptionsChangedListener.this.onSubscriptionsChanged();
}
};
}
private final Handler mHandler;
public OnSubscriptionsChangedListener() {
mHandler = new OnSubscriptionsChangedListenerHandler();
}
/**
* Allow a listener to be created with a custom looper
* @param looper the looper that the underlining handler should run on
* @hide
*/
public OnSubscriptionsChangedListener(Looper looper) {
mHandler = new OnSubscriptionsChangedListenerHandler(looper);
}
/**
* Callback invoked when there is any change to any SubscriptionInfo. Typically