Loading quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityControllerHelper.java +1 −1 Original line number Diff line number Diff line Loading @@ -97,7 +97,7 @@ public final class LauncherActivityControllerHelper implements ActivityControlHe public void onAssistantVisibilityChanged(float visibility) { Launcher launcher = getCreatedActivity(); if (launcher != null) { launcher.setQuickSearchBarAlpha(1f - visibility); launcher.onAssistantVisibilityChanged(visibility); } } Loading src/com/android/launcher3/Launcher.java +47 −9 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ import static com.android.launcher3.AbstractFloatingView.TYPE_SNACKBAR; import static com.android.launcher3.LauncherAnimUtils.SPRING_LOADED_EXIT_DELAY; import static com.android.launcher3.LauncherState.ALL_APPS; import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.launcher3.LauncherState.OVERVIEW_PEEK; import static com.android.launcher3.dragndrop.DragLayer.ALPHA_INDEX_LAUNCHER_LOAD; import static com.android.launcher3.logging.LoggerUtils.newContainerTarget; import static com.android.launcher3.logging.LoggerUtils.newTarget; Loading Loading @@ -129,6 +131,7 @@ import com.android.launcher3.util.UiThreadHelper; import com.android.launcher3.util.ViewOnDrawExecutor; import com.android.launcher3.views.ActivityContext; import com.android.launcher3.views.OptionsPopupView; import com.android.launcher3.views.ScrimView; import com.android.launcher3.widget.LauncherAppWidgetHostView; import com.android.launcher3.widget.PendingAddShortcutInfo; import com.android.launcher3.widget.PendingAddWidgetInfo; Loading @@ -148,6 +151,7 @@ import java.util.HashSet; import java.util.List; import java.util.function.Predicate; import androidx.annotation.IdRes; import androidx.annotation.Nullable; /** Loading Loading @@ -203,6 +207,9 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, private static final int NEW_APPS_ANIMATION_INACTIVE_TIMEOUT_SECONDS = 5; @Thunk static final int NEW_APPS_ANIMATION_DELAY = 500; private static final int APPS_VIEW_ALPHA_CHANNEL_INDEX = 1; private static final int SCRIM_VIEW_ALPHA_CHANNEL_INDEX = 0; private LauncherAppTransitionManager mAppTransitionManager; private Configuration mOldConfig; Loading @@ -224,6 +231,9 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, @Thunk AllAppsContainerView mAppsView; AllAppsTransitionController mAllAppsController; // Scrim view for the all apps and overview state. @Thunk ScrimView mScrimView; // UI and state for the overview panel private View mOverviewPanel; Loading Loading @@ -262,6 +272,8 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, final Handler mHandler = new Handler(); private final Runnable mHandleDeferredResume = this::handleDeferredResume; private float mCurrentAssistantVisibility = 0f; @Override protected void onCreate(Bundle savedInstanceState) { RaceConditionTracker.onEvent(ON_CREATE_EVT, ENTER); Loading Loading @@ -362,6 +374,24 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, TraceHelper.endSection("Launcher-onCreate"); RaceConditionTracker.onEvent(ON_CREATE_EVT, EXIT); mStateManager.addStateListener(new LauncherStateManager.StateListener() { @Override public void onStateTransitionStart(LauncherState toState) {} @Override public void onStateTransitionComplete(LauncherState finalState) { float alpha = 1f - mCurrentAssistantVisibility; if (finalState == NORMAL) { mAppsView.getAlphaProperty(APPS_VIEW_ALPHA_CHANNEL_INDEX).setValue(alpha); } else if (finalState == OVERVIEW || finalState == OVERVIEW_PEEK) { mAppsView.getAlphaProperty(APPS_VIEW_ALPHA_CHANNEL_INDEX).setValue(alpha); mScrimView.getAlphaProperty(SCRIM_VIEW_ALPHA_CHANNEL_INDEX).setValue(alpha); } else { mAppsView.getAlphaProperty(APPS_VIEW_ALPHA_CHANNEL_INDEX).setValue(1f); mScrimView.getAlphaProperty(SCRIM_VIEW_ALPHA_CHANNEL_INDEX).setValue(1f); } } }); } @Override Loading Loading @@ -408,13 +438,6 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, onIdpChanged(idp); } public void setQuickSearchBarAlpha(float alpha) { View qsbAllApps = findViewById(R.id.search_container_all_apps); if (qsbAllApps != null) { qsbAllApps.setAlpha(alpha); } } private void onIdpChanged(InvariantDeviceProfile idp) { mUserEventDispatcher = null; Loading @@ -427,6 +450,18 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, rebindModel(); } public void onAssistantVisibilityChanged(float visibility) { mCurrentAssistantVisibility = visibility; float alpha = 1f - visibility; LauncherState state = mStateManager.getState(); if (state == NORMAL) { mAppsView.getAlphaProperty(APPS_VIEW_ALPHA_CHANNEL_INDEX).setValue(alpha); } else if (state == OVERVIEW || state == OVERVIEW_PEEK) { mAppsView.getAlphaProperty(APPS_VIEW_ALPHA_CHANNEL_INDEX).setValue(alpha); mScrimView.getAlphaProperty(SCRIM_VIEW_ALPHA_CHANNEL_INDEX).setValue(alpha); } } private void initDeviceProfile(InvariantDeviceProfile idp) { // Load configuration-specific DeviceProfile mDeviceProfile = idp.getDeviceProfile(this); Loading Loading @@ -969,6 +1004,9 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, // Setup Apps mAppsView = findViewById(R.id.apps_view); // Setup Scrim mScrimView = findViewById(R.id.scrim_view); // Setup the drag controller (drop targets have to be added in reverse order in priority) mDragController.setMoveTarget(mWorkspace); mDropTargetBar.setup(mDragController); Loading Loading @@ -1640,7 +1678,7 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, public int getCurrentState() { if(mStateManager.getState() == LauncherState.ALL_APPS) { return StatsLogUtils.LAUNCHER_STATE_ALLAPPS; } else if (mStateManager.getState() == LauncherState.OVERVIEW) { } else if (mStateManager.getState() == OVERVIEW) { return StatsLogUtils.LAUNCHER_STATE_OVERVIEW; } return StatsLogUtils.LAUNCHER_STATE_HOME; Loading @@ -1658,7 +1696,7 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, LauncherState state = mStateManager.getState(); if (state == LauncherState.ALL_APPS) { event.srcTarget[2].containerType = ContainerType.ALLAPPS; } else if (state == LauncherState.OVERVIEW) { } else if (state == OVERVIEW) { event.srcTarget[2].containerType = ContainerType.TASKSWITCHER; } } Loading src/com/android/launcher3/allapps/AllAppsContainerView.java +11 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,8 @@ import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.keyboard.FocusedItemDecorator; import com.android.launcher3.userevent.nano.LauncherLogProto.Target; import com.android.launcher3.util.ItemInfoMatcher; import com.android.launcher3.util.MultiValueAlpha; import com.android.launcher3.util.MultiValueAlpha.AlphaProperty; import com.android.launcher3.util.Themes; import com.android.launcher3.views.BottomUserEducationView; import com.android.launcher3.views.RecyclerViewFastScroller; Loading @@ -70,6 +72,7 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo private static final float FLING_VELOCITY_MULTIPLIER = 135f; // Starts the springs after at least 55% of the animation has passed. private static final float FLING_ANIMATION_THRESHOLD = 0.55f; private static final int ALPHA_CHANNEL_COUNT = 2; private final Launcher mLauncher; private final AdapterHolder[] mAH; Loading @@ -93,6 +96,8 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo private RecyclerViewFastScroller mTouchHandler; private final Point mFastScrollerOffset = new Point(); private final MultiValueAlpha mMultiValueAlpha; public AllAppsContainerView(Context context) { this(context, null); } Loading Loading @@ -122,12 +127,18 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo addSpringView(R.id.all_apps_header); addSpringView(R.id.apps_list_view); addSpringView(R.id.all_apps_tabs_view_pager); mMultiValueAlpha = new MultiValueAlpha(this, ALPHA_CHANNEL_COUNT); } public AllAppsStore getAppsStore() { return mAllAppsStore; } public AlphaProperty getAlphaProperty(int index) { return mMultiValueAlpha.getProperty(index); } @Override protected void setDampedScrollShift(float shift) { // Bound the shift amount to avoid content from drawing on top (Y-val) of the QSB. Loading src/com/android/launcher3/allapps/AllAppsTransitionController.java +4 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.launcher3.anim.AnimationSuccessListener; import com.android.launcher3.anim.AnimatorSetBuilder; import com.android.launcher3.anim.SpringObjectAnimator; import com.android.launcher3.anim.PropertySetter; import com.android.launcher3.util.MultiValueAlpha; import com.android.launcher3.util.Themes; import com.android.launcher3.views.ScrimView; Loading Loading @@ -64,6 +65,8 @@ public class AllAppsTransitionController implements StateHandler, OnDeviceProfil } }; private static final int APPS_VIEW_ALPHA_CHANNEL_INDEX = 0; private AllAppsContainerView mAppsView; private ScrimView mScrimView; Loading Loading @@ -102,7 +105,7 @@ public class AllAppsTransitionController implements StateHandler, OnDeviceProfil setScrollRangeDelta(mScrollRangeDelta); if (mIsVerticalLayout) { mAppsView.setAlpha(1); mAppsView.getAlphaProperty(APPS_VIEW_ALPHA_CHANNEL_INDEX).setValue(1); mLauncher.getHotseat().setTranslationY(0); mLauncher.getWorkspace().getPageIndicator().setTranslationY(0); } Loading src/com/android/launcher3/views/ScrimView.java +10 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,8 @@ import com.android.launcher3.uioverrides.WallpaperColorInfo; import com.android.launcher3.uioverrides.WallpaperColorInfo.OnChangeListener; import com.android.launcher3.userevent.nano.LauncherLogProto.Action; import com.android.launcher3.userevent.nano.LauncherLogProto.ControlType; import com.android.launcher3.util.MultiValueAlpha; import com.android.launcher3.util.MultiValueAlpha.AlphaProperty; import com.android.launcher3.util.Themes; import java.util.List; Loading Loading @@ -92,6 +94,7 @@ public class ScrimView extends View implements Insettable, OnChangeListener, private static final int WALLPAPERS = R.string.wallpaper_button_text; private static final int WIDGETS = R.string.widget_button_text; private static final int SETTINGS = R.string.settings_button_text; private static final int ALPHA_CHANNEL_COUNT = 1; private final Rect mTempRect = new Rect(); private final int[] mTempPos = new int[2]; Loading @@ -115,6 +118,8 @@ public class ScrimView extends View implements Insettable, OnChangeListener, private final Rect mDragHandleBounds; private final RectF mHitRect = new RectF(); private final MultiValueAlpha mMultiValueAlpha; private final AccessibilityHelper mAccessibilityHelper; @Nullable protected Drawable mDragHandle; Loading @@ -138,6 +143,11 @@ public class ScrimView extends View implements Insettable, OnChangeListener, mAM = (AccessibilityManager) context.getSystemService(ACCESSIBILITY_SERVICE); setFocusable(false); mMultiValueAlpha = new MultiValueAlpha(this, ALPHA_CHANNEL_COUNT); } public AlphaProperty getAlphaProperty(int index) { return mMultiValueAlpha.getProperty(index); } @NonNull Loading Loading
quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityControllerHelper.java +1 −1 Original line number Diff line number Diff line Loading @@ -97,7 +97,7 @@ public final class LauncherActivityControllerHelper implements ActivityControlHe public void onAssistantVisibilityChanged(float visibility) { Launcher launcher = getCreatedActivity(); if (launcher != null) { launcher.setQuickSearchBarAlpha(1f - visibility); launcher.onAssistantVisibilityChanged(visibility); } } Loading
src/com/android/launcher3/Launcher.java +47 −9 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ import static com.android.launcher3.AbstractFloatingView.TYPE_SNACKBAR; import static com.android.launcher3.LauncherAnimUtils.SPRING_LOADED_EXIT_DELAY; import static com.android.launcher3.LauncherState.ALL_APPS; import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.launcher3.LauncherState.OVERVIEW_PEEK; import static com.android.launcher3.dragndrop.DragLayer.ALPHA_INDEX_LAUNCHER_LOAD; import static com.android.launcher3.logging.LoggerUtils.newContainerTarget; import static com.android.launcher3.logging.LoggerUtils.newTarget; Loading Loading @@ -129,6 +131,7 @@ import com.android.launcher3.util.UiThreadHelper; import com.android.launcher3.util.ViewOnDrawExecutor; import com.android.launcher3.views.ActivityContext; import com.android.launcher3.views.OptionsPopupView; import com.android.launcher3.views.ScrimView; import com.android.launcher3.widget.LauncherAppWidgetHostView; import com.android.launcher3.widget.PendingAddShortcutInfo; import com.android.launcher3.widget.PendingAddWidgetInfo; Loading @@ -148,6 +151,7 @@ import java.util.HashSet; import java.util.List; import java.util.function.Predicate; import androidx.annotation.IdRes; import androidx.annotation.Nullable; /** Loading Loading @@ -203,6 +207,9 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, private static final int NEW_APPS_ANIMATION_INACTIVE_TIMEOUT_SECONDS = 5; @Thunk static final int NEW_APPS_ANIMATION_DELAY = 500; private static final int APPS_VIEW_ALPHA_CHANNEL_INDEX = 1; private static final int SCRIM_VIEW_ALPHA_CHANNEL_INDEX = 0; private LauncherAppTransitionManager mAppTransitionManager; private Configuration mOldConfig; Loading @@ -224,6 +231,9 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, @Thunk AllAppsContainerView mAppsView; AllAppsTransitionController mAllAppsController; // Scrim view for the all apps and overview state. @Thunk ScrimView mScrimView; // UI and state for the overview panel private View mOverviewPanel; Loading Loading @@ -262,6 +272,8 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, final Handler mHandler = new Handler(); private final Runnable mHandleDeferredResume = this::handleDeferredResume; private float mCurrentAssistantVisibility = 0f; @Override protected void onCreate(Bundle savedInstanceState) { RaceConditionTracker.onEvent(ON_CREATE_EVT, ENTER); Loading Loading @@ -362,6 +374,24 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, TraceHelper.endSection("Launcher-onCreate"); RaceConditionTracker.onEvent(ON_CREATE_EVT, EXIT); mStateManager.addStateListener(new LauncherStateManager.StateListener() { @Override public void onStateTransitionStart(LauncherState toState) {} @Override public void onStateTransitionComplete(LauncherState finalState) { float alpha = 1f - mCurrentAssistantVisibility; if (finalState == NORMAL) { mAppsView.getAlphaProperty(APPS_VIEW_ALPHA_CHANNEL_INDEX).setValue(alpha); } else if (finalState == OVERVIEW || finalState == OVERVIEW_PEEK) { mAppsView.getAlphaProperty(APPS_VIEW_ALPHA_CHANNEL_INDEX).setValue(alpha); mScrimView.getAlphaProperty(SCRIM_VIEW_ALPHA_CHANNEL_INDEX).setValue(alpha); } else { mAppsView.getAlphaProperty(APPS_VIEW_ALPHA_CHANNEL_INDEX).setValue(1f); mScrimView.getAlphaProperty(SCRIM_VIEW_ALPHA_CHANNEL_INDEX).setValue(1f); } } }); } @Override Loading Loading @@ -408,13 +438,6 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, onIdpChanged(idp); } public void setQuickSearchBarAlpha(float alpha) { View qsbAllApps = findViewById(R.id.search_container_all_apps); if (qsbAllApps != null) { qsbAllApps.setAlpha(alpha); } } private void onIdpChanged(InvariantDeviceProfile idp) { mUserEventDispatcher = null; Loading @@ -427,6 +450,18 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, rebindModel(); } public void onAssistantVisibilityChanged(float visibility) { mCurrentAssistantVisibility = visibility; float alpha = 1f - visibility; LauncherState state = mStateManager.getState(); if (state == NORMAL) { mAppsView.getAlphaProperty(APPS_VIEW_ALPHA_CHANNEL_INDEX).setValue(alpha); } else if (state == OVERVIEW || state == OVERVIEW_PEEK) { mAppsView.getAlphaProperty(APPS_VIEW_ALPHA_CHANNEL_INDEX).setValue(alpha); mScrimView.getAlphaProperty(SCRIM_VIEW_ALPHA_CHANNEL_INDEX).setValue(alpha); } } private void initDeviceProfile(InvariantDeviceProfile idp) { // Load configuration-specific DeviceProfile mDeviceProfile = idp.getDeviceProfile(this); Loading Loading @@ -969,6 +1004,9 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, // Setup Apps mAppsView = findViewById(R.id.apps_view); // Setup Scrim mScrimView = findViewById(R.id.scrim_view); // Setup the drag controller (drop targets have to be added in reverse order in priority) mDragController.setMoveTarget(mWorkspace); mDropTargetBar.setup(mDragController); Loading Loading @@ -1640,7 +1678,7 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, public int getCurrentState() { if(mStateManager.getState() == LauncherState.ALL_APPS) { return StatsLogUtils.LAUNCHER_STATE_ALLAPPS; } else if (mStateManager.getState() == LauncherState.OVERVIEW) { } else if (mStateManager.getState() == OVERVIEW) { return StatsLogUtils.LAUNCHER_STATE_OVERVIEW; } return StatsLogUtils.LAUNCHER_STATE_HOME; Loading @@ -1658,7 +1696,7 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, LauncherState state = mStateManager.getState(); if (state == LauncherState.ALL_APPS) { event.srcTarget[2].containerType = ContainerType.ALLAPPS; } else if (state == LauncherState.OVERVIEW) { } else if (state == OVERVIEW) { event.srcTarget[2].containerType = ContainerType.TASKSWITCHER; } } Loading
src/com/android/launcher3/allapps/AllAppsContainerView.java +11 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,8 @@ import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.keyboard.FocusedItemDecorator; import com.android.launcher3.userevent.nano.LauncherLogProto.Target; import com.android.launcher3.util.ItemInfoMatcher; import com.android.launcher3.util.MultiValueAlpha; import com.android.launcher3.util.MultiValueAlpha.AlphaProperty; import com.android.launcher3.util.Themes; import com.android.launcher3.views.BottomUserEducationView; import com.android.launcher3.views.RecyclerViewFastScroller; Loading @@ -70,6 +72,7 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo private static final float FLING_VELOCITY_MULTIPLIER = 135f; // Starts the springs after at least 55% of the animation has passed. private static final float FLING_ANIMATION_THRESHOLD = 0.55f; private static final int ALPHA_CHANNEL_COUNT = 2; private final Launcher mLauncher; private final AdapterHolder[] mAH; Loading @@ -93,6 +96,8 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo private RecyclerViewFastScroller mTouchHandler; private final Point mFastScrollerOffset = new Point(); private final MultiValueAlpha mMultiValueAlpha; public AllAppsContainerView(Context context) { this(context, null); } Loading Loading @@ -122,12 +127,18 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo addSpringView(R.id.all_apps_header); addSpringView(R.id.apps_list_view); addSpringView(R.id.all_apps_tabs_view_pager); mMultiValueAlpha = new MultiValueAlpha(this, ALPHA_CHANNEL_COUNT); } public AllAppsStore getAppsStore() { return mAllAppsStore; } public AlphaProperty getAlphaProperty(int index) { return mMultiValueAlpha.getProperty(index); } @Override protected void setDampedScrollShift(float shift) { // Bound the shift amount to avoid content from drawing on top (Y-val) of the QSB. Loading
src/com/android/launcher3/allapps/AllAppsTransitionController.java +4 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.launcher3.anim.AnimationSuccessListener; import com.android.launcher3.anim.AnimatorSetBuilder; import com.android.launcher3.anim.SpringObjectAnimator; import com.android.launcher3.anim.PropertySetter; import com.android.launcher3.util.MultiValueAlpha; import com.android.launcher3.util.Themes; import com.android.launcher3.views.ScrimView; Loading Loading @@ -64,6 +65,8 @@ public class AllAppsTransitionController implements StateHandler, OnDeviceProfil } }; private static final int APPS_VIEW_ALPHA_CHANNEL_INDEX = 0; private AllAppsContainerView mAppsView; private ScrimView mScrimView; Loading Loading @@ -102,7 +105,7 @@ public class AllAppsTransitionController implements StateHandler, OnDeviceProfil setScrollRangeDelta(mScrollRangeDelta); if (mIsVerticalLayout) { mAppsView.setAlpha(1); mAppsView.getAlphaProperty(APPS_VIEW_ALPHA_CHANNEL_INDEX).setValue(1); mLauncher.getHotseat().setTranslationY(0); mLauncher.getWorkspace().getPageIndicator().setTranslationY(0); } Loading
src/com/android/launcher3/views/ScrimView.java +10 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,8 @@ import com.android.launcher3.uioverrides.WallpaperColorInfo; import com.android.launcher3.uioverrides.WallpaperColorInfo.OnChangeListener; import com.android.launcher3.userevent.nano.LauncherLogProto.Action; import com.android.launcher3.userevent.nano.LauncherLogProto.ControlType; import com.android.launcher3.util.MultiValueAlpha; import com.android.launcher3.util.MultiValueAlpha.AlphaProperty; import com.android.launcher3.util.Themes; import java.util.List; Loading Loading @@ -92,6 +94,7 @@ public class ScrimView extends View implements Insettable, OnChangeListener, private static final int WALLPAPERS = R.string.wallpaper_button_text; private static final int WIDGETS = R.string.widget_button_text; private static final int SETTINGS = R.string.settings_button_text; private static final int ALPHA_CHANNEL_COUNT = 1; private final Rect mTempRect = new Rect(); private final int[] mTempPos = new int[2]; Loading @@ -115,6 +118,8 @@ public class ScrimView extends View implements Insettable, OnChangeListener, private final Rect mDragHandleBounds; private final RectF mHitRect = new RectF(); private final MultiValueAlpha mMultiValueAlpha; private final AccessibilityHelper mAccessibilityHelper; @Nullable protected Drawable mDragHandle; Loading @@ -138,6 +143,11 @@ public class ScrimView extends View implements Insettable, OnChangeListener, mAM = (AccessibilityManager) context.getSystemService(ACCESSIBILITY_SERVICE); setFocusable(false); mMultiValueAlpha = new MultiValueAlpha(this, ALPHA_CHANNEL_COUNT); } public AlphaProperty getAlphaProperty(int index) { return mMultiValueAlpha.getProperty(index); } @NonNull Loading