summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/launcher3/CellLayout.java6
-rw-r--r--src/com/android/launcher3/CropView.java13
-rw-r--r--src/com/android/launcher3/DynamicGrid.java2
-rw-r--r--src/com/android/launcher3/LiveWallpaperListAdapter.java48
-rw-r--r--src/com/android/launcher3/MarketUpdateReceiver.java86
-rw-r--r--src/com/android/launcher3/PagedView.java90
-rw-r--r--src/com/android/launcher3/SavedWallpaperImages.java4
-rw-r--r--src/com/android/launcher3/ShortcutAndWidgetContainer.java4
-rw-r--r--src/com/android/launcher3/WallpaperCropActivity.java2
-rw-r--r--src/com/android/launcher3/WallpaperPickerActivity.java86
-rw-r--r--src/com/android/launcher3/Workspace.java33
11 files changed, 175 insertions, 199 deletions
diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java
index 72a6ce2e1..1d10553f7 100644
--- a/src/com/android/launcher3/CellLayout.java
+++ b/src/com/android/launcher3/CellLayout.java
@@ -1009,11 +1009,13 @@ public class CellLayout extends ViewGroup {
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
+ int offset = getMeasuredWidth() - getPaddingLeft() - getPaddingRight() -
+ (mCountX * mCellWidth);
+ int left = getPaddingLeft() + (int) Math.ceil(offset / 2f);
+ int top = getPaddingTop();
int count = getChildCount();
for (int i = 0; i < count; i++) {
View child = getChildAt(i);
- int left = getPaddingLeft();
- int top = getPaddingTop();
child.layout(left, top,
left + r - l,
top + b - t);
diff --git a/src/com/android/launcher3/CropView.java b/src/com/android/launcher3/CropView.java
index f68f739d7..c8b974d01 100644
--- a/src/com/android/launcher3/CropView.java
+++ b/src/com/android/launcher3/CropView.java
@@ -197,13 +197,14 @@ public class CropView extends TiledImageView implements OnScaleGestureListener {
float squaredDist = (mFirstX - x) * (mFirstX - x) + (mFirstY - y) * (mFirstY - y);
float slop = config.getScaledTouchSlop() * config.getScaledTouchSlop();
long now = System.currentTimeMillis();
- // only do this if it's a small movement
- if (mTouchCallback != null &&
- squaredDist < slop &&
- now < mTouchDownTime + ViewConfiguration.getTapTimeout()) {
- mTouchCallback.onTap();
+ if (mTouchCallback != null) {
+ // only do this if it's a small movement
+ if (squaredDist < slop &&
+ now < mTouchDownTime + ViewConfiguration.getTapTimeout()) {
+ mTouchCallback.onTap();
+ }
+ mTouchCallback.onTouchUp();
}
- mTouchCallback.onTouchUp();
}
if (!mTouchEnabled) {
diff --git a/src/com/android/launcher3/DynamicGrid.java b/src/com/android/launcher3/DynamicGrid.java
index 8a6fbc1b8..065d7a759 100644
--- a/src/com/android/launcher3/DynamicGrid.java
+++ b/src/com/android/launcher3/DynamicGrid.java
@@ -460,7 +460,7 @@ class DeviceProfile {
lp = (FrameLayout.LayoutParams) pageIndicator.getLayoutParams();
lp.gravity = Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM;
lp.width = LayoutParams.WRAP_CONTENT;
- lp.height = pageIndicatorHeightPx;
+ lp.height = LayoutParams.WRAP_CONTENT;
lp.bottomMargin = hotseatBarHeightPx;
pageIndicator.setLayoutParams(lp);
}
diff --git a/src/com/android/launcher3/LiveWallpaperListAdapter.java b/src/com/android/launcher3/LiveWallpaperListAdapter.java
index 4b597946f..54e0af749 100644
--- a/src/com/android/launcher3/LiveWallpaperListAdapter.java
+++ b/src/com/android/launcher3/LiveWallpaperListAdapter.java
@@ -93,6 +93,7 @@ public class LiveWallpaperListAdapter extends BaseAdapter implements ListAdapter
WallpaperPickerActivity.setWallpaperItemPaddingToZero((FrameLayout) view);
LiveWallpaperTile wallpaperInfo = mWallpapers.get(position);
+ wallpaperInfo.setView(view);
ImageView image = (ImageView) view.findViewById(R.id.wallpaper_image);
ImageView icon = (ImageView) view.findViewById(R.id.wallpaper_icon);
if (wallpaperInfo.mThumbnail != null) {
@@ -174,46 +175,10 @@ public class LiveWallpaperListAdapter extends BaseAdapter implements ListAdapter
Intent launchIntent = new Intent(WallpaperService.SERVICE_INTERFACE);
launchIntent.setClassName(info.getPackageName(), info.getServiceName());
LiveWallpaperTile wallpaper = new LiveWallpaperTile(thumb, info, launchIntent);
-
- // TODO: generate a default thumb
- /*
- final Resources res = mContext.getResources();
- Canvas canvas = new Canvas();
- Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.DITHER_FLAG);
- paint.setTextAlign(Paint.Align.CENTER);
- BitmapDrawable galleryIcon = (BitmapDrawable) res.getDrawable(
- R.drawable.livewallpaper_placeholder);
- if (thumb == null) {
- int thumbWidth = res.getDimensionPixelSize(
- R.dimen.live_wallpaper_thumbnail_width);
- int thumbHeight = res.getDimensionPixelSize(
- R.dimen.live_wallpaper_thumbnail_height);
-
- Bitmap thumbnail = Bitmap.createBitmap(thumbWidth, thumbHeight,
- Bitmap.Config.ARGB_8888);
-
- paint.setColor(res.getColor(R.color.live_wallpaper_thumbnail_background));
- canvas.setBitmap(thumbnail);
- canvas.drawPaint(paint);
-
- galleryIcon.setBounds(0, 0, thumbWidth, thumbHeight);
- galleryIcon.setGravity(Gravity.CENTER);
- galleryIcon.draw(canvas);
-
- String title = info.loadLabel(packageManager).toString();
-
- paint.setColor(res.getColor(R.color.live_wallpaper_thumbnail_text_color));
- paint.setTextSize(
- res.getDimensionPixelSize(R.dimen.live_wallpaper_thumbnail_text_size));
-
- canvas.drawText(title, (int) (thumbWidth * 0.5),
- thumbHeight - res.getDimensionPixelSize(
- R.dimen.live_wallpaper_thumbnail_text_offset), paint);
-
- thumb = new BitmapDrawable(res, thumbnail);
- }*/
publishProgress(wallpaper);
}
+ // Send a null object to show loading is finished
+ publishProgress((LiveWallpaperTile) null);
return null;
}
@@ -221,6 +186,10 @@ public class LiveWallpaperListAdapter extends BaseAdapter implements ListAdapter
@Override
protected void onProgressUpdate(LiveWallpaperTile...infos) {
for (LiveWallpaperTile info : infos) {
+ if (info == null) {
+ LiveWallpaperListAdapter.this.notifyDataSetChanged();
+ break;
+ }
info.mThumbnail.setDither(true);
if (mWallpaperPosition < mWallpapers.size()) {
mWallpapers.set(mWallpaperPosition, info);
@@ -228,9 +197,6 @@ public class LiveWallpaperListAdapter extends BaseAdapter implements ListAdapter
mWallpapers.add(info);
}
mWallpaperPosition++;
- if (mWallpaperPosition == getCount()) {
- LiveWallpaperListAdapter.this.notifyDataSetChanged();
- }
}
}
}
diff --git a/src/com/android/launcher3/MarketUpdateReceiver.java b/src/com/android/launcher3/MarketUpdateReceiver.java
deleted file mode 100644
index c41bf3e17..000000000
--- a/src/com/android/launcher3/MarketUpdateReceiver.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.launcher3;
-
-import android.app.Activity;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.util.Log;
-
-public class MarketUpdateReceiver extends BroadcastReceiver {
- private static final String TAG = "MarketUpdateReceiver";
-
- private static final String ACTION_PACKAGE_ENQUEUED =
- "com.android.launcher.action.ACTION_PACKAGE_ENQUEUED";
- private static final String ACTION_PACKAGE_DOWNLOADING =
- "com.android.launcher.action.ACTION_PACKAGE_DOWNLOADING";
- private static final String ACTION_PACKAGE_INSTALLING =
- "com.android.launcher.action.ACTION_PACKAGE_INSTALLING";
- private static final String ACTION_PACKAGE_DEQUEUED =
- "com.android.launcher.action.ACTION_PACKAGE_DEQUEUED";
-
- /** extra for {@link #ACTION_PACKAGE_ENQUEUED}, send on of the following values **/
- private static final String EXTRA_KEY_REASON = "reason";
- private static final String EXTRA_VALUE_REASON_INSTALL = "install";
- private static final String EXTRA_VALUE_REASON_UPDATE = "update";
- private static final String EXTRA_VALUE_REASON_RESTORE = "restore";
-
- /** extra for {@link #ACTION_PACKAGE_DOWNLOADING}, send an int in the range [0-100]. **/
- private static final String EXTRA_KEY_PROGRESS = "progress";
-
- /**
- * extra for {@link #ACTION_PACKAGE_DEQUEUED}
- * send {@link android.app.Activity#RESULT_OK} on success.
- * or {@link android.app.Activity#RESULT_CANCELED} if the package was abandoned.
- * **/
- private static final String EXTRA_KEY_STATUS =
- "com.android.launcher.action.EXTRA_STATUS";
-
- @Override
- public void onReceive(Context context, Intent intent) {
- final String action = intent.getAction();
- String pkgName = "none";
- Uri uri = intent.getData();
- if (uri != null) {
- pkgName = uri.getSchemeSpecificPart();;
- }
- if (ACTION_PACKAGE_ENQUEUED.equals(action)) {
- String reason = "unknown";
- if (intent.hasExtra(EXTRA_KEY_REASON)) {
- reason = intent.getStringExtra(EXTRA_KEY_REASON);
- }
- Log.d(TAG, "market has promised to " + reason + ": " + pkgName);
- } else if (ACTION_PACKAGE_DOWNLOADING.equals(action)) {
- int progress = intent.getIntExtra(EXTRA_KEY_PROGRESS, 0);
- Log.d(TAG, "market is downloading (" + progress + "%): " + pkgName);
- } else if (ACTION_PACKAGE_INSTALLING.equals(action)) {
- Log.d(TAG, "market is installing: " + pkgName);
- } else if ( ACTION_PACKAGE_DEQUEUED.equals(action)) {
- boolean success = Activity.RESULT_OK == intent.getIntExtra(EXTRA_KEY_STATUS,
- Activity.RESULT_CANCELED);
- if (success) {
- Log.d(TAG, "market has installed: " + pkgName);
- } else {
- Log.d(TAG, "market has decided not to install: " + pkgName);
- }
- } else {
- Log.d(TAG, "unknown message " + action);
- }
- }
-}
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index 21826806a..b209436d9 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -826,48 +826,50 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
for (int i = 0; i < childCount; i++) {
// disallowing padding in paged view (just pass 0)
final View child = getPageAt(i);
- final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+ if (child.getVisibility() != GONE) {
+ final LayoutParams lp = (LayoutParams) child.getLayoutParams();
- int childWidthMode;
- int childHeightMode;
- int childWidth;
- int childHeight;
+ int childWidthMode;
+ int childHeightMode;
+ int childWidth;
+ int childHeight;
- if (!lp.isFullScreenPage) {
- if (lp.width == LayoutParams.WRAP_CONTENT) {
- childWidthMode = MeasureSpec.AT_MOST;
- } else {
- childWidthMode = MeasureSpec.EXACTLY;
- }
-
- if (lp.height == LayoutParams.WRAP_CONTENT) {
- childHeightMode = MeasureSpec.AT_MOST;
- } else {
- childHeightMode = MeasureSpec.EXACTLY;
- }
+ if (!lp.isFullScreenPage) {
+ if (lp.width == LayoutParams.WRAP_CONTENT) {
+ childWidthMode = MeasureSpec.AT_MOST;
+ } else {
+ childWidthMode = MeasureSpec.EXACTLY;
+ }
- childWidth = widthSize - horizontalPadding;
- childHeight = heightSize - verticalPadding - mInsets.top - mInsets.bottom;
- mNormalChildHeight = childHeight;
+ if (lp.height == LayoutParams.WRAP_CONTENT) {
+ childHeightMode = MeasureSpec.AT_MOST;
+ } else {
+ childHeightMode = MeasureSpec.EXACTLY;
+ }
- } else {
- childWidthMode = MeasureSpec.EXACTLY;
- childHeightMode = MeasureSpec.EXACTLY;
+ childWidth = widthSize - horizontalPadding;
+ childHeight = heightSize - verticalPadding - mInsets.top - mInsets.bottom;
+ mNormalChildHeight = childHeight;
- if (mUseMinScale) {
- childWidth = getViewportWidth();
- childHeight = getViewportHeight();
} else {
- childWidth = widthSize - getPaddingLeft() - getPaddingRight();
- childHeight = heightSize - getPaddingTop() - getPaddingBottom();
+ childWidthMode = MeasureSpec.EXACTLY;
+ childHeightMode = MeasureSpec.EXACTLY;
+
+ if (mUseMinScale) {
+ childWidth = getViewportWidth();
+ childHeight = getViewportHeight();
+ } else {
+ childWidth = widthSize - getPaddingLeft() - getPaddingRight();
+ childHeight = heightSize - getPaddingTop() - getPaddingBottom();
+ }
}
- }
- final int childWidthMeasureSpec =
- MeasureSpec.makeMeasureSpec(childWidth, childWidthMode);
- final int childHeightMeasureSpec =
- MeasureSpec.makeMeasureSpec(childHeight, childHeightMode);
- child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
+ final int childWidthMeasureSpec =
+ MeasureSpec.makeMeasureSpec(childWidth, childWidthMode);
+ final int childHeightMeasureSpec =
+ MeasureSpec.makeMeasureSpec(childHeight, childHeightMode);
+ child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
+ }
}
setMeasuredDimension(scaledWidthSize, scaledHeightSize);
@@ -928,18 +930,18 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
for (int i = startIndex; i != endIndex; i += delta) {
final View child = getPageAt(i);
- LayoutParams lp = (LayoutParams) child.getLayoutParams();
- int childTop;
- if (lp.isFullScreenPage) {
- childTop = offsetY;
- } else {
- childTop = offsetY + getPaddingTop() + mInsets.top;
- if (mCenterPagesVertically) {
- childTop += (getViewportHeight() - mInsets.top - mInsets.bottom - verticalPadding - child.getMeasuredHeight()) / 2;
+ if (child.getVisibility() != View.GONE) {
+ LayoutParams lp = (LayoutParams) child.getLayoutParams();
+ int childTop;
+ if (lp.isFullScreenPage) {
+ childTop = offsetY;
+ } else {
+ childTop = offsetY + getPaddingTop() + mInsets.top;
+ if (mCenterPagesVertically) {
+ childTop += (getViewportHeight() - mInsets.top - mInsets.bottom - verticalPadding - child.getMeasuredHeight()) / 2;
+ }
}
- }
- if (child.getVisibility() != View.GONE) {
final int childWidth = child.getMeasuredWidth();
final int childHeight = child.getMeasuredHeight();
diff --git a/src/com/android/launcher3/SavedWallpaperImages.java b/src/com/android/launcher3/SavedWallpaperImages.java
index 531672a04..ee4888d2b 100644
--- a/src/com/android/launcher3/SavedWallpaperImages.java
+++ b/src/com/android/launcher3/SavedWallpaperImages.java
@@ -79,6 +79,10 @@ public class SavedWallpaperImages extends BaseAdapter implements ListAdapter {
public boolean isSelectable() {
return true;
}
+ @Override
+ public boolean isNamelessWallpaper() {
+ return true;
+ }
}
public SavedWallpaperImages(Activity context) {
diff --git a/src/com/android/launcher3/ShortcutAndWidgetContainer.java b/src/com/android/launcher3/ShortcutAndWidgetContainer.java
index b9511005e..fcd6f19ae 100644
--- a/src/com/android/launcher3/ShortcutAndWidgetContainer.java
+++ b/src/com/android/launcher3/ShortcutAndWidgetContainer.java
@@ -103,7 +103,9 @@ public class ShortcutAndWidgetContainer extends ViewGroup {
for (int i = 0; i < count; i++) {
View child = getChildAt(i);
- measureChild(child);
+ if (child.getVisibility() != GONE) {
+ measureChild(child);
+ }
}
}
diff --git a/src/com/android/launcher3/WallpaperCropActivity.java b/src/com/android/launcher3/WallpaperCropActivity.java
index 78c8964b6..fe09a552c 100644
--- a/src/com/android/launcher3/WallpaperCropActivity.java
+++ b/src/com/android/launcher3/WallpaperCropActivity.java
@@ -102,8 +102,6 @@ public class WallpaperCropActivity extends Activity {
cropImageAndSetWallpaper(imageUri, null, finishActivityWhenDone);
}
});
- TranslucentDecor transparentDecor = new TranslucentDecor(findViewById(R.id.wallpaper_root));
- transparentDecor.requestTranslucentDecor(true);
}
public boolean enableRotation() {
diff --git a/src/com/android/launcher3/WallpaperPickerActivity.java b/src/com/android/launcher3/WallpaperPickerActivity.java
index 82c9977c7..9d3164bc9 100644
--- a/src/com/android/launcher3/WallpaperPickerActivity.java
+++ b/src/com/android/launcher3/WallpaperPickerActivity.java
@@ -92,10 +92,20 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
private WallpaperInfo mLiveWallpaperInfoOnPickerLaunch;
public static abstract class WallpaperTileInfo {
+ protected View mView;
+ public void setView(View v) {
+ mView = v;
+ }
public void onClick(WallpaperPickerActivity a) {}
public void onSave(WallpaperPickerActivity a) {}
public void onDelete(WallpaperPickerActivity a) {}
public boolean isSelectable() { return false; }
+ public boolean isNamelessWallpaper() { return false; }
+ public void onIndexUpdated(CharSequence label) {
+ if (isNamelessWallpaper()) {
+ mView.setContentDescription(label);
+ }
+ }
}
public static class PickImageInfo extends WallpaperTileInfo {
@@ -136,6 +146,10 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
public boolean isSelectable() {
return true;
}
+ @Override
+ public boolean isNamelessWallpaper() {
+ return true;
+ }
}
public static class ResourceWallpaperInfo extends WallpaperTileInfo {
@@ -171,6 +185,10 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
public boolean isSelectable() {
return true;
}
+ @Override
+ public boolean isNamelessWallpaper() {
+ return true;
+ }
}
public void setWallpaperStripYOffset(float offset) {
@@ -181,8 +199,6 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
protected void init() {
setContentView(R.layout.wallpaper_picker);
final WallpaperRootView root = (WallpaperRootView) findViewById(R.id.wallpaper_root);
- TranslucentDecor transparentDecor = new TranslucentDecor(root);
- transparentDecor.requestTranslucentDecor(true);
mCropView = (CropView) findViewById(R.id.cropView);
mWallpaperStrip = findViewById(R.id.wallpaper_strip);
@@ -282,6 +298,7 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
liveWallpapersView.removeAllViews();
populateWallpapersFromAdapter(liveWallpapersView, a, false, false);
initializeScrollForRtl();
+ updateTileIndices();
}
});
@@ -294,16 +311,16 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
// Add a tile for the Gallery
LinearLayout masterWallpaperList = (LinearLayout) findViewById(R.id.master_wallpaper_list);
- FrameLayout galleryThumbnail = (FrameLayout) getLayoutInflater().
+ FrameLayout pickImageTile = (FrameLayout) getLayoutInflater().
inflate(R.layout.wallpaper_picker_image_picker_item, masterWallpaperList, false);
- setWallpaperItemPaddingToZero(galleryThumbnail);
- masterWallpaperList.addView(galleryThumbnail, 0);
+ setWallpaperItemPaddingToZero(pickImageTile);
+ masterWallpaperList.addView(pickImageTile, 0);
// Make its background the last photo taken on external storage
Bitmap lastPhoto = getThumbnailOfLastPhoto();
if (lastPhoto != null) {
ImageView galleryThumbnailBg =
- (ImageView) galleryThumbnail.findViewById(R.id.wallpaper_image);
+ (ImageView) pickImageTile.findViewById(R.id.wallpaper_image);
galleryThumbnailBg.setImageBitmap(getThumbnailOfLastPhoto());
int colorOverlay = getResources().getColor(R.color.wallpaper_picker_translucent_gray);
galleryThumbnailBg.setColorFilter(colorOverlay, PorterDuff.Mode.SRC_ATOP);
@@ -311,8 +328,12 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
}
PickImageInfo pickImageInfo = new PickImageInfo();
- galleryThumbnail.setTag(pickImageInfo);
- galleryThumbnail.setOnClickListener(mThumbnailOnClickListener);
+ pickImageTile.setTag(pickImageInfo);
+ pickImageInfo.setView(pickImageTile);
+ pickImageTile.setOnClickListener(mThumbnailOnClickListener);
+ pickImageInfo.setView(pickImageTile);
+
+ updateTileIndices();
// Update the scroll for RTL
initializeScrollForRtl();
@@ -396,6 +417,7 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
for (View v : viewsToRemove) {
mWallpapersView.removeView(v);
}
+ updateTileIndices();
mode.finish(); // Action picked, so close the CAB
return true;
} else {
@@ -479,7 +501,9 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
for (int i = 0; i < adapter.getCount(); i++) {
FrameLayout thumbnail = (FrameLayout) adapter.getView(i, null, parent);
parent.addView(thumbnail, i);
- thumbnail.setTag(adapter.getItem(i));
+ WallpaperTileInfo info = (WallpaperTileInfo) adapter.getItem(i);
+ thumbnail.setTag(info);
+ info.setView(thumbnail);
if (addLongPressHandler) {
addLongPressHandler(thumbnail);
}
@@ -490,6 +514,48 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
}
}
+ private void updateTileIndices() {
+ LinearLayout masterWallpaperList = (LinearLayout) findViewById(R.id.master_wallpaper_list);
+ final int childCount = masterWallpaperList.getChildCount();
+ ArrayList<WallpaperTileInfo> tiles = new ArrayList<WallpaperTileInfo>();
+ final Resources res = getResources();
+
+ // Do two passes; the first pass gets the total number of tiles
+ int numTiles = 0;
+ for (int passNum = 0; passNum < 2; passNum++) {
+ int tileIndex = 0;
+ for (int i = 0; i < childCount; i++) {
+ View child = masterWallpaperList.getChildAt(i);
+ LinearLayout subList;
+
+ int subListStart;
+ int subListEnd;
+ if (child.getTag() instanceof WallpaperTileInfo) {
+ subList = masterWallpaperList;
+ subListStart = i;
+ subListEnd = i + 1;
+ } else { // if (child instanceof LinearLayout) {
+ subList = (LinearLayout) child;
+ subListStart = 0;
+ subListEnd = subList.getChildCount();
+ }
+
+ for (int j = subListStart; j < subListEnd; j++) {
+ WallpaperTileInfo info = (WallpaperTileInfo) subList.getChildAt(j).getTag();
+ if (info.isNamelessWallpaper()) {
+ if (passNum == 0) {
+ numTiles++;
+ } else {
+ CharSequence label = res.getString(
+ R.string.wallpaper_accessibility_name, ++tileIndex, numTiles);
+ info.onIndexUpdated(label);
+ }
+ }
+ }
+ }
+ }
+ }
+
private static Point getDefaultThumbnailSize(Resources res) {
return new Point(res.getDimensionPixelSize(R.dimen.wallpaperThumbnailWidth),
res.getDimensionPixelSize(R.dimen.wallpaperThumbnailHeight));
@@ -545,9 +611,11 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
Log.e(TAG, "Error loading thumbnail for uri=" + uri);
}
mWallpapersView.addView(pickedImageThumbnail, 0);
+ updateTileIndices();
UriWallpaperInfo info = new UriWallpaperInfo(uri);
pickedImageThumbnail.setTag(info);
+ info.setView(pickedImageThumbnail);
pickedImageThumbnail.setOnClickListener(mThumbnailOnClickListener);
mThumbnailOnClickListener.onClick(pickedImageThumbnail);
}
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index a81ada831..b9552eaaa 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -459,7 +459,8 @@ public class Workspace extends SmoothPagedView
protected boolean shouldDrawChild(View child) {
final CellLayout cl = (CellLayout) child;
return super.shouldDrawChild(child) &&
- (cl.getShortcutsAndWidgets().getAlpha() > 0 ||
+ (mIsSwitchingState ||
+ cl.getShortcutsAndWidgets().getAlpha() > 0 ||
cl.getBackgroundAlpha() > 0);
}
@@ -1920,7 +1921,8 @@ public class Workspace extends SmoothPagedView
float finalSearchBarAlpha = !stateIsNormal ? 0f : 1f;
float finalWorkspaceTranslationY = stateIsOverview ? getOverviewModeTranslationY() : 0;
- boolean zoomIn = true;
+ boolean workspaceToAllApps = (oldStateIsNormal && stateIsSmall);
+ boolean allAppsToWorkspace = (oldStateIsSmall && stateIsNormal);
mNewScale = 1.0f;
if (oldStateIsOverview) {
@@ -1937,19 +1939,32 @@ public class Workspace extends SmoothPagedView
} else if (stateIsSmall){
mNewScale = mOverviewModeShrinkFactor - 0.3f;
}
- if (oldStateIsNormal && stateIsSmall) {
- zoomIn = false;
+ if (workspaceToAllApps) {
updateChildrenLayersEnabled(false);
}
}
- final int duration = zoomIn ?
+
+ final int duration = workspaceToAllApps ?
getResources().getInteger(R.integer.config_workspaceUnshrinkTime) :
getResources().getInteger(R.integer.config_appsCustomizeWorkspaceShrinkTime);
for (int i = 0; i < getChildCount(); i++) {
final CellLayout cl = (CellLayout) getChildAt(i);
- float finalAlpha = (!mWorkspaceFadeInAdjacentScreens ||
- (i == mCurrentPage)) && !stateIsSmall ? 1f : 0f;
+ boolean isCurrentPage = (i == getNextPage());
float initialAlpha = cl.getShortcutsAndWidgets().getAlpha();
+ float finalAlpha = stateIsSmall ? 0f : 1f;
+
+ // If we are animating to/from the small state, then hide the side pages and fade the
+ // current page in
+ if (!mIsSwitchingState) {
+ if (workspaceToAllApps || allAppsToWorkspace) {
+ if (allAppsToWorkspace && isCurrentPage) {
+ initialAlpha = 0f;
+ } else if (!isCurrentPage) {
+ initialAlpha = finalAlpha = 0f;
+ }
+ cl.setShortcutAndWidgetAlpha(initialAlpha);
+ }
+ }
mOldAlphas[i] = initialAlpha;
mNewAlphas[i] = finalAlpha;
@@ -2109,6 +2124,10 @@ public class Workspace extends SmoothPagedView
private void onTransitionPrepare() {
mIsSwitchingState = true;
+
+ // Invalidate here to ensure that the pages are rendered during the state change transition.
+ invalidate();
+
updateChildrenLayersEnabled(false);
hideCustomContentIfNecessary();
}