summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Mast <andy@cyngn.com>2014-05-23 17:17:27 +0000
committerGerrit Code Review <gerrit@cyanogenmod.org>2014-05-23 17:17:27 +0000
commitaea44a5a9ccd78e958d35523647f54d763e09c7c (patch)
tree7eecb7b2ec62f434842eec9e4c6cef91e90cedb6
parentf6186b27895253561ab58e8d093e664c8ceb6cf6 (diff)
parent8ba88c5ebfdb18ae0e0414201ac04e73a3d10ead (diff)
downloadpackages_apps_ThemeChooser-aea44a5a9ccd78e958d35523647f54d763e09c7c.tar.gz
packages_apps_ThemeChooser-aea44a5a9ccd78e958d35523647f54d763e09c7c.tar.bz2
packages_apps_ThemeChooser-aea44a5a9ccd78e958d35523647f54d763e09c7c.zip
Merge "Fix NP when activity detaches from fragment" into cm-11.0
-rw-r--r--src/org/cyanogenmod/theme/chooser/ChooserBrowseFragment.java22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/org/cyanogenmod/theme/chooser/ChooserBrowseFragment.java b/src/org/cyanogenmod/theme/chooser/ChooserBrowseFragment.java
index 3f192de..897b489 100644
--- a/src/org/cyanogenmod/theme/chooser/ChooserBrowseFragment.java
+++ b/src/org/cyanogenmod/theme/chooser/ChooserBrowseFragment.java
@@ -19,6 +19,7 @@ import java.util.ArrayList;
import java.util.List;
import android.content.res.CustomTheme;
+
import org.cyanogenmod.theme.chooser.WallpaperAndIconPreviewFragment.IconInfo;
import org.cyanogenmod.theme.util.BootAnimationHelper;
import org.cyanogenmod.theme.util.IconPreviewHelper;
@@ -45,6 +46,7 @@ import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.widget.CursorAdapter;
+import android.util.Log;
import android.util.TypedValue;
import android.view.Display;
import android.view.LayoutInflater;
@@ -60,7 +62,9 @@ import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
-public class ChooserBrowseFragment extends Fragment implements LoaderManager.LoaderCallbacks<Cursor> {
+public class ChooserBrowseFragment extends Fragment
+ implements LoaderManager.LoaderCallbacks<Cursor> {
+ public static final String TAG = ChooserBrowseFragment.class.getCanonicalName();
public static final String DEFAULT = CustomTheme.HOLO_DEFAULT;
public ListView mListView;
@@ -342,9 +346,15 @@ public class ChooserBrowseFragment extends Fragment implements LoaderManager.Loa
@Override
protected Bitmap doInBackground(Object... params) {
Bitmap bitmap = null;
+ Context context = getActivity();
+ if (context == null) {
+ Log.d(TAG, "Activity was detached, skipping loadImage");
+ return null;
+ }
+
if (!isLegacyTheme) {
if (DEFAULT.equals(pkgName)) {
- Resources res = getActivity().getResources();
+ Resources res = context.getResources();
AssetManager assets = new AssetManager();
assets.addAssetPath(WallpaperAndIconPreviewFragment.FRAMEWORK_RES);
Resources frameworkRes = new Resources(assets, res.getDisplayMetrics(),
@@ -354,9 +364,9 @@ public class ChooserBrowseFragment extends Fragment implements LoaderManager.Loa
mMaxImageSize.x, mMaxImageSize.y);
} else {
if (URLUtil.isAssetUrl(path)) {
- Context ctx = getActivity();
+ Context ctx = context;
try {
- ctx = getActivity().createPackageContext(pkgName, 0);
+ ctx = context.createPackageContext(pkgName, 0);
} catch (PackageManager.NameNotFoundException e) {
}
@@ -367,9 +377,9 @@ public class ChooserBrowseFragment extends Fragment implements LoaderManager.Loa
}
} else {
try {
- PackageManager pm = getActivity().getPackageManager();
+ PackageManager pm = context.getPackageManager();
PackageInfo pi = pm.getPackageInfo(path, 0);
- final Context themeContext = getActivity().createPackageContext(path,
+ final Context themeContext = context.createPackageContext(path,
Context.CONTEXT_IGNORE_SECURITY);
final Resources res = themeContext.getResources();
final int resId = showWallpaper ? pi.legacyThemeInfos[0].wallpaperResourceId :