Use a setting to record whether update notice has been shown

This commit is contained in:
akwizgran
2017-10-11 13:45:02 +01:00
parent 8c29c85696
commit b67abadbac

View File

@@ -27,7 +27,6 @@ import javax.inject.Inject;
import static java.util.logging.Level.INFO; import static java.util.logging.Level.INFO;
import static java.util.logging.Level.WARNING; import static java.util.logging.Level.WARNING;
import static org.briarproject.briar.BuildConfig.VERSION_CODE;
import static org.briarproject.briar.android.BriarApplication.EXPIRY_DATE; import static org.briarproject.briar.android.BriarApplication.EXPIRY_DATE;
import static org.briarproject.briar.android.navdrawer.NavDrawerController.ExpiryWarning.NO; import static org.briarproject.briar.android.navdrawer.NavDrawerController.ExpiryWarning.NO;
import static org.briarproject.briar.android.navdrawer.NavDrawerController.ExpiryWarning.SHOW; import static org.briarproject.briar.android.navdrawer.NavDrawerController.ExpiryWarning.SHOW;
@@ -42,7 +41,7 @@ public class NavDrawerControllerImpl extends DbControllerImpl
private static final Logger LOG = private static final Logger LOG =
Logger.getLogger(NavDrawerControllerImpl.class.getName()); Logger.getLogger(NavDrawerControllerImpl.class.getName());
private static final String EXPIRY_DATE_WARNING = "expiryDateWarning"; private static final String EXPIRY_DATE_WARNING = "expiryDateWarning";
private static final String EXPIRY_DATE_VERSION = "expiryDateVersion"; private static final String EXPIRY_SHOW_UPDATE = "expiryShowUpdate";
private final PluginManager pluginManager; private final PluginManager pluginManager;
private final SettingsManager settingsManager; private final SettingsManager settingsManager;
@@ -116,7 +115,8 @@ public class NavDrawerControllerImpl extends DbControllerImpl
Settings settings = Settings settings =
settingsManager.getSettings(SETTINGS_NAMESPACE); settingsManager.getSettings(SETTINGS_NAMESPACE);
int warningInt = settings.getInt(EXPIRY_DATE_WARNING, 0); int warningInt = settings.getInt(EXPIRY_DATE_WARNING, 0);
int versionCode = settings.getInt(EXPIRY_DATE_VERSION, 0); boolean showUpdate =
settings.getBoolean(EXPIRY_SHOW_UPDATE, true);
if (warningInt == 0) { if (warningInt == 0) {
// we have not warned before // we have not warned before
@@ -129,14 +129,16 @@ public class NavDrawerControllerImpl extends DbControllerImpl
long daysBeforeExpiry = long daysBeforeExpiry =
(EXPIRY_DATE - now) / 1000 / 60 / 60 / 24; (EXPIRY_DATE - now) / 1000 / 60 / 60 / 24;
if (versionCode < 1611) { if (showUpdate) {
handler.onResult(UPDATE); handler.onResult(UPDATE);
} else if (daysSinceLastWarning >= 30) { } else if (daysSinceLastWarning >= 30) {
handler.onResult(SHOW); handler.onResult(SHOW);
} else if (daysBeforeExpiry <= 3 && } else if (daysBeforeExpiry <= 3 &&
daysSinceLastWarning > 0) { daysSinceLastWarning > 0) {
handler.onResult(SHOW); handler.onResult(SHOW);
} else handler.onResult(NO); } else {
handler.onResult(NO);
}
} }
} catch (DbException e) { } catch (DbException e) {
if (LOG.isLoggable(WARNING)) if (LOG.isLoggable(WARNING))
@@ -155,7 +157,7 @@ public class NavDrawerControllerImpl extends DbControllerImpl
Settings settings = new Settings(); Settings settings = new Settings();
int date = (int) (System.currentTimeMillis() / 1000L); int date = (int) (System.currentTimeMillis() / 1000L);
settings.putInt(EXPIRY_DATE_WARNING, date); settings.putInt(EXPIRY_DATE_WARNING, date);
settings.putInt(EXPIRY_DATE_VERSION, VERSION_CODE); settings.putBoolean(EXPIRY_SHOW_UPDATE, false);
settingsManager.mergeSettings(settings, SETTINGS_NAMESPACE); settingsManager.mergeSettings(settings, SETTINGS_NAMESPACE);
} catch (DbException e) { } catch (DbException e) {
if (LOG.isLoggable(WARNING)) if (LOG.isLoggable(WARNING))