diff options
| author | 2020-10-22 07:59:56 +0000 | |
|---|---|---|
| committer | 2020-10-22 07:59:56 +0000 | |
| commit | bdabe2429b60afbe44eb45c2f115a5fb45375aff (patch) | |
| tree | acd8f78bc922235a7851028abe3d654c3f511ebb | |
| parent | 3798b435ed58facacb16e79120f3d37da1bb9bbf (diff) | |
| parent | 639ab78ded4ad7d34bb6e04f487e393010feef87 (diff) | |
Merge "Use alternative PhoneStateListener formal API" am: 5d0529e6d0 am: e42b9b2b4d am: 639ab78ded
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1466222
Change-Id: I8c3099149b7b21c93efe7bda78f8330223092544
| -rw-r--r-- | services/core/java/com/android/server/connectivity/DataConnectionStats.java | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/connectivity/DataConnectionStats.java b/services/core/java/com/android/server/connectivity/DataConnectionStats.java index 0304cdc47515..15f43a0481bd 100644 --- a/services/core/java/com/android/server/connectivity/DataConnectionStats.java +++ b/services/core/java/com/android/server/connectivity/DataConnectionStats.java @@ -19,12 +19,12 @@ package com.android.server.connectivity; import static android.telephony.AccessNetworkConstants.TRANSPORT_TYPE_WWAN; import static android.telephony.NetworkRegistrationInfo.DOMAIN_PS; +import android.annotation.NonNull; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Handler; -import android.os.Looper; import android.os.RemoteException; import android.telephony.NetworkRegistrationInfo; import android.telephony.PhoneStateListener; @@ -36,6 +36,9 @@ import android.util.Log; import com.android.internal.app.IBatteryStats; import com.android.server.am.BatteryStatsService; +import java.util.concurrent.Executor; +import java.util.concurrent.RejectedExecutionException; + public class DataConnectionStats extends BroadcastReceiver { private static final String TAG = "DataConnectionStats"; private static final boolean DEBUG = false; @@ -55,7 +58,8 @@ public class DataConnectionStats extends BroadcastReceiver { mContext = context; mBatteryStats = BatteryStatsService.getService(); mListenerHandler = listenerHandler; - mPhoneStateListener = new PhoneStateListenerImpl(listenerHandler.getLooper()); + mPhoneStateListener = + new PhoneStateListenerImpl(new PhoneStateListenerExecutor(listenerHandler)); } public void startMonitoring() { @@ -140,9 +144,24 @@ public class DataConnectionStats extends BroadcastReceiver { && 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 { - PhoneStateListenerImpl(Looper looper) { - super(looper); + PhoneStateListenerImpl(Executor executor) { + super(executor); } @Override |