aboutsummaryrefslogtreecommitdiff
path: root/library/src/main/java/com/bumptech
diff options
context:
space:
mode:
authorSam Judd <judds@google.com>2014-09-26 08:31:11 -0700
committerSam Judd <judds@google.com>2014-09-26 08:31:11 -0700
commite08fca6797945ad47b4d895a63bf5b3edc08c3be (patch)
treea8890b565352e78d38b1aa9e2ed0adeab427f805 /library/src/main/java/com/bumptech
parent2572440646e51f7fadcee18e7a34c36bc9f40818 (diff)
downloadglide-e08fca6797945ad47b4d895a63bf5b3edc08c3be.tar.gz
Don't call getFragmentManager pre Honeycomb.
Fixes #158
Diffstat (limited to 'library/src/main/java/com/bumptech')
-rw-r--r--library/src/main/java/com/bumptech/glide/manager/RequestManagerRetriever.java41
1 files changed, 22 insertions, 19 deletions
diff --git a/library/src/main/java/com/bumptech/glide/manager/RequestManagerRetriever.java b/library/src/main/java/com/bumptech/glide/manager/RequestManagerRetriever.java
index 8eed5c04..d4830796 100644
--- a/library/src/main/java/com/bumptech/glide/manager/RequestManagerRetriever.java
+++ b/library/src/main/java/com/bumptech/glide/manager/RequestManagerRetriever.java
@@ -93,14 +93,11 @@ public class RequestManagerRetriever implements Handler.Callback {
return getApplicationManager(context);
}
- @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
public RequestManager get(FragmentActivity activity) {
if (Util.isOnBackgroundThread()) {
return get(activity.getApplicationContext());
} else {
- if (Build.VERSION_CODES.JELLY_BEAN_MR1 <= Build.VERSION.SDK_INT && activity.isDestroyed()) {
- throw new IllegalArgumentException("You cannot start a load for a destroyed activity");
- }
+ assertNotDestroyed(activity);
FragmentManager fm = activity.getSupportFragmentManager();
return supportFragmentGet(activity, fm);
}
@@ -121,36 +118,42 @@ public class RequestManagerRetriever implements Handler.Callback {
}
}
- @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
+ @TargetApi(Build.VERSION_CODES.HONEYCOMB)
public RequestManager get(Activity activity) {
- if (Util.isOnBackgroundThread()) {
+ if (Util.isOnBackgroundThread() || Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
return get(activity.getApplicationContext());
} else {
- if (Build.VERSION_CODES.JELLY_BEAN_MR1 <= Build.VERSION.SDK_INT && activity.isDestroyed()) {
- throw new IllegalArgumentException("You cannot start a load for a destroyed activity");
- }
+ assertNotDestroyed(activity);
android.app.FragmentManager fm = activity.getFragmentManager();
return fragmentGet(activity, fm);
}
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
+ private static void assertNotDestroyed(Activity activity) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && activity.isDestroyed()) {
+ throw new IllegalArgumentException("You cannot start a load for a destroyed activity");
+ }
+ }
+
+ @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
public RequestManager get(android.app.Fragment fragment) {
if (fragment.getActivity() == null) {
throw new IllegalArgumentException("You cannot start a load on a fragment before it is attached");
}
- if (Util.isOnBackgroundThread()) {
+ if (Util.isOnBackgroundThread() || Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
return get(fragment.getActivity().getApplicationContext());
} else {
- if (Build.VERSION_CODES.HONEYCOMB_MR2 <= Build.VERSION.SDK_INT && fragment.isDetached()) {
- throw new IllegalArgumentException("You cannot start a load on a detached fragment");
- }
- if (Build.VERSION_CODES.JELLY_BEAN_MR1 <= Build.VERSION.SDK_INT) {
- android.app.FragmentManager fm = fragment.getChildFragmentManager();
- return fragmentGet(fragment.getActivity(), fm);
- } else {
- return get(fragment.getActivity().getApplicationContext());
- }
+ assertNotDetached(fragment);
+ android.app.FragmentManager fm = fragment.getChildFragmentManager();
+ return fragmentGet(fragment.getActivity(), fm);
+ }
+ }
+
+ @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
+ private static void assertNotDetached(android.app.Fragment fragment) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2 && fragment.isDetached()) {
+ throw new IllegalArgumentException("You cannot start a load on a detached fragment");
}
}