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

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

Merge cherrypicks of ['ag/20181501', 'ag/20082616', 'ag/20482625',...

Merge cherrypicks of ['ag/20181501', 'ag/20082616', 'ag/20482625', 'ag/20749241', 'ag/20874318', 'ag/20946106'] into security-aosp-tm-release.

Change-Id: Icc9771eaab14b7d06ac1ad40323ef01301514f5e
parents dee4412a 8418e3a0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -128,7 +128,7 @@ public class WorkSource implements Parcelable {
        mNames = in.createStringArray();

        int numChains = in.readInt();
        if (numChains > 0) {
        if (numChains >= 0) {
            mChains = new ArrayList<>(numChains);
            in.readParcelableList(mChains, WorkChain.class.getClassLoader(), android.os.WorkSource.WorkChain.class);
        } else {
+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ interface ISession {
    ISessionController getController();
    void setFlags(int flags);
    void setActive(boolean active);
    void setMediaButtonReceiver(in PendingIntent mbr, String sessionPackageName);
    void setMediaButtonReceiver(in PendingIntent mbr);
    void setMediaButtonBroadcastReceiver(in ComponentName broadcastReceiver);
    void setLaunchPendingIntent(in PendingIntent pi);
    void destroySession();
+1 −1
Original line number Diff line number Diff line
@@ -286,7 +286,7 @@ public final class MediaSession {
    @Deprecated
    public void setMediaButtonReceiver(@Nullable PendingIntent mbr) {
        try {
            mBinder.setMediaButtonReceiver(mbr, mContext.getPackageName());
            mBinder.setMediaButtonReceiver(mbr);
        } catch (RemoteException e) {
            Log.wtf(TAG, "Failure in setMediaButtonReceiver.", e);
        }
+34 −1
Original line number Diff line number Diff line
@@ -16,15 +16,21 @@

package com.android.systemui.clipboardoverlay;

import static android.content.ClipDescription.CLASSIFICATION_COMPLETE;

import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.CLIPBOARD_OVERLAY_ENABLED;
import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_ENTERED;
import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_UPDATED;
import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_TOAST_SHOWN;

import static com.google.android.setupcompat.util.WizardManagerHelper.SETTINGS_SECURE_USER_SETUP_COMPLETE;

import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.os.SystemProperties;
import android.provider.DeviceConfig;
import android.provider.Settings;
import android.util.Log;

import com.android.internal.annotations.VisibleForTesting;
@@ -51,6 +57,7 @@ public class ClipboardListener extends CoreStartable

    private final DeviceConfigProxy mDeviceConfig;
    private final ClipboardOverlayControllerFactory mOverlayFactory;
    private final ClipboardToast mClipboardToast;
    private final ClipboardManager mClipboardManager;
    private final UiEventLogger mUiEventLogger;
    private ClipboardOverlayController mClipboardOverlayController;
@@ -58,10 +65,11 @@ public class ClipboardListener extends CoreStartable
    @Inject
    public ClipboardListener(Context context, DeviceConfigProxy deviceConfigProxy,
            ClipboardOverlayControllerFactory overlayFactory, ClipboardManager clipboardManager,
            UiEventLogger uiEventLogger) {
            ClipboardToast clipboardToast,UiEventLogger uiEventLogger) {
        super(context);
        mDeviceConfig = deviceConfigProxy;
        mOverlayFactory = overlayFactory;
        mClipboardToast = clipboardToast;
        mClipboardManager = clipboardManager;
        mUiEventLogger = uiEventLogger;
    }
@@ -88,6 +96,15 @@ public class ClipboardListener extends CoreStartable
            return;
        }

        if (!isUserSetupComplete()) {
            // just show a toast, user should not access intents from this state
            if (shouldShowToast(clipData)) {
                mUiEventLogger.log(CLIPBOARD_TOAST_SHOWN, 0, clipSource);
                mClipboardToast.showCopiedToast();
            }
            return;
        }

        if (mClipboardOverlayController == null) {
            mClipboardOverlayController = mOverlayFactory.create(mContext);
            mUiEventLogger.log(CLIPBOARD_OVERLAY_ENTERED, 0, clipSource);
@@ -116,7 +133,23 @@ public class ClipboardListener extends CoreStartable
        return clipData.getDescription().getExtras().getBoolean(EXTRA_SUPPRESS_OVERLAY, false);
    }

    boolean shouldShowToast(ClipData clipData) {
        if (clipData == null) {
            return false;
        } else if (clipData.getDescription().getClassificationStatus() == CLASSIFICATION_COMPLETE) {
            // only show for classification complete if we aren't already showing a toast, to ignore
            // the duplicate ClipData with classification
            return !mClipboardToast.isShowing();
        }
        return true;
    }

    private static boolean isEmulator() {
        return SystemProperties.getBoolean("ro.boot.qemu", false);
    }

    private boolean isUserSetupComplete() {
        return Settings.Secure.getInt(mContext.getContentResolver(),
                SETTINGS_SECURE_USER_SETUP_COMPLETE, 0) == 1;
    }
}
+3 −1
Original line number Diff line number Diff line
@@ -41,7 +41,9 @@ public enum ClipboardOverlayEvent implements UiEventLogger.UiEventEnum {
    @UiEvent(doc = "clipboard overlay tapped outside")
    CLIPBOARD_OVERLAY_TAP_OUTSIDE(1077),
    @UiEvent(doc = "clipboard overlay dismissed, miscellaneous reason")
    CLIPBOARD_OVERLAY_DISMISSED_OTHER(1078);
    CLIPBOARD_OVERLAY_DISMISSED_OTHER(1078),
    @UiEvent(doc = "clipboard toast shown")
    CLIPBOARD_TOAST_SHOWN(1270);

    private final int mId;

Loading