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

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

Snap for 8462842 from e9793ecc to tm-qpr1-release

Change-Id: I918e7c217ba15a76e2baa7f868968428bee59cfd
parents d8e7db6c e9793ecc
Loading
Loading
Loading
Loading
+17 −75
Original line number Original line Diff line number Diff line
@@ -32,8 +32,6 @@ import android.annotation.SystemService;
import android.annotation.UserHandleAware;
import android.annotation.UserHandleAware;
import android.content.Context;
import android.content.Context;


import com.android.internal.util.FrameworkStatsLog;

import java.lang.annotation.Retention;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.RetentionPolicy;
import java.util.Collections;
import java.util.Collections;
@@ -453,62 +451,6 @@ public class PowerExemptionManager {
    @Retention(RetentionPolicy.SOURCE)
    @Retention(RetentionPolicy.SOURCE)
    public @interface ReasonCode {}
    public @interface ReasonCode {}


    private static final int EXEMPTION_REASON_SYSTEM_UID = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_SYSTEM_UID;
    private static final int EXEMPTION_REASON_ALLOWLISTED_PACKAGE = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_ALLOWLISTED_PACKAGE;
    private static final int EXEMPTION_REASON_COMPANION_DEVICE_MANAGER = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_COMPANION_DEVICE_MANAGER;
    private static final int EXEMPTION_REASON_DEVICE_DEMO_MODE = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_DEVICE_DEMO_MODE;
    private static final int EXEMPTION_REASON_DEVICE_OWNER = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_DEVICE_OWNER;
    private static final int EXEMPTION_REASON_PROFILE_OWNER = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_PROFILE_OWNER;
    private static final int EXEMPTION_REASON_PROC_STATE_PERSISTENT = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_PROC_STATE_PERSISTENT;
    private static final int EXEMPTION_REASON_PROC_STATE_PERSISTENT_UI = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_PROC_STATE_PERSISTENT_UI;
    private static final int EXEMPTION_REASON_OP_ACTIVATE_VPN = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_OP_ACTIVATE_VPN;
    private static final int EXEMPTION_REASON_OP_ACTIVATE_PLATFORM_VPN = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_OP_ACTIVATE_PLATFORM_VPN;
    private static final int EXEMPTION_REASON_SYSTEM_MODULE = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_SYSTEM_MODULE;
    private static final int EXEMPTION_REASON_CARRIER_PRIVILEGED_APP = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_CARRIER_PRIVILEGED_APP;
    private static final int EXEMPTION_REASON_SYSTEM_ALLOW_LISTED = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_SYSTEM_ALLOW_LISTED;
    private static final int EXEMPTION_REASON_ROLE_DIALER = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_ROLE_DIALER;
    private static final int EXEMPTION_REASON_ROLE_EMERGENCY = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_ROLE_EMERGENCY;
    private static final int EXEMPTION_REASON_DENIED = FrameworkStatsLog
            .APP_BACKGROUND_RESTRICTIONS_INFO__EXEMPTION_REASON__REASON_DENIED;
    /**
     * List of exemption reason codes used for statsd logging in AppBackgroundRestrictionsInfo atom.
     * @hide
     */
    @IntDef(prefix = { "EXEMPTION_REASON_" }, value = {
            EXEMPTION_REASON_SYSTEM_UID,
            EXEMPTION_REASON_ALLOWLISTED_PACKAGE,
            EXEMPTION_REASON_COMPANION_DEVICE_MANAGER,
            EXEMPTION_REASON_DEVICE_DEMO_MODE,
            EXEMPTION_REASON_DEVICE_OWNER,
            EXEMPTION_REASON_PROFILE_OWNER,
            EXEMPTION_REASON_PROC_STATE_PERSISTENT,
            EXEMPTION_REASON_PROC_STATE_PERSISTENT_UI,
            EXEMPTION_REASON_OP_ACTIVATE_VPN,
            EXEMPTION_REASON_OP_ACTIVATE_PLATFORM_VPN,
            EXEMPTION_REASON_SYSTEM_MODULE,
            EXEMPTION_REASON_CARRIER_PRIVILEGED_APP,
            EXEMPTION_REASON_SYSTEM_ALLOW_LISTED,
            EXEMPTION_REASON_ROLE_DIALER,
            EXEMPTION_REASON_ROLE_EMERGENCY,
            EXEMPTION_REASON_DENIED,
    })
    public @interface ExemptionReason {}

    /**
    /**
     * @hide
     * @hide
     */
     */
@@ -679,40 +621,40 @@ public class PowerExemptionManager {
     * @hide
     * @hide
     * @return the reason code mapped to statsd for the AppBackgroundRestrictionsInfo atom.
     * @return the reason code mapped to statsd for the AppBackgroundRestrictionsInfo atom.
     */
     */
    public static @ExemptionReason int getExemptionReasonForStatsd(@ReasonCode int reasonCode) {
    public static int getExemptionReasonForStatsd(@ReasonCode int reasonCode) {
        switch (reasonCode) {
        switch (reasonCode) {
            case REASON_SYSTEM_UID:
            case REASON_SYSTEM_UID:
                return EXEMPTION_REASON_SYSTEM_UID;
                return AppBackgroundRestrictionsInfo.REASON_SYSTEM_UID;
            case REASON_ALLOWLISTED_PACKAGE:
            case REASON_ALLOWLISTED_PACKAGE:
                return EXEMPTION_REASON_ALLOWLISTED_PACKAGE;
                return AppBackgroundRestrictionsInfo.REASON_ALLOWLISTED_PACKAGE;
            case REASON_COMPANION_DEVICE_MANAGER:
            case REASON_COMPANION_DEVICE_MANAGER:
                return EXEMPTION_REASON_COMPANION_DEVICE_MANAGER;
                return AppBackgroundRestrictionsInfo.REASON_COMPANION_DEVICE_MANAGER;
            case REASON_DEVICE_DEMO_MODE:
            case REASON_DEVICE_DEMO_MODE:
                return EXEMPTION_REASON_DEVICE_DEMO_MODE;
                return AppBackgroundRestrictionsInfo.REASON_DEVICE_DEMO_MODE;
            case REASON_DEVICE_OWNER:
            case REASON_DEVICE_OWNER:
                return EXEMPTION_REASON_DEVICE_OWNER;
                return AppBackgroundRestrictionsInfo.REASON_DEVICE_OWNER;
            case REASON_PROFILE_OWNER:
            case REASON_PROFILE_OWNER:
                return EXEMPTION_REASON_PROFILE_OWNER;
                return AppBackgroundRestrictionsInfo.REASON_PROFILE_OWNER;
            case REASON_PROC_STATE_PERSISTENT:
            case REASON_PROC_STATE_PERSISTENT:
                return EXEMPTION_REASON_PROC_STATE_PERSISTENT;
                return AppBackgroundRestrictionsInfo.REASON_PROC_STATE_PERSISTENT;
            case REASON_PROC_STATE_PERSISTENT_UI:
            case REASON_PROC_STATE_PERSISTENT_UI:
                return EXEMPTION_REASON_PROC_STATE_PERSISTENT_UI;
                return AppBackgroundRestrictionsInfo.REASON_PROC_STATE_PERSISTENT_UI;
            case REASON_OP_ACTIVATE_VPN:
            case REASON_OP_ACTIVATE_VPN:
                return EXEMPTION_REASON_OP_ACTIVATE_VPN;
                return AppBackgroundRestrictionsInfo.REASON_OP_ACTIVATE_VPN;
            case REASON_OP_ACTIVATE_PLATFORM_VPN:
            case REASON_OP_ACTIVATE_PLATFORM_VPN:
                return EXEMPTION_REASON_OP_ACTIVATE_PLATFORM_VPN;
                return AppBackgroundRestrictionsInfo.REASON_OP_ACTIVATE_PLATFORM_VPN;
            case REASON_SYSTEM_MODULE:
            case REASON_SYSTEM_MODULE:
                return EXEMPTION_REASON_SYSTEM_MODULE;
                return AppBackgroundRestrictionsInfo.REASON_SYSTEM_MODULE;
            case REASON_CARRIER_PRIVILEGED_APP:
            case REASON_CARRIER_PRIVILEGED_APP:
                return EXEMPTION_REASON_CARRIER_PRIVILEGED_APP;
                return AppBackgroundRestrictionsInfo.REASON_CARRIER_PRIVILEGED_APP;
            case REASON_SYSTEM_ALLOW_LISTED:
            case REASON_SYSTEM_ALLOW_LISTED:
                return EXEMPTION_REASON_SYSTEM_ALLOW_LISTED;
                return AppBackgroundRestrictionsInfo.REASON_SYSTEM_ALLOW_LISTED;
            case REASON_ROLE_DIALER:
            case REASON_ROLE_DIALER:
                return EXEMPTION_REASON_ROLE_DIALER;
                return AppBackgroundRestrictionsInfo.REASON_ROLE_DIALER;
            case REASON_ROLE_EMERGENCY:
            case REASON_ROLE_EMERGENCY:
                return EXEMPTION_REASON_ROLE_EMERGENCY;
                return AppBackgroundRestrictionsInfo.REASON_ROLE_EMERGENCY;
            default:
            default:
                return EXEMPTION_REASON_DENIED;
                return AppBackgroundRestrictionsInfo.REASON_DENIED;
        }
        }
    }
    }


+1 −2
Original line number Original line Diff line number Diff line
@@ -612,8 +612,7 @@ public class AlarmManagerService extends SystemService {


        private static final boolean DEFAULT_KILL_ON_SCHEDULE_EXACT_ALARM_REVOKED = true;
        private static final boolean DEFAULT_KILL_ON_SCHEDULE_EXACT_ALARM_REVOKED = true;


        // TODO(b/226439802): Flip to true.
        private static final boolean DEFAULT_SCHEDULE_EXACT_ALARM_DENIED_BY_DEFAULT = true;
        private static final boolean DEFAULT_SCHEDULE_EXACT_ALARM_DENIED_BY_DEFAULT = false;


        // Minimum futurity of a new alarm
        // Minimum futurity of a new alarm
        public long MIN_FUTURITY = DEFAULT_MIN_FUTURITY;
        public long MIN_FUTURITY = DEFAULT_MIN_FUTURITY;
+14 −20
Original line number Original line Diff line number Diff line
@@ -62,7 +62,6 @@ public class InputMethod {


    private final AccessibilityService mService;
    private final AccessibilityService mService;
    private InputBinding mInputBinding;
    private InputBinding mInputBinding;
    private InputConnection mInputConnection;
    private boolean mInputStarted;
    private boolean mInputStarted;
    private InputConnection mStartedInputConnection;
    private InputConnection mStartedInputConnection;
    private EditorInfo mInputEditorInfo;
    private EditorInfo mInputEditorInfo;
@@ -81,12 +80,8 @@ public class InputMethod {
     */
     */
    @Nullable
    @Nullable
    public final AccessibilityInputConnection getCurrentInputConnection() {
    public final AccessibilityInputConnection getCurrentInputConnection() {
        InputConnection ic = mStartedInputConnection;
        if (mStartedInputConnection != null) {
        if (ic != null) {
            return new AccessibilityInputConnection(mStartedInputConnection);
            return new AccessibilityInputConnection(ic);
        }
        if (mInputConnection != null) {
            return new AccessibilityInputConnection(mInputConnection);
        }
        }
        return null;
        return null;
    }
    }
@@ -136,10 +131,8 @@ public class InputMethod {
     * to perform whatever behavior you would like.
     * to perform whatever behavior you would like.
     */
     */
    public void onFinishInput() {
    public void onFinishInput() {
        InputConnection ic = mStartedInputConnection != null ? mStartedInputConnection
        if (mStartedInputConnection != null) {
                : mInputConnection;
            mStartedInputConnection.finishComposingText();
        if (ic != null) {
            ic.finishComposingText();
        }
        }
    }
    }


@@ -176,38 +169,38 @@ public class InputMethod {
    final void bindInput(@NonNull InputBinding binding) {
    final void bindInput(@NonNull InputBinding binding) {
        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "AccessibilityService.bindInput");
        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "AccessibilityService.bindInput");
        mInputBinding = binding;
        mInputBinding = binding;
        mInputConnection = binding.getConnection();
        Log.v(LOG_TAG, "bindInput(): binding=" + binding);
        Log.v(LOG_TAG, "bindInput(): binding=" + binding
                + " ic=" + mInputConnection);
        Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
        Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
    }
    }


    final void unbindInput() {
    final void unbindInput() {
        Log.v(LOG_TAG, "unbindInput(): binding=" + mInputBinding
        Log.v(LOG_TAG, "unbindInput(): binding=" + mInputBinding);
                + " ic=" + mInputConnection);
        // Unbind input is per process per display.
        // Unbind input is per process per display.
        mInputBinding = null;
        mInputBinding = null;
        mInputConnection = null;
    }
    }


    final void startInput(@Nullable InputConnection ic, @NonNull EditorInfo attribute) {
    final void startInput(@Nullable InputConnection ic, @NonNull EditorInfo attribute) {
        Log.v(LOG_TAG, "startInput(): editor=" + attribute);
        Log.v(LOG_TAG, "startInput(): editor=" + attribute);
        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "IMS.startInput");
        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "AccessibilityService.startInput");
        doStartInput(ic, attribute, false /* restarting */);
        doStartInput(ic, attribute, false /* restarting */);
        Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
        Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
    }
    }


    final void restartInput(@Nullable InputConnection ic, @NonNull EditorInfo attribute) {
    final void restartInput(@Nullable InputConnection ic, @NonNull EditorInfo attribute) {
        Log.v(LOG_TAG, "restartInput(): editor=" + attribute);
        Log.v(LOG_TAG, "restartInput(): editor=" + attribute);
        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "IMS.restartInput");
        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "AccessibilityService.restartInput");
        doStartInput(ic, attribute, true /* restarting */);
        doStartInput(ic, attribute, true /* restarting */);
        Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
        Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
    }
    }




    final void doStartInput(InputConnection ic, EditorInfo attribute, boolean restarting) {
    final void doStartInput(InputConnection ic, EditorInfo attribute, boolean restarting) {
        if (!restarting && mInputStarted) {
        if ((ic == null || !restarting) && mInputStarted) {
            doFinishInput();
            doFinishInput();
            if (ic == null) {
                // Unlike InputMethodService, A11y IME should not observe fallback InputConnection.
                return;
            }
        }
        }
        mInputStarted = true;
        mInputStarted = true;
        mStartedInputConnection = ic;
        mStartedInputConnection = ic;
@@ -224,6 +217,7 @@ public class InputMethod {
        }
        }
        mInputStarted = false;
        mInputStarted = false;
        mStartedInputConnection = null;
        mStartedInputConnection = null;
        mInputEditorInfo = null;
    }
    }


    private InputMethodSession onCreateInputMethodSessionInterface() {
    private InputMethodSession onCreateInputMethodSessionInterface() {
+1 −1
Original line number Original line Diff line number Diff line
@@ -4114,8 +4114,8 @@ public final class ActivityThread extends ClientTransactionHandler
            @NonNull SurfaceControl startingWindowLeash) {
            @NonNull SurfaceControl startingWindowLeash) {
        final SplashScreenView.Builder builder = new SplashScreenView.Builder(r.activity);
        final SplashScreenView.Builder builder = new SplashScreenView.Builder(r.activity);
        final SplashScreenView view = builder.createFromParcel(parcelable).build();
        final SplashScreenView view = builder.createFromParcel(parcelable).build();
        view.attachHostWindow(r.window);
        decorView.addView(view);
        decorView.addView(view);
        view.attachHostActivityAndSetSystemUIColors(r.activity, r.window);
        view.requestLayout();
        view.requestLayout();


        view.getViewTreeObserver().addOnDrawListener(new ViewTreeObserver.OnDrawListener() {
        view.getViewTreeObserver().addOnDrawListener(new ViewTreeObserver.OnDrawListener() {
+36 −35
Original line number Original line Diff line number Diff line
@@ -2813,8 +2813,8 @@ public class Notification implements Parcelable
        }
        }
        if (extras != null) {
        if (extras != null) {
            visitIconUri(visitor, extras.getParcelable(EXTRA_LARGE_ICON_BIG));
            visitIconUri(visitor, extras.getParcelable(EXTRA_LARGE_ICON_BIG, Icon.class));
            visitIconUri(visitor, extras.getParcelable(EXTRA_PICTURE_ICON));
            visitIconUri(visitor, extras.getParcelable(EXTRA_PICTURE_ICON, Icon.class));
            // NOTE: The documentation of EXTRA_AUDIO_CONTENTS_URI explicitly says that it is a
            // NOTE: The documentation of EXTRA_AUDIO_CONTENTS_URI explicitly says that it is a
            // String representation of a Uri, but the previous implementation (and unit test) of
            // String representation of a Uri, but the previous implementation (and unit test) of
@@ -2838,7 +2838,7 @@ public class Notification implements Parcelable
                }
                }
            }
            }
            final Person person = extras.getParcelable(EXTRA_MESSAGING_PERSON);
            final Person person = extras.getParcelable(EXTRA_MESSAGING_PERSON, Person.class);
            if (person != null) {
            if (person != null) {
                visitor.accept(person.getIconUri());
                visitor.accept(person.getIconUri());
            }
            }
@@ -6473,7 +6473,7 @@ public class Notification implements Parcelable
        public static Notification.Builder recoverBuilder(Context context, Notification n) {
        public static Notification.Builder recoverBuilder(Context context, Notification n) {
            // Re-create notification context so we can access app resources.
            // Re-create notification context so we can access app resources.
            ApplicationInfo applicationInfo = n.extras.getParcelable(
            ApplicationInfo applicationInfo = n.extras.getParcelable(
                    EXTRA_BUILDER_APPLICATION_INFO);
                    EXTRA_BUILDER_APPLICATION_INFO, ApplicationInfo.class);
            Context builderContext;
            Context builderContext;
            if (applicationInfo != null) {
            if (applicationInfo != null) {
                try {
                try {
@@ -6925,9 +6925,8 @@ public class Notification implements Parcelable
        boolean isMediaStyle = (MediaStyle.class.equals(style)
        boolean isMediaStyle = (MediaStyle.class.equals(style)
                || DecoratedMediaCustomViewStyle.class.equals(style));
                || DecoratedMediaCustomViewStyle.class.equals(style));
        boolean hasMediaSession = (extras.getParcelable(Notification.EXTRA_MEDIA_SESSION) != null
        boolean hasMediaSession = extras.getParcelable(Notification.EXTRA_MEDIA_SESSION,
                && extras.getParcelable(Notification.EXTRA_MEDIA_SESSION)
                MediaSession.Token.class) != null;
                instanceof MediaSession.Token);
        return isMediaStyle && hasMediaSession;
        return isMediaStyle && hasMediaSession;
    }
    }
@@ -7522,7 +7521,7 @@ public class Notification implements Parcelable
            if (extras.containsKey(EXTRA_LARGE_ICON_BIG)) {
            if (extras.containsKey(EXTRA_LARGE_ICON_BIG)) {
                mBigLargeIconSet = true;
                mBigLargeIconSet = true;
                mBigLargeIcon = extras.getParcelable(EXTRA_LARGE_ICON_BIG);
                mBigLargeIcon = extras.getParcelable(EXTRA_LARGE_ICON_BIG, Icon.class);
            }
            }
            if (extras.containsKey(EXTRA_PICTURE_CONTENT_DESCRIPTION)) {
            if (extras.containsKey(EXTRA_PICTURE_CONTENT_DESCRIPTION)) {
@@ -7542,11 +7541,11 @@ public class Notification implements Parcelable
            // When this style adds a picture, we only add one of the keys.  If both were added,
            // When this style adds a picture, we only add one of the keys.  If both were added,
            // it would most likely be a legacy app trying to override the picture in some way.
            // it would most likely be a legacy app trying to override the picture in some way.
            // Because of that case it's better to give precedence to the legacy field.
            // Because of that case it's better to give precedence to the legacy field.
            Bitmap bitmapPicture = extras.getParcelable(EXTRA_PICTURE);
            Bitmap bitmapPicture = extras.getParcelable(EXTRA_PICTURE, Bitmap.class);
            if (bitmapPicture != null) {
            if (bitmapPicture != null) {
                return Icon.createWithBitmap(bitmapPicture);
                return Icon.createWithBitmap(bitmapPicture);
            } else {
            } else {
                return extras.getParcelable(EXTRA_PICTURE_ICON);
                return extras.getParcelable(EXTRA_PICTURE_ICON, Icon.class);
            }
            }
        }
        }
@@ -8165,7 +8164,7 @@ public class Notification implements Parcelable
        protected void restoreFromExtras(Bundle extras) {
        protected void restoreFromExtras(Bundle extras) {
            super.restoreFromExtras(extras);
            super.restoreFromExtras(extras);
            mUser = extras.getParcelable(EXTRA_MESSAGING_PERSON);
            mUser = extras.getParcelable(EXTRA_MESSAGING_PERSON, Person.class);
            if (mUser == null) {
            if (mUser == null) {
                CharSequence displayName = extras.getCharSequence(EXTRA_SELF_DISPLAY_NAME);
                CharSequence displayName = extras.getCharSequence(EXTRA_SELF_DISPLAY_NAME);
                mUser = new Person.Builder().setName(displayName).build();
                mUser = new Person.Builder().setName(displayName).build();
@@ -8177,7 +8176,7 @@ public class Notification implements Parcelable
            mHistoricMessages = Message.getMessagesFromBundleArray(histMessages);
            mHistoricMessages = Message.getMessagesFromBundleArray(histMessages);
            mIsGroupConversation = extras.getBoolean(EXTRA_IS_GROUP_CONVERSATION);
            mIsGroupConversation = extras.getBoolean(EXTRA_IS_GROUP_CONVERSATION);
            mUnreadMessageCount = extras.getInt(EXTRA_CONVERSATION_UNREAD_MESSAGE_COUNT);
            mUnreadMessageCount = extras.getInt(EXTRA_CONVERSATION_UNREAD_MESSAGE_COUNT);
            mShortcutIcon = extras.getParcelable(EXTRA_CONVERSATION_ICON);
            mShortcutIcon = extras.getParcelable(EXTRA_CONVERSATION_ICON, Icon.class);
        }
        }
        /**
        /**
@@ -8731,7 +8730,7 @@ public class Notification implements Parcelable
                        return null;
                        return null;
                    } else {
                    } else {
                        Person senderPerson = bundle.getParcelable(KEY_SENDER_PERSON);
                        Person senderPerson = bundle.getParcelable(KEY_SENDER_PERSON, Person.class);
                        if (senderPerson == null) {
                        if (senderPerson == null) {
                            // Legacy apps that use compat don't actually provide the sender objects
                            // Legacy apps that use compat don't actually provide the sender objects
                            // We need to fix the compat version to provide people / use
                            // We need to fix the compat version to provide people / use
@@ -8748,7 +8747,7 @@ public class Notification implements Parcelable
                        if (bundle.containsKey(KEY_DATA_MIME_TYPE) &&
                        if (bundle.containsKey(KEY_DATA_MIME_TYPE) &&
                                bundle.containsKey(KEY_DATA_URI)) {
                                bundle.containsKey(KEY_DATA_URI)) {
                            message.setData(bundle.getString(KEY_DATA_MIME_TYPE),
                            message.setData(bundle.getString(KEY_DATA_MIME_TYPE),
                                    (Uri) bundle.getParcelable(KEY_DATA_URI));
                                    bundle.getParcelable(KEY_DATA_URI, Uri.class));
                        }
                        }
                        if (bundle.containsKey(KEY_EXTRAS_BUNDLE)) {
                        if (bundle.containsKey(KEY_EXTRAS_BUNDLE)) {
                            message.getExtras().putAll(bundle.getBundle(KEY_EXTRAS_BUNDLE));
                            message.getExtras().putAll(bundle.getBundle(KEY_EXTRAS_BUNDLE));
@@ -9154,7 +9153,7 @@ public class Notification implements Parcelable
            super.restoreFromExtras(extras);
            super.restoreFromExtras(extras);
            if (extras.containsKey(EXTRA_MEDIA_SESSION)) {
            if (extras.containsKey(EXTRA_MEDIA_SESSION)) {
                mToken = extras.getParcelable(EXTRA_MEDIA_SESSION);
                mToken = extras.getParcelable(EXTRA_MEDIA_SESSION, MediaSession.Token.class);
            }
            }
            if (extras.containsKey(EXTRA_COMPACT_ACTIONS)) {
            if (extras.containsKey(EXTRA_COMPACT_ACTIONS)) {
                mActionsToShowInCompact = extras.getIntArray(EXTRA_COMPACT_ACTIONS);
                mActionsToShowInCompact = extras.getIntArray(EXTRA_COMPACT_ACTIONS);
@@ -9166,7 +9165,8 @@ public class Notification implements Parcelable
                mDeviceIcon = extras.getInt(EXTRA_MEDIA_REMOTE_ICON);
                mDeviceIcon = extras.getInt(EXTRA_MEDIA_REMOTE_ICON);
            }
            }
            if (extras.containsKey(EXTRA_MEDIA_REMOTE_INTENT)) {
            if (extras.containsKey(EXTRA_MEDIA_REMOTE_INTENT)) {
                mDeviceIntent = extras.getParcelable(EXTRA_MEDIA_REMOTE_INTENT);
                mDeviceIntent = extras.getParcelable(
                        EXTRA_MEDIA_REMOTE_INTENT, PendingIntent.class);
            }
            }
        }
        }
@@ -9758,12 +9758,12 @@ public class Notification implements Parcelable
            super.restoreFromExtras(extras);
            super.restoreFromExtras(extras);
            mCallType = extras.getInt(EXTRA_CALL_TYPE);
            mCallType = extras.getInt(EXTRA_CALL_TYPE);
            mIsVideo = extras.getBoolean(EXTRA_CALL_IS_VIDEO);
            mIsVideo = extras.getBoolean(EXTRA_CALL_IS_VIDEO);
            mPerson = extras.getParcelable(EXTRA_CALL_PERSON);
            mPerson = extras.getParcelable(EXTRA_CALL_PERSON, Person.class);
            mVerificationIcon = extras.getParcelable(EXTRA_VERIFICATION_ICON);
            mVerificationIcon = extras.getParcelable(EXTRA_VERIFICATION_ICON);
            mVerificationText = extras.getCharSequence(EXTRA_VERIFICATION_TEXT);
            mVerificationText = extras.getCharSequence(EXTRA_VERIFICATION_TEXT);
            mAnswerIntent = extras.getParcelable(EXTRA_ANSWER_INTENT);
            mAnswerIntent = extras.getParcelable(EXTRA_ANSWER_INTENT, PendingIntent.class);
            mDeclineIntent = extras.getParcelable(EXTRA_DECLINE_INTENT);
            mDeclineIntent = extras.getParcelable(EXTRA_DECLINE_INTENT, PendingIntent.class);
            mHangUpIntent = extras.getParcelable(EXTRA_HANG_UP_INTENT);
            mHangUpIntent = extras.getParcelable(EXTRA_HANG_UP_INTENT, PendingIntent.class);
            mAnswerButtonColor = extras.containsKey(EXTRA_ANSWER_COLOR)
            mAnswerButtonColor = extras.containsKey(EXTRA_ANSWER_COLOR)
                    ? extras.getInt(EXTRA_ANSWER_COLOR) : null;
                    ? extras.getInt(EXTRA_ANSWER_COLOR) : null;
            mDeclineButtonColor = extras.containsKey(EXTRA_DECLINE_COLOR)
            mDeclineButtonColor = extras.containsKey(EXTRA_DECLINE_COLOR)
@@ -10824,9 +10824,9 @@ public class Notification implements Parcelable
        // Keys within EXTRA_WEARABLE_EXTENSIONS for wearable options.
        // Keys within EXTRA_WEARABLE_EXTENSIONS for wearable options.
        private static final String KEY_ACTIONS = "actions";
        private static final String KEY_ACTIONS = "actions";
        private static final String KEY_FLAGS = "flags";
        private static final String KEY_FLAGS = "flags";
        private static final String KEY_DISPLAY_INTENT = "displayIntent";
        static final String KEY_DISPLAY_INTENT = "displayIntent";
        private static final String KEY_PAGES = "pages";
        private static final String KEY_PAGES = "pages";
        private static final String KEY_BACKGROUND = "background";
        static final String KEY_BACKGROUND = "background";
        private static final String KEY_CONTENT_ICON = "contentIcon";
        private static final String KEY_CONTENT_ICON = "contentIcon";
        private static final String KEY_CONTENT_ICON_GRAVITY = "contentIconGravity";
        private static final String KEY_CONTENT_ICON_GRAVITY = "contentIconGravity";
        private static final String KEY_CONTENT_ACTION_INDEX = "contentActionIndex";
        private static final String KEY_CONTENT_ACTION_INDEX = "contentActionIndex";
@@ -10883,7 +10883,8 @@ public class Notification implements Parcelable
                }
                }
                mFlags = wearableBundle.getInt(KEY_FLAGS, DEFAULT_FLAGS);
                mFlags = wearableBundle.getInt(KEY_FLAGS, DEFAULT_FLAGS);
                mDisplayIntent = wearableBundle.getParcelable(KEY_DISPLAY_INTENT);
                mDisplayIntent = wearableBundle.getParcelable(
                        KEY_DISPLAY_INTENT, PendingIntent.class);
                Notification[] pages = getParcelableArrayFromBundle(
                Notification[] pages = getParcelableArrayFromBundle(
                        wearableBundle, KEY_PAGES, Notification.class);
                        wearableBundle, KEY_PAGES, Notification.class);
@@ -10891,7 +10892,7 @@ public class Notification implements Parcelable
                    Collections.addAll(mPages, pages);
                    Collections.addAll(mPages, pages);
                }
                }
                mBackground = wearableBundle.getParcelable(KEY_BACKGROUND);
                mBackground = wearableBundle.getParcelable(KEY_BACKGROUND, Bitmap.class);
                mContentIcon = wearableBundle.getInt(KEY_CONTENT_ICON);
                mContentIcon = wearableBundle.getInt(KEY_CONTENT_ICON);
                mContentIconGravity = wearableBundle.getInt(KEY_CONTENT_ICON_GRAVITY,
                mContentIconGravity = wearableBundle.getInt(KEY_CONTENT_ICON_GRAVITY,
                        DEFAULT_CONTENT_ICON_GRAVITY);
                        DEFAULT_CONTENT_ICON_GRAVITY);
@@ -11604,7 +11605,7 @@ public class Notification implements Parcelable
            Bundle carBundle = notif.extras == null ?
            Bundle carBundle = notif.extras == null ?
                    null : notif.extras.getBundle(EXTRA_CAR_EXTENDER);
                    null : notif.extras.getBundle(EXTRA_CAR_EXTENDER);
            if (carBundle != null) {
            if (carBundle != null) {
                mLargeIcon = carBundle.getParcelable(EXTRA_LARGE_ICON);
                mLargeIcon = carBundle.getParcelable(EXTRA_LARGE_ICON, Bitmap.class);
                mColor = carBundle.getInt(EXTRA_COLOR, Notification.COLOR_DEFAULT);
                mColor = carBundle.getInt(EXTRA_COLOR, Notification.COLOR_DEFAULT);
                Bundle b = carBundle.getBundle(EXTRA_CONVERSATION);
                Bundle b = carBundle.getBundle(EXTRA_CONVERSATION);
@@ -11710,9 +11711,9 @@ public class Notification implements Parcelable
            private static final String KEY_AUTHOR = "author";
            private static final String KEY_AUTHOR = "author";
            private static final String KEY_TEXT = "text";
            private static final String KEY_TEXT = "text";
            private static final String KEY_MESSAGES = "messages";
            private static final String KEY_MESSAGES = "messages";
            private static final String KEY_REMOTE_INPUT = "remote_input";
            static final String KEY_REMOTE_INPUT = "remote_input";
            private static final String KEY_ON_REPLY = "on_reply";
            static final String KEY_ON_REPLY = "on_reply";
            private static final String KEY_ON_READ = "on_read";
            static final String KEY_ON_READ = "on_read";
            private static final String KEY_PARTICIPANTS = "participants";
            private static final String KEY_PARTICIPANTS = "participants";
            private static final String KEY_TIMESTAMP = "timestamp";
            private static final String KEY_TIMESTAMP = "timestamp";
@@ -11837,10 +11838,10 @@ public class Notification implements Parcelable
                    }
                    }
                }
                }
                PendingIntent onRead = b.getParcelable(KEY_ON_READ);
                PendingIntent onRead = b.getParcelable(KEY_ON_READ, PendingIntent.class);
                PendingIntent onReply = b.getParcelable(KEY_ON_REPLY);
                PendingIntent onReply = b.getParcelable(KEY_ON_REPLY, PendingIntent.class);
                RemoteInput remoteInput = b.getParcelable(KEY_REMOTE_INPUT);
                RemoteInput remoteInput = b.getParcelable(KEY_REMOTE_INPUT, RemoteInput.class);
                String[] participants = b.getStringArray(KEY_PARTICIPANTS);
                String[] participants = b.getStringArray(KEY_PARTICIPANTS);
                if (participants == null || participants.length != 1) {
                if (participants == null || participants.length != 1) {
@@ -11982,8 +11983,8 @@ public class Notification implements Parcelable
        private static final String EXTRA_TV_EXTENDER = "android.tv.EXTENSIONS";
        private static final String EXTRA_TV_EXTENDER = "android.tv.EXTENSIONS";
        private static final String EXTRA_FLAGS = "flags";
        private static final String EXTRA_FLAGS = "flags";
        private static final String EXTRA_CONTENT_INTENT = "content_intent";
        static final String EXTRA_CONTENT_INTENT = "content_intent";
        private static final String EXTRA_DELETE_INTENT = "delete_intent";
        static final String EXTRA_DELETE_INTENT = "delete_intent";
        private static final String EXTRA_CHANNEL_ID = "channel_id";
        private static final String EXTRA_CHANNEL_ID = "channel_id";
        private static final String EXTRA_SUPPRESS_SHOW_OVER_APPS = "suppressShowOverApps";
        private static final String EXTRA_SUPPRESS_SHOW_OVER_APPS = "suppressShowOverApps";
@@ -12015,8 +12016,8 @@ public class Notification implements Parcelable
                mFlags = bundle.getInt(EXTRA_FLAGS);
                mFlags = bundle.getInt(EXTRA_FLAGS);
                mChannelId = bundle.getString(EXTRA_CHANNEL_ID);
                mChannelId = bundle.getString(EXTRA_CHANNEL_ID);
                mSuppressShowOverApps = bundle.getBoolean(EXTRA_SUPPRESS_SHOW_OVER_APPS);
                mSuppressShowOverApps = bundle.getBoolean(EXTRA_SUPPRESS_SHOW_OVER_APPS);
                mContentIntent = bundle.getParcelable(EXTRA_CONTENT_INTENT);
                mContentIntent = bundle.getParcelable(EXTRA_CONTENT_INTENT, PendingIntent.class);
                mDeleteIntent = bundle.getParcelable(EXTRA_DELETE_INTENT);
                mDeleteIntent = bundle.getParcelable(EXTRA_DELETE_INTENT, PendingIntent.class);
            }
            }
        }
        }
Loading