summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2013-09-04 14:23:41 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-09-04 14:23:42 +0000
commitd7ac23aec1420d51759fc017455f6d383198e236 (patch)
treebe5c03608ce3a9ef450412328c2926c891f9ffc2 /src
parent4cda5b770db7f375a4766fe6c0d657b9d5303374 (diff)
parenteadbfc564d84aaf1d800da3d0d6edf6312f89648 (diff)
downloadandroid_packages_apps_Trebuchet-d7ac23aec1420d51759fc017455f6d383198e236.tar.gz
android_packages_apps_Trebuchet-d7ac23aec1420d51759fc017455f6d383198e236.tar.bz2
android_packages_apps_Trebuchet-d7ac23aec1420d51759fc017455f6d383198e236.zip
Merge "Move wallpapers to external activity" into jb-ub-gel-agar
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher3/AllAppsList.java38
-rw-r--r--src/com/android/launcher3/AppInfo.java (renamed from src/com/android/launcher3/ApplicationInfo.java)15
-rw-r--r--src/com/android/launcher3/AppsCustomizePagedView.java30
-rw-r--r--src/com/android/launcher3/DeleteDropTarget.java8
-rw-r--r--src/com/android/launcher3/DragController.java4
-rw-r--r--src/com/android/launcher3/Folder.java4
-rw-r--r--src/com/android/launcher3/FolderIcon.java4
-rw-r--r--src/com/android/launcher3/Hotseat.java8
-rw-r--r--src/com/android/launcher3/IconCache.java2
-rw-r--r--src/com/android/launcher3/InfoDropTarget.java4
-rw-r--r--src/com/android/launcher3/Launcher.java19
-rw-r--r--src/com/android/launcher3/LauncherModel.java58
-rw-r--r--src/com/android/launcher3/PagedViewIcon.java2
-rw-r--r--src/com/android/launcher3/PagedViewIconCache.java6
-rw-r--r--src/com/android/launcher3/ShortcutInfo.java6
-rw-r--r--src/com/android/launcher3/WallpaperCropActivity.java11
-rw-r--r--src/com/android/launcher3/WallpaperPickerActivity.java50
-rw-r--r--src/com/android/launcher3/Workspace.java12
-rw-r--r--src/com/android/photos/BitmapRegionTileSource.java21
19 files changed, 162 insertions, 140 deletions
diff --git a/src/com/android/launcher3/AllAppsList.java b/src/com/android/launcher3/AllAppsList.java
index 4d66eb3b0..5d3aa3ab7 100644
--- a/src/com/android/launcher3/AllAppsList.java
+++ b/src/com/android/launcher3/AllAppsList.java
@@ -34,15 +34,15 @@ class AllAppsList {
public static final int DEFAULT_APPLICATIONS_NUMBER = 42;
/** The list off all apps. */
- public ArrayList<ApplicationInfo> data =
- new ArrayList<ApplicationInfo>(DEFAULT_APPLICATIONS_NUMBER);
+ public ArrayList<AppInfo> data =
+ new ArrayList<AppInfo>(DEFAULT_APPLICATIONS_NUMBER);
/** The list of apps that have been added since the last notify() call. */
- public ArrayList<ApplicationInfo> added =
- new ArrayList<ApplicationInfo>(DEFAULT_APPLICATIONS_NUMBER);
+ public ArrayList<AppInfo> added =
+ new ArrayList<AppInfo>(DEFAULT_APPLICATIONS_NUMBER);
/** The list of apps that have been removed since the last notify() call. */
- public ArrayList<ApplicationInfo> removed = new ArrayList<ApplicationInfo>();
+ public ArrayList<AppInfo> removed = new ArrayList<AppInfo>();
/** The list of apps that have been modified since the last notify() call. */
- public ArrayList<ApplicationInfo> modified = new ArrayList<ApplicationInfo>();
+ public ArrayList<AppInfo> modified = new ArrayList<AppInfo>();
private IconCache mIconCache;
@@ -59,7 +59,7 @@ class AllAppsList {
*
* If the app is already in the list, doesn't add it.
*/
- public void add(ApplicationInfo info) {
+ public void add(AppInfo info) {
if (findActivity(data, info.componentName)) {
return;
}
@@ -79,7 +79,7 @@ class AllAppsList {
return data.size();
}
- public ApplicationInfo get(int index) {
+ public AppInfo get(int index) {
return data.get(index);
}
@@ -91,7 +91,7 @@ class AllAppsList {
if (matches.size() > 0) {
for (ResolveInfo info : matches) {
- add(new ApplicationInfo(context.getPackageManager(), info, mIconCache, null));
+ add(new AppInfo(context.getPackageManager(), info, mIconCache, null));
}
}
}
@@ -100,9 +100,9 @@ class AllAppsList {
* Remove the apps for the given apk identified by packageName.
*/
public void removePackage(String packageName) {
- final List<ApplicationInfo> data = this.data;
+ final List<AppInfo> data = this.data;
for (int i = data.size() - 1; i >= 0; i--) {
- ApplicationInfo info = data.get(i);
+ AppInfo info = data.get(i);
final ComponentName component = info.intent.getComponent();
if (packageName.equals(component.getPackageName())) {
removed.add(info);
@@ -122,7 +122,7 @@ class AllAppsList {
// Find disabled/removed activities and remove them from data and add them
// to the removed list.
for (int i = data.size() - 1; i >= 0; i--) {
- final ApplicationInfo applicationInfo = data.get(i);
+ final AppInfo applicationInfo = data.get(i);
final ComponentName component = applicationInfo.intent.getComponent();
if (packageName.equals(component.getPackageName())) {
if (!findActivity(matches, component)) {
@@ -138,11 +138,11 @@ class AllAppsList {
int count = matches.size();
for (int i = 0; i < count; i++) {
final ResolveInfo info = matches.get(i);
- ApplicationInfo applicationInfo = findApplicationInfoLocked(
+ AppInfo applicationInfo = findApplicationInfoLocked(
info.activityInfo.applicationInfo.packageName,
info.activityInfo.name);
if (applicationInfo == null) {
- add(new ApplicationInfo(context.getPackageManager(), info, mIconCache, null));
+ add(new AppInfo(context.getPackageManager(), info, mIconCache, null));
} else {
mIconCache.remove(applicationInfo.componentName);
mIconCache.getTitleAndIcon(applicationInfo, info, null);
@@ -152,7 +152,7 @@ class AllAppsList {
} else {
// Remove all data for this package.
for (int i = data.size() - 1; i >= 0; i--) {
- final ApplicationInfo applicationInfo = data.get(i);
+ final AppInfo applicationInfo = data.get(i);
final ComponentName component = applicationInfo.intent.getComponent();
if (packageName.equals(component.getPackageName())) {
removed.add(applicationInfo);
@@ -194,10 +194,10 @@ class AllAppsList {
/**
* Returns whether <em>apps</em> contains <em>component</em>.
*/
- private static boolean findActivity(ArrayList<ApplicationInfo> apps, ComponentName component) {
+ private static boolean findActivity(ArrayList<AppInfo> apps, ComponentName component) {
final int N = apps.size();
for (int i=0; i<N; i++) {
- final ApplicationInfo info = apps.get(i);
+ final AppInfo info = apps.get(i);
if (info.componentName.equals(component)) {
return true;
}
@@ -208,8 +208,8 @@ class AllAppsList {
/**
* Find an ApplicationInfo object for the given packageName and className.
*/
- private ApplicationInfo findApplicationInfoLocked(String packageName, String className) {
- for (ApplicationInfo info: data) {
+ private AppInfo findApplicationInfoLocked(String packageName, String className) {
+ for (AppInfo info: data) {
final ComponentName component = info.intent.getComponent();
if (packageName.equals(component.getPackageName())
&& className.equals(component.getClassName())) {
diff --git a/src/com/android/launcher3/ApplicationInfo.java b/src/com/android/launcher3/AppInfo.java
index 1b396f752..53f81bb1c 100644
--- a/src/com/android/launcher3/ApplicationInfo.java
+++ b/src/com/android/launcher3/AppInfo.java
@@ -31,8 +31,8 @@ import java.util.HashMap;
/**
* Represents an app in AllAppsView.
*/
-class ApplicationInfo extends ItemInfo {
- private static final String TAG = "Launcher2.ApplicationInfo";
+class AppInfo extends ItemInfo {
+ private static final String TAG = "Launcher3.AppInfo";
/**
* The intent used to start the application.
@@ -56,7 +56,7 @@ class ApplicationInfo extends ItemInfo {
int flags = 0;
- ApplicationInfo() {
+ AppInfo() {
itemType = LauncherSettings.BaseLauncherColumns.ITEM_TYPE_SHORTCUT;
}
@@ -67,7 +67,7 @@ class ApplicationInfo extends ItemInfo {
/**
* Must not hold the Context.
*/
- public ApplicationInfo(PackageManager pm, ResolveInfo info, IconCache iconCache,
+ public AppInfo(PackageManager pm, ResolveInfo info, IconCache iconCache,
HashMap<Object, CharSequence> labelCache) {
final String packageName = info.activityInfo.applicationInfo.packageName;
@@ -104,7 +104,7 @@ class ApplicationInfo extends ItemInfo {
return pi.firstInstallTime;
}
- public ApplicationInfo(ApplicationInfo info) {
+ public AppInfo(AppInfo info) {
super(info);
componentName = info.componentName;
title = info.title.toString();
@@ -136,10 +136,9 @@ class ApplicationInfo extends ItemInfo {
+ " spanX=" + spanX + " spanY=" + spanY + " dropPos=" + dropPos + ")";
}
- public static void dumpApplicationInfoList(String tag, String label,
- ArrayList<ApplicationInfo> list) {
+ public static void dumpApplicationInfoList(String tag, String label, ArrayList<AppInfo> list) {
Log.d(tag, label + " size=" + list.size());
- for (ApplicationInfo info: list) {
+ for (AppInfo info: list) {
Log.d(tag, " title=\"" + info.title + "\" iconBitmap="
+ info.iconBitmap + " firstInstallTime="
+ info.firstInstallTime);
diff --git a/src/com/android/launcher3/AppsCustomizePagedView.java b/src/com/android/launcher3/AppsCustomizePagedView.java
index 09a57120a..34fec46bf 100644
--- a/src/com/android/launcher3/AppsCustomizePagedView.java
+++ b/src/com/android/launcher3/AppsCustomizePagedView.java
@@ -168,7 +168,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
private PagedViewIcon mPressedIcon;
// Content
- private ArrayList<ApplicationInfo> mApps;
+ private ArrayList<AppInfo> mApps;
private ArrayList<Object> mWidgets;
// Cling
@@ -247,7 +247,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
super(context, attrs);
mLayoutInflater = LayoutInflater.from(context);
mPackageManager = context.getPackageManager();
- mApps = new ArrayList<ApplicationInfo>();
+ mApps = new ArrayList<AppInfo>();
mWidgets = new ArrayList<Object>();
mIconCache = (LauncherAppState.getInstance()).getIconCache();
mCanvas = new Canvas();
@@ -498,7 +498,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
if (v instanceof PagedViewIcon) {
// Animate some feedback to the click
- final ApplicationInfo appInfo = (ApplicationInfo) v.getTag();
+ final AppInfo appInfo = (AppInfo) v.getTag();
// Lock the drawable state to pressed until we return to Launcher
if (mPressedIcon != null) {
@@ -1025,7 +1025,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
ArrayList<Object> items = new ArrayList<Object>();
ArrayList<Bitmap> images = new ArrayList<Bitmap>();
for (int i = startIndex; i < endIndex; ++i) {
- ApplicationInfo info = mApps.get(i);
+ AppInfo info = mApps.get(i);
PagedViewIcon icon = (PagedViewIcon) mLayoutInflater.inflate(
R.layout.apps_customize_application, layout, false);
icon.applyFromApplicationInfo(info, true, this);
@@ -1541,59 +1541,59 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
}
}
- public void setApps(ArrayList<ApplicationInfo> list) {
+ public void setApps(ArrayList<AppInfo> list) {
if (!DISABLE_ALL_APPS) {
mApps = list;
Collections.sort(mApps, LauncherModel.getAppNameComparator());
updatePageCountsAndInvalidateData();
}
}
- private void addAppsWithoutInvalidate(ArrayList<ApplicationInfo> list) {
+ private void addAppsWithoutInvalidate(ArrayList<AppInfo> list) {
// We add it in place, in alphabetical order
int count = list.size();
for (int i = 0; i < count; ++i) {
- ApplicationInfo info = list.get(i);
+ AppInfo info = list.get(i);
int index = Collections.binarySearch(mApps, info, LauncherModel.getAppNameComparator());
if (index < 0) {
mApps.add(-(index + 1), info);
}
}
}
- public void addApps(ArrayList<ApplicationInfo> list) {
+ public void addApps(ArrayList<AppInfo> list) {
if (!DISABLE_ALL_APPS) {
addAppsWithoutInvalidate(list);
updatePageCountsAndInvalidateData();
}
}
- private int findAppByComponent(List<ApplicationInfo> list, ApplicationInfo item) {
+ private int findAppByComponent(List<AppInfo> list, AppInfo item) {
ComponentName removeComponent = item.intent.getComponent();
int length = list.size();
for (int i = 0; i < length; ++i) {
- ApplicationInfo info = list.get(i);
+ AppInfo info = list.get(i);
if (info.intent.getComponent().equals(removeComponent)) {
return i;
}
}
return -1;
}
- private void removeAppsWithoutInvalidate(ArrayList<ApplicationInfo> list) {
+ private void removeAppsWithoutInvalidate(ArrayList<AppInfo> list) {
// loop through all the apps and remove apps that have the same component
int length = list.size();
for (int i = 0; i < length; ++i) {
- ApplicationInfo info = list.get(i);
+ AppInfo info = list.get(i);
int removeIndex = findAppByComponent(mApps, info);
if (removeIndex > -1) {
mApps.remove(removeIndex);
}
}
}
- public void removeApps(ArrayList<ApplicationInfo> appInfos) {
+ public void removeApps(ArrayList<AppInfo> appInfos) {
if (!DISABLE_ALL_APPS) {
removeAppsWithoutInvalidate(appInfos);
updatePageCountsAndInvalidateData();
}
}
- public void updateApps(ArrayList<ApplicationInfo> list) {
+ public void updateApps(ArrayList<AppInfo> list) {
// We remove and re-add the updated applications list because it's properties may have
// changed (ie. the title), and this will ensure that the items will be in their proper
// place in the list.
@@ -1627,7 +1627,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
public void dumpState() {
// TODO: Dump information related to current list of Applications, Widgets, etc.
- ApplicationInfo.dumpApplicationInfoList(TAG, "mApps", mApps);
+ AppInfo.dumpApplicationInfoList(TAG, "mApps", mApps);
dumpAppWidgetProviderInfoList(TAG, "mWidgets", mWidgets);
}
diff --git a/src/com/android/launcher3/DeleteDropTarget.java b/src/com/android/launcher3/DeleteDropTarget.java
index 01edb9eb6..09fad8378 100644
--- a/src/com/android/launcher3/DeleteDropTarget.java
+++ b/src/com/android/launcher3/DeleteDropTarget.java
@@ -96,7 +96,7 @@ public class DeleteDropTarget extends ButtonDropTarget {
}
private boolean isAllAppsApplication(DragSource source, Object info) {
- return (source instanceof AppsCustomizePagedView) && (info instanceof ApplicationInfo);
+ return (source instanceof AppsCustomizePagedView) && (info instanceof AppInfo);
}
private boolean isAllAppsWidget(DragSource source, Object info) {
if (source instanceof AppsCustomizePagedView) {
@@ -149,7 +149,7 @@ public class DeleteDropTarget extends ButtonDropTarget {
item.itemType == LauncherSettings.Favorites.ITEM_TYPE_APPLICATION &&
item instanceof ShortcutInfo) {
ShortcutInfo shortcutInfo = (ShortcutInfo) info;
- return (shortcutInfo.flags & ApplicationInfo.DOWNLOADED_FLAG) != 0;
+ return (shortcutInfo.flags & AppInfo.DOWNLOADED_FLAG) != 0;
}
}
return false;
@@ -259,14 +259,14 @@ public class DeleteDropTarget extends ButtonDropTarget {
mWaitingForUninstall = false;
if (isAllAppsApplication(d.dragSource, item)) {
// Uninstall the application if it is being dragged from AppsCustomize
- ApplicationInfo appInfo = (ApplicationInfo) item;
+ AppInfo appInfo = (AppInfo) item;
mLauncher.startApplicationUninstallActivity(appInfo.componentName, appInfo.flags);
} else if (AppsCustomizePagedView.DISABLE_ALL_APPS && isWorkspaceOrFolderApplication(d)) {
ShortcutInfo shortcut = (ShortcutInfo) item;
if (shortcut.intent != null && shortcut.intent.getComponent() != null) {
final ComponentName componentName = shortcut.intent.getComponent();
final DragSource dragSource = d.dragSource;
- int flags = ApplicationInfo.initFlags(
+ int flags = AppInfo.initFlags(
ShortcutInfo.getPackageInfo(getContext(), componentName.getPackageName()));
mWaitingForUninstall =
mLauncher.startApplicationUninstallActivity(componentName, flags);
diff --git a/src/com/android/launcher3/DragController.java b/src/com/android/launcher3/DragController.java
index 07b25281b..f51366f86 100644
--- a/src/com/android/launcher3/DragController.java
+++ b/src/com/android/launcher3/DragController.java
@@ -327,13 +327,13 @@ public class DragController {
}
endDrag();
}
- public void onAppsRemoved(ArrayList<ApplicationInfo> appInfos, Context context) {
+ public void onAppsRemoved(ArrayList<AppInfo> appInfos, Context context) {
// Cancel the current drag if we are removing an app that we are dragging
if (mDragObject != null) {
Object rawDragInfo = mDragObject.dragInfo;
if (rawDragInfo instanceof ShortcutInfo) {
ShortcutInfo dragInfo = (ShortcutInfo) rawDragInfo;
- for (ApplicationInfo info : appInfos) {
+ for (AppInfo info : appInfos) {
// Added null checks to prevent NPE we've seen in the wild
if (dragInfo != null &&
dragInfo.intent != null) {
diff --git a/src/com/android/launcher3/Folder.java b/src/com/android/launcher3/Folder.java
index 33d300cad..808d85d66 100644
--- a/src/com/android/launcher3/Folder.java
+++ b/src/com/android/launcher3/Folder.java
@@ -1090,9 +1090,9 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList
public void onDrop(DragObject d) {
ShortcutInfo item;
- if (d.dragInfo instanceof ApplicationInfo) {
+ if (d.dragInfo instanceof AppInfo) {
// Came from all apps -- make a copy
- item = ((ApplicationInfo) d.dragInfo).makeShortcut();
+ item = ((AppInfo) d.dragInfo).makeShortcut();
item.spanX = 1;
item.spanY = 1;
} else {
diff --git a/src/com/android/launcher3/FolderIcon.java b/src/com/android/launcher3/FolderIcon.java
index fd8337021..c00c9f850 100644
--- a/src/com/android/launcher3/FolderIcon.java
+++ b/src/com/android/launcher3/FolderIcon.java
@@ -429,9 +429,9 @@ public class FolderIcon extends LinearLayout implements FolderListener {
public void onDrop(DragObject d) {
ShortcutInfo item;
- if (d.dragInfo instanceof ApplicationInfo) {
+ if (d.dragInfo instanceof AppInfo) {
// Came from all apps -- make a copy
- item = ((ApplicationInfo) d.dragInfo).makeShortcut();
+ item = ((AppInfo) d.dragInfo).makeShortcut();
} else {
item = (ShortcutInfo) d.dragInfo;
}
diff --git a/src/com/android/launcher3/Hotseat.java b/src/com/android/launcher3/Hotseat.java
index 2d3adf64d..ccdc56bc2 100644
--- a/src/com/android/launcher3/Hotseat.java
+++ b/src/com/android/launcher3/Hotseat.java
@@ -105,7 +105,7 @@ public class Hotseat extends FrameLayout {
}
void addAllAppsFolder(IconCache iconCache,
- ArrayList<ApplicationInfo> allApps, ArrayList<ComponentName> onWorkspace,
+ ArrayList<AppInfo> allApps, ArrayList<ComponentName> onWorkspace,
Launcher launcher, Workspace workspace) {
FolderInfo fi = new FolderInfo();
@@ -124,7 +124,7 @@ public class Hotseat extends FrameLayout {
workspace.addInScreen(folder, fi.container, fi.screenId, fi.cellX, fi.cellY,
fi.spanX, fi.spanY);
- for (ApplicationInfo info: allApps) {
+ for (AppInfo info: allApps) {
ComponentName cn = info.intent.getComponent();
if (!onWorkspace.contains(cn)) {
Log.d(TAG, "Adding to 'more apps': " + info.intent);
@@ -134,7 +134,7 @@ public class Hotseat extends FrameLayout {
}
}
- void addAppsToAllAppsFolder(ArrayList<ApplicationInfo> apps) {
+ void addAppsToAllAppsFolder(ArrayList<AppInfo> apps) {
View v = mContent.getChildAt(getCellXFromOrder(mAllAppsButtonRank), getCellYFromOrder(mAllAppsButtonRank));
FolderIcon fi = null;
@@ -145,7 +145,7 @@ public class Hotseat extends FrameLayout {
}
FolderInfo info = fi.getFolderInfo();
- for (ApplicationInfo a: apps) {
+ for (AppInfo a: apps) {
ShortcutInfo si = a.makeShortcut();
info.add(si);
}
diff --git a/src/com/android/launcher3/IconCache.java b/src/com/android/launcher3/IconCache.java
index 6fc40e382..179782653 100644
--- a/src/com/android/launcher3/IconCache.java
+++ b/src/com/android/launcher3/IconCache.java
@@ -149,7 +149,7 @@ public class IconCache {
/**
* Fill in "application" with the icon and label for "info."
*/
- public void getTitleAndIcon(ApplicationInfo application, ResolveInfo info,
+ public void getTitleAndIcon(AppInfo application, ResolveInfo info,
HashMap<Object, CharSequence> labelCache) {
synchronized (mCache) {
CacheEntry entry = cacheLocked(application.componentName, info, labelCache);
diff --git a/src/com/android/launcher3/InfoDropTarget.java b/src/com/android/launcher3/InfoDropTarget.java
index a643a0d81..2ad43b6ff 100644
--- a/src/com/android/launcher3/InfoDropTarget.java
+++ b/src/com/android/launcher3/InfoDropTarget.java
@@ -72,8 +72,8 @@ public class InfoDropTarget extends ButtonDropTarget {
// in onDrop, because it allows us to reject the drop (by returning false)
// so that the object being dragged isn't removed from the drag source.
ComponentName componentName = null;
- if (d.dragInfo instanceof ApplicationInfo) {
- componentName = ((ApplicationInfo) d.dragInfo).componentName;
+ if (d.dragInfo instanceof AppInfo) {
+ componentName = ((AppInfo) d.dragInfo).componentName;
} else if (d.dragInfo instanceof ShortcutInfo) {
componentName = ((ShortcutInfo) d.dragInfo).intent.getComponent();
} else if (d.dragInfo instanceof PendingAddItemInfo) {
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 509560c74..81a962d0c 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -113,8 +113,6 @@ import java.io.PrintWriter;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -2071,14 +2069,17 @@ public class Launcher extends Activity
sFolders.remove(folder.id);
}
- private void startWallpaper() {
+ protected void startWallpaper() {
showWorkspace(true);
final Intent pickWallpaper = new Intent(Intent.ACTION_SET_WALLPAPER);
- pickWallpaper.setComponent(
- new ComponentName(getPackageName(), WallpaperPickerActivity.class.getName()));
+ pickWallpaper.setComponent(getWallpaperPickerComponent());
startActivityForResult(pickWallpaper, REQUEST_PICK_WALLPAPER);
}
+ protected ComponentName getWallpaperPickerComponent() {
+ return new ComponentName(getPackageName(), WallpaperPickerActivity.class.getName());
+ }
+
/**
* Registers various content observers. The current implementation registers
* only a favorites observer to keep track of the favorites applications.
@@ -2298,7 +2299,7 @@ public class Launcher extends Activity
// returns true if the activity was started
boolean startApplicationUninstallActivity(ComponentName componentName, int flags) {
- if ((flags & ApplicationInfo.DOWNLOADED_FLAG) == 0) {
+ if ((flags & AppInfo.DOWNLOADED_FLAG) == 0) {
// System applications cannot be installed. For now, show a toast explaining that.
// We may give them the option of disabling apps this way.
int messageId = R.string.uninstall_system_app_text;
@@ -3873,7 +3874,7 @@ public class Launcher extends Activity
*
* Implementation of the method from LauncherModel.Callbacks.
*/
- public void bindAllApplications(final ArrayList<ApplicationInfo> apps) {
+ public void bindAllApplications(final ArrayList<AppInfo> apps) {
if (mIntentsOnWorkspaceFromUpgradePath != null) {
if (LauncherModel.UPGRADE_USE_MORE_APPS_FOLDER) {
getHotseat().addAllAppsFolder(mIconCache, apps,
@@ -3888,7 +3889,7 @@ public class Launcher extends Activity
*
* Implementation of the method from LauncherModel.Callbacks.
*/
- public void bindAppsUpdated(final ArrayList<ApplicationInfo> apps) {
+ public void bindAppsUpdated(final ArrayList<AppInfo> apps) {
Runnable r = new Runnable() {
public void run() {
bindAppsUpdated(apps);
@@ -3913,7 +3914,7 @@ public class Launcher extends Activity
* Implementation of the method from LauncherModel.Callbacks.
*/
public void bindComponentsRemoved(final ArrayList<String> packageNames,
- final ArrayList<ApplicationInfo> appInfos,
+ final ArrayList<AppInfo> appInfos,
final boolean packageRemoved) {
Runnable r = new Runnable() {
public void run() {
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index 1c98522bc..fc3925a4f 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -156,13 +156,13 @@ public class LauncherModel extends BroadcastReceiver {
public void bindFolders(HashMap<Long,FolderInfo> folders);
public void finishBindingItems(boolean upgradePath);
public void bindAppWidget(LauncherAppWidgetInfo info);
- public void bindAllApplications(ArrayList<ApplicationInfo> apps);
+ public void bindAllApplications(ArrayList<AppInfo> apps);
public void bindAppsAdded(ArrayList<Long> newScreens,
ArrayList<ItemInfo> addNotAnimated,
ArrayList<ItemInfo> addAnimated);
- public void bindAppsUpdated(ArrayList<ApplicationInfo> apps);
+ public void bindAppsUpdated(ArrayList<AppInfo> apps);
public void bindComponentsRemoved(ArrayList<String> packageNames,
- ArrayList<ApplicationInfo> appInfos,
+ ArrayList<AppInfo> appInfos,
boolean matchPackageNamesOnly);
public void bindPackagesUpdated(ArrayList<Object> widgetsAndShortcuts);
public void bindSearchablesChanged();
@@ -347,8 +347,8 @@ public class LauncherModel extends BroadcastReceiver {
ShortcutInfo shortcutInfo;
if (a instanceof ShortcutInfo) {
shortcutInfo = (ShortcutInfo) a;
- } else if (a instanceof ApplicationInfo) {
- shortcutInfo = ((ApplicationInfo) a).makeShortcut();
+ } else if (a instanceof AppInfo) {
+ shortcutInfo = ((AppInfo) a).makeShortcut();
} else {
throw new RuntimeException("Unexpected info type");
}
@@ -1544,7 +1544,7 @@ public class LauncherModel extends BroadcastReceiver {
ArrayList<ItemInfo> tmpInfos;
ArrayList<ItemInfo> added = new ArrayList<ItemInfo>();
synchronized (sBgLock) {
- for (ApplicationInfo app : mBgAllAppsList.data) {
+ for (AppInfo app : mBgAllAppsList.data) {
tmpInfos = getItemInfoForComponentName(app.componentName);
Launcher.addDumpLog(TAG, "10249126 - \t" + app.componentName.getPackageName() + ", " + tmpInfos.isEmpty(), true);
if (tmpInfos.isEmpty()) {
@@ -2397,8 +2397,8 @@ public class LauncherModel extends BroadcastReceiver {
// shallow copy
@SuppressWarnings("unchecked")
- final ArrayList<ApplicationInfo> list
- = (ArrayList<ApplicationInfo>) mBgAllAppsList.data.clone();
+ final ArrayList<AppInfo> list
+ = (ArrayList<AppInfo>) mBgAllAppsList.data.clone();
Runnable r = new Runnable() {
public void run() {
final long t = SystemClock.uptimeMillis();
@@ -2463,13 +2463,13 @@ public class LauncherModel extends BroadcastReceiver {
// Create the ApplicationInfos
for (int i = 0; i < apps.size(); i++) {
// This builds the icon bitmaps.
- mBgAllAppsList.add(new ApplicationInfo(packageManager, apps.get(i),
+ mBgAllAppsList.add(new AppInfo(packageManager, apps.get(i),
mIconCache, mLabelCache));
}
final Callbacks callbacks = tryGetCallbacks(oldCallbacks);
- final ArrayList<ApplicationInfo> added = mBgAllAppsList.added;
- mBgAllAppsList.added = new ArrayList<ApplicationInfo>();
+ final ArrayList<AppInfo> added = mBgAllAppsList.added;
+ mBgAllAppsList.added = new ArrayList<AppInfo>();
// Post callback on main thread
mHandler.post(new Runnable() {
@@ -2555,16 +2555,16 @@ public class LauncherModel extends BroadcastReceiver {
break;
}
- ArrayList<ApplicationInfo> added = null;
- ArrayList<ApplicationInfo> modified = null;
- final ArrayList<ApplicationInfo> removedApps = new ArrayList<ApplicationInfo>();
+ ArrayList<AppInfo> added = null;
+ ArrayList<AppInfo> modified = null;
+ final ArrayList<AppInfo> removedApps = new ArrayList<AppInfo>();
if (mBgAllAppsList.added.size() > 0) {
- added = new ArrayList<ApplicationInfo>(mBgAllAppsList.added);
+ added = new ArrayList<AppInfo>(mBgAllAppsList.added);
mBgAllAppsList.added.clear();
}
if (mBgAllAppsList.modified.size() > 0) {
- modified = new ArrayList<ApplicationInfo>(mBgAllAppsList.modified);
+ modified = new ArrayList<AppInfo>(mBgAllAppsList.modified);
mBgAllAppsList.modified.clear();
}
if (mBgAllAppsList.removed.size() > 0) {
@@ -2585,10 +2585,10 @@ public class LauncherModel extends BroadcastReceiver {
addAndBindAddedApps(context, addedInfos, cb);
}
if (modified != null) {
- final ArrayList<ApplicationInfo> modifiedFinal = modified;
+ final ArrayList<AppInfo> modifiedFinal = modified;
// Update the launcher db to reflect the changes
- for (ApplicationInfo a : modifiedFinal) {
+ for (AppInfo a : modifiedFinal) {
ArrayList<ItemInfo> infos =
getItemInfoForComponentName(a.componentName);
for (ItemInfo i : infos) {
@@ -2625,7 +2625,7 @@ public class LauncherModel extends BroadcastReceiver {
}
}
} else {
- for (ApplicationInfo a : removedApps) {
+ for (AppInfo a : removedApps) {
ArrayList<ItemInfo> infos =
getItemInfoForComponentName(a.componentName);
for (ItemInfo i : infos) {
@@ -3120,10 +3120,10 @@ public class LauncherModel extends BroadcastReceiver {
return folderInfo;
}
- public static final Comparator<ApplicationInfo> getAppNameComparator() {
+ public static final Comparator<AppInfo> getAppNameComparator() {
final Collator collator = Collator.getInstance();
- return new Comparator<ApplicationInfo>() {
- public final int compare(ApplicationInfo a, ApplicationInfo b) {
+ return new Comparator<AppInfo>() {
+ public final int compare(AppInfo a, AppInfo b) {
int result = collator.compare(a.title.toString(), b.title.toString());
if (result == 0) {
result = a.componentName.compareTo(b.componentName);
@@ -3132,9 +3132,9 @@ public class LauncherModel extends BroadcastReceiver {
}
};
}
- public static final Comparator<ApplicationInfo> APP_INSTALL_TIME_COMPARATOR
- = new Comparator<ApplicationInfo>() {
- public final int compare(ApplicationInfo a, ApplicationInfo b) {
+ public static final Comparator<AppInfo> APP_INSTALL_TIME_COMPARATOR
+ = new Comparator<AppInfo>() {
+ public final int compare(AppInfo a, AppInfo b) {
if (a.firstInstallTime < b.firstInstallTime) return 1;
if (a.firstInstallTime > b.firstInstallTime) return -1;
return 0;
@@ -3223,10 +3223,10 @@ public class LauncherModel extends BroadcastReceiver {
public void dumpState() {
Log.d(TAG, "mCallbacks=" + mCallbacks);
- ApplicationInfo.dumpApplicationInfoList(TAG, "mAllAppsList.data", mBgAllAppsList.data);
- ApplicationInfo.dumpApplicationInfoList(TAG, "mAllAppsList.added", mBgAllAppsList.added);
- ApplicationInfo.dumpApplicationInfoList(TAG, "mAllAppsList.removed", mBgAllAppsList.removed);
- ApplicationInfo.dumpApplicationInfoList(TAG, "mAllAppsList.modified", mBgAllAppsList.modified);
+ AppInfo.dumpApplicationInfoList(TAG, "mAllAppsList.data", mBgAllAppsList.data);
+ AppInfo.dumpApplicationInfoList(TAG, "mAllAppsList.added", mBgAllAppsList.added);
+ AppInfo.dumpApplicationInfoList(TAG, "mAllAppsList.removed", mBgAllAppsList.removed);
+ AppInfo.dumpApplicationInfoList(TAG, "mAllAppsList.modified", mBgAllAppsList.modified);
if (mLoaderTask != null) {
mLoaderTask.dumpState();
} else {
diff --git a/src/com/android/launcher3/PagedViewIcon.java b/src/com/android/launcher3/PagedViewIcon.java
index 73f62d60e..501bc8f0b 100644
--- a/src/com/android/launcher3/PagedViewIcon.java
+++ b/src/com/android/launcher3/PagedViewIcon.java
@@ -52,7 +52,7 @@ public class PagedViewIcon extends TextView {
super(context, attrs, defStyle);
}
- public void applyFromApplicationInfo(ApplicationInfo info, boolean scaleUp,
+ public void applyFromApplicationInfo(AppInfo info, boolean scaleUp,
PagedViewIcon.PressedCallback cb) {
mIcon = info.iconBitmap;
mPressedCallback = cb;
diff --git a/src/com/android/launcher3/PagedViewIconCache.java b/src/com/android/launcher3/PagedViewIconCache.java
index 0d03b5a52..8d8924b7e 100644
--- a/src/com/android/launcher3/PagedViewIconCache.java
+++ b/src/com/android/launcher3/PagedViewIconCache.java
@@ -40,7 +40,7 @@ public class PagedViewIconCache {
private final ComponentName mComponentName;
private final Type mType;
- public Key(ApplicationInfo info) {
+ public Key(AppInfo info) {
mComponentName = info.componentName;
mType = Type.ApplicationInfoKey;
}
@@ -95,9 +95,9 @@ public class PagedViewIconCache {
}
}
/** Removes all the keys to applications that aren't in the passed in collection */
- public void retainAllApps(ArrayList<ApplicationInfo> keys) {
+ public void retainAllApps(ArrayList<AppInfo> keys) {
HashSet<Key> keysSet = new HashSet<Key>();
- for (ApplicationInfo info : keys) {
+ for (AppInfo info : keys) {
keysSet.add(new Key(info));
}
retainAll(keysSet, Key.Type.ApplicationInfoKey);
diff --git a/src/com/android/launcher3/ShortcutInfo.java b/src/com/android/launcher3/ShortcutInfo.java
index b4e564283..dafabb8d9 100644
--- a/src/com/android/launcher3/ShortcutInfo.java
+++ b/src/com/android/launcher3/ShortcutInfo.java
@@ -88,7 +88,7 @@ class ShortcutInfo extends ItemInfo {
}
/** TODO: Remove this. It's only called by ApplicationInfo.makeShortcut. */
- public ShortcutInfo(ApplicationInfo info) {
+ public ShortcutInfo(AppInfo info) {
super(info);
title = info.title.toString();
intent = new Intent(info.intent);
@@ -109,8 +109,8 @@ class ShortcutInfo extends ItemInfo {
}
void initFlagsAndFirstInstallTime(PackageInfo pi) {
- flags = ApplicationInfo.initFlags(pi);
- firstInstallTime = ApplicationInfo.initFirstInstallTime(pi);
+ flags = AppInfo.initFlags(pi);
+ firstInstallTime = AppInfo.initFirstInstallTime(pi);
}
public void setIcon(Bitmap b) {
diff --git a/src/com/android/launcher3/WallpaperCropActivity.java b/src/com/android/launcher3/WallpaperCropActivity.java
index b08750683..3468f2fcf 100644
--- a/src/com/android/launcher3/WallpaperCropActivity.java
+++ b/src/com/android/launcher3/WallpaperCropActivity.java
@@ -20,6 +20,7 @@ import android.app.Activity;
import android.app.WallpaperManager;
import android.content.Context;
import android.content.SharedPreferences;
+import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
@@ -73,8 +74,10 @@ public class WallpaperCropActivity extends Activity {
boolean mSaveCroppedBitmap;
Bitmap mCroppedBitmap;
Runnable mOnEndRunnable;
+ Resources mResources;
- public BitmapCropTask(Uri inUri, RectF cropBounds, int outWidth, int outHeight,
+ public BitmapCropTask(Uri inUri,
+ RectF cropBounds, int outWidth, int outHeight,
boolean setWallpaper, boolean saveCroppedBitmap, Runnable onEndRunnable) {
mInUri = inUri;
mCropBounds = cropBounds;
@@ -86,7 +89,8 @@ public class WallpaperCropActivity extends Activity {
mOnEndRunnable = onEndRunnable;
}
- public BitmapCropTask(int inResId, RectF cropBounds, int outWidth, int outHeight,
+ public BitmapCropTask(Resources res, int inResId,
+ RectF cropBounds, int outWidth, int outHeight,
boolean setWallpaper, boolean saveCroppedBitmap, Runnable onEndRunnable) {
mInResId = inResId;
mCropBounds = cropBounds;
@@ -96,6 +100,7 @@ public class WallpaperCropActivity extends Activity {
mSetWallpaper = setWallpaper;
mSaveCroppedBitmap = saveCroppedBitmap;
mOnEndRunnable = onEndRunnable;
+ mResources = res;
}
// Helper to setup input stream
@@ -110,7 +115,7 @@ public class WallpaperCropActivity extends Activity {
getContentResolver().openInputStream(mInUri));
} else {
mInStream = new BufferedInputStream(
- getResources().openRawResource(mInResId));
+ mResources.openRawResource(mInResId));
}
} catch (FileNotFoundException e) {
Log.w(LOGTAG, "cannot read file: " + mInUri.toString(), e);
diff --git a/src/com/android/launcher3/WallpaperPickerActivity.java b/src/com/android/launcher3/WallpaperPickerActivity.java
index 536775ace..8f323e809 100644
--- a/src/com/android/launcher3/WallpaperPickerActivity.java
+++ b/src/com/android/launcher3/WallpaperPickerActivity.java
@@ -23,6 +23,7 @@ import android.content.ComponentName;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
+import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
@@ -34,6 +35,7 @@ import android.graphics.drawable.LevelListDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
+import android.util.Pair;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -63,8 +65,9 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
private static final int PICK_WALLPAPER_THIRD_PARTY_ACTIVITY = 6;
private static final float WALLPAPER_SCREENS_SPAN = 2f;
- private ArrayList<Integer> mThumbs;
+ private ArrayList<Drawable> mThumbs;
private ArrayList<Integer> mImages;
+ private Resources mWallpaperResources;
private View mSelectedThumb;
private CropView mCropView;
@@ -98,7 +101,7 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
meta.mGalleryImageUri, 1024, 0), null);
mCropView.setTouchEnabled(true);
} else {
- BitmapRegionTileSource source = new BitmapRegionTileSource(
+ BitmapRegionTileSource source = new BitmapRegionTileSource(mWallpaperResources,
WallpaperPickerActivity.this, meta.mWallpaperResId, 1024, 0);
mCropView.setTileSource(source, null);
Point wallpaperSize = getDefaultWallpaperSize(getResources(), getWindowManager());
@@ -311,8 +314,8 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
updateWallpaperDimensions(0, 0);
}
};
- BitmapCropTask cropTask = new BitmapCropTask(meta.mWallpaperResId,
- crop, outSize.x, outSize.y,
+ BitmapCropTask cropTask = new BitmapCropTask(mWallpaperResources,
+ meta.mWallpaperResId, crop, outSize.x, outSize.y,
true, false, onEndCrop);
cropTask.execute();
setResult(Activity.RESULT_OK);
@@ -389,22 +392,35 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
}
private void findWallpapers() {
- mThumbs = new ArrayList<Integer>(24);
+ mThumbs = new ArrayList<Drawable>(24);
mImages = new ArrayList<Integer>(24);
- final Resources resources = getResources();
+ Pair<ApplicationInfo, Integer> r = getWallpaperArrayResourceId();
+ if (r != null) {
+ try {
+ mWallpaperResources = getPackageManager().getResourcesForApplication(r.first);
+ addWallpapers(mWallpaperResources, r.first.packageName, r.second);
+ } catch (PackageManager.NameNotFoundException e) {
+ }
+ }
+ }
+
+ public Pair<ApplicationInfo, Integer> getWallpaperArrayResourceId() {
// Context.getPackageName() may return the "original" package name,
// com.android.launcher3; Resources needs the real package name,
// com.android.launcher3. So we ask Resources for what it thinks the
// package name should be.
- final String packageName = resources.getResourcePackageName(R.array.wallpapers);
-
- addWallpapers(resources, packageName, R.array.wallpapers);
- addWallpapers(resources, packageName, R.array.extra_wallpapers);
+ final String packageName = getResources().getResourcePackageName(R.array.wallpapers);
+ try {
+ ApplicationInfo info = getPackageManager().getApplicationInfo(packageName, 0);
+ return new Pair<ApplicationInfo, Integer>(info, R.array.wallpapers);
+ } catch (PackageManager.NameNotFoundException e) {
+ return null;
+ }
}
- private void addWallpapers(Resources resources, String packageName, int list) {
- final String[] extras = resources.getStringArray(list);
+ private void addWallpapers(Resources resources, String packageName, int listResId) {
+ final String[] extras = resources.getStringArray(listResId);
for (String extra : extras) {
int res = resources.getIdentifier(extra, "drawable", packageName);
if (res != 0) {
@@ -412,7 +428,7 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
"drawable", packageName);
if (thumbRes != 0) {
- mThumbs.add(thumbRes);
+ mThumbs.add(resources.getDrawable(thumbRes));
mImages.add(res);
// Log.d(TAG, "add: [" + packageName + "]: " + extra + " (" + res + ")");
}
@@ -537,14 +553,12 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
ImageView image = (ImageView) view.findViewById(R.id.wallpaper_image);
- int thumbRes = mThumbs.get(position);
- image.setImageResource(thumbRes);
- Drawable thumbDrawable = image.getDrawable();
+ Drawable thumbDrawable = mThumbs.get(position);
if (thumbDrawable != null) {
+ image.setImageDrawable(thumbDrawable);
thumbDrawable.setDither(true);
} else {
- Log.e(TAG, "Error decoding thumbnail resId=" + thumbRes + " for wallpaper #"
- + position);
+ Log.e(TAG, "Error decoding thumbnail for wallpaper #" + position);
}
return view;
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 339f0abe6..01a8adf77 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -3246,9 +3246,9 @@ public class Workspace extends SmoothPagedView
switch (info.itemType) {
case LauncherSettings.Favorites.ITEM_TYPE_APPLICATION:
case LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT:
- if (info.container == NO_ID && info instanceof ApplicationInfo) {
+ if (info.container == NO_ID && info instanceof AppInfo) {
// Came from all apps -- make a copy
- info = new ShortcutInfo((ApplicationInfo) info);
+ info = new ShortcutInfo((AppInfo) info);
}
view = mLauncher.createShortcut(R.layout.application, cellLayout,
(ShortcutInfo) info);
@@ -3943,10 +3943,10 @@ public class Workspace extends SmoothPagedView
// Removes items that match the application info specified, when applications are removed
// as a part of an update, this is called to ensure that other widgets and application
// shortcuts are not removed.
- void removeItemsByApplicationInfo(final ArrayList<ApplicationInfo> appInfos) {
+ void removeItemsByApplicationInfo(final ArrayList<AppInfo> appInfos) {
// Just create a hash table of all the specific components that this will affect
HashSet<ComponentName> cns = new HashSet<ComponentName>();
- for (ApplicationInfo info : appInfos) {
+ for (AppInfo info : appInfos) {
cns.add(info.componentName);
}
@@ -4024,7 +4024,7 @@ public class Workspace extends SmoothPagedView
stripEmptyScreens();
}
- void updateShortcuts(ArrayList<ApplicationInfo> apps) {
+ void updateShortcuts(ArrayList<AppInfo> apps) {
ArrayList<ShortcutAndWidgetContainer> childrenLayouts = getAllShortcutAndWidgetContainers();
for (ShortcutAndWidgetContainer layout: childrenLayouts) {
int childCount = layout.getChildCount();
@@ -4039,7 +4039,7 @@ public class Workspace extends SmoothPagedView
final ComponentName name = intent.getComponent();
final int appCount = apps.size();
for (int k = 0; k < appCount; k++) {
- ApplicationInfo app = apps.get(k);
+ AppInfo app = apps.get(k);
if (app.componentName.equals(name)) {
BubbleTextView shortcut = (BubbleTextView) view;
info.updateIcon(mIconCache);
diff --git a/src/com/android/photos/BitmapRegionTileSource.java b/src/com/android/photos/BitmapRegionTileSource.java
index 964748523..5f6401868 100644
--- a/src/com/android/photos/BitmapRegionTileSource.java
+++ b/src/com/android/photos/BitmapRegionTileSource.java
@@ -18,6 +18,7 @@ package com.android.photos;
import android.annotation.TargetApi;
import android.content.Context;
+import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
@@ -68,18 +69,19 @@ public class BitmapRegionTileSource implements TiledImageRenderer.TileSource {
private Canvas mCanvas;
public BitmapRegionTileSource(Context context, String path, int previewSize, int rotation) {
- this(context, path, null, 0, previewSize, rotation);
+ this(null, context, path, null, 0, previewSize, rotation);
}
public BitmapRegionTileSource(Context context, Uri uri, int previewSize, int rotation) {
- this(context, null, uri, 0, previewSize, rotation);
+ this(null, context, null, uri, 0, previewSize, rotation);
}
- public BitmapRegionTileSource(Context context, int resId, int previewSize, int rotation) {
- this(context, null, null, resId, previewSize, rotation);
+ public BitmapRegionTileSource(Resources res,
+ Context context, int resId, int previewSize, int rotation) {
+ this(res, context, null, null, resId, previewSize, rotation);
}
- private BitmapRegionTileSource(
+ private BitmapRegionTileSource(Resources res,
Context context, String path, Uri uri, int resId, int previewSize, int rotation) {
mTileSize = TiledImageRenderer.suggestedTileSize(context);
mRotation = rotation;
@@ -91,7 +93,7 @@ public class BitmapRegionTileSource implements TiledImageRenderer.TileSource {
BufferedInputStream bis = new BufferedInputStream(is);
mDecoder = BitmapRegionDecoder.newInstance(bis, true);
} else {
- InputStream is = context.getResources().openRawResource(resId);
+ InputStream is = res.openRawResource(resId);
BufferedInputStream bis = new BufferedInputStream(is);
mDecoder = BitmapRegionDecoder.newInstance(bis, true);
}
@@ -109,7 +111,7 @@ public class BitmapRegionTileSource implements TiledImageRenderer.TileSource {
// Although this is the same size as the Bitmap that is likely already
// loaded, the lifecycle is different and interactions are on a different
// thread. Thus to simplify, this source will decode its own bitmap.
- Bitmap preview = decodePreview(context, path, uri, resId, previewSize);
+ Bitmap preview = decodePreview(res, context, path, uri, resId, previewSize);
if (preview.getWidth() <= GL_SIZE_LIMIT && preview.getHeight() <= GL_SIZE_LIMIT) {
mPreview = new BitmapTexture(preview);
} else {
@@ -213,7 +215,8 @@ public class BitmapRegionTileSource implements TiledImageRenderer.TileSource {
* Note that the returned bitmap may have a long edge that's longer
* than the targetSize, but it will always be less than 2x the targetSize
*/
- private Bitmap decodePreview(Context context, String file, Uri uri, int resId, int targetSize) {
+ private Bitmap decodePreview(
+ Resources res, Context context, String file, Uri uri, int resId, int targetSize) {
float scale = (float) targetSize / Math.max(mWidth, mHeight);
mOptions.inSampleSize = BitmapUtils.computeSampleSizeLarger(scale);
mOptions.inJustDecodeBounds = false;
@@ -230,7 +233,7 @@ public class BitmapRegionTileSource implements TiledImageRenderer.TileSource {
Log.w("BitmapRegionTileSource", "getting preview failed", e);
}
} else {
- result = BitmapFactory.decodeResource(context.getResources(), resId, mOptions);
+ result = BitmapFactory.decodeResource(res, resId, mOptions);
}
if (result == null) {
return null;