diff options
author | Sam Judd <judds@google.com> | 2014-09-26 08:31:11 -0700 |
---|---|---|
committer | Sam Judd <judds@google.com> | 2014-09-26 08:31:11 -0700 |
commit | e08fca6797945ad47b4d895a63bf5b3edc08c3be (patch) | |
tree | a8890b565352e78d38b1aa9e2ed0adeab427f805 /library/src/main/java/com/bumptech | |
parent | 2572440646e51f7fadcee18e7a34c36bc9f40818 (diff) | |
download | glide-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.java | 41 |
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"); } } |