summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndy Mast <andy@cyngn.com>2014-05-22 17:06:48 -0700
committerAndy Mast <andy@cyngn.com>2014-05-22 17:06:48 -0700
commit8ba88c5ebfdb18ae0e0414201ac04e73a3d10ead (patch)
tree3c1c355284855682b65ce6c779c411a2c20412c0 /src
parent4b4401c2285331d499571ea98515ca7ed88beae3 (diff)
downloadpackages_apps_ThemeChooser-8ba88c5ebfdb18ae0e0414201ac04e73a3d10ead.zip
packages_apps_ThemeChooser-8ba88c5ebfdb18ae0e0414201ac04e73a3d10ead.tar.gz
packages_apps_ThemeChooser-8ba88c5ebfdb18ae0e0414201ac04e73a3d10ead.tar.bz2
Fix NP when activity detaches from fragment
Change-Id: I9cffdd137683b5a9fa45e21a22e859919a23cd8a
Diffstat (limited to 'src')
-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 :