Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bdabe242 authored by Chiachang Wang's avatar Chiachang Wang Committed by Automerger Merge Worker
Browse files

Merge "Use alternative PhoneStateListener formal API" am: 5d0529e6 am: e42b9b2b am: 639ab78d

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

Change-Id: I8c3099149b7b21c93efe7bda78f8330223092544
parents 3798b435 639ab78d
Loading
Loading
Loading
Loading
+23 −4
Original line number Original line Diff line number Diff line
@@ -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