private int endDragIndex;
private boolean isSecondaryHome;
+ private boolean waitingForPermission;
private GestureDetector detector;
finish();
} catch (ActivityNotFoundException e) { /* Gracefully fail */ }
}
- } else {
- overridePendingTransition(0, R.anim.close_anim);
- U.sendBroadcast(this, ACTION_TEMP_SHOW_TASKBAR);
- }
+ } else
+ performOnResumeLogic();
}
@Override
super.onStart();
U.sendBroadcast(this, ACTION_HIDE_START_MENU);
+ init();
+ }
+ private void init() {
if(U.canDrawOverlays(this)) {
if(!U.canBootToFreeform(this)) {
setOnHomeScreen(true);
startTaskbar();
} else if(U.launcherIsDefault(this))
startFreeformHack();
- } else
+ } else if(!waitingForPermission)
dialog = U.showPermissionDialog(U.wrapContext(this),
() -> dialog = U.showErrorDialog(U.wrapContext(this), "SYSTEM_ALERT_WINDOW"),
- null);
+ () -> waitingForPermission = true);
}
private void startTaskbar() {
// @Override
public void onTopResumedActivityChanged(boolean isTopResumedActivity) {
if(isTopResumedActivity)
- overridePendingTransition(0, R.anim.close_anim);
+ performOnResumeLogic();
+ }
+
+ private void performOnResumeLogic() {
+ if(waitingForPermission) {
+ waitingForPermission = false;
+ init();
+ }
+
+ overridePendingTransition(0, R.anim.close_anim);
+ U.sendBroadcast(this, ACTION_TEMP_SHOW_TASKBAR);
}
}