Merge branch 'froyo' into froyo-release
diff --git a/res/values/config.xml b/res/values/config.xml
index 9d3f688..15ec05b 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -1,4 +1,6 @@
<resources>
<integer name="config_allAppsFadeInTime">700</integer>
<integer name="config_allAppsFadeOutTime">700</integer>
+ <integer name="config_allAppsBatchLoadDelay">0</integer>
+ <integer name="config_allAppsBatchSize">0</integer>
</resources>
diff --git a/src/com/android/launcher2/AllApps2D.java b/src/com/android/launcher2/AllApps2D.java
index eb7cd83..90c87fb 100644
--- a/src/com/android/launcher2/AllApps2D.java
+++ b/src/com/android/launcher2/AllApps2D.java
@@ -50,8 +50,6 @@
private static final String TAG = "Launcher.AllApps2D";
- private static final int BATCH_SIZE = 6; // give us a few apps at a time
-
private Launcher mLauncher;
private DragController mDragController;
@@ -302,10 +300,6 @@
return -1;
}
- public int getAppBatchSize() {
- return BATCH_SIZE;
- }
-
public void dumpState() {
ApplicationInfo.dumpApplicationInfoList(TAG, "mAllAppsList", mAllAppsList);
}
diff --git a/src/com/android/launcher2/AllApps3D.java b/src/com/android/launcher2/AllApps3D.java
index 2b27c7c..9c3b3e4 100644
--- a/src/com/android/launcher2/AllApps3D.java
+++ b/src/com/android/launcher2/AllApps3D.java
@@ -73,8 +73,6 @@
private static final int SELECTION_ICONS = 1;
private static final int SELECTION_HOME = 2;
- private static final int BATCH_SIZE = 0; // give us all the apps at once
-
private Launcher mLauncher;
private DragController mDragController;
@@ -91,6 +89,10 @@
private static RenderScriptGL sRS;
private static RolloRS sRollo;
+ private static boolean sZoomDirty = false;
+ private static boolean sAnimateNextZoom;
+ private static float sNextZoom;
+
/**
* True when we are using arrow keys or trackball to drive navigation
*/
@@ -120,9 +122,6 @@
private boolean mShouldGainFocus;
private boolean mHaveSurface = false;
- private boolean mZoomDirty = false;
- private boolean mAnimateNextZoom;
- private float mNextZoom;
private float mZoom;
private float mVelocity;
private AAMessage mMessageProc;
@@ -241,7 +240,7 @@
}
// We may lose any callbacks that are pending, so make sure that we re-sync that
// on the next surfaceChanged.
- mZoomDirty = true;
+ sZoomDirty = true;
mHaveSurface = false;
}
@@ -801,12 +800,12 @@
*/
public void zoom(float zoom, boolean animate) {
cancelLongPress();
- mNextZoom = zoom;
- mAnimateNextZoom = animate;
+ sNextZoom = zoom;
+ sAnimateNextZoom = animate;
// if we do setZoom while we don't have a surface, we won't
// get the callbacks that actually set mZoom.
if (sRollo == null || !mHaveSurface) {
- mZoomDirty = true;
+ sZoomDirty = true;
mZoom = zoom;
} else {
sRollo.setZoom(zoom, animate);
@@ -963,7 +962,7 @@
sRollo.mScrollPos = ((float)mData[0]) / (1 << 16);
mVelocity = ((float)mData[1]) / (1 << 16);
mZoom = ((float)mData[2]) / (1 << 16);
- mZoomDirty = false;
+ sZoomDirty = false;
}
}
@@ -1309,8 +1308,8 @@
}
void dirtyCheck() {
- if (mAllApps.mZoomDirty) {
- setZoom(mAllApps.mNextZoom, mAllApps.mAnimateNextZoom);
+ if (sZoomDirty) {
+ setZoom(mAllApps.sNextZoom, mAllApps.sAnimateNextZoom);
}
}
@@ -1599,10 +1598,6 @@
}
}
- public int getAppBatchSize() {
- return BATCH_SIZE;
- }
-
public void dumpState() {
Log.d(TAG, "sRS=" + sRS);
Log.d(TAG, "sRollo=" + sRollo);
@@ -1616,8 +1611,8 @@
Log.d(TAG, "mVelocityTracker=" + mVelocityTracker);
Log.d(TAG, "mTouchTracking=" + mTouchTracking);
Log.d(TAG, "mShouldGainFocus=" + mShouldGainFocus);
- Log.d(TAG, "mZoomDirty=" + mZoomDirty);
- Log.d(TAG, "mAnimateNextZoom=" + mAnimateNextZoom);
+ Log.d(TAG, "sZoomDirty=" + sZoomDirty);
+ Log.d(TAG, "sAnimateNextZoom=" + sAnimateNextZoom);
Log.d(TAG, "mZoom=" + mZoom);
Log.d(TAG, "mScrollPos=" + sRollo.mScrollPos);
Log.d(TAG, "mVelocity=" + mVelocity);
diff --git a/src/com/android/launcher2/AllAppsView.java b/src/com/android/launcher2/AllAppsView.java
index 8888737..877c075 100644
--- a/src/com/android/launcher2/AllAppsView.java
+++ b/src/com/android/launcher2/AllAppsView.java
@@ -41,8 +41,6 @@
public void updateApps(ArrayList<ApplicationInfo> list);
- public int getAppBatchSize();
-
public void dumpState();
public void surrender();
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index b82e0cf..3522199 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -1750,6 +1750,10 @@
* - Go back with back key TODO: make this not go to workspace
* - From all apps
* - From workspace
+ * - Enter and exit car mode (becuase it causes an extra configuration changed)
+ * - From all apps
+ * - From the center workspace
+ * - From another workspace
*/
void closeAllApps(boolean animated) {
if (mAllAppsGrid.isVisible()) {
@@ -2091,7 +2095,7 @@
* Implementation of the method from LauncherModel.Callbacks.
*/
public int getAppBatchSize() {
- return mAllAppsGrid.getAppBatchSize();
+ return getResources().getInteger(R.integer.config_allAppsBatchSize);
}
/**
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java
index 9766831..7a56bcd 100644
--- a/src/com/android/launcher2/LauncherModel.java
+++ b/src/com/android/launcher2/LauncherModel.java
@@ -62,7 +62,7 @@
static final boolean DEBUG_LOADERS = false;
static final String TAG = "Launcher.Model";
- final int ALL_APPS_LOAD_DELAY = 150; // ms
+ private int mAllAppsLoadDelay; // milliseconds between batches
private final LauncherApplication mApp;
private final Object mLock = new Object();
@@ -98,6 +98,8 @@
mDefaultIcon = Utilities.createIconBitmap(
app.getPackageManager().getDefaultActivityIcon(), app);
+
+ mAllAppsLoadDelay = app.getResources().getInteger(R.integer.config_allAppsBatchLoadDelay);
}
public Bitmap getFallbackIcon() {
@@ -581,7 +583,7 @@
// Whew! Hard work done.
synchronized (mLock) {
if (mIsLaunching) {
- android.os.Process.setThreadPriority(Process.THREAD_PRIORITY_DEFAULT);
+ android.os.Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
}
}
@@ -1055,9 +1057,6 @@
mAllAppsList.add(new ApplicationInfo(apps.get(i), mIconCache));
i++;
}
- // re-sort before binding this batch to the grid
- Collections.sort(mAllAppsList.data, APP_NAME_COMPARATOR);
- Collections.sort(mAllAppsList.added, APP_NAME_COMPARATOR);
if (DEBUG_LOADERS) {
Log.d(TAG, "batch of " + batchSize + " icons processed in "
+ (SystemClock.uptimeMillis()-t2) + "ms");
@@ -1066,16 +1065,17 @@
mHandler.post(bindAllAppsTask);
- if (ALL_APPS_LOAD_DELAY > 0) {
+ if (mAllAppsLoadDelay > 0 && i < N) {
try {
- Thread.sleep(ALL_APPS_LOAD_DELAY);
+ Thread.sleep(mAllAppsLoadDelay);
} catch (InterruptedException exc) { }
}
}
if (DEBUG_LOADERS) {
Log.d(TAG, "cached all " + N + " apps in "
- + (SystemClock.uptimeMillis()-t) + "ms");
+ + (SystemClock.uptimeMillis()-t) + "ms"
+ + (mAllAppsLoadDelay > 0 ? " (including delay)" : ""));
}
}
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 8f5bd29..b85b12c 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -16,22 +16,25 @@
package com.android.launcher2;
+import java.util.ArrayList;
+import java.util.HashSet;
+
import android.app.WallpaperManager;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProviderInfo;
+import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.content.ComponentName;
+import android.content.pm.PackageManager;
import android.content.pm.ProviderInfo;
import android.content.res.TypedArray;
-import android.content.pm.PackageManager;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.IBinder;
-import android.os.Parcelable;
import android.os.Parcel;
+import android.os.Parcelable;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.VelocityTracker;
@@ -39,12 +42,10 @@
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.ViewParent;
+import android.view.animation.OvershootInterpolator;
import android.widget.Scroller;
import android.widget.TextView;
-import java.util.ArrayList;
-import java.util.HashSet;
-
import com.android.launcher.R;
/**
@@ -153,7 +154,7 @@
*/
private void initWorkspace() {
Context context = getContext();
- mScroller = new Scroller(context);
+ mScroller = new Scroller(context, new OvershootInterpolator());
mCurrentScreen = mDefaultScreen;
Launcher.setScreen(mCurrentScreen);
LauncherApplication app = (LauncherApplication)context.getApplicationContext();
@@ -390,7 +391,8 @@
IBinder token = getWindowToken();
if (token != null) {
mWallpaperManager.setWallpaperOffsetSteps(1.0f / (getChildCount() - 1), 0 );
- mWallpaperManager.setWallpaperOffsets(getWindowToken(), mScrollX/(float)scrollRange, 0);
+ mWallpaperManager.setWallpaperOffsets(getWindowToken(),
+ Math.max(0.f, Math.min(mScrollX/(float)scrollRange, 1.f)), 0);
}
}
@@ -1316,7 +1318,7 @@
final ProviderInfo providerInfo = manager.resolveContentProvider(
uri.getAuthority(), 0);
- if (providerInfo == null) {
+ if (providerInfo != null) {
for (String packageName: packageNames) {
if (packageName.equals(providerInfo.packageName)) {
// TODO: This should probably be done on a worker thread