/** Returns whether the clings are enabled or should be shown */ private boolean areClingsEnabled() { if (DISABLE_CLINGS) { return false; } // disable clings when running in a test harness if (ActivityManager.isRunningInTestHarness()) return false; // Disable clings for accessibility when explore by touch is enabled final AccessibilityManager a11yManager = (AccessibilityManager) mLauncher.getSystemService(Launcher.ACCESSIBILITY_SERVICE); if (a11yManager.isTouchExplorationEnabled()) { return false; } // Restricted secondary users (child mode) will potentially have very few apps // seeded when they start up for the first time. Clings won't work well with that boolean supportsLimitedUsers = android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2; Account[] accounts = AccountManager.get(mLauncher).getAccounts(); if (supportsLimitedUsers && accounts.length == 0) { UserManager um = (UserManager) mLauncher.getSystemService(Context.USER_SERVICE); Bundle restrictions = um.getUserRestrictions(); if (restrictions.getBoolean(UserManager.DISALLOW_MODIFY_ACCOUNTS, false)) { return false; } } if (Settings.Secure.getInt(mLauncher.getContentResolver(), SKIP_FIRST_USE_HINTS, 0) == 1) { return false; } return true; }
private void deleteFromWorkspace(DragSource source, ItemInfo item) { // TODO Auto-generated method stub if (item.container == Favorites.CONTAINER_DESKTOP) { if (item instanceof LauncherAppWidgetInfo) { mLauncher.removeAppWidget((LauncherAppWidgetInfo) item); } else if (item instanceof CustomAppWidgetInfo) { if (((CustomAppWidgetInfo) item).itemType == Favorites.ITEM_TYPE_WIDGET_LOCK_SCREEN) { final ContentResolver cr = mLauncher.getContentResolver(); final String where = BaseLauncherColumns.ITEM_TYPE + "=" + Favorites.ITEM_TYPE_WIDGET_LOCK_SCREEN; Cursor c = cr.query(Favorites.CONTENT_URI, null, where, null, null); // should remove administration when no more LOCK_SCREEN // widget displayed in launcher if (c.getCount() <= 1) { LockScreenUtil.getInstance(mLauncher).removeAdmin(); } } } } else { if (source instanceof UserFolder) { final UserFolder userFolder = (UserFolder) source; final FolderInfo folderInfo = userFolder.getInfo(); if (folderInfo instanceof UserFolderInfo) { // Item must be a ShortcutInfo otherwise it couldn't have // been in the folder // in the first place. if (item instanceof ShortcutInfo && item.container == folderInfo.id) { mLauncher.removeItemFromFolder((ShortcutInfo) item); } } } } if (item instanceof UserFolderInfo) { final UserFolderInfo userFolderInfo = (UserFolderInfo) item; if (userFolderInfo.contents.size() > 0) { Toast.makeText(mLauncher, R.string.folder_is_not_empty, Toast.LENGTH_SHORT).show(); return; } LauncherModel.deleteUserFolderContentsFromDatabase(mLauncher, userFolderInfo); mLauncher.removeFolder(userFolderInfo); } else if (item instanceof LauncherAppWidgetInfo) { final LauncherAppWidgetInfo launcherAppWidgetInfo = (LauncherAppWidgetInfo) item; final LauncherAppWidgetHost appWidgetHost = mLauncher.getAppWidgetHost(); if (appWidgetHost != null) { appWidgetHost.deleteAppWidgetId(launcherAppWidgetInfo.appWidgetId); } mLauncher.getWorkspace().forceToDeleteWidget((long) launcherAppWidgetInfo.appWidgetId); } else if (item instanceof CustomAppWidgetInfo) { mLauncher.getWorkspace().forceToDeleteWidget(((CustomAppWidgetInfo) item).id); } LauncherModel.deleteItemFromDatabase(mLauncher, item); }