Disabled app icon Visuals

Bug: 154855908
Test: Manual
Change-Id: I58c75ed51426ceb4a09b608ee77636c803955025
This commit is contained in:
Samuel Fufa 2020-06-05 12:17:16 -07:00
parent 488044fc2e
commit 61bc63a6a4
8 changed files with 47 additions and 12 deletions

View File

@ -31,6 +31,7 @@ import android.os.Build;
import android.util.AttributeSet;
import android.util.IntProperty;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.animation.Interpolator;
import android.widget.LinearLayout;
@ -241,8 +242,9 @@ public class PredictionRowView extends LinearLayout implements
while (getChildCount() > mNumPredictedAppsPerRow) {
removeViewAt(0);
}
LayoutInflater inflater = mLauncher.getAppsView().getLayoutInflater();
while (getChildCount() < mNumPredictedAppsPerRow) {
BubbleTextView icon = (BubbleTextView) mLauncher.getLayoutInflater().inflate(
BubbleTextView icon = (BubbleTextView) inflater.inflate(
R.layout.all_apps_icon, this, false);
icon.setOnClickListener(PREDICTION_CLICK_LISTENER);
icon.setOnLongClickListener(ItemLongClickListener.INSTANCE_ALL_APPS);

View File

@ -19,6 +19,7 @@
<com.android.launcher3.allapps.LauncherAllAppsContainerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/apps_view"
android:theme="?attr/allAppsTheme"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="true"

View File

@ -22,6 +22,7 @@
<attr name="allAppsScrimColor" format="color" />
<attr name="allAppsInterimScrimAlpha" format="integer" />
<attr name="allAppsNavBarScrimColor" format="color" />
<attr name="allAppsTheme" format="reference" />
<attr name="popupColorPrimary" format="color" />
<attr name="popupColorSecondary" format="color" />
<attr name="popupColorTertiary" format="color" />
@ -44,6 +45,7 @@
<attr name="folderTextColor" format="color" />
<attr name="folderHintColor" format="color" />
<attr name="workProfileOverlayTextColor" format="color" />
<attr name="disabledIconAlpha" format="float" />
<!-- BubbleTextView specific attributes. -->
<declare-styleable name="BubbleTextView">

View File

@ -34,6 +34,7 @@
<item name="allAppsScrimColor">#FFFFFFFF</item>
<item name="allAppsInterimScrimAlpha">46</item>
<item name="allAppsNavBarScrimColor">#66FFFFFF</item>
<item name="allAppsTheme">@style/AllAppsTheme</item>
<item name="popupColorPrimary">#FFF</item>
<item name="popupColorSecondary">#F1F3F4</item>
<item name="popupColorTertiary">#E0E0E0</item> <!-- Gray 300 -->
@ -54,6 +55,7 @@
<item name="iconOnlyShortcutColor">?android:attr/textColorSecondary</item>
<item name="workProfileOverlayTextColor">#FF212121</item>
<item name="eduHalfSheetBGColor">?android:attr/colorAccent</item>
<item name="disabledIconAlpha">.36</item>
<item name="android:windowTranslucentStatus">false</item>
<item name="android:windowTranslucentNavigation">false</item>
@ -67,6 +69,8 @@
<style name="LauncherTheme.DarkMainColor" parent="@style/LauncherTheme">
<item name="folderFillColor">#FF3C4043</item> <!-- 100% GM2 800 -->
<item name="folderTextColor">?attr/workspaceTextColor</item>
<item name="disabledIconAlpha">.24</item>
</style>
<style name="LauncherTheme.DarkText" parent="@style/LauncherTheme">
@ -93,6 +97,7 @@
<item name="allAppsScrimColor">#FF000000</item>
<item name="allAppsInterimScrimAlpha">102</item>
<item name="allAppsNavBarScrimColor">#80000000</item>
<item name="allAppsTheme">@style/AllAppsTheme.Dark</item>
<item name="popupColorPrimary">#3C4043</item> <!-- Gray 800 -->
<item name="popupColorSecondary">#202124</item>
<item name="popupColorTertiary">#757575</item> <!-- Gray 600 -->
@ -112,6 +117,7 @@
<style name="LauncherTheme.Dark.DarkMainColor" parent="@style/LauncherTheme.Dark">
<item name="folderFillColor">#FF3C4043</item> <!-- 100% GM2 800 -->
<item name="folderTextColor">@android:color/white</item>
<item name="disabledIconAlpha">.24</item>
</style>
<style name="LauncherTheme.Dark.DarkText" parent="@style/LauncherTheme.Dark">
@ -180,6 +186,14 @@
<item name="android:importantForAccessibility">no</item>
</style>
<style name="AllAppsTheme">
<item name="disabledIconAlpha">.24</item>
</style>
<style name="AllAppsTheme.Dark">
<item name="disabledIconAlpha">.28</item>
</style>
<!-- Base theme for BubbleTextView and sub classes -->
<style name="BaseIcon" parent="@android:style/TextAppearance.DeviceDefault">
<item name="android:layout_width">match_parent</item>

View File

@ -36,6 +36,7 @@ import android.util.Property;
import com.android.launcher3.graphics.PlaceHolderIconDrawable;
import com.android.launcher3.icons.BitmapInfo;
import com.android.launcher3.model.data.ItemInfoWithIcon;
import com.android.launcher3.util.Themes;
public class FastBitmapDrawable extends Drawable {
@ -44,7 +45,6 @@ public class FastBitmapDrawable extends Drawable {
private static final float DISABLED_DESATURATION = 1f;
private static final float DISABLED_BRIGHTNESS = 0.5f;
private static final float DISABLED_ALPHA = 0.54f;
public static final int CLICK_FEEDBACK_DURATION = 200;
@ -56,6 +56,7 @@ public class FastBitmapDrawable extends Drawable {
private boolean mIsPressed;
private boolean mIsDisabled;
private float mDisabledAlpha = 1f;
// Animator and properties for the fast bitmap drawable's scale
private static final Property<FastBitmapDrawable, Float> SCALE
@ -253,7 +254,7 @@ public class FastBitmapDrawable extends Drawable {
mat[4] = brightnessI;
mat[9] = brightnessI;
mat[14] = brightnessI;
mat[18] = DISABLED_ALPHA;
mat[18] = mDisabledAlpha;
tempFilterMatrix.preConcat(tempBrightnessMatrix);
sDisabledFColorFilter = new ColorMatrixColorFilter(tempFilterMatrix);
}
@ -319,12 +320,15 @@ public class FastBitmapDrawable extends Drawable {
* Creates a drawable for the provided BitmapInfo
*/
public static FastBitmapDrawable newIcon(Context context, BitmapInfo info) {
final FastBitmapDrawable drawable;
if (info instanceof Factory) {
return ((Factory) info).newDrawable();
drawable = ((Factory) info).newDrawable();
} else if (info.isLowRes()) {
return new PlaceHolderIconDrawable(info, context);
drawable = new PlaceHolderIconDrawable(info, context);
} else {
return new FastBitmapDrawable(info);
drawable = new FastBitmapDrawable(info);
}
drawable.mDisabledAlpha = Themes.getFloat(context, R.attr.disabledIconAlpha, 1f);
return drawable;
}
}

View File

@ -277,6 +277,10 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo
}
}
public LayoutInflater getLayoutInflater() {
return LayoutInflater.from(getContext());
}
/**
* Resets the state of AllApps.
*/
@ -444,7 +448,7 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo
int index = indexOfChild(oldView);
removeView(oldView);
int layout = showTabs ? R.layout.all_apps_tabs : R.layout.all_apps_rv_layout;
View newView = LayoutInflater.from(getContext()).inflate(layout, this, false);
View newView = getLayoutInflater().inflate(layout, this, false);
addView(newView, index);
if (showTabs) {
mViewPager = (AllAppsPagedView) newView;
@ -617,7 +621,7 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo
AdapterHolder(boolean isWork) {
mIsWork = isWork;
appsList = new AlphabeticalAppsList(mLauncher, mAllAppsStore, isWork);
adapter = new AllAppsGridAdapter(mLauncher, appsList);
adapter = new AllAppsGridAdapter(mLauncher, getLayoutInflater(), appsList);
appsList.setAdapter(adapter);
layoutManager = adapter.getLayoutManager();
}

View File

@ -188,7 +188,8 @@ public class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter.
// The intent to send off to the market app, updated each time the search query changes.
private Intent mMarketSearchIntent;
public AllAppsGridAdapter(BaseDraggingActivity launcher, AlphabeticalAppsList apps) {
public AllAppsGridAdapter(BaseDraggingActivity launcher, LayoutInflater inflater,
AlphabeticalAppsList apps) {
Resources res = launcher.getResources();
mLauncher = launcher;
mApps = apps;
@ -196,7 +197,7 @@ public class AllAppsGridAdapter extends RecyclerView.Adapter<AllAppsGridAdapter.
mGridSizer = new GridSpanSizer();
mGridLayoutMgr = new AppsGridLayoutManager(launcher);
mGridLayoutMgr.setSpanSizeLookup(mGridSizer);
mLayoutInflater = LayoutInflater.from(launcher);
mLayoutInflater = inflater;
mOnIconClickListener = launcher.getItemOnClickListener();

View File

@ -113,10 +113,17 @@ public class Themes {
* Returns the alpha corresponding to the theme attribute {@param attr}, in the range [0, 255].
*/
public static int getAlpha(Context context, int attr) {
return (int) (255 * getFloat(context, attr, 0) + 0.5f);
}
/**
* Returns the alpha corresponding to the theme attribute {@param attr}
*/
public static float getFloat(Context context, int attr, float defValue) {
TypedArray ta = context.obtainStyledAttributes(new int[]{attr});
float alpha = ta.getFloat(0, 0);
float value = ta.getFloat(0, defValue);
ta.recycle();
return (int) (255 * alpha + 0.5f);
return value;
}
/**