Synchronizing on the new-apps list before modifying it. (Bug 6621553)

- Minor tweak to qsb padding
- Adding yet more logging for single-app-page issue

Change-Id: I4272dd7a70c9ac26f026b03a1f991f14844fdb9d
This commit is contained in:
Winson Chung 2012-06-06 15:56:08 -07:00
parent e6d3361ee8
commit bfeac0681b
12 changed files with 35 additions and 29 deletions

View File

@ -32,6 +32,7 @@
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/voice_button_container"
android:paddingLeft="8dp"
android:onClick="onClickSearchButton"
android:focusable="true"
android:clickable="true"
@ -54,6 +55,7 @@
android:layout_gravity="center_vertical"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:paddingRight="8dp"
android:gravity="right"
android:onClick="onClickVoiceButton"
android:focusable="true"

View File

@ -18,8 +18,6 @@
<!-- QSB -->
<dimen name="toolbar_button_vertical_padding">12dip</dimen>
<dimen name="toolbar_button_horizontal_padding">4dip</dimen>
<dimen name="search_bar_padding_left">0dp</dimen>
<dimen name="search_bar_padding_right">0dp</dimen>
<!-- Workspace -->
<dimen name="hotseat_cell_width">64dp</dimen>

View File

@ -18,12 +18,6 @@
-->
<resources>
<!-- QSB -->
<style name="SearchButton.Voice">
<item name="android:paddingLeft">8dp</item>
<item name="android:paddingRight">8dp</item>
</style>
<!-- AppsCustomize -->
<style name="TabIndicator.AppsCustomize">
<item name="android:maxWidth">130dp</item>

View File

@ -30,8 +30,6 @@
<dimen name="qsb_bar_height">40dp</dimen>
<dimen name="qsb_padding_left">0dp</dimen>
<dimen name="qsb_padding_right">0dp</dimen>
<dimen name="search_bar_padding_left">8dp</dimen>
<dimen name="search_bar_padding_right">8dp</dimen>
<dimen name="search_bar_height">40dp</dimen>
<dimen name="workspace_max_gap">16dp</dimen>
<dimen name="folder_cell_width">74dp</dimen>

View File

@ -123,8 +123,6 @@
<item name="android:orientation">horizontal</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="android:paddingLeft">@dimen/search_bar_padding_left</item>
<item name="android:paddingRight">@dimen/search_bar_padding_right</item>
</style>
<style name="SearchButton">
<item name="android:layout_gravity">center_vertical</item>

View File

@ -938,7 +938,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
@Override
public void onLauncherTransitionEnd(Launcher l, boolean animated, boolean toWorkspace) {
Log.d(TAG, "6549598 onLauncherTransitionEnd");
Log.d(TAG, "6549598 onLauncherTransitionEnd mDeferredSyncWidgetPageItems.size(): " + mDeferredSyncWidgetPageItems.size());
mInTransition = false;
for (AsyncTaskPageData d : mDeferredSyncWidgetPageItems) {
onSyncWidgetPageItems(d);
@ -1101,7 +1101,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
}
public void syncAppsPageItems(int page, boolean immediate) {
Log.d(TAG, "6549598 syncAppsPageItems page: " + page);
Log.d(TAG, "6549598 syncAppsPageItems page: " + page + " mNumAppsPages: " + mNumAppsPages);
// ensure that we have the right number of items on the pages
int numCells = mCellCountX * mCellCountY;
int startIndex = page * numCells;

View File

@ -23,6 +23,7 @@ import android.animation.ObjectAnimator;
import android.content.Context;
import android.content.res.Resources;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
@ -392,6 +393,7 @@ public class AppsCustomizeTabHost extends TabHost implements LauncherTransitiona
// Make sure the current page is loaded (we start loading the side pages after the
// transition to prevent slowing down the animation)
Log.d(LOG_TAG, "6549598 onLauncherTransitionPrepare currentPage: " + mAppsCustomizePane.getCurrentPage());
mAppsCustomizePane.loadAssociatedPages(mAppsCustomizePane.getCurrentPage(), true);
if (!LauncherApplication.isScreenLarge()) {
@ -434,6 +436,7 @@ public class AppsCustomizeTabHost extends TabHost implements LauncherTransitiona
mAppsCustomizePane.showAllAppsCling();
// Make sure adjacent pages are loaded (we wait until after the transition to
// prevent slowing down the animation)
Log.d(LOG_TAG, "6549598 onLauncherTransitionEnd currentPage: " + mAppsCustomizePane.getCurrentPage());
mAppsCustomizePane.loadAssociatedPages(mAppsCustomizePane.getCurrentPage());
if (!LauncherApplication.isScreenLarge()) {

View File

@ -185,7 +185,9 @@ public class InstallShortcutReceiver extends BroadcastReceiver {
if (newAppsScreen == screen) {
newApps = sharedPrefs.getStringSet(NEW_APPS_LIST_KEY, newApps);
}
newApps.add(intent.toUri(0).toString());
synchronized (newApps) {
newApps.add(intent.toUri(0).toString());
}
final Set<String> savedNewApps = newApps;
new Thread("setNewAppsThread") {
public void run() {

View File

@ -3165,9 +3165,13 @@ public final class Launcher extends Activity
View shortcut = createShortcut(info);
workspace.addInScreen(shortcut, item.container, item.screen, item.cellX,
item.cellY, 1, 1, false);
if (newApps.contains(uri)) {
newApps.remove(uri);
boolean animateIconUp = false;
synchronized (newApps) {
if (newApps.contains(uri)) {
animateIconUp = newApps.remove(uri);
}
}
if (animateIconUp) {
// Prepare the view to be animated up
shortcut.setAlpha(0f);
shortcut.setScaleX(0f);

View File

@ -234,6 +234,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
mDirtyPageContent.ensureCapacity(32);
mScroller = new Scroller(getContext(), new ScrollInterpolator());
mCurrentPage = 0;
if (this instanceof AppsCustomizePagedView) Log.d(TAG, "6549598 init() mCurrentPage: " + mCurrentPage);
mCenterPagesVertically = true;
final ViewConfiguration configuration = ViewConfiguration.get(getContext());
@ -317,7 +318,9 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
return;
}
mCurrentPage = Math.max(0, Math.min(currentPage, getPageCount() - 1));
if (this instanceof AppsCustomizePagedView) Log.d(TAG, "6549598 setCurrentPage mCurrentPage: " + mCurrentPage);
updateCurrentPageScroll();
updateScrollingIndicator();
notifyPageSwitchListener();

View File

@ -139,9 +139,11 @@ public class UninstallShortcutReceiver extends BroadcastReceiver {
boolean appRemoved;
Set<String> newApps = new HashSet<String>();
newApps = sharedPrefs.getStringSet(InstallShortcutReceiver.NEW_APPS_LIST_KEY, newApps);
do {
appRemoved = newApps.remove(intent.toUri(0).toString());
} while (appRemoved);
synchronized (newApps) {
do {
appRemoved = newApps.remove(intent.toUri(0).toString());
} while (appRemoved);
}
if (appRemoved) {
final Set<String> savedNewApps = newApps;
new Thread("setNewAppsThread-remove") {

View File

@ -3659,14 +3659,16 @@ public class Workspace extends SmoothPagedView
}
// Remove all queued items that match the same package
if (newApps != null) {
for (String intentStr : newApps) {
try {
Intent intent = Intent.parseUri(intentStr, 0);
String pn = ItemInfo.getPackageName(intent);
if (packageNames.contains(pn)) {
newApps.remove(intentStr);
}
} catch (URISyntaxException e) {}
synchronized (newApps) {
for (String intentStr : newApps) {
try {
Intent intent = Intent.parseUri(intentStr, 0);
String pn = ItemInfo.getPackageName(intent);
if (packageNames.contains(pn)) {
newApps.remove(intentStr);
}
} catch (URISyntaxException e) {}
}
}
}
}