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

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

Snap for 10063449 from 59340774 to udc-qpr1-release

Change-Id: I41fdc937f36728dcf6970a18087e5b13ce77db18
parents 296c855c 59340774
Loading
Loading
Loading
Loading
+10 −17
Original line number Diff line number Diff line
@@ -351,6 +351,16 @@ public class BroadcastOptions extends ComponentOptions {
        mDeferralPolicy = opts.getInt(KEY_DEFERRAL_POLICY, DEFERRAL_POLICY_DEFAULT);
    }

    /** @hide */
    @NonNull
    public static BroadcastOptions makeWithDeferUntilActive(boolean deferUntilActive) {
        final BroadcastOptions opts = BroadcastOptions.makeBasic();
        if (deferUntilActive) {
            opts.setDeferralPolicy(DEFERRAL_POLICY_UNTIL_ACTIVE);
        }
        return opts;
    }

    /**
     * Set a duration for which the system should temporary place an application on the
     * power allowlist when this broadcast is being delivered to it.
@@ -774,23 +784,6 @@ public class BroadcastOptions extends ComponentOptions {
        return mIdForResponseEvent;
    }

    /** {@hide} */
    @Deprecated
    public @NonNull BroadcastOptions setDeferUntilActive(boolean shouldDefer) {
        if (shouldDefer) {
            setDeferralPolicy(DEFERRAL_POLICY_UNTIL_ACTIVE);
        } else {
            setDeferralPolicy(DEFERRAL_POLICY_NONE);
        }
        return this;
    }

    /** {@hide} */
    @Deprecated
    public boolean isDeferUntilActive() {
        return (mDeferralPolicy == DEFERRAL_POLICY_UNTIL_ACTIVE);
    }

    /**
     * Sets deferral policy for this broadcast that specifies how this broadcast
     * can be deferred for delivery at some future point.
+5 −1
Original line number Diff line number Diff line
@@ -822,6 +822,10 @@ public class WallpaperManager {
     */
    @TestApi
    public boolean isLockscreenLiveWallpaperEnabled() {
        return isLockscreenLiveWallpaperEnabledHelper();
    }

    private static boolean isLockscreenLiveWallpaperEnabledHelper() {
        if (sGlobals == null) {
            sIsLockscreenLiveWallpaperEnabled = SystemProperties.getBoolean(
                    "persist.wm.debug.lockscreen_live_wallpaper", false);
@@ -2757,7 +2761,7 @@ public class WallpaperManager {
    public static InputStream openDefaultWallpaper(Context context, @SetWallpaperFlags int which) {
        final String whichProp;
        final int defaultResId;
        if (which == FLAG_LOCK && !sIsLockscreenLiveWallpaperEnabled) {
        if (which == FLAG_LOCK && !isLockscreenLiveWallpaperEnabledHelper()) {
            /* Factory-default lock wallpapers are not yet supported
            whichProp = PROP_LOCK_WALLPAPER;
            defaultResId = com.android.internal.R.drawable.default_lock_wallpaper;
+2 −0
Original line number Diff line number Diff line
@@ -502,6 +502,8 @@ interface IPackageManager {

    boolean hasSystemFeature(String name, int version);

    List<String> getInitialNonStoppedSystemPackages();

    void enterSafeMode();
    @UnsupportedAppUsage
    boolean isSafeMode();
+17 −4
Original line number Diff line number Diff line
@@ -50,7 +50,6 @@ import android.view.contentcapture.ContentCaptureContext;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.Preconditions;

import java.lang.IllegalArgumentException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
@@ -285,6 +284,12 @@ public final class ShortcutInfo implements Parcelable {
     */
    public static final int DISABLED_REASON_OTHER_RESTORE_ISSUE = 103;

    /**
     * The maximum length of Shortcut ID. IDs will be truncated at this limit.
     * @hide
     */
    public static final int MAX_ID_LENGTH = 1000;

    /** @hide */
    @IntDef(prefix = { "DISABLED_REASON_" }, value = {
            DISABLED_REASON_NOT_DISABLED,
@@ -477,8 +482,7 @@ public final class ShortcutInfo implements Parcelable {

    private ShortcutInfo(Builder b) {
        mUserId = b.mContext.getUserId();

        mId = Preconditions.checkStringNotEmpty(b.mId, "Shortcut ID must be provided");
        mId = getSafeId(Preconditions.checkStringNotEmpty(b.mId, "Shortcut ID must be provided"));

        // Note we can't do other null checks here because SM.updateShortcuts() takes partial
        // information.
@@ -584,6 +588,14 @@ public final class ShortcutInfo implements Parcelable {
        return ret;
    }

    @NonNull
    private static String getSafeId(@NonNull String id) {
        if (id.length() > MAX_ID_LENGTH) {
            return id.substring(0, MAX_ID_LENGTH);
        }
        return id;
    }

    /**
     * Throws if any of the mandatory fields is not set.
     *
@@ -2342,7 +2354,8 @@ public final class ShortcutInfo implements Parcelable {
        final ClassLoader cl = getClass().getClassLoader();

        mUserId = source.readInt();
        mId = source.readString8();
        mId = getSafeId(Preconditions.checkStringNotEmpty(source.readString8(),
                "Shortcut ID must be provided"));
        mPackageName = source.readString8();
        mActivity = source.readParcelable(cl, android.content.ComponentName.class);
        mFlags = source.readInt();
+26 −20
Original line number Diff line number Diff line
@@ -32,10 +32,12 @@ import android.media.soundtrigger.RecognitionConfig;
import android.media.soundtrigger.RecognitionEvent;
import android.media.soundtrigger.RecognitionMode;
import android.media.soundtrigger.SoundModel;
import android.media.soundtrigger_middleware.PhraseRecognitionEventSys;
import android.media.soundtrigger_middleware.RecognitionEventSys;
import android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor;
import android.os.ParcelFileDescriptor;
import android.system.ErrnoException;
import android.os.SharedMemory;
import android.system.ErrnoException;

import java.nio.ByteBuffer;
import java.util.Arrays;
@@ -219,36 +221,40 @@ public class ConversionUtil {
        return new SoundTrigger.ConfidenceLevel(apiLevel.userId, apiLevel.levelPercent);
    }

    public static SoundTrigger.RecognitionEvent aidl2apiRecognitionEvent(
            int modelHandle, int captureSession, RecognitionEvent aidlEvent) {
    public static SoundTrigger.RecognitionEvent aidl2apiRecognitionEvent(int modelHandle,
            int captureSession, RecognitionEventSys aidlEvent) {
        RecognitionEvent recognitionEvent = aidlEvent.recognitionEvent;
        // The API recognition event doesn't allow for a null audio format, even though it doesn't
        // always make sense. We thus replace it with a default.
        AudioFormat audioFormat = aidl2apiAudioFormatWithDefault(aidlEvent.audioConfig,
        AudioFormat audioFormat = aidl2apiAudioFormatWithDefault(recognitionEvent.audioConfig,
                true /*isInput*/);
        // TODO(b/265852186) propagate a timestamp from aidl interfaces
        return new SoundTrigger.GenericRecognitionEvent(aidlEvent.status, modelHandle,
                aidlEvent.captureAvailable, captureSession, aidlEvent.captureDelayMs,
                aidlEvent.capturePreambleMs, aidlEvent.triggerInData, audioFormat, aidlEvent.data,
                aidlEvent.recognitionStillActive, -1 /* halEventReceivedMillis */);
        return new SoundTrigger.GenericRecognitionEvent(recognitionEvent.status, modelHandle,
                recognitionEvent.captureAvailable, captureSession, recognitionEvent.captureDelayMs,
                recognitionEvent.capturePreambleMs, recognitionEvent.triggerInData, audioFormat,
                recognitionEvent.data,
                recognitionEvent.recognitionStillActive, aidlEvent.halEventReceivedMillis);
    }

    public static SoundTrigger.RecognitionEvent aidl2apiPhraseRecognitionEvent(
            int modelHandle, int captureSession,
            PhraseRecognitionEvent aidlEvent) {
            int modelHandle, int captureSession, PhraseRecognitionEventSys aidlEvent) {
        PhraseRecognitionEvent recognitionEvent = aidlEvent.phraseRecognitionEvent;
        SoundTrigger.KeyphraseRecognitionExtra[] apiExtras =
                new SoundTrigger.KeyphraseRecognitionExtra[aidlEvent.phraseExtras.length];
        for (int i = 0; i < aidlEvent.phraseExtras.length; ++i) {
            apiExtras[i] = aidl2apiPhraseRecognitionExtra(aidlEvent.phraseExtras[i]);
                new SoundTrigger.KeyphraseRecognitionExtra[recognitionEvent.phraseExtras.length];
        for (int i = 0; i < recognitionEvent.phraseExtras.length; ++i) {
            apiExtras[i] = aidl2apiPhraseRecognitionExtra(recognitionEvent.phraseExtras[i]);
        }
        // The API recognition event doesn't allow for a null audio format, even though it doesn't
        // always make sense. We thus replace it with a default.
        AudioFormat audioFormat = aidl2apiAudioFormatWithDefault(aidlEvent.common.audioConfig,
        AudioFormat audioFormat = aidl2apiAudioFormatWithDefault(
                recognitionEvent.common.audioConfig,
                true /*isInput*/);
        // TODO(b/265852186) propagate a timestamp from aidl interfaces
        return new SoundTrigger.KeyphraseRecognitionEvent(aidlEvent.common.status, modelHandle,
                aidlEvent.common.captureAvailable, captureSession, aidlEvent.common.captureDelayMs,
                aidlEvent.common.capturePreambleMs, aidlEvent.common.triggerInData, audioFormat,
                aidlEvent.common.data, apiExtras, -1 /* halEventReceivedMillis */);
        return new SoundTrigger.KeyphraseRecognitionEvent(recognitionEvent.common.status,
                modelHandle,
                recognitionEvent.common.captureAvailable, captureSession,
                recognitionEvent.common.captureDelayMs,
                recognitionEvent.common.capturePreambleMs, recognitionEvent.common.triggerInData,
                audioFormat,
                recognitionEvent.common.data, apiExtras, aidlEvent.halEventReceivedMillis);
    }

    // In case of a null input returns a non-null valid output.
Loading