Fix application timeout

This commit is contained in:
J-Jamet
2018-03-10 13:01:06 +01:00
parent a9c1369cbf
commit 4db2e6baf9
4 changed files with 23 additions and 14 deletions

View File

@@ -50,16 +50,15 @@ public abstract class LockingActivity extends StylishActivity {
@Override
protected void onResume() {
super.onResume();
TimeoutHelper.checkShutdown(this);
TimeoutHelper.resume(this);
TimeoutHelper.recordTime(this);
}
@Override
protected void onPause() {
super.onPause();
TimeoutHelper.pause(this);
TimeoutHelper.checkTime(this);
TimeoutHelper.checkShutdown(this);
}
@Override

View File

@@ -31,6 +31,7 @@ import java.util.Calendar;
public class App extends MultiDexApplication {
private static Database db = null;
private static boolean shutdown = false;
private static CharSequence mMessage = "";
private static Calendar calendar = null;
private static RecentFileHistory fileHistory = null;
@@ -38,7 +39,6 @@ public class App extends MultiDexApplication {
if ( db == null ) {
db = new Database();
}
return db;
}
@@ -56,17 +56,27 @@ public class App extends MultiDexApplication {
public static void setShutdown() {
shutdown = true;
mMessage = "";
}
public static void setShutdown(CharSequence message) {
shutdown = true;
mMessage = message;
}
public static CharSequence getMessage() {
return mMessage;
}
public static void clearShutdown() {
shutdown = false;
mMessage = "";
}
public static Calendar getCalendar() {
if ( calendar == null ) {
calendar = Calendar.getInstance();
}
return calendar;
}
@@ -75,9 +85,7 @@ public class App extends MultiDexApplication {
super.onCreate();
Stylish.init(this);
fileHistory = new RecentFileHistory(this);
PRNGFixes.apply();
}
@@ -86,7 +94,6 @@ public class App extends MultiDexApplication {
if ( db != null ) {
db.clear();
}
super.onTerminate();
}
}

View File

@@ -308,6 +308,11 @@ public class PasswordActivity extends StylishActivity
setEmptyViews();
}
// Show message if exists
CharSequence appMessage = App.getMessage();
if (! appMessage.toString().isEmpty())
Toast.makeText(this, appMessage, Toast.LENGTH_SHORT).show();
// Clear the shutdown flag
App.clearShutdown();

View File

@@ -33,7 +33,7 @@ public class TimeoutHelper {
private static final long DEFAULT_TIMEOUT = 5 * 60 * 1000; // 5 minutes
public static void pause(Activity act) {
public static void recordTime(Activity act) {
// Record timeout time in case timeout service is killed
long time = System.currentTimeMillis();
@@ -46,14 +46,12 @@ public class TimeoutHelper {
if ( App.getDB().Loaded() ) {
Timeout.start(act);
}
}
public static void resume(Activity act) {
public static void checkTime(Activity act) {
if ( App.getDB().Loaded() ) {
Timeout.cancel(act);
}
// Check whether the timeout has expired
long cur_time = System.currentTimeMillis();
@@ -82,7 +80,7 @@ public class TimeoutHelper {
long diff = cur_time - timeout_start;
if (diff >= timeout) {
// We have timed out
App.setShutdown();
App.setShutdown(act.getString(R.string.app_timeout));
}
}