99import androidx .fragment .app .FragmentTransaction ;
1010
1111import java .util .List ;
12- import java .util .UUID ;
1312
1413import me .liam .anim .FragmentAnimation ;
1514import me .liam .fragmentation .R ;
@@ -31,14 +30,14 @@ public abstract class ExtraTransaction {
3130
3231 public abstract ExtraTransaction addBackStack (boolean addBackStack );
3332
34- public abstract ExtraTransaction show (SupportFragment ... show );
35-
36- public abstract ExtraTransaction hide (SupportFragment ... hide );
37-
3833 public abstract ExtraTransaction runOnExecute (Runnable run );
3934
4035 public abstract void loadRootFragment (int containerId , SupportFragment to );
4136
37+ public abstract void show (SupportFragment ... show );
38+
39+ public abstract void hide (SupportFragment ... hide );
40+
4241 public abstract void start (SupportFragment to );
4342
4443 public abstract void startWithPop (SupportFragment to );
@@ -65,6 +64,8 @@ public abstract class ExtraTransaction {
6564
6665 public abstract void remove (SupportFragment remove , boolean anim );
6766
67+ public abstract void remove (SupportFragment ... remove );
68+
6869 static class ExtraTransactionImpl extends ExtraTransaction {
6970
7071 private SupportFragment from ;
@@ -117,17 +118,6 @@ public ExtraTransaction addBackStack(boolean addBackStack) {
117118 return this ;
118119 }
119120
120- @ Override
121- public ExtraTransaction show (SupportFragment ... show ) {
122- record .show = show ;
123- return this ;
124- }
125-
126- @ Override
127- public ExtraTransaction hide (SupportFragment ... hide ) {
128- record .hide = hide ;
129- return this ;
130- }
131121
132122 @ Override
133123 public ExtraTransaction runOnExecute (Runnable run ) {
@@ -143,7 +133,6 @@ public long run() {
143133 bindFragmentOptions (to ,containerId ,record );
144134 to .setFragmentAnimation (record .fragmentAnimation );
145135 FragmentTransaction ft = from .getChildFragmentManager ().beginTransaction ();
146- showHide (ft );
147136 ft .setTransition (FragmentTransaction .TRANSIT_FRAGMENT_OPEN );
148137 ft .add (containerId ,to ,record .tag );
149138 supportCommit (ft ,record .runOnExecute );
@@ -152,6 +141,36 @@ public long run() {
152141 });
153142 }
154143
144+ @ Override
145+ public void show (final SupportFragment ... show ) {
146+ actionQueue .enqueue (new Action () {
147+ @ Override
148+ public long run () {
149+ FragmentTransaction ft = from .getFragmentManager ().beginTransaction ();
150+ for (SupportFragment f : show ){
151+ ft .show (f );
152+ }
153+ supportCommit (ft ,record .runOnExecute );
154+ return 0 ;
155+ }
156+ });
157+ }
158+
159+ @ Override
160+ public void hide (final SupportFragment ... hide ) {
161+ actionQueue .enqueue (new Action () {
162+ @ Override
163+ public long run () {
164+ FragmentTransaction ft = from .getFragmentManager ().beginTransaction ();
165+ for (SupportFragment f : hide ){
166+ ft .hide (f );
167+ }
168+ supportCommit (ft ,record .runOnExecute );
169+ return 0 ;
170+ }
171+ });
172+ }
173+
155174 @ Override
156175 public void start (final SupportFragment to ) {
157176 actionQueue .enqueue (new Action () {
@@ -160,7 +179,6 @@ public long run() {
160179 bindFragmentOptions (to ,from .getContainerId (),record );
161180 to .setFragmentAnimation (record .fragmentAnimation );
162181 FragmentTransaction ft = from .getFragmentManager ().beginTransaction ();
163- showHide (ft );
164182 ft .setTransition (FragmentTransaction .TRANSIT_FRAGMENT_OPEN );
165183 ft .add (from .getContainerId (),to ,record .tag );
166184 supportCommit (ft ,record .runOnExecute );
@@ -177,7 +195,6 @@ public long run() {
177195 bindFragmentOptions (to ,from .getContainerId (),record );
178196 to .setFragmentAnimation (record .fragmentAnimation );
179197 FragmentTransaction ft = from .getFragmentManager ().beginTransaction ();
180- showHide (ft );
181198 ft .setTransition (FragmentTransaction .TRANSIT_FRAGMENT_OPEN );
182199 ft .add (from .getContainerId (),to ,record .tag );
183200 supportCommit (ft ,record .runOnExecute );
@@ -187,7 +204,6 @@ public void onEnterAnimEnd() {
187204 FragmentTransaction ft = from .getFragmentManager ().beginTransaction ();
188205 ft .remove (from );
189206 supportCommit (ft );
190-
191207 }
192208 });
193209 return 0 ;
@@ -197,7 +213,7 @@ public void onEnterAnimEnd() {
197213
198214 @ Override
199215 public void startWithPopTo (SupportFragment to , Class popToCls ) {
200- startWithPopTo (to ,popToCls );
216+ startWithPopTo (to ,popToCls , true );
201217 }
202218
203219 @ Override
@@ -210,7 +226,6 @@ public long run() {
210226 bindFragmentOptions (to ,from .getContainerId (),record );
211227 to .setFragmentAnimation (record .fragmentAnimation );
212228 FragmentTransaction ft = from .getFragmentManager ().beginTransaction ();
213- showHide (ft );
214229 ft .setTransition (FragmentTransaction .TRANSIT_FRAGMENT_OPEN );
215230 ft .add (from .getContainerId (),to ,record .tag );
216231 supportCommit (ft ,record .runOnExecute );
@@ -355,17 +370,13 @@ public int actionType() {
355370 });
356371 }
357372
358- void showHide (FragmentTransaction ft ){
359- if (record .show != null ){
360- for (SupportFragment f : record .show ){
361- ft .show (f );
362- }
363- }
364- if (record .hide != null ){
365- for (SupportFragment f : record .hide ){
366- ft .hide (f );
367- }
373+ @ Override
374+ public void remove (SupportFragment ... remove ) {
375+ FragmentTransaction ft = from .getFragmentManager ().beginTransaction ();
376+ for (SupportFragment f : remove ){
377+ ft .remove (f );
368378 }
379+ supportCommit (ft ,record .runOnExecute );
369380 }
370381
371382 Bundle getArguments (SupportFragment target ){
0 commit comments