summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2011-08-08 14:23:15 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-08-08 14:23:15 -0700
commit053c507ec832e446bc690592349c5c0397ad14b8 (patch)
tree91eef5cd4534c3391b102dba154b2828191aab16 /src/com/android/launcher2
parentef7b5da59cc8ad3b9f6545a497edd7bd27a6e63d (diff)
parentf30ad5f1bf33baceeca6b770464fb543b58af985 (diff)
downloadandroid_packages_apps_Trebuchet-053c507ec832e446bc690592349c5c0397ad14b8.tar.gz
android_packages_apps_Trebuchet-053c507ec832e446bc690592349c5c0397ad14b8.tar.bz2
android_packages_apps_Trebuchet-053c507ec832e446bc690592349c5c0397ad14b8.zip
Merge "Making hotseat a fiver."
Diffstat (limited to 'src/com/android/launcher2')
-rw-r--r--src/com/android/launcher2/AppsCustomizeTabHost.java3
-rw-r--r--src/com/android/launcher2/Hotseat.java10
-rw-r--r--src/com/android/launcher2/LauncherModel.java24
-rw-r--r--src/com/android/launcher2/LauncherProvider.java2
4 files changed, 27 insertions, 12 deletions
diff --git a/src/com/android/launcher2/AppsCustomizeTabHost.java b/src/com/android/launcher2/AppsCustomizeTabHost.java
index 2f5cc4074..8aa7c594e 100644
--- a/src/com/android/launcher2/AppsCustomizeTabHost.java
+++ b/src/com/android/launcher2/AppsCustomizeTabHost.java
@@ -39,7 +39,6 @@ public class AppsCustomizeTabHost extends TabHost implements LauncherTransitiona
private static final String APPS_TAB_TAG = "APPS";
private static final String WIDGETS_TAB_TAG = "WIDGETS";
- private static final int sTabBarFadeInDuration = 150;
private final LayoutInflater mLayoutInflater;
private ViewGroup mTabs;
@@ -130,7 +129,7 @@ public class AppsCustomizeTabHost extends TabHost implements LauncherTransitiona
// Set the width and show the tab bar (if we have a loading graphic, we can switch
// it off here)
mTabs.getLayoutParams().width = contentWidth;
- mTabsContainer.animate().alpha(1f).setDuration(sTabBarFadeInDuration);
+ mTabsContainer.setAlpha(1f);
}
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
diff --git a/src/com/android/launcher2/Hotseat.java b/src/com/android/launcher2/Hotseat.java
index 491691eb0..c53a74377 100644
--- a/src/com/android/launcher2/Hotseat.java
+++ b/src/com/android/launcher2/Hotseat.java
@@ -27,7 +27,8 @@ import android.widget.FrameLayout;
import com.android.launcher.R;
public class Hotseat extends FrameLayout {
- static final String TAG = "Hotseat";
+ private static final String TAG = "Hotseat";
+ private static final int sAllAppsButtonRank = 2; // In the middle of the dock
private Launcher mLauncher;
private CellLayout mContent;
@@ -75,6 +76,9 @@ public class Hotseat extends FrameLayout {
int getCellYFromOrder(int rank) {
return mIsLandscape ? (mContent.getCountY() - (rank + 1)) : 0;
}
+ public static boolean isAllAppsButtonRank(int rank) {
+ return rank == sAllAppsButtonRank;
+ }
@Override
protected void onFinishInflate() {
@@ -110,8 +114,8 @@ public class Hotseat extends FrameLayout {
// Note: We do this to ensure that the hotseat is always laid out in the orientation of
// the hotseat in order regardless of which orientation they were added
- int x = getCellXFromOrder(0);
- int y = getCellYFromOrder(0);
+ int x = getCellXFromOrder(sAllAppsButtonRank);
+ int y = getCellYFromOrder(sAllAppsButtonRank);
mContent.addViewToCellLayout(allAppsButton, -1, 0, new CellLayout.LayoutParams(x,y,1,1),
true);
}
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java
index 157348312..206de1480 100644
--- a/src/com/android/launcher2/LauncherModel.java
+++ b/src/com/android/launcher2/LauncherModel.java
@@ -816,26 +816,37 @@ public class LauncherModel extends BroadcastReceiver {
// check & update map of what's occupied; used to discard overlapping/invalid items
private boolean checkItemPlacement(ItemInfo occupied[][][], ItemInfo item) {
- if (item.container != LauncherSettings.Favorites.CONTAINER_DESKTOP) {
+ int containerIndex = item.screen;
+ if (item.container == LauncherSettings.Favorites.CONTAINER_HOTSEAT) {
+ // We use the last index to refer to the hotseat
+ containerIndex = Launcher.SCREEN_COUNT;
+ // Return early if we detect that an item is under the hotseat button
+ if (Hotseat.isAllAppsButtonRank(item.screen)) {
+ return false;
+ }
+ } else if (item.container != LauncherSettings.Favorites.CONTAINER_DESKTOP) {
+ // Skip further checking if it is not the hotseat or workspace container
return true;
}
+
for (int x = item.cellX; x < (item.cellX+item.spanX); x++) {
for (int y = item.cellY; y < (item.cellY+item.spanY); y++) {
- if (occupied[item.screen][x][y] != null) {
+ if (occupied[containerIndex][x][y] != null) {
Log.e(TAG, "Error loading shortcut " + item
- + " into cell (" + item.screen + ":"
+ + " into cell (" + containerIndex + "-" + item.screen + ":"
+ x + "," + y
+ ") occupied by "
- + occupied[item.screen][x][y]);
+ + occupied[containerIndex][x][y]);
return false;
}
}
}
for (int x = item.cellX; x < (item.cellX+item.spanX); x++) {
for (int y = item.cellY; y < (item.cellY+item.spanY); y++) {
- occupied[item.screen][x][y] = item;
+ occupied[containerIndex][x][y] = item;
}
}
+
return true;
}
@@ -858,8 +869,9 @@ public class LauncherModel extends BroadcastReceiver {
final Cursor c = contentResolver.query(
LauncherSettings.Favorites.CONTENT_URI, null, null, null, null);
+ // +1 for the hotseat (it can be larger than the workspace)
final ItemInfo occupied[][][] =
- new ItemInfo[Launcher.SCREEN_COUNT][mCellCountX][mCellCountY];
+ new ItemInfo[Launcher.SCREEN_COUNT + 1][mCellCountX + 1][mCellCountY + 1];
try {
final int idIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites._ID);
diff --git a/src/com/android/launcher2/LauncherProvider.java b/src/com/android/launcher2/LauncherProvider.java
index 6ca16de63..53f7b428b 100644
--- a/src/com/android/launcher2/LauncherProvider.java
+++ b/src/com/android/launcher2/LauncherProvider.java
@@ -737,7 +737,7 @@ public class LauncherProvider extends ContentProvider {
// hotset. This screen can't be at position 0 because AllApps is in the
// zeroth position.
if (container == LauncherSettings.Favorites.CONTAINER_HOTSEAT &&
- Integer.valueOf(screen) <= 0) {
+ Hotseat.isAllAppsButtonRank(Integer.valueOf(screen))) {
throw new RuntimeException("Invalid screen position for hotseat item");
}