diff options
3 files changed, 34 insertions, 7 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/AccountsManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/AccountsManager.java index aab483828a..dd0c82439b 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/AccountsManager.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/AccountsManager.java @@ -15,11 +15,11 @@ import java.util.Calendar; * usage only. */ class AccountsManager { - private final static String PREFERENCE_USER_ID = "com.mapbox.mapboxsdk.accounts.userid"; - private final static String PREFERENCE_TIMESTAMP = "com.mapbox.mapboxsdk.accounts.timestamp"; - private final static String PREFERENCE_SKU_TOKEN = "com.mapbox.mapboxsdk.accounts.skutoken"; + private static final String PREFERENCE_USER_ID = "com.mapbox.mapboxsdk.accounts.userid"; + private static final String PREFERENCE_TIMESTAMP = "com.mapbox.mapboxsdk.accounts.timestamp"; + private static final String PREFERENCE_SKU_TOKEN = "com.mapbox.mapboxsdk.accounts.skutoken"; - private final static long ONE_HOUR_MILLIS = 60 * 60 * 1_000L; + static final long ONE_HOUR_MILLIS = 60 * 60 * 1_000L; private long timestamp; private String skuToken; @@ -64,7 +64,11 @@ class AccountsManager { } private boolean isExpired() { - return (getNow() - timestamp > ONE_HOUR_MILLIS); + return isExpired(getNow(), timestamp); + } + + static boolean isExpired(long now, long then) { + return ((now - then) > ONE_HOUR_MILLIS); } private long persistRotation(String skuToken) { @@ -81,7 +85,7 @@ class AccountsManager { .getSharedPreferences(MapboxConstants.MAPBOX_SHARED_PREFERENCES, Context.MODE_PRIVATE); } - private long getNow() { + static long getNow() { return Calendar.getInstance(MapboxConstants.MAPBOX_LOCALE).getTimeInMillis(); } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java index 0a5d4a8347..cc4988b549 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java @@ -106,7 +106,8 @@ public class FileSource { */ @NonNull private static String getCachePath(@NonNull Context context) { - SharedPreferences preferences = context.getSharedPreferences(MapboxConstants.MAPBOX_SHARED_PREFERENCES, Context.MODE_PRIVATE); + SharedPreferences preferences = context.getSharedPreferences( + MapboxConstants.MAPBOX_SHARED_PREFERENCES, Context.MODE_PRIVATE); String cachePath = preferences.getString(MAPBOX_SHARED_PREFERENCE_RESOURCES_CACHE_PATH, null); if (!isPathWritable(cachePath)) { diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/AccountsManagerTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/AccountsManagerTest.java new file mode 100644 index 0000000000..bce5ad6c76 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/AccountsManagerTest.java @@ -0,0 +1,22 @@ +package com.mapbox.mapboxsdk; + +import org.junit.Assert; +import org.junit.Test; + +public class AccountsManagerTest { + @Test + public void testIsExpired() { + long now = AccountsManager.getNow(); + + long defaultValue = 0L; + long tooOld = now - AccountsManager.ONE_HOUR_MILLIS - 1; + long futureValue = now + 1; + long immediatePast = now - 1; + + Assert.assertTrue(AccountsManager.isExpired(now, defaultValue)); + Assert.assertTrue(AccountsManager.isExpired(now, tooOld)); + + Assert.assertFalse(AccountsManager.isExpired(now, futureValue)); + Assert.assertFalse(AccountsManager.isExpired(now, immediatePast)); + } +} |