Various icon size changes

1) Setting different icon and text size for workspace and all apps
2) Setting padding during BubbleTextView inflation

Change-Id: I59da6986b0d98e8e2aa6065743bb799a6bf06a37
This commit is contained in:
Sunny Goyal
2015-05-11 16:30:44 -07:00
parent 1d7a55668e
commit dfaccf64bd
10 changed files with 48 additions and 135 deletions
+24 -29
View File
@@ -52,13 +52,14 @@ public class BubbleTextView extends TextView {
private static final int SHADOW_SMALL_COLOUR = 0xCC000000;
static final float PADDING_V = 3.0f;
private static final int DISPLAY_WORKSPACE = 0;
private static final int DISPLAY_ALL_APPS = 1;
private Drawable mIcon;
private final Drawable mBackground;
private final CheckLongPressHelper mLongPressHelper;
private final HolographicOutlineHelper mOutlineHelper;
// TODO: Remove custom background handling code, as no instance of BubbleTextView use any
// background.
private boolean mBackgroundSizeChanged;
private Bitmap mPressedBackground;
@@ -69,8 +70,6 @@ public class BubbleTextView extends TextView {
private final boolean mCustomShadowsEnabled;
private final boolean mLayoutHorizontal;
private final int mIconSize;
private final int mIconPaddingSize;
private final int mTextSize;
private int mTextColor;
private boolean mStayPressed;
@@ -95,14 +94,21 @@ public class BubbleTextView extends TextView {
R.styleable.BubbleTextView, defStyle, 0);
mCustomShadowsEnabled = a.getBoolean(R.styleable.BubbleTextView_customShadows, true);
mLayoutHorizontal = a.getBoolean(R.styleable.BubbleTextView_layoutHorizontal, false);
mIconSize = a.getDimensionPixelSize(R.styleable.BubbleTextView_iconSizeOverride,
grid.allAppsIconSizePx);
mIconPaddingSize = a.getDimensionPixelSize(R.styleable.BubbleTextView_iconPaddingOverride,
grid.iconDrawablePaddingPx);
mTextSize = a.getDimensionPixelSize(R.styleable.BubbleTextView_textSizeOverride,
grid.allAppsIconTextSizePx);
mDeferShadowGenerationOnTouch =
a.getBoolean(R.styleable.BubbleTextView_deferShadowGeneration, false);
int display = a.getInteger(R.styleable.BubbleTextView_iconDisplay, DISPLAY_WORKSPACE);
int defaultIconSize = grid.iconSizePx;
if (display == DISPLAY_WORKSPACE) {
setTextSize(grid.iconTextSizePx);
} else if (display == DISPLAY_ALL_APPS) {
setTextSize(grid.allAppsIconTextSizePx);
defaultIconSize = grid.allAppsIconSizePx;
}
mIconSize = a.getDimensionPixelSize(R.styleable.BubbleTextView_iconSizeOverride,
defaultIconSize);
a.recycle();
if (mCustomShadowsEnabled) {
@@ -128,26 +134,18 @@ public class BubbleTextView extends TextView {
setAccessibilityDelegate(LauncherAppState.getInstance().getAccessibilityDelegate());
}
public void onFinishInflate() {
super.onFinishInflate();
// Ensure we are using the right text size
setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSize);
public void applyFromShortcutInfo(ShortcutInfo info, IconCache iconCache) {
applyFromShortcutInfo(info, iconCache, false);
}
public void applyFromShortcutInfo(ShortcutInfo info, IconCache iconCache,
boolean setDefaultPadding) {
applyFromShortcutInfo(info, iconCache, setDefaultPadding, false);
}
public void applyFromShortcutInfo(ShortcutInfo info, IconCache iconCache,
boolean setDefaultPadding, boolean promiseStateChanged) {
boolean promiseStateChanged) {
Bitmap b = info.getIcon(iconCache);
FastBitmapDrawable iconDrawable = Utilities.createIconDrawable(b);
iconDrawable.setGhostModeEnabled(info.isDisabled != 0);
setIcon(iconDrawable, mIconSize, setDefaultPadding ? mIconPaddingSize : -1);
setIcon(iconDrawable, mIconSize);
if (info.contentDescription != null) {
setContentDescription(info.contentDescription);
}
@@ -160,7 +158,7 @@ public class BubbleTextView extends TextView {
}
public void applyFromApplicationInfo(AppInfo info) {
setIcon(Utilities.createIconDrawable(info.iconBitmap), mIconSize, mIconPaddingSize);
setIcon(Utilities.createIconDrawable(info.iconBitmap), mIconSize);
setText(info.title);
if (info.contentDescription != null) {
setContentDescription(info.contentDescription);
@@ -409,7 +407,7 @@ public class BubbleTextView extends TextView {
preloadDrawable = (PreloadIconDrawable) mIcon;
} else {
preloadDrawable = new PreloadIconDrawable(mIcon, getPreloaderTheme());
setIcon(preloadDrawable, mIconSize, -1);
setIcon(preloadDrawable, mIconSize);
}
preloadDrawable.setLevel(progressLevel);
@@ -437,7 +435,7 @@ public class BubbleTextView extends TextView {
/**
* Sets the icon for this view based on the layout direction.
*/
private Drawable setIcon(Drawable icon, int iconSize, int drawablePadding) {
private Drawable setIcon(Drawable icon, int iconSize) {
mIcon = icon;
if (iconSize != -1) {
mIcon.setBounds(0, 0, iconSize, iconSize);
@@ -447,9 +445,6 @@ public class BubbleTextView extends TextView {
} else {
setCompoundDrawablesRelative(null, mIcon, null, null);
}
if (drawablePadding != -1) {
setCompoundDrawablePadding(drawablePadding);
}
return icon;
}
@@ -463,7 +458,7 @@ public class BubbleTextView extends TextView {
applyFromApplicationInfo((AppInfo) info);
} else if (info instanceof ShortcutInfo) {
applyFromShortcutInfo((ShortcutInfo) info,
LauncherAppState.getInstance().getIconCache(), false);
LauncherAppState.getInstance().getIconCache());
}
}
}
+1 -2
View File
@@ -1076,8 +1076,7 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
// Move the item from the folder to the workspace, in the position of the folder
if (getItemCount() == 1) {
ShortcutInfo finalItem = mInfo.contents.get(0);
child = mLauncher.createShortcut(R.layout.application, cellLayout,
finalItem);
child = mLauncher.createShortcut(cellLayout, finalItem);
LauncherModel.addOrMoveItemInDatabase(mLauncher, finalItem, mInfo.container,
mInfo.screenId, mInfo.cellX, mInfo.cellY);
}
@@ -206,7 +206,7 @@ public class FolderPagedView extends PagedView {
public View createNewView(ShortcutInfo item) {
final BubbleTextView textView = (BubbleTextView) mInflater.inflate(
R.layout.folder_application, null, false);
textView.applyFromShortcutInfo(item, mIconCache, false);
textView.applyFromShortcutInfo(item, mIconCache);
textView.setOnClickListener(mFolder);
textView.setOnLongClickListener(mFolder);
textView.setOnFocusChangeListener(mFocusIndicatorView);
+13 -13
View File
@@ -347,6 +347,8 @@ public class Launcher extends Activity
private Canvas mFolderIconCanvas;
private Rect mRectForFolderAnimation = new Rect();
private DeviceProfile mDeviceProfile;
private BubbleTextView mWaitingForResume;
protected static HashMap<String, CustomAppWidget> sCustomAppWidgets =
@@ -423,7 +425,7 @@ public class Launcher extends Activity
LauncherAppState.getLauncherProvider().setLauncherProviderChangeListener(this);
// Lazy-initialize the dynamic grid
DeviceProfile grid = app.initDynamicGrid(this);
mDeviceProfile = app.initDynamicGrid(this);
// the LauncherApplication should call this, but in case of Instrumentation it might not be present yet
mSharedPrefs = getSharedPreferences(LauncherAppState.getSharedPreferencesKey(),
@@ -431,7 +433,7 @@ public class Launcher extends Activity
mIsSafeModeEnabled = getPackageManager().isSafeMode();
mModel = app.setLauncher(this);
mIconCache = app.getIconCache();
mIconCache.flushInvalidIcons(grid);
mIconCache.flushInvalidIcons(mDeviceProfile);
mDragController = new DragController(this);
mInflater = getLayoutInflater();
mStateTransitionAnimation = new LauncherStateTransitionAnimation(this, this);
@@ -457,7 +459,7 @@ public class Launcher extends Activity
setContentView(R.layout.launcher);
setupViews();
grid.layout(this);
mDeviceProfile.layout(this);
registerContentObservers();
@@ -1511,22 +1513,22 @@ public class Launcher extends Activity
* @return A View inflated from R.layout.application.
*/
View createShortcut(ShortcutInfo info) {
return createShortcut(R.layout.application,
(ViewGroup) mWorkspace.getChildAt(mWorkspace.getCurrentPage()), info);
return createShortcut((ViewGroup) mWorkspace.getChildAt(mWorkspace.getCurrentPage()), info);
}
/**
* Creates a view representing a shortcut inflated from the specified resource.
*
* @param layoutResId The id of the XML layout used to create the shortcut.
* @param parent The group the shortcut belongs to.
* @param info The data structure describing the shortcut.
*
* @return A View inflated from layoutResId.
*/
public View createShortcut(int layoutResId, ViewGroup parent, ShortcutInfo info) {
BubbleTextView favorite = (BubbleTextView) mInflater.inflate(layoutResId, parent, false);
favorite.applyFromShortcutInfo(info, mIconCache, true);
public View createShortcut(ViewGroup parent, ShortcutInfo info) {
BubbleTextView favorite = (BubbleTextView) mInflater.inflate(R.layout.application,
parent, false);
favorite.applyFromShortcutInfo(info, mIconCache);
favorite.setCompoundDrawablePadding(mDeviceProfile.iconDrawablePaddingPx);
favorite.setOnClickListener(this);
favorite.setOnFocusChangeListener(mFocusHandler);
return favorite;
@@ -4157,13 +4159,11 @@ public class Launcher extends Activity
}
public boolean useVerticalBarLayout() {
return LauncherAppState.getInstance().getDynamicGrid().
getDeviceProfile().isVerticalBarLayout();
return mDeviceProfile.isVerticalBarLayout();
}
protected Rect getSearchBarBounds() {
return LauncherAppState.getInstance().getDynamicGrid().
getDeviceProfile().getSearchBarBounds();
return mDeviceProfile.getSearchBarBounds();
}
public void bindSearchablesChanged() {
+3 -4
View File
@@ -3558,8 +3558,7 @@ public class Workspace extends SmoothPagedView
// Came from all apps -- make a copy
info = ((AppInfo) info).makeShortcut();
}
view = mLauncher.createShortcut(R.layout.application, cellLayout,
(ShortcutInfo) info);
view = mLauncher.createShortcut(cellLayout, (ShortcutInfo) info);
break;
case LauncherSettings.Favorites.ITEM_TYPE_FOLDER:
view = FolderIcon.fromXml(R.layout.folder_icon, mLauncher, cellLayout,
@@ -4185,7 +4184,7 @@ public class Workspace extends SmoothPagedView
&& packageNames.contains(cn.getPackageName())) {
shortcutInfo.isDisabled |= reason;
BubbleTextView shortcut = (BubbleTextView) v;
shortcut.applyFromShortcutInfo(shortcutInfo, mIconCache, false);
shortcut.applyFromShortcutInfo(shortcutInfo, mIconCache);
if (parent != null) {
parent.invalidate();
@@ -4371,7 +4370,7 @@ public class Workspace extends SmoothPagedView
BubbleTextView shortcut = (BubbleTextView) v;
boolean oldPromiseState = getTextViewIcon(shortcut)
instanceof PreloadIconDrawable;
shortcut.applyFromShortcutInfo(si, mIconCache, false,
shortcut.applyFromShortcutInfo(si, mIconCache,
si.isPromise() != oldPromiseState);
if (parent != null) {