summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/Workspace.java
diff options
context:
space:
mode:
authorNebojsa Cvetkovic <nebkat@gmail.com>2013-11-25 16:58:53 +0000
committerDanesh M <daneshm90@gmail.com>2014-01-24 16:24:23 -0800
commit4fd7c82ec6cab6d160f72b0355f6c5fc399b1a43 (patch)
tree637afa03fb37b22d280ec6b22df5a47d278237cb /src/com/android/launcher3/Workspace.java
parent2af21d644dfdb5db0a0da751937566058c0cdfc4 (diff)
downloadandroid_packages_apps_Trebuchet-4fd7c82ec6cab6d160f72b0355f6c5fc399b1a43.tar.gz
android_packages_apps_Trebuchet-4fd7c82ec6cab6d160f72b0355f6c5fc399b1a43.tar.bz2
android_packages_apps_Trebuchet-4fd7c82ec6cab6d160f72b0355f6c5fc399b1a43.zip
Workspace: Custom default screen
Change-Id: Ic90254f7758b9dbd4997a19474e455230355b772
Diffstat (limited to 'src/com/android/launcher3/Workspace.java')
-rw-r--r--src/com/android/launcher3/Workspace.java61
1 files changed, 48 insertions, 13 deletions
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index bea8c3057..05b530984 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -32,7 +32,6 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
@@ -117,8 +116,7 @@ public class Workspace extends SmoothPagedView
private final WallpaperManager mWallpaperManager;
private IBinder mWindowToken;
- private int mOriginalDefaultPage;
- private int mDefaultPage;
+ private long mDefaultScreenId;
private ShortcutAndWidgetContainer mDragSourceInternal;
private static boolean sAccessibilityEnabled;
@@ -306,7 +304,7 @@ public class Workspace extends SmoothPagedView
// With workspace, data is available straight from the get-go
setDataIsReady();
- mShowSearchBar = SettingsProvider.getBoolean(SettingsProvider.SETTINGS_UI_HOMESCREEN_SEARCH, context,
+ mShowSearchBar = SettingsProvider.getBoolean(context, SettingsProvider.SETTINGS_UI_HOMESCREEN_SEARCH,
R.bool.preferences_interface_homescreen_search_default);
mLauncher = (Launcher) context;
@@ -323,7 +321,8 @@ public class Workspace extends SmoothPagedView
res.getInteger(R.integer.config_workspaceOverviewShrinkPercentage) / 100.0f;
mOverviewModePageOffset = res.getDimensionPixelSize(R.dimen.overview_mode_page_offset);
mCameraDistance = res.getInteger(R.integer.config_cameraDistance);
- mOriginalDefaultPage = mDefaultPage = a.getInt(R.styleable.Workspace_defaultScreen, 1);
+ mDefaultScreenId = SettingsProvider.getLongCustomDefault(context,
+ SettingsProvider.SETTINGS_UI_HOMESCREEN_DEFAULT_SCREEN_ID, -1);
a.recycle();
setOnHierarchyChangeListener(this);
@@ -409,7 +408,6 @@ public class Workspace extends SmoothPagedView
*/
protected void initWorkspace() {
Context context = getContext();
- mCurrentPage = mDefaultPage;
Launcher.setScreen(mCurrentPage);
LauncherAppState app = LauncherAppState.getInstance();
DeviceProfile grid = app.getDynamicGrid().getDeviceProfile();
@@ -551,6 +549,13 @@ public class Workspace extends SmoothPagedView
mWorkspaceScreens.put(screenId, newScreen);
mScreenOrder.add(insertIndex, screenId);
addView(newScreen, insertIndex);
+
+ if (mDefaultScreenId == screenId) {
+ int defaultPage = getPageIndexForScreenId(screenId);
+ moveToScreen(defaultPage, false);
+ Launcher.setScreen(defaultPage);
+ }
+
return screenId;
}
@@ -566,9 +571,6 @@ public class Workspace extends SmoothPagedView
addFullScreenPage(customScreen);
- // Ensure that the current page and default page are maintained.
- mDefaultPage = mOriginalDefaultPage + 1;
-
// Update the custom content hint
mLauncher.updateCustomContentHintVisibility();
if (mRestorePage != INVALID_RESTORE_PAGE) {
@@ -595,9 +597,6 @@ public class Workspace extends SmoothPagedView
mCustomContentCallbacks = null;
- // Ensure that the current page and default page are maintained.
- mDefaultPage = mOriginalDefaultPage - 1;
-
// Update the custom content hint
mLauncher.updateCustomContentHintVisibility();
if (mRestorePage != INVALID_RESTORE_PAGE) {
@@ -1290,6 +1289,10 @@ public class Workspace extends SmoothPagedView
public void computeScroll() {
super.computeScroll();
mWallpaperOffset.syncWithScroll();
+
+ if (isInOverviewMode() && !isReordering(true)) {
+ updateDefaultScreenButton();
+ }
}
void showOutlines() {
@@ -1843,6 +1846,27 @@ public class Workspace extends SmoothPagedView
return getChangeStateAnimation(state, animated, 0, -1);
}
+ private void updateDefaultScreenButton() {
+ View overviewPanel = mLauncher.getOverviewPanel();
+ if (overviewPanel != null) {
+ View defaultPageButton = overviewPanel.findViewById(R.id.default_screen_button);
+ defaultPageButton.setActivated(
+ getScreenIdForPageIndex(getPageNearestToCenterOfScreen()) == mDefaultScreenId);
+ }
+ }
+
+ public void onClickDefaultScreenButton() {
+ if (!isInOverviewMode()) return;
+
+ mDefaultScreenId = getScreenIdForPageIndex(getPageNearestToCenterOfScreen());
+
+ exitOverviewMode(getPageNearestToCenterOfScreen(), true);
+
+ SettingsProvider.get(mLauncher).edit()
+ .putLong(SettingsProvider.SETTINGS_UI_HOMESCREEN_DEFAULT_SCREEN_ID, mDefaultScreenId)
+ .commit();
+ }
+
@Override
protected void getOverviewModePages(int[] range) {
int start = numCustomPages();
@@ -1857,6 +1881,10 @@ public class Workspace extends SmoothPagedView
showOutlines();
// Reordering handles its own animations, disable the automatic ones.
disableLayoutTransitions();
+
+ mLauncher.getOverviewPanel().animate()
+ .alpha(0f)
+ .start();
}
protected void onEndReordering() {
@@ -1874,6 +1902,13 @@ public class Workspace extends SmoothPagedView
// Re-enable auto layout transitions for page deletion.
enableLayoutTransitions();
+
+ // Show the default screen button
+ updateDefaultScreenButton();
+
+ mLauncher.getOverviewPanel().animate()
+ .alpha(1f)
+ .start();
}
public boolean isInOverviewMode() {
@@ -4439,7 +4474,7 @@ public class Workspace extends SmoothPagedView
}
void moveToDefaultScreen(boolean animate) {
- moveToScreen(mDefaultPage, animate);
+ moveToScreen(getPageIndexForScreenId(mDefaultScreenId), animate);
}
void moveToCustomContentScreen(boolean animate) {