Merge "Use alternative PhoneStateListener formal API" am: 5d0529e6d0

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1466222

Change-Id: If80a6359b6570b5c99fcb1a5ace13f3599e5fc0d
This commit is contained in:
Chiachang Wang
2020-10-22 07:00:41 +00:00
committed by Automerger Merge Worker

View File

@@ -19,12 +19,12 @@ package com.android.server.connectivity;
import static android.telephony.AccessNetworkConstants.TRANSPORT_TYPE_WWAN; import static android.telephony.AccessNetworkConstants.TRANSPORT_TYPE_WWAN;
import static android.telephony.NetworkRegistrationInfo.DOMAIN_PS; import static android.telephony.NetworkRegistrationInfo.DOMAIN_PS;
import android.annotation.NonNull;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import android.os.RemoteException; import android.os.RemoteException;
import android.telephony.NetworkRegistrationInfo; import android.telephony.NetworkRegistrationInfo;
import android.telephony.PhoneStateListener; import android.telephony.PhoneStateListener;
@@ -36,6 +36,9 @@ import android.util.Log;
import com.android.internal.app.IBatteryStats; import com.android.internal.app.IBatteryStats;
import com.android.server.am.BatteryStatsService; import com.android.server.am.BatteryStatsService;
import java.util.concurrent.Executor;
import java.util.concurrent.RejectedExecutionException;
public class DataConnectionStats extends BroadcastReceiver { public class DataConnectionStats extends BroadcastReceiver {
private static final String TAG = "DataConnectionStats"; private static final String TAG = "DataConnectionStats";
private static final boolean DEBUG = false; private static final boolean DEBUG = false;
@@ -55,7 +58,8 @@ public class DataConnectionStats extends BroadcastReceiver {
mContext = context; mContext = context;
mBatteryStats = BatteryStatsService.getService(); mBatteryStats = BatteryStatsService.getService();
mListenerHandler = listenerHandler; mListenerHandler = listenerHandler;
mPhoneStateListener = new PhoneStateListenerImpl(listenerHandler.getLooper()); mPhoneStateListener =
new PhoneStateListenerImpl(new PhoneStateListenerExecutor(listenerHandler));
} }
public void startMonitoring() { public void startMonitoring() {
@@ -140,9 +144,24 @@ public class DataConnectionStats extends BroadcastReceiver {
&& mServiceState.getState() != ServiceState.STATE_POWER_OFF; && mServiceState.getState() != ServiceState.STATE_POWER_OFF;
} }
private static class PhoneStateListenerExecutor implements Executor {
@NonNull
private final Handler mHandler;
PhoneStateListenerExecutor(@NonNull Handler handler) {
mHandler = handler;
}
@Override
public void execute(Runnable command) {
if (!mHandler.post(command)) {
throw new RejectedExecutionException(mHandler + " is shutting down");
}
}
}
private class PhoneStateListenerImpl extends PhoneStateListener { private class PhoneStateListenerImpl extends PhoneStateListener {
PhoneStateListenerImpl(Looper looper) { PhoneStateListenerImpl(Executor executor) {
super(looper); super(executor);
} }
@Override @Override