diff options
author | Ed Heyl <ed@google.com> | 2012-07-25 15:04:00 -0700 |
---|---|---|
committer | Ed Heyl <ed@google.com> | 2012-07-25 15:04:00 -0700 |
commit | 8165f0dd202a2c0fbf0816f7613d66938955dc76 (patch) | |
tree | 2c14522ad8a3a3150417c53664c0266874a76fc8 /src/com/android/launcher2 | |
parent | 90abcc94258ba9d9c8b68ac9764b6ab1eba12985 (diff) | |
parent | 4f174f1d27adbde6f50e11ee3a8eaf162a030284 (diff) | |
download | android_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/com/android/launcher2')
-rw-r--r-- | src/com/android/launcher2/AppsCustomizePagedView.java | 2 | ||||
-rw-r--r-- | src/com/android/launcher2/AppsCustomizeTabHost.java | 7 | ||||
-rw-r--r-- | src/com/android/launcher2/Launcher.java | 47 | ||||
-rw-r--r-- | src/com/android/launcher2/LauncherModel.java | 10 | ||||
-rw-r--r-- | src/com/android/launcher2/PagedViewWidget.java | 27 | ||||
-rw-r--r-- | src/com/android/launcher2/PagedViewWithDraggableItems.java | 2 |
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; |