mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Fix application timeout
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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,15 +46,13 @@ 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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user