summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/src/com/android/intentresolver/widget/ResolverDrawerLayout.java37
-rw-r--r--java/tests/src/com/android/intentresolver/UnbundledChooserActivityWorkProfileTest.java34
2 files changed, 34 insertions, 37 deletions
diff --git a/java/src/com/android/intentresolver/widget/ResolverDrawerLayout.java b/java/src/com/android/intentresolver/widget/ResolverDrawerLayout.java
index a2c5afc6..f5e20510 100644
--- a/java/src/com/android/intentresolver/widget/ResolverDrawerLayout.java
+++ b/java/src/com/android/intentresolver/widget/ResolverDrawerLayout.java
@@ -89,8 +89,8 @@ public class ResolverDrawerLayout extends ViewGroup {
* out of sync due to frequently dropping fractions of a pixel from '(int) dy' casts.
*/
private float mDragRemainder = 0.0f;
+ private int mHeightUsed;
private int mCollapsibleHeight;
- private int mUncollapsibleHeight;
private int mAlwaysShowHeight;
/**
@@ -244,9 +244,7 @@ public class ResolverDrawerLayout extends ViewGroup {
mLastTouchY -= dReserved;
}
- final int oldCollapsibleHeight = mCollapsibleHeight;
- mCollapsibleHeight = Math.min(mCollapsibleHeight, getMaxCollapsedHeight());
-
+ final int oldCollapsibleHeight = updateCollapsibleHeight();
if (updateCollapseOffset(oldCollapsibleHeight, !isDragging())) {
return;
}
@@ -485,7 +483,7 @@ public class ResolverDrawerLayout extends ViewGroup {
} else {
if (isDismissable()
&& yvel > 0 && mCollapseOffset > mCollapsibleHeight) {
- smoothScrollTo(mCollapsibleHeight + mUncollapsibleHeight, yvel);
+ smoothScrollTo(mHeightUsed, yvel);
mDismissOnScrollerFinished = true;
} else {
scrollNestedScrollableChildBackToTop();
@@ -575,8 +573,7 @@ public class ResolverDrawerLayout extends ViewGroup {
return 0;
}
- final float newPos = Math.max(0, Math.min(mCollapseOffset + dy,
- mCollapsibleHeight + mUncollapsibleHeight));
+ final float newPos = Math.max(0, Math.min(mCollapseOffset + dy, mHeightUsed));
if (newPos != mCollapseOffset) {
dy = newPos - mCollapseOffset;
@@ -855,7 +852,7 @@ public class ResolverDrawerLayout extends ViewGroup {
} else {
if (isDismissable()
&& velocityY < 0 && mCollapseOffset > mCollapsibleHeight) {
- smoothScrollTo(mCollapsibleHeight + mUncollapsibleHeight, velocityY);
+ smoothScrollTo(mHeightUsed, velocityY);
mDismissOnScrollerFinished = true;
} else {
smoothScrollTo(velocityY > 0 ? 0 : mCollapsibleHeight, velocityY);
@@ -883,9 +880,8 @@ public class ResolverDrawerLayout extends ViewGroup {
}
break;
case AccessibilityNodeInfo.ACTION_DISMISS:
- if ((mCollapseOffset < mCollapsibleHeight + mUncollapsibleHeight)
- && isDismissable()) {
- smoothScrollTo(mCollapsibleHeight + mUncollapsibleHeight, 0);
+ if ((mCollapseOffset < mHeightUsed) && isDismissable()) {
+ smoothScrollTo(mHeightUsed, 0);
mDismissOnScrollerFinished = true;
return true;
}
@@ -923,7 +919,7 @@ public class ResolverDrawerLayout extends ViewGroup {
info.addAction(AccessibilityAction.ACTION_SCROLL_DOWN);
info.setScrollable(true);
}
- if ((mCollapseOffset < mCollapsibleHeight + mUncollapsibleHeight)
+ if ((mCollapseOffset < mHeightUsed)
&& ((mCollapseOffset < mCollapsibleHeight) || isDismissable())) {
info.addAction(AccessibilityAction.ACTION_SCROLL_UP);
info.setScrollable(true);
@@ -931,7 +927,7 @@ public class ResolverDrawerLayout extends ViewGroup {
if (mCollapseOffset < mCollapsibleHeight) {
info.addAction(AccessibilityAction.ACTION_COLLAPSE);
}
- if (mCollapseOffset < mCollapsibleHeight + mUncollapsibleHeight && isDismissable()) {
+ if (mCollapseOffset < mHeightUsed && isDismissable()) {
info.addAction(AccessibilityAction.ACTION_DISMISS);
}
}
@@ -1022,22 +1018,25 @@ public class ResolverDrawerLayout extends ViewGroup {
}
}
- final int oldCollapsibleHeight = mCollapsibleHeight;
- mCollapsibleHeight = Math.max(0,
- heightUsed - mAlwaysShowHeight - getMaxCollapsedHeight());
- mUncollapsibleHeight = heightUsed - mCollapsibleHeight;
-
+ mHeightUsed = heightUsed;
+ int oldCollapsibleHeight = updateCollapsibleHeight();
updateCollapseOffset(oldCollapsibleHeight, !isDragging());
if (getShowAtTop()) {
mTopOffset = 0;
} else {
- mTopOffset = Math.max(0, heightSize - heightUsed) + (int) mCollapseOffset;
+ mTopOffset = Math.max(0, heightSize - mHeightUsed) + (int) mCollapseOffset;
}
setMeasuredDimension(sourceWidth, heightSize);
}
+ private int updateCollapsibleHeight() {
+ final int oldCollapsibleHeight = mCollapsibleHeight;
+ mCollapsibleHeight = Math.max(0, mHeightUsed - mAlwaysShowHeight - getMaxCollapsedHeight());
+ return oldCollapsibleHeight;
+ }
+
/**
* @return The space reserved by views with 'alwaysShow=true'
*/
diff --git a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityWorkProfileTest.java b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityWorkProfileTest.java
index 5a65ec1e..f1febed2 100644
--- a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityWorkProfileTest.java
+++ b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityWorkProfileTest.java
@@ -27,6 +27,7 @@ import static androidx.test.espresso.matcher.ViewMatchers.isSelected;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
+import static com.android.intentresolver.ChooserWrapperActivity.sOverrides;
import static com.android.intentresolver.UnbundledChooserActivityWorkProfileTest.TestCase.ExpectedBlocker.NO_BLOCKER;
import static com.android.intentresolver.UnbundledChooserActivityWorkProfileTest.TestCase.ExpectedBlocker.PERSONAL_PROFILE_ACCESS_BLOCKER;
import static com.android.intentresolver.UnbundledChooserActivityWorkProfileTest.TestCase.ExpectedBlocker.PERSONAL_PROFILE_SHARE_BLOCKER;
@@ -34,7 +35,6 @@ import static com.android.intentresolver.UnbundledChooserActivityWorkProfileTest
import static com.android.intentresolver.UnbundledChooserActivityWorkProfileTest.TestCase.ExpectedBlocker.WORK_PROFILE_SHARE_BLOCKER;
import static com.android.intentresolver.UnbundledChooserActivityWorkProfileTest.TestCase.Tab.PERSONAL;
import static com.android.intentresolver.UnbundledChooserActivityWorkProfileTest.TestCase.Tab.WORK;
-import static com.android.intentresolver.ChooserWrapperActivity.sOverrides;
import static org.hamcrest.CoreMatchers.not;
import static org.mockito.ArgumentMatchers.eq;
@@ -48,9 +48,9 @@ import androidx.test.InstrumentationRegistry;
import androidx.test.espresso.NoMatchingViewException;
import androidx.test.rule.ActivityTestRule;
-import com.android.internal.R;
import com.android.intentresolver.ResolverActivity.ResolvedComponentInfo;
import com.android.intentresolver.UnbundledChooserActivityWorkProfileTest.TestCase.Tab;
+import com.android.internal.R;
import junit.framework.AssertionFailedError;
@@ -134,14 +134,13 @@ public class UnbundledChooserActivityWorkProfileTest {
/* tab= */ WORK,
/* expectedBlocker= */ NO_BLOCKER
),
-// TODO(b/256869196) ChooserActivity goes into requestLayout loop
-// new TestCase(
-// /* isSendAction= */ true,
-// /* hasCrossProfileIntents= */ false,
-// /* myUserHandle= */ WORK_USER_HANDLE,
-// /* tab= */ WORK,
-// /* expectedBlocker= */ NO_BLOCKER
-// ),
+ new TestCase(
+ /* isSendAction= */ true,
+ /* hasCrossProfileIntents= */ false,
+ /* myUserHandle= */ WORK_USER_HANDLE,
+ /* tab= */ WORK,
+ /* expectedBlocker= */ NO_BLOCKER
+ ),
new TestCase(
/* isSendAction= */ true,
/* hasCrossProfileIntents= */ true,
@@ -163,14 +162,13 @@ public class UnbundledChooserActivityWorkProfileTest {
/* tab= */ PERSONAL,
/* expectedBlocker= */ NO_BLOCKER
),
-// TODO(b/256869196) ChooserActivity goes into requestLayout loop
-// new TestCase(
-// /* isSendAction= */ true,
-// /* hasCrossProfileIntents= */ false,
-// /* myUserHandle= */ WORK_USER_HANDLE,
-// /* tab= */ PERSONAL,
-// /* expectedBlocker= */ PERSONAL_PROFILE_SHARE_BLOCKER
-// ),
+ new TestCase(
+ /* isSendAction= */ true,
+ /* hasCrossProfileIntents= */ false,
+ /* myUserHandle= */ WORK_USER_HANDLE,
+ /* tab= */ PERSONAL,
+ /* expectedBlocker= */ PERSONAL_PROFILE_SHARE_BLOCKER
+ ),
new TestCase(
/* isSendAction= */ true,
/* hasCrossProfileIntents= */ true,