package cn.walcl.ulauncher; import java.util.List; import cn.walcl.ulauncher.settings.LauncherSettings; import android.content.ContentValues; import android.content.Intent; import android.graphics.Bitmap; import android.view.View; public abstract class IconItemInfo extends ItemInfo{ /** * The application name. */ protected CharSequence mTitle; boolean mTitleInAppsDb = false; /** * The application icon. */ protected Bitmap mIcon = null; boolean mIconInAppsDb = false; IconItemInfo() { } public IconItemInfo(IconItemInfo info) { super(info); mIcon = info.mIcon; mTitle = info.mTitle; } public void setIcon(Bitmap b) { mIcon = b; } public Bitmap getIcon(IconCache iconCache) { if (mIcon == null) { return iconCache.getDefaultIcon(); } return mIcon; } public boolean usesDefaultIcon() { return mIcon == null; } public CharSequence getTitle(IconCache mIconCache) { if (mTitle == null) return ""; return mTitle; } public void setTitle(CharSequence value) { mTitle = value; } @Override void onAddToDatabase(ContentValues values) { super.onAddToDatabase(values); String titleStr = mTitle != null ? mTitle.toString() : null; values.put(LauncherSettings.BaseLauncherColumns.TITLE, titleStr); if (mIcon == null) values.put(LauncherSettings.BaseLauncherColumns.ICON_TYPE, LauncherSettings.BaseLauncherColumns.ICON_TYPE_RESOURCE); else { values.put(LauncherSettings.BaseLauncherColumns.ICON_TYPE, LauncherSettings.BaseLauncherColumns.ICON_TYPE_BITMAP); writeBitmap(values, mIcon); } } private static final int ACTION_EDIT = 100; @Override public void executeAction(EditAction action, View view, Launcher launcher) { if (action.getId() == ACTION_EDIT) { Intent edit = new Intent(Intent.ACTION_EDIT); edit.setClass(launcher, CustomShirtcutActivity.class); long itemId = id; if ( container == ItemInfo.NO_ID ) { edit.putExtra(CustomShirtcutActivity.EXTRA_DRAWERINFO, true); } edit.putExtra(CustomShirtcutActivity.EXTRA_APPLICATIONINFO, itemId); launcher.startActivityForResult(edit, Launcher.REQUEST_EDIT_SHIRTCUT); } else { super.executeAction(action, view, launcher); } } @Override public List<EditAction> getAvailableActions(View view, Launcher launcher) { List<EditAction> result = super.getAvailableActions(view, launcher); result.add(new EditAction(ACTION_EDIT, android.R.drawable.ic_menu_edit, R.string.menu_edit)); return result; } public void setTitleInAppsDb(boolean inAppsDb) { this.mTitleInAppsDb = inAppsDb; } public void setIconInAppsDb(boolean inAppsDb) { this.mIconInAppsDb = inAppsDb; } }