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

Commit 97c1f8b0 authored by Betty Chang's avatar Betty Chang Committed by Gerrit Code Review
Browse files

Merge "[Telephony MainLine] To extends PackageChangeReceiver for monitoring the state of packages"

parents 81e14337 8479ad71
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import android.os.Process;
import android.os.SystemClock;
import android.os.UserHandle;
import android.service.carrier.CarrierService;
import android.telephony.PackageChangeReceiver;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
@@ -41,9 +42,8 @@ import android.util.Log;
import android.util.SparseArray;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.content.PackageMonitor;

import com.android.internal.telephony.util.TelephonyUtils;

import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.List;
@@ -67,7 +67,7 @@ public class CarrierServiceBindHelper {
    public SparseArray<AppBinding> mBindings = new SparseArray();
    @VisibleForTesting
    public SparseArray<String> mLastSimState = new SparseArray<>();
    private final PackageMonitor mPackageMonitor = new CarrierServicePackageMonitor();
    private final PackageChangeReceiver mPackageMonitor = new CarrierServicePackageMonitor();

    private BroadcastReceiver mUserUnlockedReceiver = new BroadcastReceiver() {
        @Override
@@ -128,7 +128,7 @@ public class CarrierServiceBindHelper {
                mHandler, EVENT_MULTI_SIM_CONFIG_CHANGED, null);

        mPackageMonitor.register(
                context, mHandler.getLooper(), UserHandle.ALL, false /* externalStorage */);
                context, mHandler.getLooper(), UserHandle.ALL);
        try {
            Context contextAsUser = mContext.createPackageContextAsUser(mContext.getPackageName(),
                0, UserHandle.SYSTEM);
@@ -373,19 +373,19 @@ public class CarrierServiceBindHelper {
        }
    }

    private class CarrierServicePackageMonitor extends PackageMonitor {
    private class CarrierServicePackageMonitor extends PackageChangeReceiver {
        @Override
        public void onPackageAdded(String packageName, int reason) {
        public void onPackageAdded(String packageName) {
            evaluateBinding(packageName, true /* forceUnbind */);
        }

        @Override
        public void onPackageRemoved(String packageName, int reason) {
        public void onPackageRemoved(String packageName) {
            evaluateBinding(packageName, true /* forceUnbind */);
        }

        @Override
        public void onPackageUpdateFinished(String packageName, int uid) {
        public void onPackageUpdateFinished(String packageName) {
            evaluateBinding(packageName, true /* forceUnbind */);
        }

@@ -395,13 +395,12 @@ public class CarrierServiceBindHelper {
        }

        @Override
        public boolean onHandleForceStop(Intent intent, String[] packages, int uid, boolean doit) {
        public void onHandleForceStop(String[] packages, boolean doit) {
            if (doit) {
                for (String packageName : packages) {
                    evaluateBinding(packageName, true /* forceUnbind */);
                }
            }
            return super.onHandleForceStop(intent, packages, uid, doit);
        }

        private void evaluateBinding(String carrierPackageName, boolean forceUnbind) {
+8 −9
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ import android.service.euicc.IOtaStatusChangedCallback;
import android.service.euicc.IRetainSubscriptionsForFactoryResetCallback;
import android.service.euicc.ISwitchToSubscriptionCallback;
import android.service.euicc.IUpdateSubscriptionNicknameCallback;
import android.telephony.PackageChangeReceiver;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.UiccCardInfo;
@@ -68,7 +69,6 @@ import android.util.ArraySet;
import android.util.Log;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.content.PackageMonitor;
import com.android.internal.telephony.util.TelephonyUtils;
import com.android.internal.util.IState;
import com.android.internal.util.State;
@@ -327,7 +327,7 @@ public class EuiccConnector extends StateMachine implements ServiceConnection {
    private TelephonyManager mTm;
    private SubscriptionManager mSm;

    private final PackageMonitor mPackageMonitor = new EuiccPackageMonitor();
    private final PackageChangeReceiver mPackageMonitor = new EuiccPackageMonitor();
    private final BroadcastReceiver mUserUnlockedReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
@@ -393,7 +393,7 @@ public class EuiccConnector extends StateMachine implements ServiceConnection {
        mSelectedComponent = findBestComponent();
        setInitialState(mSelectedComponent != null ? mAvailableState : mUnavailableState);

        mPackageMonitor.register(mContext, null /* thread */, false /* externalStorage */);
        mPackageMonitor.register(mContext, null /* thread */, null /* user */);
        mContext.registerReceiver(
                mUserUnlockedReceiver, new IntentFilter(Intent.ACTION_USER_UNLOCKED));

@@ -1124,19 +1124,19 @@ public class EuiccConnector extends StateMachine implements ServiceConnection {
        sendMessage(CMD_SERVICE_DISCONNECTED);
    }

    private class EuiccPackageMonitor extends PackageMonitor {
    private class EuiccPackageMonitor extends PackageChangeReceiver {
        @Override
        public void onPackageAdded(String packageName, int reason) {
        public void onPackageAdded(String packageName) {
            sendPackageChange(packageName, true /* forceUnbindForThisPackage */);
        }

        @Override
        public void onPackageRemoved(String packageName, int reason) {
        public void onPackageRemoved(String packageName) {
            sendPackageChange(packageName, true /* forceUnbindForThisPackage */);
        }

        @Override
        public void onPackageUpdateFinished(String packageName, int uid) {
        public void onPackageUpdateFinished(String packageName) {
            sendPackageChange(packageName, true /* forceUnbindForThisPackage */);
        }

@@ -1146,13 +1146,12 @@ public class EuiccConnector extends StateMachine implements ServiceConnection {
        }

        @Override
        public boolean onHandleForceStop(Intent intent, String[] packages, int uid, boolean doit) {
        public void onHandleForceStop(String[] packages, boolean doit) {
            if (doit) {
                for (String packageName : packages) {
                    sendPackageChange(packageName, true /* forceUnbindForThisPackage */);
                }
            }
            return super.onHandleForceStop(intent, packages, uid, doit);
        }

        private void sendPackageChange(String packageName, boolean forceUnbindForThisPackage) {