summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEd Heyl <ed@google.com>2012-07-25 15:04:00 -0700
committerEd Heyl <ed@google.com>2012-07-25 15:04:00 -0700
commit8165f0dd202a2c0fbf0816f7613d66938955dc76 (patch)
tree2c14522ad8a3a3150417c53664c0266874a76fc8 /src
parent90abcc94258ba9d9c8b68ac9764b6ab1eba12985 (diff)
parent4f174f1d27adbde6f50e11ee3a8eaf162a030284 (diff)
downloadandroid_packages_apps_Trebuchet-8165f0dd202a2c0fbf0816f7613d66938955dc76.tar.gz
android_packages_apps_Trebuchet-8165f0dd202a2c0fbf0816f7613d66938955dc76.tar.bz2
android_packages_apps_Trebuchet-8165f0dd202a2c0fbf0816f7613d66938955dc76.zip
resolve conflicts w/4f174f1d27adbde6f50e11ee3a8eaf162a030284
Change-Id: I7ecce86e58af545aa18ea25e16978a1dce9dab8e
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher2/AppsCustomizePagedView.java2
-rw-r--r--src/com/android/launcher2/AppsCustomizeTabHost.java7
-rw-r--r--src/com/android/launcher2/Launcher.java47
-rw-r--r--src/com/android/launcher2/LauncherModel.java10
-rw-r--r--src/com/android/launcher2/PagedViewWidget.java27
-rw-r--r--src/com/android/launcher2/PagedViewWithDraggableItems.java2
6 files changed, 58 insertions, 37 deletions
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index 80fc62fce..d52c384bd 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -559,7 +559,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
@Override
public void onClick(View v) {
// When we have exited all apps or are in transition, disregard clicks
- if (!mLauncher.isAllAppsCustomizeOpen() ||
+ if (!mLauncher.isAllAppsVisible() ||
mLauncher.getWorkspace().isSwitchingState()) return;
if (v instanceof PagedViewIcon) {
diff --git a/src/com/android/launcher2/AppsCustomizeTabHost.java b/src/com/android/launcher2/AppsCustomizeTabHost.java
index 409affe17..27845bfac 100644
--- a/src/com/android/launcher2/AppsCustomizeTabHost.java
+++ b/src/com/android/launcher2/AppsCustomizeTabHost.java
@@ -74,7 +74,7 @@ public class AppsCustomizeTabHost extends TabHost implements LauncherTransitiona
* reflects the new content (but doesn't do the animation and logic associated with changing
* tabs manually).
*/
- private void setContentTypeImmediate(AppsCustomizePagedView.ContentType type) {
+ void setContentTypeImmediate(AppsCustomizePagedView.ContentType type) {
onTabChangedStart();
onTabChangedEnd(type);
}
@@ -151,10 +151,11 @@ public class AppsCustomizeTabHost extends TabHost implements LauncherTransitiona
if (contentWidth > 0 && mTabs.getLayoutParams().width != contentWidth) {
// Set the width and show the tab bar
mTabs.getLayoutParams().width = contentWidth;
- post(mRelayoutAndMakeVisible);
+ mRelayoutAndMakeVisible.run();
}
+
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
public boolean onInterceptTouchEvent(MotionEvent ev) {
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index f8226d778..9999e0fe3 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -906,10 +906,8 @@ public final class Launcher extends Activity
if (mAppsCustomizeTabHost != null) {
String curTab = savedState.getString("apps_customize_currentTab");
if (curTab != null) {
- // We set this directly so that there is no delay before the tab is set
- mAppsCustomizeContent.setContentType(
+ mAppsCustomizeTabHost.setContentTypeImmediate(
mAppsCustomizeTabHost.getContentTypeForTabTag(curTab));
- mAppsCustomizeTabHost.setCurrentTabByTag(curTab);
mAppsCustomizeContent.loadAssociatedPages(
mAppsCustomizeContent.getCurrentPage());
}
@@ -1439,7 +1437,7 @@ public final class Launcher extends Activity
@Override
protected void onSaveInstanceState(Bundle outState) {
- outState.putInt(RUNTIME_STATE_CURRENT_SCREEN, mWorkspace.getCurrentPage());
+ outState.putInt(RUNTIME_STATE_CURRENT_SCREEN, mWorkspace.getNextPage());
super.onSaveInstanceState(outState);
outState.putInt(RUNTIME_STATE, mState.ordinal());
@@ -1861,7 +1859,7 @@ public final class Launcher extends Activity
@Override
public void onBackPressed() {
- if (mState == State.APPS_CUSTOMIZE) {
+ if (isAllAppsVisible()) {
showWorkspace(true);
} else if (mWorkspace.getOpenFolder() != null) {
Folder openFolder = mWorkspace.getOpenFolder();
@@ -1934,7 +1932,7 @@ public final class Launcher extends Activity
handleFolderClick(fi);
}
} else if (v == mAllAppsButton) {
- if (mState == State.APPS_CUSTOMIZE) {
+ if (isAllAppsVisible()) {
showWorkspace(true);
} else {
onClickAllAppsButton(v);
@@ -2338,7 +2336,7 @@ public final class Launcher extends Activity
// Now a part of LauncherModel.Callbacks. Used to reorder loading steps.
public boolean isAllAppsVisible() {
- return (mState == State.APPS_CUSTOMIZE);
+ return (mState == State.APPS_CUSTOMIZE) || (mOnResumeState == State.APPS_CUSTOMIZE);
}
public boolean isAllAppsButtonRank(int rank) {
@@ -2358,7 +2356,7 @@ public final class Launcher extends Activity
void disableWallpaperIfInAllApps() {
// Only disable it if we are in all apps
- if (mState == State.APPS_CUSTOMIZE) {
+ if (isAllAppsVisible()) {
if (mAppsCustomizeTabHost != null &&
!mAppsCustomizeTabHost.isTransitioning()) {
updateWallpaperVisibility(false);
@@ -2799,7 +2797,7 @@ public final class Launcher extends Activity
}
void enterSpringLoadedDragMode() {
- if (mState == State.APPS_CUSTOMIZE) {
+ if (isAllAppsVisible()) {
hideAppsCustomizeHelper(State.APPS_CUSTOMIZE_SPRING_LOADED, true, true, null);
hideDockDivider();
mState = State.APPS_CUSTOMIZE_SPRING_LOADED;
@@ -2873,10 +2871,6 @@ public final class Launcher extends Activity
// TODO
}
- public boolean isAllAppsCustomizeOpen() {
- return mState == State.APPS_CUSTOMIZE;
- }
-
/**
* Shows the hotseat area.
*/
@@ -3506,23 +3500,30 @@ public final class Launcher extends Activity
* Implementation of the method from LauncherModel.Callbacks.
*/
public void bindAllApplications(final ArrayList<ApplicationInfo> apps) {
+ Runnable setAllAppsRunnable = new Runnable() {
+ public void run() {
+ if (mAppsCustomizeContent != null) {
+ mAppsCustomizeContent.setApps(apps);
+ }
+ }
+ };
+
// Remove the progress bar entirely; we could also make it GONE
// but better to remove it since we know it's not going to be used
View progressBar = mAppsCustomizeTabHost.
findViewById(R.id.apps_customize_progress_bar);
if (progressBar != null) {
((ViewGroup)progressBar.getParent()).removeView(progressBar);
+
+ // We just post the call to setApps so the user sees the progress bar
+ // disappear-- otherwise, it just looks like the progress bar froze
+ // which doesn't look great
+ mAppsCustomizeTabHost.post(setAllAppsRunnable);
+ } else {
+ // If we did not initialize the spinner in onCreate, then we can directly set the
+ // list of applications without waiting for any progress bars views to be hidden.
+ setAllAppsRunnable.run();
}
- // We just post the call to setApps so the user sees the progress bar
- // disappear-- otherwise, it just looks like the progress bar froze
- // which doesn't look great
- mAppsCustomizeTabHost.post(new Runnable() {
- public void run() {
- if (mAppsCustomizeContent != null) {
- mAppsCustomizeContent.setApps(apps);
- }
- }
- });
}
/**
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java
index 637f68ccc..792759399 100644
--- a/src/com/android/launcher2/LauncherModel.java
+++ b/src/com/android/launcher2/LauncherModel.java
@@ -1782,7 +1782,7 @@ public class LauncherModel extends BroadcastReceiver {
@SuppressWarnings("unchecked")
final ArrayList<ApplicationInfo> list
= (ArrayList<ApplicationInfo>) mBgAllAppsList.data.clone();
- mHandler.post(new Runnable() {
+ Runnable r = new Runnable() {
public void run() {
final long t = SystemClock.uptimeMillis();
final Callbacks callbacks = tryGetCallbacks(oldCallbacks);
@@ -1794,7 +1794,13 @@ public class LauncherModel extends BroadcastReceiver {
+ (SystemClock.uptimeMillis()-t) + "ms");
}
}
- });
+ };
+ boolean isRunningOnMainThread = !(sWorkerThread.getThreadId() == Process.myTid());
+ if (oldCallbacks.isAllAppsVisible() && isRunningOnMainThread) {
+ r.run();
+ } else {
+ mHandler.post(r);
+ }
}
private void loadAllAppsByBatch() {
diff --git a/src/com/android/launcher2/PagedViewWidget.java b/src/com/android/launcher2/PagedViewWidget.java
index 66b7080d4..b804ab0a2 100644
--- a/src/com/android/launcher2/PagedViewWidget.java
+++ b/src/com/android/launcher2/PagedViewWidget.java
@@ -21,6 +21,7 @@ import android.content.Context;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
+import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
@@ -44,6 +45,7 @@ public class PagedViewWidget extends LinearLayout {
boolean mShortPressTriggered = false;
static PagedViewWidget sShortpressTarget = null;
boolean mIsAppWidget;
+ private final Rect mOriginalImagePadding = new Rect();
public PagedViewWidget(Context context) {
this(context, null);
@@ -63,6 +65,17 @@ public class PagedViewWidget extends LinearLayout {
setClipToPadding(false);
}
+ @Override
+ protected void onFinishInflate() {
+ super.onFinishInflate();
+
+ final ImageView image = (ImageView) findViewById(R.id.widget_preview);
+ mOriginalImagePadding.left = image.getPaddingLeft();
+ mOriginalImagePadding.top = image.getPaddingTop();
+ mOriginalImagePadding.right = image.getPaddingRight();
+ mOriginalImagePadding.bottom = image.getPaddingBottom();
+ }
+
public static void setDeletePreviewsWhenDetachedFromWindow(boolean value) {
sDeletePreviewsWhenDetachedFromWindow = value;
}
@@ -79,7 +92,7 @@ public class PagedViewWidget extends LinearLayout {
preview.getBitmap().recycle();
}
image.setImageDrawable(null);
- }
+ }
}
}
@@ -117,8 +130,8 @@ public class PagedViewWidget extends LinearLayout {
public int[] getPreviewSize() {
final ImageView i = (ImageView) findViewById(R.id.widget_preview);
int[] maxSize = new int[2];
- maxSize[0] = i.getWidth() - i.getPaddingLeft() - i.getPaddingRight();
- maxSize[1] = i.getHeight() - i.getPaddingTop();
+ maxSize[0] = i.getWidth() - mOriginalImagePadding.left - mOriginalImagePadding.right;
+ maxSize[1] = i.getHeight() - mOriginalImagePadding.top;
return maxSize;
}
@@ -132,10 +145,10 @@ public class PagedViewWidget extends LinearLayout {
// center horizontally
int[] imageSize = getPreviewSize();
int centerAmount = (imageSize[0] - preview.getIntrinsicWidth()) / 2;
- image.setPadding(image.getPaddingLeft() + centerAmount,
- image.getPaddingTop(),
- image.getPaddingRight(),
- image.getPaddingBottom());
+ image.setPadding(mOriginalImagePadding.left + centerAmount,
+ mOriginalImagePadding.top,
+ mOriginalImagePadding.right,
+ mOriginalImagePadding.bottom);
}
image.setAlpha(1f);
image.mAllowRequestLayout = true;
diff --git a/src/com/android/launcher2/PagedViewWithDraggableItems.java b/src/com/android/launcher2/PagedViewWithDraggableItems.java
index 22fd82b69..9cdd74f24 100644
--- a/src/com/android/launcher2/PagedViewWithDraggableItems.java
+++ b/src/com/android/launcher2/PagedViewWithDraggableItems.java
@@ -105,7 +105,7 @@ public abstract class PagedViewWithDraggableItems extends PagedView
// Return early if we are still animating the pages
if (mNextPage != INVALID_PAGE) return false;
// When we have exited all apps or are in transition, disregard long clicks
- if (!mLauncher.isAllAppsCustomizeOpen() ||
+ if (!mLauncher.isAllAppsVisible() ||
mLauncher.getWorkspace().isSwitchingState()) return false;
// Return if global dragging is not enabled
if (!mLauncher.isDraggingEnabled()) return false;