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:
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user