commit 3c049a864187e1fc7740f0bcd5947a9e5f354d22
Author: Hashik Donthineni <HashikDonthineni(a)gmail.com>
Date: Sat Jul 25 18:40:14 2020 +0530
Moved SharedPreferences to constants to increase cohesion in presenter
---
.../torproject/snowflake/MyPersistentService.java | 11 +++++-----
.../constants/AppPreferenceConstants.java | 8 ++++++++
.../snowflake/models/MainActivityModel.java | 24 +++++++++++-----------
.../presenters/MainActivityPresenter.java | 11 +++++-----
.../main/res/values/strings_preference_keys.xml | 4 ----
5 files changed, 32 insertions(+), 26 deletions(-)
diff --git a/app/src/main/java/org/torproject/snowflake/MyPersistentService.java b/app/src/main/java/org/torproject/snowflake/MyPersistentService.java
index c8c2304..2444255 100644
--- a/app/src/main/java/org/torproject/snowflake/MyPersistentService.java
+++ b/app/src/main/java/org/torproject/snowflake/MyPersistentService.java
@@ -16,6 +16,7 @@ import androidx.annotation.Nullable;
import org.jetbrains.annotations.NotNull;
import org.json.JSONException;
+import org.torproject.snowflake.constants.AppPreferenceConstants;
import org.torproject.snowflake.constants.BrokerConstants;
import org.torproject.snowflake.constants.ForegroundServiceConstants;
import org.torproject.snowflake.exceptions.EmptySIDException;
@@ -80,7 +81,7 @@ public class MyPersistentService extends Service {
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG, "onStartCommand: executed with startId: " + startId);
sharedPreferences = getSharedPreferences(getString(R.string.sharedpreference_file), MODE_PRIVATE);
- isServiceStarted = sharedPreferences.getBoolean(getString(R.string.is_service_running_bool_key), false);
+ isServiceStarted = sharedPreferences.getBoolean(AppPreferenceConstants.IS_SERVICE_RUNNING_KEY, false);
if (intent != null) {
if (intent.getAction().equals(ForegroundServiceConstants.ACTION_START))
@@ -132,10 +133,10 @@ public class MyPersistentService extends Service {
if (setState == ForegroundServiceConstants.SERVICE_RUNNING) {
isServiceStarted = true;
- editor.putBoolean(getString(R.string.is_service_running_bool_key), true);
+ editor.putBoolean(AppPreferenceConstants.IS_SERVICE_RUNNING_KEY, true);
} else {
isServiceStarted = false;
- editor.putBoolean(getString(R.string.is_service_running_bool_key), false);
+ editor.putBoolean(AppPreferenceConstants.IS_SERVICE_RUNNING_KEY, false);
}
editor.apply();
}
@@ -146,8 +147,8 @@ public class MyPersistentService extends Service {
private void updateServedCount() {
SharedPreferences sp = GlobalApplication.getAppPreferences();
sp.edit()
- .putInt(getString(R.string.users_served_key),
- sp.getInt(getString(R.string.users_served_key), 0) + 1)
+ .putInt(AppPreferenceConstants.USER_SERVED_KEY,
+ sp.getInt(AppPreferenceConstants.USER_SERVED_KEY, 0) + 1)
.apply();
}
diff --git a/app/src/main/java/org/torproject/snowflake/constants/AppPreferenceConstants.java b/app/src/main/java/org/torproject/snowflake/constants/AppPreferenceConstants.java
new file mode 100644
index 0000000..58400a4
--- /dev/null
+++ b/app/src/main/java/org/torproject/snowflake/constants/AppPreferenceConstants.java
@@ -0,0 +1,8 @@
+package org.torproject.snowflake.constants;
+
+public class AppPreferenceConstants {
+ public static final String USER_SERVED_KEY = "users_served";
+ public static final String DATE_KEY = "date";
+ public static final String INITIAL_RUN_KEY = "initial_run";
+ public static final String IS_SERVICE_RUNNING_KEY = "is_service_running";
+}
diff --git a/app/src/main/java/org/torproject/snowflake/models/MainActivityModel.java b/app/src/main/java/org/torproject/snowflake/models/MainActivityModel.java
index 7aaf0e5..4354913 100644
--- a/app/src/main/java/org/torproject/snowflake/models/MainActivityModel.java
+++ b/app/src/main/java/org/torproject/snowflake/models/MainActivityModel.java
@@ -4,6 +4,7 @@ import android.content.SharedPreferences;
import android.util.Log;
import org.torproject.snowflake.GlobalApplication;
+import org.torproject.snowflake.constants.AppPreferenceConstants;
import org.torproject.snowflake.presenters.MainActivityPresenter;
import java.text.ParseException;
@@ -13,7 +14,6 @@ import java.util.Date;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.core.Single;
-import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
/**
@@ -55,8 +55,8 @@ public class MainActivityModel {
sharedPreferences.edit().putBoolean(key, val).apply();
}
- public boolean isServiceRunning(String key) {
- return sharedPreferences.getBoolean(key, false);
+ public boolean isServiceRunning() {
+ return sharedPreferences.getBoolean(AppPreferenceConstants.IS_SERVICE_RUNNING_KEY, false);
}
/**
@@ -71,7 +71,7 @@ public class MainActivityModel {
listener = (prefs, key) -> {
Log.d(TAG, "setListenerForCount: Listener: Key = " + key);
- if (key.equals("users_served")) {
+ if (key.equals(AppPreferenceConstants.USER_SERVED_KEY)) {
servedCount = sharedPreferences.getInt(key, 0);
if (presenter != null)
presenter.updateServedCount(servedCount);
@@ -81,17 +81,17 @@ public class MainActivityModel {
sharedPreferences.registerOnSharedPreferenceChangeListener(listener);
}
- public String getDate(String dateKey) {
- return sharedPreferences.getString(dateKey, "");
+ public String getDate() {
+ return sharedPreferences.getString(AppPreferenceConstants.DATE_KEY, "");
}
/**
* Setting the users served date and value.
*/
- public void setDateAndServed(String dateKey, String valueKey, String date, int value) {
+ public void setDateAndServed(String date, int value) {
SharedPreferences.Editor editor = sharedPreferences.edit();
- editor.putString(dateKey, date);
- editor.putInt(valueKey, value);
+ editor.putString(AppPreferenceConstants.DATE_KEY, date);
+ editor.putInt(AppPreferenceConstants.USER_SERVED_KEY, value);
editor.apply();
}
@@ -111,7 +111,7 @@ public class MainActivityModel {
//No value for key. Set the date value to current date and users served to 0.
if (stringRecordedDate.equals("")) {
- setDateAndServed("date", "users_served", stringCurrentDate, 0);
+ setDateAndServed(stringCurrentDate, 0);
} else {
//Check if the current system date is greater than recorded date, if so reset the "served" flag.
Date recordedDate = simpleDateFormat.parse(stringRecordedDate);
@@ -125,7 +125,7 @@ public class MainActivityModel {
return true;
} else {
//Current date is bigger than recorded date. Reset the values. i.e comparision > 0
- setDateAndServed("date", "users_served", simpleDateFormat.format(currentDate), 0);
+ setDateAndServed(simpleDateFormat.format(currentDate), 0);
}
}
@@ -146,7 +146,7 @@ public class MainActivityModel {
.observeOn(AndroidSchedulers.mainThread())
.subscribe((status) -> { //Runs on main thread
//By this point the servedCount must be reset or left as is after checking the dates.
- presenter.updateServedCount(getServedCount("users_served"));
+ presenter.updateServedCount(getServedCount(AppPreferenceConstants.USER_SERVED_KEY));
setListenerForCount();
});
}
diff --git a/app/src/main/java/org/torproject/snowflake/presenters/MainActivityPresenter.java b/app/src/main/java/org/torproject/snowflake/presenters/MainActivityPresenter.java
index 1958622..d2c0734 100644
--- a/app/src/main/java/org/torproject/snowflake/presenters/MainActivityPresenter.java
+++ b/app/src/main/java/org/torproject/snowflake/presenters/MainActivityPresenter.java
@@ -4,6 +4,7 @@ import android.util.Log;
import org.torproject.snowflake.MainActivity;
import org.torproject.snowflake.R;
+import org.torproject.snowflake.constants.AppPreferenceConstants;
import org.torproject.snowflake.models.MainActivityModel;
/**
@@ -32,7 +33,7 @@ public class MainActivityPresenter {
public int getServedCount() {
Log.d(TAG, "getServedCount: ");
if (view != null) {
- return model.getServedCount(((MainActivity) view).getString(R.string.users_served_key));
+ return model.getServedCount(AppPreferenceConstants.USER_SERVED_KEY);
}
return 0;
}
@@ -40,7 +41,7 @@ public class MainActivityPresenter {
public boolean getInitialRunBoolean() {
Log.d(TAG, "getInitialRunBoolean: ");
if (view != null) {
- return model.getInitialRunBool(((MainActivity) view).getString(R.string.initial_run_boolean_key));
+ return model.getInitialRunBool(AppPreferenceConstants.INITIAL_RUN_KEY);
}
return false;
}
@@ -53,7 +54,7 @@ public class MainActivityPresenter {
public void setInitialRunBoolean(boolean val) {
Log.d(TAG, "setInitialRunBoolean: ");
if (view != null) {
- model.setInitialRunBool(((MainActivity) view).getString(R.string.initial_run_boolean_key), val);
+ model.setInitialRunBool(AppPreferenceConstants.INITIAL_RUN_KEY, val);
}
}
@@ -65,7 +66,7 @@ public class MainActivityPresenter {
public boolean isServiceRunning() {
Log.d(TAG, "isServiceRunning: ");
if (view != null) {
- return model.isServiceRunning(((MainActivity) view).getString(R.string.is_service_running_bool_key));
+ return model.isServiceRunning();
}
return true;
}
@@ -81,7 +82,7 @@ public class MainActivityPresenter {
* Getting the served date.
*/
public String getDate() {
- return model.getDate("date");
+ return model.getDate();
}
public void checkDate() {
diff --git a/app/src/main/res/values/strings_preference_keys.xml b/app/src/main/res/values/strings_preference_keys.xml
index 2727405..44d2ee0 100644
--- a/app/src/main/res/values/strings_preference_keys.xml
+++ b/app/src/main/res/values/strings_preference_keys.xml
@@ -1,8 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="sharedpreference_file">org.torproject.snowflake.snowflake_preferences</string>
- <string name="users_served_key">users_served</string>
- <string name="served_date_key">date</string>
- <string name="initial_run_boolean_key">initial_run</string>
- <string name="is_service_running_bool_key">is_service_running</string>
</resources>
\ No newline at end of file