Skip to content

Commit c0fed6f

Browse files
authored
Merge pull request #961 from YoKeyword/dev
v1.3.6
2 parents 018bd92 + e43ead1 commit c0fed6f

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

fragmentation_core/src/main/java/me/yokeyword/fragmentation/TransactionDelegate.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -247,19 +247,23 @@ void pop(final FragmentManager fm) {
247247
@Override
248248
public void run() {
249249
handleAfterSaveInStateTransactionException(fm, "pop()");
250-
removeTopFragment(fm);
251250
FragmentationMagician.popBackStackAllowingStateLoss(fm);
251+
removeTopFragment(fm);
252252
}
253253
});
254254
}
255255

256256
private void removeTopFragment(FragmentManager fm) {
257-
ISupportFragment top = SupportHelper.getBackStackTopFragment(fm);
258-
if (top != null) {
259-
fm.beginTransaction()
260-
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE)
261-
.remove((Fragment) top)
262-
.commitAllowingStateLoss();
257+
try { // Safe popBackStack()
258+
ISupportFragment top = SupportHelper.getBackStackTopFragment(fm);
259+
if (top != null) {
260+
fm.beginTransaction()
261+
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE)
262+
.remove((Fragment) top)
263+
.commitAllowingStateLoss();
264+
}
265+
} catch (Exception ignored) {
266+
263267
}
264268
}
265269

fragmentation_core/src/main/java/me/yokeyword/fragmentation/queue/Action.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88

99
public abstract class Action {
10-
public static final int BUFFER_TIME = 60;
10+
public static final long DEFAULT_POP_TIME = 300L;
1111

1212
public static final int ACTION_NORMAL = 0;
1313
public static final int ACTION_POP = 1;

fragmentation_core/src/main/java/me/yokeyword/fragmentation/queue/ActionQueue.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,7 @@ private void handleAction() {
5858
private void executeNextAction(Action action) {
5959
if (action.action == Action.ACTION_POP) {
6060
ISupportFragment top = SupportHelper.getBackStackTopFragment(action.fragmentManager);
61-
if (top == null) return;
62-
action.duration = top.getSupportDelegate().getExitAnimDuration();
61+
action.duration = top == null ? Action.DEFAULT_POP_TIME : top.getSupportDelegate().getExitAnimDuration();
6362
}
6463

6564
mMainHandler.postDelayed(new Runnable() {

0 commit comments

Comments
 (0)