Merge "Allow DISABLE_ALL_APPS to be set using a system property." into jb-ub-now-kermit
This commit is contained in:
committed by
Android (Google) Code Review
commit
24fa33f8c7
@@ -94,4 +94,7 @@
|
||||
filter the activities shown in the launcher. Can be empty. -->
|
||||
<string name="app_filter_class" translatable="false"></string>
|
||||
|
||||
<!-- Name of a subclass of com.android.launcher3.BuildInfo used to
|
||||
get build information. Can be empty. -->
|
||||
<string name="build_info_class" translatable="false"></string>
|
||||
</resources>
|
||||
|
||||
@@ -199,8 +199,6 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
|
||||
private AccelerateInterpolator mAlphaInterpolator = new AccelerateInterpolator(0.9f);
|
||||
private DecelerateInterpolator mLeftScreenAlphaInterpolator = new DecelerateInterpolator(4);
|
||||
|
||||
public static boolean DISABLE_ALL_APPS = false;
|
||||
|
||||
// Previews & outlines
|
||||
ArrayList<AppsCustomizeAsyncTask> mRunningTasks;
|
||||
private static final int sPageSleepDelay = 200;
|
||||
@@ -427,7 +425,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
|
||||
int width = MeasureSpec.getSize(widthMeasureSpec);
|
||||
int height = MeasureSpec.getSize(heightMeasureSpec);
|
||||
if (!isDataReady()) {
|
||||
if ((DISABLE_ALL_APPS || !mApps.isEmpty()) && !mWidgets.isEmpty()) {
|
||||
if ((LauncherAppState.isDisableAllApps() || !mApps.isEmpty()) && !mWidgets.isEmpty()) {
|
||||
setDataIsReady();
|
||||
setMeasuredDimension(width, height);
|
||||
onDataReady(width, height);
|
||||
@@ -1558,7 +1556,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
|
||||
}
|
||||
|
||||
public void setApps(ArrayList<AppInfo> list) {
|
||||
if (!DISABLE_ALL_APPS) {
|
||||
if (!LauncherAppState.isDisableAllApps()) {
|
||||
mApps = list;
|
||||
Collections.sort(mApps, LauncherModel.getAppNameComparator());
|
||||
updatePageCountsAndInvalidateData();
|
||||
@@ -1576,7 +1574,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
|
||||
}
|
||||
}
|
||||
public void addApps(ArrayList<AppInfo> list) {
|
||||
if (!DISABLE_ALL_APPS) {
|
||||
if (!LauncherAppState.isDisableAllApps()) {
|
||||
addAppsWithoutInvalidate(list);
|
||||
updatePageCountsAndInvalidateData();
|
||||
}
|
||||
@@ -1604,7 +1602,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
|
||||
}
|
||||
}
|
||||
public void removeApps(ArrayList<AppInfo> appInfos) {
|
||||
if (!DISABLE_ALL_APPS) {
|
||||
if (!LauncherAppState.isDisableAllApps()) {
|
||||
removeAppsWithoutInvalidate(appInfos);
|
||||
updatePageCountsAndInvalidateData();
|
||||
}
|
||||
@@ -1613,7 +1611,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
|
||||
// We remove and re-add the updated applications list because it's properties may have
|
||||
// changed (ie. the title), and this will ensure that the items will be in their proper
|
||||
// place in the list.
|
||||
if (!DISABLE_ALL_APPS) {
|
||||
if (!LauncherAppState.isDisableAllApps()) {
|
||||
removeAppsWithoutInvalidate(list);
|
||||
addAppsWithoutInvalidate(list);
|
||||
updatePageCountsAndInvalidateData();
|
||||
@@ -1727,4 +1725,4 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
|
||||
|
||||
return String.format(getContext().getString(stringId), page + 1, count);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.android.launcher3;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
public class BuildInfo {
|
||||
private static final boolean DBG = false;
|
||||
private static final String TAG = "BuildInfo";
|
||||
|
||||
public boolean isDogfoodBuild() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static BuildInfo loadByName(String className) {
|
||||
if (TextUtils.isEmpty(className)) return new BuildInfo();
|
||||
|
||||
if (DBG) Log.d(TAG, "Loading BuildInfo: " + className);
|
||||
try {
|
||||
Class<?> cls = Class.forName(className);
|
||||
return (BuildInfo) cls.newInstance();
|
||||
} catch (ClassNotFoundException e) {
|
||||
Log.e(TAG, "Bad BuildInfo class", e);
|
||||
} catch (InstantiationException e) {
|
||||
Log.e(TAG, "Bad BuildInfo class", e);
|
||||
} catch (IllegalAccessException e) {
|
||||
Log.e(TAG, "Bad BuildInfo class", e);
|
||||
} catch (ClassCastException e) {
|
||||
Log.e(TAG, "Bad BuildInfo class", e);
|
||||
}
|
||||
return new BuildInfo();
|
||||
}
|
||||
}
|
||||
@@ -146,12 +146,12 @@ public class DeleteDropTarget extends ButtonDropTarget {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!AppsCustomizePagedView.DISABLE_ALL_APPS &&
|
||||
if (!LauncherAppState.isDisableAllApps() &&
|
||||
item.itemType == LauncherSettings.Favorites.ITEM_TYPE_FOLDER) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!AppsCustomizePagedView.DISABLE_ALL_APPS &&
|
||||
if (!LauncherAppState.isDisableAllApps() &&
|
||||
item.itemType == LauncherSettings.Favorites.ITEM_TYPE_APPLICATION &&
|
||||
item instanceof AppInfo) {
|
||||
AppInfo appInfo = (AppInfo) info;
|
||||
@@ -160,7 +160,7 @@ public class DeleteDropTarget extends ButtonDropTarget {
|
||||
|
||||
if (item.itemType == LauncherSettings.Favorites.ITEM_TYPE_APPLICATION &&
|
||||
item instanceof ShortcutInfo) {
|
||||
if (AppsCustomizePagedView.DISABLE_ALL_APPS) {
|
||||
if (LauncherAppState.isDisableAllApps()) {
|
||||
ShortcutInfo shortcutInfo = (ShortcutInfo) info;
|
||||
return (shortcutInfo.flags & AppInfo.DOWNLOADED_FLAG) != 0;
|
||||
} else {
|
||||
@@ -174,7 +174,7 @@ public class DeleteDropTarget extends ButtonDropTarget {
|
||||
@Override
|
||||
public void onDragStart(DragSource source, Object info, int dragAction) {
|
||||
boolean isVisible = true;
|
||||
boolean useUninstallLabel = !AppsCustomizePagedView.DISABLE_ALL_APPS &&
|
||||
boolean useUninstallLabel = !LauncherAppState.isDisableAllApps() &&
|
||||
isAllAppsApplication(source, info);
|
||||
boolean useDeleteLabel = !useUninstallLabel && source.supportsDeleteDropTarget();
|
||||
|
||||
@@ -264,7 +264,7 @@ public class DeleteDropTarget extends ButtonDropTarget {
|
||||
}
|
||||
|
||||
private boolean isUninstallFromWorkspace(DragObject d) {
|
||||
if (AppsCustomizePagedView.DISABLE_ALL_APPS && isWorkspaceOrFolderApplication(d)) {
|
||||
if (LauncherAppState.isDisableAllApps() && isWorkspaceOrFolderApplication(d)) {
|
||||
ShortcutInfo shortcut = (ShortcutInfo) d.dragInfo;
|
||||
// Only allow manifest shortcuts to initiate an un-install.
|
||||
return !InstallShortcutReceiver.isValidShortcutLaunchIntent(shortcut.intent);
|
||||
|
||||
@@ -126,7 +126,7 @@ public class DeviceProfile {
|
||||
DeviceProfile(String n, float w, float h, float r, float c,
|
||||
float is, float its, float hs, float his) {
|
||||
// Ensure that we have an odd number of hotseat items (since we need to place all apps)
|
||||
if (!AppsCustomizePagedView.DISABLE_ALL_APPS && hs % 2 == 0) {
|
||||
if (!LauncherAppState.isDisableAllApps() && hs % 2 == 0) {
|
||||
throw new RuntimeException("All Device Profiles must have an odd number of hotseat spaces");
|
||||
}
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ public class DynamicGrid {
|
||||
DisplayMetrics dm = resources.getDisplayMetrics();
|
||||
ArrayList<DeviceProfile> deviceProfiles =
|
||||
new ArrayList<DeviceProfile>();
|
||||
boolean hasAA = !AppsCustomizePagedView.DISABLE_ALL_APPS;
|
||||
boolean hasAA = !LauncherAppState.isDisableAllApps();
|
||||
DEFAULT_ICON_SIZE_PX = pxFromDp(DEFAULT_ICON_SIZE_DP, dm);
|
||||
// Our phone profiles include the bar sizes in each orientation
|
||||
deviceProfiles.add(new DeviceProfile("Super Short Stubby",
|
||||
|
||||
@@ -146,7 +146,7 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
|
||||
Resources res = getResources();
|
||||
mMaxCountX = (int) grid.numColumns;
|
||||
// Allow scrolling folders when DISABLE_ALL_APPS is true.
|
||||
if (AppsCustomizePagedView.DISABLE_ALL_APPS) {
|
||||
if (LauncherAppState.isDisableAllApps()) {
|
||||
mMaxCountY = mMaxNumItems = Integer.MAX_VALUE;
|
||||
} else {
|
||||
mMaxCountY = (int) grid.numRows;
|
||||
@@ -1018,7 +1018,7 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
|
||||
int contentAreaHeightSpec = MeasureSpec.makeMeasureSpec(getContentAreaHeight(),
|
||||
MeasureSpec.EXACTLY);
|
||||
|
||||
if (AppsCustomizePagedView.DISABLE_ALL_APPS) {
|
||||
if (LauncherAppState.isDisableAllApps()) {
|
||||
// Don't cap the height of the content to allow scrolling.
|
||||
mContent.setFixedSize(getContentAreaWidth(), mContent.getDesiredHeight());
|
||||
} else {
|
||||
|
||||
@@ -95,7 +95,7 @@ public class Hotseat extends FrameLayout {
|
||||
return hasVerticalHotseat() ? (mContent.getCountY() - (rank + 1)) : 0;
|
||||
}
|
||||
public boolean isAllAppsButtonRank(int rank) {
|
||||
if (AppsCustomizePagedView.DISABLE_ALL_APPS) {
|
||||
if (LauncherAppState.isDisableAllApps()) {
|
||||
return false;
|
||||
} else {
|
||||
return rank == mAllAppsButtonRank;
|
||||
@@ -142,7 +142,7 @@ public class Hotseat extends FrameLayout {
|
||||
void resetLayout() {
|
||||
mContent.removeAllViewsInLayout();
|
||||
|
||||
if (!AppsCustomizePagedView.DISABLE_ALL_APPS) {
|
||||
if (!LauncherAppState.isDisableAllApps()) {
|
||||
// Add the Apps button
|
||||
Context context = getContext();
|
||||
|
||||
@@ -189,7 +189,7 @@ public class Hotseat extends FrameLayout {
|
||||
void addAllAppsFolder(IconCache iconCache,
|
||||
ArrayList<AppInfo> allApps, ArrayList<ComponentName> onWorkspace,
|
||||
Launcher launcher, Workspace workspace) {
|
||||
if (AppsCustomizePagedView.DISABLE_ALL_APPS) {
|
||||
if (LauncherAppState.isDisableAllApps()) {
|
||||
FolderInfo fi = new FolderInfo();
|
||||
|
||||
fi.cellX = getCellXFromOrder(mAllAppsButtonRank);
|
||||
@@ -219,7 +219,7 @@ public class Hotseat extends FrameLayout {
|
||||
}
|
||||
|
||||
void addAppsToAllAppsFolder(ArrayList<AppInfo> apps) {
|
||||
if (AppsCustomizePagedView.DISABLE_ALL_APPS) {
|
||||
if (LauncherAppState.isDisableAllApps()) {
|
||||
View v = mContent.getChildAt(getCellXFromOrder(mAllAppsButtonRank), getCellYFromOrder(mAllAppsButtonRank));
|
||||
FolderIcon fi = null;
|
||||
|
||||
|
||||
@@ -272,7 +272,7 @@ public class InstallShortcutReceiver extends BroadcastReceiver {
|
||||
final Intent intent = pendingInfo.launchIntent;
|
||||
final String name = pendingInfo.name;
|
||||
|
||||
if (AppsCustomizePagedView.DISABLE_ALL_APPS && !isValidShortcutLaunchIntent(intent)) {
|
||||
if (LauncherAppState.isDisableAllApps() && !isValidShortcutLaunchIntent(intent)) {
|
||||
if (DBG) Log.d(TAG, "Ignoring shortcut with launchIntent:" + intent);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -155,6 +155,7 @@ public class Launcher extends Activity
|
||||
// adb shell setprop log.tag.PROPERTY_NAME [VERBOSE | SUPPRESS]
|
||||
static final String FORCE_ENABLE_ROTATION_PROPERTY = "launcher_force_rotate";
|
||||
static final String DUMP_STATE_PROPERTY = "launcher_dump_state";
|
||||
static final String DISABLE_ALL_APPS_PROPERTY = "launcher_noallapps";
|
||||
|
||||
// The Intent extra that defines whether to ignore the launch animation
|
||||
static final String INTENT_EXTRA_IGNORE_LAUNCH_ANIMATION =
|
||||
@@ -368,7 +369,7 @@ public class Launcher extends Activity
|
||||
|
||||
private Stats mStats;
|
||||
|
||||
private static boolean isPropertyEnabled(String propertyName) {
|
||||
static boolean isPropertyEnabled(String propertyName) {
|
||||
return Log.isLoggable(propertyName, Log.VERBOSE);
|
||||
}
|
||||
|
||||
@@ -2925,7 +2926,7 @@ public class Launcher extends Activity
|
||||
// Shrink workspaces away if going to AppsCustomize from workspace
|
||||
Animator workspaceAnim =
|
||||
mWorkspace.getChangeStateAnimation(Workspace.State.SMALL, animated);
|
||||
if (!AppsCustomizePagedView.DISABLE_ALL_APPS
|
||||
if (!LauncherAppState.isDisableAllApps()
|
||||
|| contentType == AppsCustomizePagedView.ContentType.Widgets) {
|
||||
// Set the content type for the all apps/widgets space
|
||||
mAppsCustomizeTabHost.setContentTypeImmediate(contentType);
|
||||
@@ -3796,7 +3797,7 @@ public class Launcher extends Activity
|
||||
// Remove the extra empty screen
|
||||
mWorkspace.removeExtraEmptyScreen(false, null);
|
||||
|
||||
if (!AppsCustomizePagedView.DISABLE_ALL_APPS &&
|
||||
if (!LauncherAppState.isDisableAllApps() &&
|
||||
addedApps != null && mAppsCustomizeContent != null) {
|
||||
mAppsCustomizeContent.addApps(addedApps);
|
||||
}
|
||||
@@ -4063,7 +4064,7 @@ public class Launcher extends Activity
|
||||
* Implementation of the method from LauncherModel.Callbacks.
|
||||
*/
|
||||
public void bindAllApplications(final ArrayList<AppInfo> apps) {
|
||||
if (AppsCustomizePagedView.DISABLE_ALL_APPS) {
|
||||
if (LauncherAppState.isDisableAllApps()) {
|
||||
if (mIntentsOnWorkspaceFromUpgradePath != null) {
|
||||
if (LauncherModel.UPGRADE_USE_MORE_APPS_FOLDER) {
|
||||
getHotseat().addAllAppsFolder(mIconCache, apps,
|
||||
@@ -4103,7 +4104,7 @@ public class Launcher extends Activity
|
||||
mWorkspace.updateShortcuts(apps);
|
||||
}
|
||||
|
||||
if (!AppsCustomizePagedView.DISABLE_ALL_APPS &&
|
||||
if (!LauncherAppState.isDisableAllApps() &&
|
||||
mAppsCustomizeContent != null) {
|
||||
mAppsCustomizeContent.updateApps(apps);
|
||||
}
|
||||
@@ -4140,7 +4141,7 @@ public class Launcher extends Activity
|
||||
mDragController.onAppsRemoved(packageNames, appInfos);
|
||||
|
||||
// Update AllApps
|
||||
if (!AppsCustomizePagedView.DISABLE_ALL_APPS &&
|
||||
if (!LauncherAppState.isDisableAllApps() &&
|
||||
mAppsCustomizeContent != null) {
|
||||
mAppsCustomizeContent.removeApps(appInfos);
|
||||
}
|
||||
|
||||
@@ -30,9 +30,10 @@ public class LauncherAppState implements DeviceProfile.DeviceProfileCallbacks {
|
||||
private static final String TAG = "LauncherAppState";
|
||||
private static final String SHARED_PREFERENCES_KEY = "com.android.launcher3.prefs";
|
||||
|
||||
private final AppFilter mAppFilter;
|
||||
private final BuildInfo mBuildInfo;
|
||||
private LauncherModel mModel;
|
||||
private IconCache mIconCache;
|
||||
private AppFilter mAppFilter;
|
||||
private WidgetPreviewLoader.CacheDb mWidgetPreviewCacheDb;
|
||||
private boolean mIsScreenLarge;
|
||||
private float mScreenDensity;
|
||||
@@ -87,6 +88,7 @@ public class LauncherAppState implements DeviceProfile.DeviceProfileCallbacks {
|
||||
mIconCache = new IconCache(sContext);
|
||||
|
||||
mAppFilter = AppFilter.loadByName(sContext.getString(R.string.app_filter_class));
|
||||
mBuildInfo = BuildInfo.loadByName(sContext.getString(R.string.build_info_class));
|
||||
mModel = new LauncherModel(this, mIconCache, mAppFilter);
|
||||
|
||||
// Register intent receivers
|
||||
@@ -230,4 +232,10 @@ public class LauncherAppState implements DeviceProfile.DeviceProfileCallbacks {
|
||||
public void onAvailableSizeChanged(DeviceProfile grid) {
|
||||
Utilities.setIconSize(grid.iconSizePx);
|
||||
}
|
||||
|
||||
public static boolean isDisableAllApps() {
|
||||
// Returns false on non-dogfood builds.
|
||||
return getInstance().mBuildInfo.isDogfoodBuild() &&
|
||||
Launcher.isPropertyEnabled(Launcher.DISABLE_ALL_APPS_PROPERTY);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1466,7 +1466,7 @@ public class LauncherModel extends BroadcastReceiver {
|
||||
sBgDbIconCache.clear();
|
||||
}
|
||||
|
||||
if (AppsCustomizePagedView.DISABLE_ALL_APPS) {
|
||||
if (LauncherAppState.isDisableAllApps()) {
|
||||
// Ensure that all the applications that are in the system are
|
||||
// represented on the home screen.
|
||||
if (!UPGRADE_USE_MORE_APPS_FOLDER || !isUpgrade) {
|
||||
@@ -2564,7 +2564,7 @@ public class LauncherModel extends BroadcastReceiver {
|
||||
if (added != null) {
|
||||
// Ensure that we add all the workspace applications to the db
|
||||
Callbacks cb = mCallbacks != null ? mCallbacks.get() : null;
|
||||
if (!AppsCustomizePagedView.DISABLE_ALL_APPS) {
|
||||
if (!LauncherAppState.isDisableAllApps()) {
|
||||
addAndBindAddedApps(context, new ArrayList<ItemInfo>(), cb, added);
|
||||
} else {
|
||||
final ArrayList<ItemInfo> addedInfos = new ArrayList<ItemInfo>(added);
|
||||
|
||||
@@ -288,7 +288,7 @@ public class LauncherProvider extends ContentProvider {
|
||||
}
|
||||
|
||||
private static int getDefaultWorkspaceResourceId() {
|
||||
if (AppsCustomizePagedView.DISABLE_ALL_APPS) {
|
||||
if (LauncherAppState.isDisableAllApps()) {
|
||||
return R.xml.default_workspace_no_all_apps;
|
||||
} else {
|
||||
return R.xml.default_workspace;
|
||||
|
||||
Reference in New Issue
Block a user