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

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

Merge cherrypicks of ['googleplex-android-review.googlesource.com/26445688',...

Merge cherrypicks of ['googleplex-android-review.googlesource.com/26445688', 'googleplex-android-review.googlesource.com/26418741', 'googleplex-android-review.googlesource.com/26462677', 'googleplex-android-review.googlesource.com/26463033', 'googleplex-android-review.googlesource.com/26458856', 'googleplex-android-review.googlesource.com/26460038'] into 24Q2-release.

Change-Id: I463972265fc3f4040e5b05d3252373440f2c3a40
parents e2d34715 4c2d4be7
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3946,6 +3946,7 @@ package android.view.inputmethod {
  }

  public final class InputMethodInfo implements android.os.Parcelable {
    ctor public InputMethodInfo(@NonNull String, @NonNull String, @NonNull CharSequence, @NonNull String, boolean, @NonNull String);
    ctor public InputMethodInfo(@NonNull String, @NonNull String, @NonNull CharSequence, @NonNull String, @NonNull String, boolean, @NonNull String);
    ctor @FlaggedApi("android.view.inputmethod.connectionless_handwriting") public InputMethodInfo(@NonNull String, @NonNull String, @NonNull CharSequence, @NonNull String, @NonNull String, boolean, boolean, @NonNull String);
    ctor public InputMethodInfo(@NonNull String, @NonNull String, @NonNull CharSequence, @NonNull String, int);
+12 −0
Original line number Diff line number Diff line
@@ -70,6 +70,8 @@ public class VibrationConfig {

    private final boolean mDefaultKeyboardVibrationEnabled;

    private final boolean mHasFixedKeyboardAmplitude;

    /** @hide */
    public VibrationConfig(@Nullable Resources resources) {
        mHapticChannelMaxVibrationAmplitude = loadFloat(resources,
@@ -87,6 +89,8 @@ public class VibrationConfig {
                com.android.internal.R.bool.config_ignoreVibrationsOnWirelessCharger, false);
        mDefaultKeyboardVibrationEnabled = loadBoolean(resources,
                com.android.internal.R.bool.config_defaultKeyboardVibrationEnabled, true);
        mHasFixedKeyboardAmplitude = loadFloat(resources,
                com.android.internal.R.dimen.config_keyboardHapticFeedbackFixedAmplitude, -1) > 0;

        mDefaultAlarmVibrationIntensity = loadDefaultIntensity(resources,
                com.android.internal.R.integer.config_defaultAlarmVibrationIntensity);
@@ -197,6 +201,14 @@ public class VibrationConfig {
        return mDefaultKeyboardVibrationEnabled;
    }

    /**
     * Whether the device has a fixed amplitude for keyboard.
     * @hide
     */
    public boolean hasFixedKeyboardAmplitude() {
        return mHasFixedKeyboardAmplitude;
    }

    /** Get the default vibration intensity for given usage. */
    @VibrationIntensity
    public int getDefaultVibrationIntensity(@VibrationAttributes.Usage int usage) {
+19 −0
Original line number Diff line number Diff line
@@ -492,6 +492,25 @@ public final class InputMethodInfo implements Parcelable {
                false /* inlineSuggestionsEnabled */);
    }

    /**
     * Test API for creating a built-in input method to verify stylus handwriting.
     * @hide
     */
    @TestApi
    public InputMethodInfo(@NonNull String packageName, @NonNull String className,
            @NonNull CharSequence label, @NonNull String settingsActivity,
            boolean supportStylusHandwriting,
            @NonNull String stylusHandwritingSettingsActivityAttr) {
        this(buildFakeResolveInfo(packageName, className, label), false /* isAuxIme */,
                settingsActivity, null /* languageSettingsActivity */,
                null /* subtypes */, 0 /* isDefaultResId */,
                false /* forceDefault */, true /* supportsSwitchingToNextInputMethod */,
                false /* inlineSuggestionsEnabled */, false /* isVrOnly */,
                false /* isVirtualDeviceOnly */, 0 /* handledConfigChanges */,
                supportStylusHandwriting, false /* supportConnectionlessStylusHandwriting */,
                stylusHandwritingSettingsActivityAttr, false /* inlineSuggestionsEnabled */);
    }

    /**
     * Test API for creating a built-in input method to verify stylus handwriting.
     * @hide
+7 −1
Original line number Diff line number Diff line
@@ -979,7 +979,13 @@ public class PipController implements PipTransitionController.PipTransitionCallb
        // cache current min/max size
        Point minSize = mPipBoundsState.getMinSize();
        Point maxSize = mPipBoundsState.getMaxSize();
        mPipBoundsState.updateMinMaxSize(pictureInPictureParams.getAspectRatioFloat());
        final float aspectRatioFloat;
        if (pictureInPictureParams.hasSetAspectRatio()) {
            aspectRatioFloat = pictureInPictureParams.getAspectRatioFloat();
        } else {
            aspectRatioFloat = mPipBoundsAlgorithm.getDefaultAspectRatio();
        }
        mPipBoundsState.updateMinMaxSize(aspectRatioFloat);
        final Rect entryBounds = mPipTaskOrganizer.startSwipePipToHome(componentName, activityInfo,
                pictureInPictureParams);
        // restore min/max size, as this is referenced later in OnDisplayChangingListener and needs
+26 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import com.android.systemui.animation.DialogTransitionAnimator
import com.android.systemui.common.shared.model.ContentDescription
import com.android.systemui.common.shared.model.Icon
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.coroutines.collectValues
import com.android.systemui.dock.DockManager
import com.android.systemui.dock.DockManagerFake
import com.android.systemui.flags.FakeFeatureFlags
@@ -49,6 +50,7 @@ import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.res.R
import com.android.systemui.settings.UserFileManager
import com.android.systemui.settings.UserTracker
import com.android.systemui.shade.domain.interactor.ShadeInteractor
import com.android.systemui.shared.keyguard.shared.model.KeyguardQuickAffordanceSlots
import com.android.systemui.statusbar.policy.KeyguardStateController
import com.android.systemui.util.FakeSharedPreferences
@@ -57,6 +59,7 @@ import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.settings.FakeSettings
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.runCurrent
@@ -80,6 +83,7 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
    @Mock private lateinit var activityStarter: ActivityStarter
    @Mock private lateinit var launchAnimator: DialogTransitionAnimator
    @Mock private lateinit var devicePolicyManager: DevicePolicyManager
    @Mock private lateinit var shadeInteractor: ShadeInteractor
    @Mock private lateinit var logger: KeyguardQuickAffordancesMetricsLogger

    private lateinit var underTest: KeyguardQuickAffordanceInteractor
@@ -179,6 +183,7 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
        underTest =
            KeyguardQuickAffordanceInteractor(
                keyguardInteractor = withDeps.keyguardInteractor,
                shadeInteractor = shadeInteractor,
                lockPatternUtils = lockPatternUtils,
                keyguardStateController = keyguardStateController,
                userTracker = userTracker,
@@ -193,6 +198,8 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
                backgroundDispatcher = testDispatcher,
                appContext = context,
            )

        whenever(shadeInteractor.anyExpansion).thenReturn(MutableStateFlow(0f))
    }

    @Test
@@ -338,6 +345,25 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
            assertThat(collectedValue()).isEqualTo(KeyguardQuickAffordanceModel.Hidden)
        }

    @Test
    fun quickAffordance_updateOncePerShadeExpansion() =
        testScope.runTest {
            val shadeExpansion = MutableStateFlow(0f)
            whenever(shadeInteractor.anyExpansion).thenReturn(shadeExpansion)

            val collectedValue by
                collectValues(
                    underTest.quickAffordance(KeyguardQuickAffordancePosition.BOTTOM_START)
                )

            val initialSize = collectedValue.size
            for (i in 0..10) {
                shadeExpansion.value = i / 10f
            }

            assertThat(collectedValue.size).isEqualTo(initialSize + 1)
        }

    @Test
    fun quickAffordanceAlwaysVisible_notVisible_restrictedByPolicyManager() =
        testScope.runTest {
Loading