diff --git a/app/src/main/java/com/keepassdroid/activities/LockingActivity.java b/app/src/main/java/com/keepassdroid/activities/LockingActivity.java index 70066ce80..435b526ce 100644 --- a/app/src/main/java/com/keepassdroid/activities/LockingActivity.java +++ b/app/src/main/java/com/keepassdroid/activities/LockingActivity.java @@ -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 diff --git a/app/src/main/java/com/keepassdroid/app/App.java b/app/src/main/java/com/keepassdroid/app/App.java index 178ede83c..f4a436495 100644 --- a/app/src/main/java/com/keepassdroid/app/App.java +++ b/app/src/main/java/com/keepassdroid/app/App.java @@ -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(); } } diff --git a/app/src/main/java/com/keepassdroid/password/PasswordActivity.java b/app/src/main/java/com/keepassdroid/password/PasswordActivity.java index 793ad85c0..d6e2a4c25 100644 --- a/app/src/main/java/com/keepassdroid/password/PasswordActivity.java +++ b/app/src/main/java/com/keepassdroid/password/PasswordActivity.java @@ -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(); diff --git a/app/src/main/java/com/keepassdroid/timeout/TimeoutHelper.java b/app/src/main/java/com/keepassdroid/timeout/TimeoutHelper.java index f093b1240..a40559cea 100644 --- a/app/src/main/java/com/keepassdroid/timeout/TimeoutHelper.java +++ b/app/src/main/java/com/keepassdroid/timeout/TimeoutHelper.java @@ -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)); } }