Work profile visual polish

- Calculate work profile switch height and apply it as a padding to recyclerview instead of reading height from view.
- Add solid background to work_apps paused overlay for improved crossfade animation on pause/unpause
- Don't show work paused overlay text in landscape mode

Bug 151672365
Bug 153763804
Bug 151595687

Test: Manual
Change-Id: I6c14a8a1624455181d4998555bcc3ae2bb422efe
This commit is contained in:
Samuel Fufa
2020-06-09 11:37:23 -07:00
parent 488044fc2e
commit 2e59b95024
4 changed files with 31 additions and 10 deletions

View File

@@ -19,6 +19,8 @@ import static com.android.launcher3.logging.LoggerUtils.newContainerTarget;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Point;
@@ -434,6 +436,15 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo
mWorkModeSwitch.post(() -> mAH[AdapterHolder.WORK].applyPadding());
}
@Override
protected void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
View overlay = mAH[AdapterHolder.WORK].getOverlayView();
int v = newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE ? GONE : VISIBLE;
overlay.findViewById(R.id.work_apps_paused_title).setVisibility(v);
overlay.findViewById(R.id.work_apps_paused_content).setVisibility(v);
}
private void replaceRVContainer(boolean showTabs) {
for (int i = 0; i < mAH.length; i++) {
if (mAH[i].recyclerView != null) {
@@ -651,10 +662,12 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo
recyclerView.setItemAnimator(new DefaultItemAnimator());
if (workDisabled) {
overlayView.setAlpha(0);
appsList.updateItemFilter((info, cn) -> false);
recyclerView.addAutoSizedOverlay(overlayView);
overlayView.animate().alpha(1).withEndAction(
() -> recyclerView.setItemAnimator(null)).start();
() -> {
appsList.updateItemFilter((info, cn) -> false);
recyclerView.setItemAnimator(null);
}).start();
} else if (mInfoMatcher != null) {
appsList.updateItemFilter(mInfoMatcher);
overlayView.animate().alpha(0).withEndAction(() -> {
@@ -667,8 +680,12 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo
void applyPadding() {
if (recyclerView != null) {
int bottomOffset =
mWorkModeSwitch != null && mIsWork ? mWorkModeSwitch.getHeight() : 0;
Resources res = getResources();
int switchH = res.getDimensionPixelSize(R.dimen.work_profile_footer_padding) * 2
+ mInsets.bottom + Utilities.calculateTextHeight(
res.getDimension(R.dimen.work_profile_footer_text_size));
int bottomOffset = mWorkModeSwitch != null && mIsWork ? switchH : 0;
recyclerView.setPadding(padding.left, padding.top, padding.right,
padding.bottom + bottomOffset);
}