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

Commit 7ed9aea8 authored by Johannes Gallmann's avatar Johannes Gallmann Committed by Android Build Coastguard Worker
Browse files

Fix RemoteInputView not visible when Reply tapped from AOD

Bug: 325118951
Flag: NONE
Test: atest RemoteInputViewTest
Test: Manual, i.e. verifying that RIV is visible after the following sequence of events: tap reply from AOD, post notification update, tap reply again from AOD
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:150e981c20d8b9a58df0fe8c1f993afe0246bd35)
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:bc6360267959019c0ef59775af540516584ecc0b)
Merged-In: I7b478bf3071c0fbcebcfdaa1c2b902e0091387b3
Change-Id: I7b478bf3071c0fbcebcfdaa1c2b902e0091387b3
parent d012e7c2
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -454,6 +454,7 @@ public class RemoteInputView extends LinearLayout implements View.OnClickListene
                        setTopMargin(0);
                        if (grandParent != null) grandParent.setClipChildren(true);
                        setVisibility(GONE);
                        setAlpha(1f);
                        if (mWrapper != null) {
                            mWrapper.setRemoteInputVisible(false);
                        }
+30 −1
Original line number Diff line number Diff line
@@ -67,11 +67,11 @@ import androidx.test.filters.SmallTest;
import com.android.internal.logging.UiEventLogger;
import com.android.internal.logging.testing.UiEventLoggerFake;
import com.android.systemui.Dependency;
import com.android.systemui.res.R;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.animation.AnimatorTestRule;
import com.android.systemui.flags.FakeFeatureFlags;
import com.android.systemui.flags.Flags;
import com.android.systemui.res.R;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
import com.android.systemui.statusbar.RemoteInputController;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
@@ -449,6 +449,35 @@ public class RemoteInputViewTest extends SysuiTestCase {
        assertEquals(1f, fadeInView.getAlpha());
    }

    @Test
    public void testUnanimatedFocusAfterDefocusAnimation() throws Exception {
        mFeatureFlags.set(Flags.NOTIFICATION_INLINE_REPLY_ANIMATION, true);
        NotificationTestHelper helper = new NotificationTestHelper(
                mContext,
                mDependency,
                TestableLooper.get(this));
        ExpandableNotificationRow row = helper.createRow();
        RemoteInputView view = RemoteInputView.inflate(mContext, null, row.getEntry(), mController);
        bindController(view, row.getEntry());

        FrameLayout parent = new FrameLayout(mContext);
        parent.addView(view);

        // Play defocus animation
        view.onDefocus(true /* animate */, false /* logClose */, null /* doAfterDefocus */);
        mAnimatorTestRule.advanceTimeBy(ANIMATION_DURATION_STANDARD);

        // assert that RemoteInputView is no longer visible, but alpha is reset to 1f
        assertEquals(View.GONE, view.getVisibility());
        assertEquals(1f, view.getAlpha());

        // focus RemoteInputView without an animation
        view.focus();
        // assert that RemoteInputView is visible, and alpha is 1f
        assertEquals(View.VISIBLE, view.getVisibility());
        assertEquals(1f, view.getAlpha());
    }

    // NOTE: because we're refactoring the RemoteInputView and moving logic into the
    // RemoteInputViewController, it's easiest to just test the system of the two classes together.
    @NonNull