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

Commit c0061031 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Merge cherrypicks of ['ag/19744478', 'ag/19868588', 'ag/20404110',...

Merge cherrypicks of ['ag/19744478', 'ag/19868588', 'ag/20404110', 'ag/20406276', 'ag/20327583', 'ag/20302522', 'ag/20454317', 'ag/20425770', 'ag/20541824', 'ag/20510886'] into tm-qpr1-release.

Change-Id: I491b9e378e2806d6ecc1fc895987d1987253cf54
parents 324a1c31 7fa5e422
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -402,7 +402,7 @@ public class ChooseTypeAndAccountActivity extends Activity
                mExistingAccounts = AccountManager.get(this).getAccountsForPackage(mCallingPackage,
                mExistingAccounts = AccountManager.get(this).getAccountsForPackage(mCallingPackage,
                        mCallingUid);
                        mCallingUid);
                intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_NEW_TASK);
                intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivityForResult(intent, REQUEST_ADD_ACCOUNT);
                startActivityForResult(new Intent(intent), REQUEST_ADD_ACCOUNT);
                return;
                return;
            }
            }
        } catch (OperationCanceledException e) {
        } catch (OperationCanceledException e) {
+13 −9
Original line number Original line Diff line number Diff line
@@ -9134,8 +9134,9 @@ public class AppOpsManager {
     */
     */
    public int startProxyOpNoThrow(int op, @NonNull AttributionSource attributionSource,
    public int startProxyOpNoThrow(int op, @NonNull AttributionSource attributionSource,
            @Nullable String message, boolean skipProxyOperation) {
            @Nullable String message, boolean skipProxyOperation) {
        return startProxyOpNoThrow(op, attributionSource, message, skipProxyOperation,
        return startProxyOpNoThrow(attributionSource.getToken(), op, attributionSource, message,
                ATTRIBUTION_FLAGS_NONE, ATTRIBUTION_FLAGS_NONE, ATTRIBUTION_CHAIN_ID_NONE);
                skipProxyOperation, ATTRIBUTION_FLAGS_NONE, ATTRIBUTION_FLAGS_NONE,
                ATTRIBUTION_CHAIN_ID_NONE);
    }
    }


    /**
    /**
@@ -9147,7 +9148,8 @@ public class AppOpsManager {
     *
     *
     * @hide
     * @hide
     */
     */
    public int startProxyOpNoThrow(int op, @NonNull AttributionSource attributionSource,
    public int startProxyOpNoThrow(@NonNull IBinder clientId, int op,
            @NonNull AttributionSource attributionSource,
            @Nullable String message, boolean skipProxyOperation, @AttributionFlags
            @Nullable String message, boolean skipProxyOperation, @AttributionFlags
            int proxyAttributionFlags, @AttributionFlags int proxiedAttributionFlags,
            int proxyAttributionFlags, @AttributionFlags int proxiedAttributionFlags,
            int attributionChainId) {
            int attributionChainId) {
@@ -9165,7 +9167,7 @@ public class AppOpsManager {
                }
                }
            }
            }


            SyncNotedAppOp syncOp = mService.startProxyOperation(op,
            SyncNotedAppOp syncOp = mService.startProxyOperation(clientId, op,
                    attributionSource, false, collectionMode == COLLECT_ASYNC, message,
                    attributionSource, false, collectionMode == COLLECT_ASYNC, message,
                    shouldCollectMessage, skipProxyOperation, proxyAttributionFlags,
                    shouldCollectMessage, skipProxyOperation, proxyAttributionFlags,
                    proxiedAttributionFlags, attributionChainId);
                    proxiedAttributionFlags, attributionChainId);
@@ -9263,9 +9265,10 @@ public class AppOpsManager {
     */
     */
    public void finishProxyOp(@NonNull String op, int proxiedUid,
    public void finishProxyOp(@NonNull String op, int proxiedUid,
            @NonNull String proxiedPackageName, @Nullable String proxiedAttributionTag) {
            @NonNull String proxiedPackageName, @Nullable String proxiedAttributionTag) {
        finishProxyOp(op, new AttributionSource(mContext.getAttributionSource(),
        IBinder token = mContext.getAttributionSource().getToken();
        finishProxyOp(token, op, new AttributionSource(mContext.getAttributionSource(),
                new AttributionSource(proxiedUid, proxiedPackageName,  proxiedAttributionTag,
                new AttributionSource(proxiedUid, proxiedPackageName,  proxiedAttributionTag,
                        mContext.getAttributionSource().getToken())), /*skipProxyOperation*/ false);
                        token)), /*skipProxyOperation*/ false);
    }
    }


    /**
    /**
@@ -9280,10 +9283,11 @@ public class AppOpsManager {
     *
     *
     * @hide
     * @hide
     */
     */
    public void finishProxyOp(@NonNull String op, @NonNull AttributionSource attributionSource,
    public void finishProxyOp(@NonNull IBinder clientId, @NonNull String op,
            boolean skipProxyOperation) {
            @NonNull AttributionSource attributionSource, boolean skipProxyOperation) {
        try {
        try {
            mService.finishProxyOperation(strOpToOp(op), attributionSource, skipProxyOperation);
            mService.finishProxyOperation(clientId, strOpToOp(op), attributionSource,
                    skipProxyOperation);
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        }
        }
+14 −9
Original line number Original line Diff line number Diff line
@@ -26,13 +26,11 @@ import android.util.SparseArray;
import android.util.SparseIntArray;
import android.util.SparseIntArray;


import com.android.internal.app.IAppOpsCallback;
import com.android.internal.app.IAppOpsCallback;
import com.android.internal.util.function.DecFunction;
import com.android.internal.util.function.HeptFunction;
import com.android.internal.util.function.HeptFunction;
import com.android.internal.util.function.HexFunction;
import com.android.internal.util.function.HexFunction;
import com.android.internal.util.function.QuadFunction;
import com.android.internal.util.function.QuadFunction;
import com.android.internal.util.function.QuintConsumer;
import com.android.internal.util.function.QuintConsumer;
import com.android.internal.util.function.QuintFunction;
import com.android.internal.util.function.QuintFunction;
import com.android.internal.util.function.TriFunction;
import com.android.internal.util.function.UndecFunction;
import com.android.internal.util.function.UndecFunction;


/**
/**
@@ -135,6 +133,7 @@ public abstract class AppOpsManagerInternal {
        /**
        /**
         * Allows overriding start proxy operation behavior.
         * Allows overriding start proxy operation behavior.
         *
         *
         * @param clientId The client calling start, represented by an IBinder
         * @param code The op code to start.
         * @param code The op code to start.
         * @param attributionSource The permission identity of the caller.
         * @param attributionSource The permission identity of the caller.
         * @param startIfModeDefault Whether to start the op of the mode is default.
         * @param startIfModeDefault Whether to start the op of the mode is default.
@@ -148,11 +147,12 @@ public abstract class AppOpsManagerInternal {
         * @param superImpl The super implementation.
         * @param superImpl The super implementation.
         * @return The app op note result.
         * @return The app op note result.
         */
         */
        SyncNotedAppOp startProxyOperation(int code, @NonNull AttributionSource attributionSource,
        SyncNotedAppOp startProxyOperation(@NonNull IBinder clientId, int code,
                boolean startIfModeDefault, boolean shouldCollectAsyncNotedOp, String message,
                @NonNull AttributionSource attributionSource, boolean startIfModeDefault,
                boolean shouldCollectMessage, boolean skipProxyOperation, @AttributionFlags
                boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage,
                int proxyAttributionFlags, @AttributionFlags int proxiedAttributionFlags,
                boolean skipProxyOperation, @AttributionFlags int proxyAttributionFlags,
                int attributionChainId, @NonNull DecFunction<Integer, AttributionSource, Boolean,
                @AttributionFlags int proxiedAttributionFlags, int attributionChainId,
                @NonNull UndecFunction<IBinder, Integer, AttributionSource, Boolean,
                        Boolean, String, Boolean, Boolean, Integer, Integer, Integer,
                        Boolean, String, Boolean, Boolean, Integer, Integer, Integer,
                        SyncNotedAppOp> superImpl);
                        SyncNotedAppOp> superImpl);


@@ -176,10 +176,15 @@ public abstract class AppOpsManagerInternal {
         *
         *
         * @param code The op code to finish.
         * @param code The op code to finish.
         * @param attributionSource The permission identity of the caller.
         * @param attributionSource The permission identity of the caller.
         * @param skipProxyOperation Whether to skip the proxy in the proxy/proxied operation
         * @param clientId The client calling finishProxyOperation
         * @param superImpl The "standard" implementation to potentially call
         */
         */
        void finishProxyOperation(int code, @NonNull AttributionSource attributionSource,
        void finishProxyOperation(@NonNull IBinder clientId, int code,
                @NonNull AttributionSource attributionSource,
                boolean skipProxyOperation,
                boolean skipProxyOperation,
                @NonNull TriFunction<Integer, AttributionSource, Boolean, Void> superImpl);
                @NonNull QuadFunction<IBinder, Integer, AttributionSource, Boolean,
                        Void> superImpl);
    }
    }


    /**
    /**
+6 −5
Original line number Original line Diff line number Diff line
@@ -58,11 +58,12 @@ interface IAppOpsService {
    SyncNotedAppOp noteProxyOperation(int code, in AttributionSource attributionSource,
    SyncNotedAppOp noteProxyOperation(int code, in AttributionSource attributionSource,
            boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage,
            boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage,
            boolean skipProxyOperation);
            boolean skipProxyOperation);
    SyncNotedAppOp startProxyOperation(int code, in AttributionSource attributionSource,
    SyncNotedAppOp startProxyOperation(IBinder clientId, int code,
            boolean startIfModeDefault, boolean shouldCollectAsyncNotedOp, String message,
            in AttributionSource attributionSource, boolean startIfModeDefault,
            boolean shouldCollectMessage, boolean skipProxyOperation, int proxyAttributionFlags,
            boolean shouldCollectAsyncNotedOp, String message, boolean shouldCollectMessage,
            int proxiedAttributionFlags, int attributionChainId);
            boolean skipProxyOperation, int proxyAttributionFlags, int proxiedAttributionFlags,
    void finishProxyOperation(int code, in AttributionSource attributionSource,
            int attributionChainId);
    void finishProxyOperation(IBinder clientId, int code, in AttributionSource attributionSource,
            boolean skipProxyOperation);
            boolean skipProxyOperation);


    // Remaining methods are only used in Java.
    // Remaining methods are only used in Java.
+5 −1
Original line number Original line Diff line number Diff line
@@ -26,6 +26,7 @@ import java.util.concurrent.Executor
import javax.inject.Inject
import javax.inject.Inject
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.statusbar.policy.DeviceProvisionedController


interface ChipVisibilityListener {
interface ChipVisibilityListener {
    fun onChipVisibilityRefreshed(visible: Boolean)
    fun onChipVisibilityRefreshed(visible: Boolean)
@@ -54,7 +55,8 @@ class HeaderPrivacyIconsController @Inject constructor(
    private val activityStarter: ActivityStarter,
    private val activityStarter: ActivityStarter,
    private val appOpsController: AppOpsController,
    private val appOpsController: AppOpsController,
    private val broadcastDispatcher: BroadcastDispatcher,
    private val broadcastDispatcher: BroadcastDispatcher,
    private val safetyCenterManager: SafetyCenterManager
    private val safetyCenterManager: SafetyCenterManager,
    private val deviceProvisionedController: DeviceProvisionedController
) {
) {


    var chipVisibilityListener: ChipVisibilityListener? = null
    var chipVisibilityListener: ChipVisibilityListener? = null
@@ -134,6 +136,8 @@ class HeaderPrivacyIconsController @Inject constructor(


    fun onParentVisible() {
    fun onParentVisible() {
        privacyChip.setOnClickListener {
        privacyChip.setOnClickListener {
            // Do not expand dialog while device is not provisioned
            if (!deviceProvisionedController.isDeviceProvisioned) return@setOnClickListener
            // If the privacy chip is visible, it means there were some indicators
            // If the privacy chip is visible, it means there were some indicators
            uiEventLogger.log(PrivacyChipEvent.ONGOING_INDICATORS_CHIP_CLICK)
            uiEventLogger.log(PrivacyChipEvent.ONGOING_INDICATORS_CHIP_CLICK)
            if (safetyCenterEnabled) {
            if (safetyCenterEnabled) {
Loading