From a00673c7d9f3fcfc81a6e1c6aa7b831951331e84 Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Thu, 14 Aug 2014 12:57:28 -0700 Subject: [PATCH] Fix issues with the new widget layout -> use first layout instead of first measure to determine size -> fix issue where we were doubly accounting for padding of AppsCustomizePagedView -> show page backgrounds by default, hide fake page by default -> stripping some dead code related to the market button and all apps cling Change-Id: I787bdf1092c821b780670098fb219a8a68914bc8 --- res/drawable-hdpi/quantum_panel_dark.9.png | Bin 713 -> 646 bytes res/drawable-mdpi/quantum_panel_dark.9.png | Bin 494 -> 449 bytes res/drawable-xhdpi/quantum_panel_dark.9.png | Bin 951 -> 894 bytes res/drawable-xxhdpi/quantum_panel_dark.9.png | Bin 1425 -> 1366 bytes res/layout/apps_customize_pane.xml | 10 +-- .../launcher3/AppsCustomizePagedView.java | 48 ++---------- src/com/android/launcher3/FocusHelper.java | 45 ----------- src/com/android/launcher3/Launcher.java | 72 +----------------- 8 files changed, 9 insertions(+), 166 deletions(-) diff --git a/res/drawable-hdpi/quantum_panel_dark.9.png b/res/drawable-hdpi/quantum_panel_dark.9.png index 057efd157bd970dec094a71438c04800570e7b5a..abaf23026df0007d804d7b840bc7777dce82b956 100644 GIT binary patch delta 584 zcmV-O0=NCi1%?HXNq;CwL_t(&f$f>GZWJ*PhCh4nlp-8C9so)jM3oBOfM?-dQqYou zH=*GbXy^#gMM4m`gv;4O;We>Ng5B}0_t=v^$+BeWJoE3^bGtK!VUdCMF$3*WsZ=V% zuxnNtBdcX+;2h^nGMlZnp^;>kt+h^ON@FG&wjFW31W}YHLw}$~Tq>$*ho$V%OvQP? zaVNBsoX9l~A3u3?ytw}cW1dm|-u)8q&sRULUVZxT{v$z{pz%-~*%H8b zk-!ktx4C^sC~cQSMCAMW=KA&Jmy0u$T^`N1oFNoN?*R{h zC2&NU9$k9$9Iyg@0$+hE;I_{un$lj3+#0wh2z8YG;Eg@GRcmui&khgh>y}a6iXdps zIO1;Fp+ORtK0 z6i9Du-@TJ&8@E7{;=4K}wX9ObfByJ-_XXg|1$}5GmJXE>%WmJ>d6;C`Q^UPW;iuCl zA9i0p1E$O*&m>f?d<3&=H@B}}xw^Hds$DNZZ7fBSBqYvFMuX$~`|tMN04K~I(SKrj zEFF+u=v~@z&VO~M-lJOAQu6P3?@2qI?&ihb1K>S*^nysvzU0)ksiIw+Yeei1&H=hf z9*p2VTjU&&sz_Sj;y)BcRjadf5LUTFy-!t|l~YkvBq5L7O5^~Xh&X9rBB>%Gh)8wu z5Q19e5EN*1|LxQM za{{-~OG4$!G?Jf;N8{nq;Un?>ErzY_1yK<>7#2W*MF!EOJUdViRCg zIbXHh3Ax;ad@zIGIqRcT=IJ`*1Cz44t%`Em_vC`XdAX8BJ5>r<_wTJ#bKuP;C?b(a mBoc|7A9b%T{;Pkd{{}pE>at&`U=9EP002ovP6b4+LSTYPQ9a-Q diff --git a/res/drawable-mdpi/quantum_panel_dark.9.png b/res/drawable-mdpi/quantum_panel_dark.9.png index 7837e48081ccf930c02c9794535bbd5d5621f2aa..7728a72684e14362ff2c5395dba58bf31a3e7290 100644 GIT binary patch delta 385 zcmV-{0e=4O1Hl83Nq=KWL_t(oh3%J3O2j}AMqlT5GazK)5!}1+E^`adFne8j1~=Zs zjeCzEqRvEAoTSS|dPD|HbMN##rRCQMy#z_YHn~`~aKtwQx3Mf$8NCQiNVgjaLxmbmk+ozdR zYtAtT!vVy}x&t(oX$^ZqGjjD!Mnqn49A7L*x~B z0^a-Jw4L7qU%;FD&PRgnVr_xi#SE$#bXCiNl5X=10c(M82N(>t^9#N3WzV9bqK-^_4b}F00000NkvXXu0mjfU}v@5 delta 431 zcmV;g0Z{(I1MUNmNq>+@L_t(oh3%NjO2a@DK+hzp6`xg57m6adaN)N2N&bN!;6J$W zUtGI#DX8c|L=hm)WrAI_j<7E^$~R9lq8-3KOHXP7_xGTSvx7Zel|jvtl!! z8HESije8^DjF{w9nrx`zYj%N6*~d3{FjRr|PqC2eDtPlTTY= z#o#SI&5uLmqkER-!pt1`=Gv1-c^}oJALrZCU()q@#q|4sf9)%O{>Aoa*#+6}>#g3! z3$Qo}wEXYa`zG#uWAm0>`q|kIS%*vI(=yv%A5&4>f5z8&5%2f4^(+bZaJY{rdU?~3Ctg=shJsnWesq@sCES>vAlj_(B~ ze(_pM7FyP4VKRT39sQj%YC&Ej|RWeRYfwITP*F3)>g5-%+XGo8Jyq|=k{ z%g>&z#vPt~5ahyBzS~AZWs;1*WSJMgf4`XPpmdVakT7aA^SRZk|F*u##7o6eAnB5x zOMtBYSv$3>+5FrI&ptnlel%&e>(bscpL$hx9}0aQ`R&%``R7i4elug%y=Ap6%c2=Y zp2shD&!`o=5bpk>`?LOKWhU<_j~Q5(Z74DMUHCEh@a#gXox(>y-aSy~tl1E`EkdS# zeqGhKx1W#mAJ9+mixj%CWy5FJ6ZQ6tLZ_;Z*ghz`s&+uvY`*EsNxy0qH?l6ZoE|!R zqtPls#Zc8Y9Xkle$F;IxAuPmk|yWwFTTz6P_%m48U`TnboFyt I=akR{0Ov@F&;S4c delta 891 zcmV->1BCqk2Db;0Nq<>ML_t(|ob8;;ZqzUoK#!9E1=N>XRXl}I*IlvaBf3C*4*$Rw zu}1w17KjC6g%D!VR=lYE8ankD=+Cdtw z-!xpmq9}@@C>M_=))$koW*O{eRe(b*3+1l6z`sMF! z<$5hb8{-6}K)Ss0;Nj(|sWo6Gu)Zef^p1}ot-pKwl0sCUz#bJMsoIOO8+Y$7F5JBR z4ww_bTKmrzw|_yBB(7n5-@klb+1cLQ1#$+GYKe*&ZV8agE-tNN%$$gj=Xqdtqs3ZF zmSq@Y=4Ka{R(G~HpHakHTM!H;*$@nnCTViZ7!Yatkx@NF1Y;mclUo$iLhw8pD(Q5% ziI7gl`td9bMSNrozI|&GD=9%FrZ+ZE5uYoqN}_zj)PIUiCT*xWLY^YXwhD$YQ_PXMc~bzV-3_ zQxQ1=j)5KnS#@|4+L#2m1Y8BK1Jl4Y;0k|dm9-&kcxyx-=mLj82RHzZfD`IV3QoOo z!|jCP6FO$_ht7=1e4q&21f5ezay`h&X?1Ujla!Z1xZcwzGSfAZ;kcZnYNC5>Vv@Kl zg>;l&<>wO$VdL0@Q{8;y;_8-1w`C%T*hUyQ&6Cc`bJwfJIo#Y{lDsT^B9<#b!$rV50p*P`^^;9a(W+w6Nh4p0EC!x@p=7>TNjSMuaef^x^H6ae0!71 z*iAmHeY*C0Tr=L@UT=GGw?=R47ClYJ+}C{{U0&T#|Dtl)=+do8x1xVX=&P(*S3Xx` z#rMN)$#ERonX#L=zSdnVT%+#d6k_jgqO7-DM{)TU-$hIff@bcs&4pfldYO^Ee_Cx= zW9^dTOZQw~zyIsOd-W;5Bpa?9@MOAw{=9j1{hgmrt=BB#&G0%UTd4WG_wq`A7g2_; zZ1a1S`SnIW*%V{WR_t4=xb(~QKY#u#uHJv|ALCYwn?h#hL2)lib}Hq@X2~#0y!Brm z-`>c@+#qmh_3z6s!x`?e1nAzoHfhtc6EPE)E$zKhSM&DQ?f3rteEX&**C+L?NP6>6 zB)zAL$#r8+@Y2nfFY~{@`}1ctgKAdgB%{*ir~fB))!RR_zkKzGzS`!Sx-9|%Oi5nN zf@}<-Jsp~iiVTV^Cv(cU&mI#`xbWhXrf4g+ET|g@ip@tM~cY4?ee9meY6z6K=fyQ#zx!h2z>w!9s__ zVXy07Xe@qtcvrV?(f190rw<6cGD+fDYT0s0#wn9;p-FqdEN6|gil2BRA91*WnNyw# zcolnG7uPyD?XX8N2ZmCxJYL}>&D`nxS+b+bfCd(M*Ju0h+H-owUFL3&#T!H|pX4;P|bZxt0bMohDpnv<;E8TwOLPjAhFlS(Gbx14KbnP+GBQ)c%> zqsy1w)#DTXTAAG3(6fa_LH54ARgd94Q;YLqg2{WTYyQ6wFf0COenQpPK6H|l*3Efy zZT_f)UCozBJF>K1V)gy`wpBkgLuOvw`_D(LXnlj?CXHX6&tb`bt`V zZ_(4o7w_HM{i6Kswm(Zs!lpfatA3n+U(KHf=bahO2b#N_6JLKmz~4c38*3>{ddRBTjf-H z(CF&UjwvRFZTDN>mxKna%I%waV4IHk>*bzy;+e%)CaSV_ez1MNyF(zdN?-Hhnt$hX zeZzMN6*87Ox~+Y@OYFesCJ#;PZDlPxBjSS6)~pGzudQ-b&Rp^$)z-#sb_(}OHmxhA zH)VVa)dbUL%Bh}u^1Nf2N&n?%+v=^)MBS1RpZ!NI!sD{|YJIzeuO(e32l@?qr(Nr_ zx_pJ>#Q_*K{HyZ%Te4z%n^VSn-X{=ePd@+%}hSO4Pw_gTe~DWM4f7V3G6 delta 1370 zcmZ{kdpy$%0L3>oY?O3mj66nKS*a*W*j%f56)jyMT$9YBrIlCKMi}CHwA7u~v@nVu zNJ(g{Fwa$U(QO{tyz0h}xnAw|sr%pk-1EoxbI$pkzmEu(t&)YOLChT;uqUJQKNZ-K zb#Yn@TJ;rKftp5YiUJgBoOMS7>z|0n#V0yIA%1klMz9Ag1jZ$CC(y9ga~Ne98w)c@ zLk6bcT@r4z9s3-)Sn@}~%*;dSaP$YDQ7Sgdh$NFQQ>rtiJ>7-U%UUKEg? z;wF1#!*8G|8@6f*@(I=(fGFqR&Ck3_N(Vgm$58K_94Gl<`m4oJorsIAYj=as)Ocoz zgBbZl=;VNGt4dva?^Ay&Z&X7X?&#x_7w{_s>cT^fGa%^AxwzLYlwEz>cW81%hf8xc z`}NE^$V8H65_nBm;jdFPo#htbM55N3s^nZ5q46X`oQ2t=-OpS>(@?+`y1x0UM{bc^ z2B_(COih@#Pike!%xsvNqAFdw^3<~I|BIm{`o2r^96zO32+sC{b?owRX z31^__mgUMp`s#ZLfAMH&Xc6ePaVOa=rLEvGYInGNehm(Cy2J-V`6RqbUTfcVIL((z z*;jD&6R=sG=>f?uUK^g82<$fO0ls9tUz5rNO=S7SEwxr=W~6X|9<@VmqNjccbe_6z zX;b$>DgHR zXM73ZK8LWYNbQc>cIi#6NcKk2HlAD6xp$()-r+7GRvMUAKO+ol@unLawKKao+ryAR z%P}7uD^02tfEg`S?UG^;L&x>bg7 z>Z>bde%oNroB9o3E0Dsb2gb)=lzNn5ygXk8`7PKU^&WKUPH4TfVzD+ClA)K1WCm?= zGFL9qP86!zlN5_BuDP+WtHg)^Wzlzw>M~#kWqq04xmO{Sh5erXyQlq6|Dz5kl`SwH zR*VO^n&U%AA)$Rb+b0)#xg-sdexRYYVB(FWBSv+@!dz*N2##kf7W`zE9T~|U0bWPd$79f zaauD9JhSdL_-ST+rb@rmF7m3EP{gVM`=@z*_&8(UQ)ow#O-A*QtTP`rDVJJy!&<~$VaOJ-Na8`X@spvRODkPxix zR`yK^P6pW+8+KxMuw>{0Bi1ICQI7$F#DWUeTJ$8vv=vL2*py>*z((bJFyt+VqH~ZTxeh#8%;HqKH#XS%q{0wFo&8B+_5j~ zRBzY*Z;p+<#x$*R1}f?Eyis-qt|{W^hvZuFm`T!)02L;6^oIC1jDr z64K8D6MUwds>MU&(cR6KsgL#$g!C#a_KS8^;v>&{B+M^IQ0R1Mg^6l!lP3cwK9j@} z-6HVX5_h7<68Q07mVfgmy6c9%Lr6|bAk~QURrj_8>W`QDepUY>5T`vwlo#7P(SLh+ Y8BTx;)teRL1)y(o#2s^}viDE;2VQiUn*aa+ diff --git a/res/layout/apps_customize_pane.xml b/res/layout/apps_customize_pane.xml index b1ba8d1034..c2d399e291 100644 --- a/res/layout/apps_customize_pane.xml +++ b/res/layout/apps_customize_pane.xml @@ -40,6 +40,7 @@ android:id="@+id/fake_page" android:layout_width="match_parent" android:layout_height="match_parent" + android:visibility="invisible" android:clipToPadding="false" /> - - - diff --git a/src/com/android/launcher3/AppsCustomizePagedView.java b/src/com/android/launcher3/AppsCustomizePagedView.java index 2e81b93263..787bf96d22 100644 --- a/src/com/android/launcher3/AppsCustomizePagedView.java +++ b/src/com/android/launcher3/AppsCustomizePagedView.java @@ -214,7 +214,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen int mWidgetLoadingId = -1; PendingAddWidgetInfo mCreateWidgetInfo = null; private boolean mDraggingWidget = false; - boolean mPageBackgroundsVisible; + boolean mPageBackgroundsVisible = true; private Toast mWidgetInstructionToast; @@ -376,52 +376,19 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen mWidgetSpacingLayout.measure(widthSpec, heightSpec); final boolean hostIsTransitioning = getTabHost().isInTransition(); - - // Restore the page int page = getPageForComponent(mSaveInstanceStateItemIndex); invalidatePageData(Math.max(0, page), hostIsTransitioning); - - // Show All Apps cling if we are finished transitioning, otherwise, we will try again when - // the transition completes in AppsCustomizeTabHost (otherwise the wrong offsets will be - // returned while animating) - if (!hostIsTransitioning) { - post(new Runnable() { - @Override - public void run() { - showAllAppsCling(); - } - }); - } } - void showAllAppsCling() { - if (!mHasShownAllAppsCling && isDataReady()) { - mHasShownAllAppsCling = true; - // Calculate the position for the cling punch through - int[] offset = new int[2]; - int[] pos = mWidgetSpacingLayout.estimateCellPosition(mClingFocusedX, mClingFocusedY); - mLauncher.getDragLayer().getLocationInDragLayer(this, offset); - // PagedViews are centered horizontally but top aligned - // Note we have to shift the items up now that Launcher sits under the status bar - pos[0] += (getMeasuredWidth() - mWidgetSpacingLayout.getMeasuredWidth()) / 2 + - offset[0]; - pos[1] += offset[1] - mLauncher.getDragLayer().getPaddingTop(); - } - } + protected void onLayout(boolean changed, int l, int t, int r, int b) { + super.onLayout(changed, l, t, r, b); - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - int width = MeasureSpec.getSize(widthMeasureSpec); - int height = MeasureSpec.getSize(heightMeasureSpec); if (!isDataReady()) { if ((LauncherAppState.isDisableAllApps() || !mApps.isEmpty()) && !mWidgets.isEmpty()) { setDataIsReady(); - setMeasuredDimension(width, height); - onDataReady(width, height); + onDataReady(getMeasuredWidth(), getMeasuredHeight()); } } - - super.onMeasure(widthMeasureSpec, heightMeasureSpec); } public void onPackagesUpdated(ArrayList widgetsAndShortcuts) { @@ -1179,11 +1146,10 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen // Calculate the dimensions of each cell we are giving to each widget final ArrayList items = new ArrayList(); - int contentWidth = mContentWidth - getPaddingLeft() - getPaddingRight() - - layout.getPaddingLeft() - layout.getPaddingRight(); + int contentWidth = mContentWidth - layout.getPaddingLeft() - layout.getPaddingRight(); final int cellWidth = contentWidth / mWidgetCountX; - int contentHeight = mContentHeight - getPaddingTop() - getPaddingBottom() - - layout.getPaddingTop() - layout.getPaddingBottom(); + int contentHeight = mContentHeight - layout.getPaddingTop() - layout.getPaddingBottom(); + final int cellHeight = contentHeight / mWidgetCountY; // Prepare the set of widgets to load previews for in the background diff --git a/src/com/android/launcher3/FocusHelper.java b/src/com/android/launcher3/FocusHelper.java index b1250ceead..df5e0fc33c 100644 --- a/src/com/android/launcher3/FocusHelper.java +++ b/src/com/android/launcher3/FocusHelper.java @@ -57,16 +57,6 @@ class HotseatIconKeyEventListener implements View.OnKeyListener { } } -/** - * A keyboard listener we set on the last tab button in AppsCustomize to jump to then - * market icon and vice versa. - */ -class AppsCustomizeTabKeyEventListener implements View.OnKeyListener { - public boolean onKey(View v, int keyCode, KeyEvent event) { - return FocusHelper.handleAppsCustomizeTabKeyEvent(v, keyCode, event); - } -} - public class FocusHelper { /** * Private helper to get the parent TabHost in the view hiearchy. @@ -79,41 +69,6 @@ public class FocusHelper { return (AppsCustomizeTabHost) p; } - /** - * Handles key events in a AppsCustomize tab between the last tab view and the shop button. - */ - static boolean handleAppsCustomizeTabKeyEvent(View v, int keyCode, KeyEvent e) { - final AppsCustomizeTabHost tabHost = findTabHostParent(v); - final ViewGroup contents = tabHost.getContent(); - final View shop = tabHost.findViewById(R.id.market_button); - - final int action = e.getAction(); - final boolean handleKeyEvent = (action != KeyEvent.ACTION_UP); - boolean wasHandled = false; - switch (keyCode) { - case KeyEvent.KEYCODE_DPAD_RIGHT: - if (handleKeyEvent) { - // Select the shop button if we aren't on it - if (v != shop) { - shop.requestFocus(); - } - } - wasHandled = true; - break; - case KeyEvent.KEYCODE_DPAD_DOWN: - if (handleKeyEvent) { - // Select the content view (down is handled by the tab key handler otherwise) - if (v == shop) { - contents.requestFocus(); - wasHandled = true; - } - } - break; - default: break; - } - return wasHandled; - } - /** * Returns the Viewgroup containing page contents for the page at the index specified. */ diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 31482f77e3..8995856a48 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -329,10 +329,6 @@ public class Launcher extends Activity // External icons saved in case of resource changes, orientation, etc. private static Drawable.ConstantState[] sGlobalSearchIcon = new Drawable.ConstantState[2]; private static Drawable.ConstantState[] sVoiceSearchIcon = new Drawable.ConstantState[2]; - private static Drawable.ConstantState[] sAppMarketIcon = new Drawable.ConstantState[2]; - - private Intent mAppMarketIntent = null; - private static final boolean DISABLE_MARKET_BUTTON = true; private Drawable mWorkspaceBackgroundDrawable; @@ -557,11 +553,7 @@ public class Launcher extends Activity boolean voiceVisible = false; // If we have a saved version of these external icons, we load them up immediately int coi = getCurrentOrientationIndexForGlobalIcons(); - if (sGlobalSearchIcon[coi] == null || sVoiceSearchIcon[coi] == null || - sAppMarketIcon[coi] == null) { - if (!DISABLE_MARKET_BUTTON) { - updateAppMarketIcon(); - } + if (sGlobalSearchIcon[coi] == null || sVoiceSearchIcon[coi] == null) { searchVisible = updateGlobalSearchIcon(); voiceVisible = updateVoiceSearchIcon(searchVisible); } @@ -573,9 +565,6 @@ public class Launcher extends Activity updateVoiceSearchIcon(sVoiceSearchIcon[coi]); voiceVisible = true; } - if (!DISABLE_MARKET_BUTTON && sAppMarketIcon[coi] != null) { - updateAppMarketIcon(sAppMarketIcon[coi]); - } if (mSearchDropTargetBar != null) { mSearchDropTargetBar.onSearchPackagesChanged(searchVisible, voiceVisible); } @@ -1753,11 +1742,6 @@ public class Launcher extends Activity } }); } - // When Launcher comes back to foreground, a different Activity might be responsible for - // the app market intent, so refresh the icon - if (!DISABLE_MARKET_BUTTON) { - updateAppMarketIcon(); - } clearTypedText(); } } @@ -2739,16 +2723,6 @@ public class Launcher extends Activity return mHapticFeedbackTouchListener; } - public void onClickAppMarketButton(View v) { - if (!DISABLE_MARKET_BUTTON) { - if (mAppMarketIntent != null) { - startActivitySafely(v, mAppMarketIntent, "app market"); - } else { - Log.e(TAG, "Invalid app market intent."); - } - } - } - public void onDragStarted(View view) {} /** @@ -4008,44 +3982,6 @@ public class Launcher extends Activity public void disableVoiceButtonProxy(boolean disabled) { updateVoiceButtonProxyVisible(disabled); } - /** - * Sets the app market icon - */ - private void updateAppMarketIcon() { - if (!DISABLE_MARKET_BUTTON) { - final View marketButton = findViewById(R.id.market_button); - Intent intent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_APP_MARKET); - // Find the app market activity by resolving an intent. - // (If multiple app markets are installed, it will return the ResolverActivity.) - ComponentName activityName = intent.resolveActivity(getPackageManager()); - if (activityName != null) { - int coi = getCurrentOrientationIndexForGlobalIcons(); - mAppMarketIntent = intent; - sAppMarketIcon[coi] = updateTextButtonWithIconFromExternalActivity( - R.id.market_button, activityName, R.drawable.ic_launcher_market_holo, - TOOLBAR_ICON_METADATA_NAME); - marketButton.setVisibility(View.VISIBLE); - } else { - // We should hide and disable the view so that we don't try and restore the visibility - // of it when we swap between drag & normal states from IconDropTarget subclasses. - marketButton.setVisibility(View.GONE); - marketButton.setEnabled(false); - } - } - } - - private void updateAppMarketIcon(Drawable.ConstantState d) { - if (!DISABLE_MARKET_BUTTON) { - // Ensure that the new drawable we are creating has the approprate toolbar icon bounds - Resources r = getResources(); - Drawable marketIconDrawable = d.newDrawable(r); - int w = r.getDimensionPixelSize(R.dimen.toolbar_external_icon_width); - int h = r.getDimensionPixelSize(R.dimen.toolbar_external_icon_height); - marketIconDrawable.setBounds(0, 0, w, h); - - updateTextButtonWithDrawable(R.id.market_button, marketIconDrawable); - } - } @Override public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) { @@ -4553,12 +4489,6 @@ public class Launcher extends Activity mWorkspace.restoreInstanceStateForRemainingPages(); - // Update the market app icon as necessary (the other icons will be managed in response to - // package changes in bindSearchablesChanged() - if (!DISABLE_MARKET_BUTTON) { - updateAppMarketIcon(); - } - setWorkspaceLoading(false); sendLoadingCompleteBroadcastIfNecessary();