Skip to content
This repository was archived by the owner on Dec 17, 2020. It is now read-only.

Commit ebc3bbf

Browse files
committed
Fixes for child Fragment TaskManagers.
1 parent b4474e0 commit ebc3bbf

File tree

5 files changed

+27
-9
lines changed

5 files changed

+27
-9
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ buildscript {
55
jcenter()
66
}
77
dependencies {
8-
classpath 'com.android.tools.build:gradle:2.0.0'
8+
classpath 'com.android.tools.build:gradle:2.1.2'
99
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'
1010
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
1111
// NOTE: Do not place your application dependencies here; they belong

demo/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ dependencies {
2323
compile project(':library')
2424
//compile 'org.neotech.library:android-retainable-tasks:0.1.0'
2525

26-
compile 'com.android.support:appcompat-v7:23.3.0'
27-
compile 'com.android.support:design:23.3.0'
26+
compile 'com.android.support:appcompat-v7:23.4.0'
27+
compile 'com.android.support:design:23.4.0'
2828

2929
//LeakCanary is used to detect memory leaks in debug builds.
3030
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3.1'

demo/src/main/java/org/neotech/app/retainabletasksdemo/activity/Main.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,6 @@ protected ArrayList<Demo> doInBackground() {
114114
}
115115
}
116116

117-
118117
private static class DemoAdapter extends BaseAdapter implements View.OnClickListener {
119118

120119
private static class ViewHolder {

library/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ ext {
1616
artifact = 'android-retainable-tasks'
1717

1818
libraryDescription = 'Android-Retainable-Tasks is an easy to use mini-library for easy asynchronous background tasking with callback support to the UI. This library is based on the Android AsyncTask implementation but with support for retaining tasks and therefore surviving configuration changes (orientation).'
19-
libraryVersion = '0.2.2'
19+
libraryVersion = '0.2.3'
2020

2121
siteUrl = 'https://github.com/NeoTech-Software/Android-Retainable-Tasks'
2222
gitUrl = 'https://github.com/NeoTech-Software/Android-Retainable-Tasks.git'
@@ -60,8 +60,8 @@ configurations {
6060
dependencies {
6161
compile fileTree(dir: 'libs', include: ['*.jar'])
6262
testCompile 'junit:junit:4.12'
63-
compile 'com.android.support:appcompat-v7:23.3.0'
64-
javadocCompile 'com.android.support:appcompat-v7:23.3.0'
63+
compile 'com.android.support:appcompat-v7:23.4.0'
64+
javadocCompile 'com.android.support:appcompat-v7:23.4.0'
6565
}
6666

6767
apply from: 'publish-library.gradle'

library/src/main/java/org/neotech/library/retainabletasks/TaskManager.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,11 @@ public static boolean isStrictDebugModeEnabled(){
151151
@MainThread
152152
public static TaskManager getFragmentTaskManager(@NonNull Fragment fragment){
153153
final String tag = getTaskManagerTag(fragment.getTag());
154-
return getTaskManager(TaskRetainingFragment.getInstance(fragment.getFragmentManager()), tag);
154+
if(fragment.getParentFragment() != null){
155+
return getTaskManager(TaskRetainingFragment.getInstance(fragment.getParentFragment().getFragmentManager()), tag);
156+
} else {
157+
return getTaskManager(TaskRetainingFragment.getInstance(fragment.getFragmentManager()), tag);
158+
}
155159
}
156160

157161
/**
@@ -163,9 +167,24 @@ public static TaskManager getFragmentTaskManager(@NonNull Fragment fragment){
163167
@MainThread
164168
public static TaskManager getFragmentTaskManager(@NonNull android.app.Fragment fragment){
165169
final String tag = getTaskManagerTag(fragment.getTag());
166-
return getTaskManager(TaskRetainingFragment.getInstance(fragment.getFragmentManager()), tag);
170+
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){
171+
return getFragmentTaskManagerAPI17(fragment, tag);
172+
} else {
173+
return getTaskManager(TaskRetainingFragment.getInstance(fragment.getFragmentManager()), tag);
174+
}
167175
}
168176

177+
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
178+
@MainThread
179+
private static TaskManager getFragmentTaskManagerAPI17(@NonNull android.app.Fragment fragment, String tag){
180+
if(fragment.getParentFragment() != null){
181+
return getTaskManager(TaskRetainingFragment.getInstance(fragment.getParentFragment().getFragmentManager()), tag);
182+
} else {
183+
return getTaskManager(TaskRetainingFragment.getInstance(fragment.getFragmentManager()), tag);
184+
}
185+
}
186+
187+
169188
private static TaskManager getTaskManager(@NonNull TaskRetainingFragment taskRetainingFragment, @NonNull String tag){
170189
BaseTaskManager manager = (BaseTaskManager) taskRetainingFragment.findTaskManagerByTag(tag);
171190
if(manager == null){

0 commit comments

Comments
 (0)