Move security prefs to db
This commit is contained in:
parent
758c863622
commit
a10afd7c8e
|
@ -121,8 +121,12 @@ public abstract class BaseActivity extends AppCompatActivity {
|
|||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
if (tinyDB.getBoolean("biometricStatus", false)
|
||||
&& !tinyDB.getBoolean("biometricLifeCycle")) {
|
||||
if (Boolean.parseBoolean(
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
ctx, AppDatabaseSettings.APP_BIOMETRIC_KEY))
|
||||
&& !Boolean.parseBoolean(
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
ctx, AppDatabaseSettings.APP_BIOMETRIC_LIFE_CYCLE_KEY))) {
|
||||
|
||||
Executor executor = ContextCompat.getMainExecutor(this);
|
||||
|
||||
|
@ -147,7 +151,10 @@ public abstract class BaseActivity extends AppCompatActivity {
|
|||
public void onAuthenticationSucceeded(
|
||||
@NonNull BiometricPrompt.AuthenticationResult result) {
|
||||
super.onAuthenticationSucceeded(result);
|
||||
tinyDB.putBoolean("biometricLifeCycle", true);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
getApplicationContext(),
|
||||
"true",
|
||||
AppDatabaseSettings.APP_BIOMETRIC_LIFE_CYCLE_KEY);
|
||||
}
|
||||
|
||||
// Authentication failed, close the app
|
||||
|
|
|
@ -15,11 +15,11 @@ import org.mian.gitnex.helpers.SnackBar;
|
|||
public class SettingsCodeEditorActivity extends BaseActivity {
|
||||
|
||||
private static String[] colorList;
|
||||
private static int colorSelectedChoice = 0;
|
||||
private static int colorSelectedChoice;
|
||||
private static String[] indentationList;
|
||||
private static int indentationSelectedChoice = 0;
|
||||
private static int indentationSelectedChoice;
|
||||
private static String[] indentationTabsList;
|
||||
private static int indentationTabsSelectedChoice = 0;
|
||||
private static int indentationTabsSelectedChoice;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
|
|
|
@ -19,7 +19,7 @@ public class SettingsNotificationsActivity extends BaseActivity {
|
|||
|
||||
private ActivitySettingsNotificationsBinding viewBinding;
|
||||
private static String[] pollingDelayList;
|
||||
private static int pollingDelayListSelectedChoice = 0;
|
||||
private static int pollingDelayListSelectedChoice;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
|
|
|
@ -13,6 +13,7 @@ import java.io.IOException;
|
|||
import org.apache.commons.io.FileUtils;
|
||||
import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.databinding.ActivitySettingsSecurityBinding;
|
||||
import org.mian.gitnex.helpers.AppDatabaseSettings;
|
||||
import org.mian.gitnex.helpers.AppUtil;
|
||||
import org.mian.gitnex.helpers.SnackBar;
|
||||
import org.mian.gitnex.helpers.ssl.MemorizingTrustManager;
|
||||
|
@ -23,9 +24,9 @@ import org.mian.gitnex.helpers.ssl.MemorizingTrustManager;
|
|||
public class SettingsSecurityActivity extends BaseActivity {
|
||||
|
||||
private static String[] cacheSizeDataList;
|
||||
private static int cacheSizeDataSelectedChoice = 0;
|
||||
private static int cacheSizeDataSelectedChoice;
|
||||
private static String[] cacheSizeImagesList;
|
||||
private static int cacheSizeImagesSelectedChoice = 0;
|
||||
private static int cacheSizeImagesSelectedChoice;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
|
@ -41,26 +42,24 @@ public class SettingsSecurityActivity extends BaseActivity {
|
|||
cacheSizeDataList = getResources().getStringArray(R.array.cacheSizeList);
|
||||
cacheSizeImagesList = getResources().getStringArray(R.array.cacheSizeList);
|
||||
|
||||
cacheSizeDataSelectedChoice =
|
||||
Integer.parseInt(
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
ctx, AppDatabaseSettings.APP_DATA_CACHE_KEY));
|
||||
cacheSizeImagesSelectedChoice =
|
||||
Integer.parseInt(
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
ctx, AppDatabaseSettings.APP_IMAGES_CACHE_KEY));
|
||||
|
||||
activitySettingsSecurityBinding.cacheSizeDataSelected.setText(
|
||||
tinyDB.getString(
|
||||
"cacheSizeStr", getString(R.string.cacheSizeDataSelectionSelectedText)));
|
||||
cacheSizeDataList[cacheSizeDataSelectedChoice]);
|
||||
activitySettingsSecurityBinding.cacheSizeImagesSelected.setText(
|
||||
tinyDB.getString(
|
||||
"cacheSizeImagesStr",
|
||||
getString(R.string.cacheSizeImagesSelectionSelectedText)));
|
||||
|
||||
if (cacheSizeDataSelectedChoice == 0) {
|
||||
|
||||
cacheSizeDataSelectedChoice = tinyDB.getInt("cacheSizeId");
|
||||
}
|
||||
|
||||
if (cacheSizeImagesSelectedChoice == 0) {
|
||||
|
||||
cacheSizeImagesSelectedChoice = tinyDB.getInt("cacheSizeImagesId");
|
||||
}
|
||||
cacheSizeImagesList[cacheSizeImagesSelectedChoice]);
|
||||
|
||||
activitySettingsSecurityBinding.switchBiometric.setChecked(
|
||||
tinyDB.getBoolean("biometricStatus", false));
|
||||
Boolean.parseBoolean(
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
ctx, AppDatabaseSettings.APP_BIOMETRIC_KEY)));
|
||||
|
||||
// biometric switcher
|
||||
activitySettingsSecurityBinding.switchBiometric.setOnCheckedChangeListener(
|
||||
|
@ -76,7 +75,8 @@ public class SettingsSecurityActivity extends BaseActivity {
|
|||
switch (biometricManager.canAuthenticate(
|
||||
BIOMETRIC_STRONG | DEVICE_CREDENTIAL)) {
|
||||
case BiometricManager.BIOMETRIC_SUCCESS:
|
||||
tinyDB.putBoolean("biometricStatus", true);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx, "true", AppDatabaseSettings.APP_BIOMETRIC_KEY);
|
||||
SnackBar.success(
|
||||
ctx,
|
||||
findViewById(android.R.id.content),
|
||||
|
@ -86,7 +86,8 @@ public class SettingsSecurityActivity extends BaseActivity {
|
|||
case BiometricManager.BIOMETRIC_ERROR_SECURITY_UPDATE_REQUIRED:
|
||||
case BiometricManager.BIOMETRIC_ERROR_UNSUPPORTED:
|
||||
case BiometricManager.BIOMETRIC_STATUS_UNKNOWN:
|
||||
tinyDB.putBoolean("biometricStatus", false);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx, "false", AppDatabaseSettings.APP_BIOMETRIC_KEY);
|
||||
activitySettingsSecurityBinding.switchBiometric.setChecked(
|
||||
false);
|
||||
SnackBar.error(
|
||||
|
@ -95,7 +96,8 @@ public class SettingsSecurityActivity extends BaseActivity {
|
|||
getString(R.string.biometricNotSupported));
|
||||
break;
|
||||
case BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE:
|
||||
tinyDB.putBoolean("biometricStatus", false);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx, "false", AppDatabaseSettings.APP_BIOMETRIC_KEY);
|
||||
activitySettingsSecurityBinding.switchBiometric.setChecked(
|
||||
false);
|
||||
SnackBar.error(
|
||||
|
@ -104,7 +106,8 @@ public class SettingsSecurityActivity extends BaseActivity {
|
|||
getString(R.string.biometricNotAvailable));
|
||||
break;
|
||||
case BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED:
|
||||
tinyDB.putBoolean("biometricStatus", false);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx, "false", AppDatabaseSettings.APP_BIOMETRIC_KEY);
|
||||
activitySettingsSecurityBinding.switchBiometric.setChecked(
|
||||
false);
|
||||
SnackBar.info(
|
||||
|
@ -115,7 +118,8 @@ public class SettingsSecurityActivity extends BaseActivity {
|
|||
}
|
||||
} else {
|
||||
|
||||
tinyDB.putBoolean("biometricStatus", true);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx, "true", AppDatabaseSettings.APP_BIOMETRIC_KEY);
|
||||
SnackBar.success(
|
||||
ctx,
|
||||
findViewById(android.R.id.content),
|
||||
|
@ -123,7 +127,8 @@ public class SettingsSecurityActivity extends BaseActivity {
|
|||
}
|
||||
} else {
|
||||
|
||||
tinyDB.putBoolean("biometricStatus", false);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx, "false", AppDatabaseSettings.APP_BIOMETRIC_KEY);
|
||||
SnackBar.success(
|
||||
ctx,
|
||||
findViewById(android.R.id.content),
|
||||
|
@ -186,10 +191,16 @@ public class SettingsSecurityActivity extends BaseActivity {
|
|||
activitySettingsSecurityBinding
|
||||
.cacheSizeImagesSelected.setText(
|
||||
cacheSizeImagesList[i]);
|
||||
tinyDB.putString(
|
||||
"cacheSizeImagesStr",
|
||||
cacheSizeImagesList[i]);
|
||||
tinyDB.putInt("cacheSizeImagesId", i);
|
||||
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx,
|
||||
cacheSizeImagesList[i],
|
||||
AppDatabaseSettings
|
||||
.APP_IMAGES_CACHE_SIZE_KEY);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx,
|
||||
String.valueOf(i),
|
||||
AppDatabaseSettings.APP_IMAGES_CACHE_KEY);
|
||||
|
||||
dialogInterfaceTheme.dismiss();
|
||||
SnackBar.success(
|
||||
|
@ -216,9 +227,16 @@ public class SettingsSecurityActivity extends BaseActivity {
|
|||
activitySettingsSecurityBinding
|
||||
.cacheSizeDataSelected.setText(
|
||||
cacheSizeDataList[i]);
|
||||
tinyDB.putString(
|
||||
"cacheSizeStr", cacheSizeDataList[i]);
|
||||
tinyDB.putInt("cacheSizeId", i);
|
||||
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx,
|
||||
cacheSizeDataList[i],
|
||||
AppDatabaseSettings
|
||||
.APP_DATA_CACHE_SIZE_KEY);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx,
|
||||
String.valueOf(i),
|
||||
AppDatabaseSettings.APP_DATA_CACHE_KEY);
|
||||
|
||||
dialogInterfaceTheme.dismiss();
|
||||
SnackBar.success(
|
||||
|
|
|
@ -34,11 +34,10 @@ import org.gitnex.tea4j.v2.apis.custom.OTPApi;
|
|||
import org.gitnex.tea4j.v2.apis.custom.WebApi;
|
||||
import org.gitnex.tea4j.v2.auth.ApiKeyAuth;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.activities.BaseActivity;
|
||||
import org.mian.gitnex.helpers.AppDatabaseSettings;
|
||||
import org.mian.gitnex.helpers.AppUtil;
|
||||
import org.mian.gitnex.helpers.FilesData;
|
||||
import org.mian.gitnex.helpers.TinyDB;
|
||||
import org.mian.gitnex.helpers.ssl.MemorizingTrustManager;
|
||||
import retrofit2.Converter;
|
||||
import retrofit2.Retrofit;
|
||||
|
@ -60,8 +59,6 @@ public class RetrofitClient {
|
|||
String token,
|
||||
File cacheFile) {
|
||||
|
||||
TinyDB tinyDB = TinyDB.getInstance(context);
|
||||
|
||||
// HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
|
||||
// logging.setLevel(HttpLoggingInterceptor.Level.BODY);
|
||||
|
||||
|
@ -88,11 +85,9 @@ public class RetrofitClient {
|
|||
|
||||
int cacheSize =
|
||||
FilesData.returnOnlyNumberFileSize(
|
||||
tinyDB.getString(
|
||||
"cacheSizeStr",
|
||||
context.getString(
|
||||
R.string
|
||||
.cacheSizeDataSelectionSelectedText)))
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
context,
|
||||
AppDatabaseSettings.APP_DATA_CACHE_SIZE_KEY))
|
||||
* 1024
|
||||
* 1024;
|
||||
Cache cache = new Cache(cacheFile, cacheSize);
|
||||
|
|
|
@ -40,7 +40,8 @@ public class MainApplication extends Application {
|
|||
|
||||
AppDatabaseSettings.initDefaultSettings(getApplicationContext());
|
||||
|
||||
tinyDB.putBoolean("biometricLifeCycle", false);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
getApplicationContext(), "false", AppDatabaseSettings.APP_BIOMETRIC_LIFE_CYCLE_KEY);
|
||||
|
||||
FontsOverride.setDefaultFont(getBaseContext());
|
||||
|
||||
|
|
|
@ -52,10 +52,16 @@ public class AppDatabaseSettings {
|
|||
public static String APP_NOTIFICATIONS_DELAY_DEFAULT = "0";
|
||||
public static String APP_BIOMETRIC_KEY = "app_biometric";
|
||||
public static String APP_BIOMETRIC_DEFAULT = "false";
|
||||
public static String APP_BIOMETRIC_LIFE_CYCLE_KEY = "app_biometric_life_cycle";
|
||||
public static String APP_BIOMETRIC_LIFE_CYCLE_DEFAULT = "false";
|
||||
public static String APP_DATA_CACHE_KEY = "app_data_cache";
|
||||
public static String APP_DATA_CACHE_DEFAULT = "1";
|
||||
public static String APP_DATA_CACHE_SIZE_KEY = "app_data_cache_size";
|
||||
public static String APP_DATA_CACHE_SIZE_DEFAULT = "100 MB";
|
||||
public static String APP_IMAGES_CACHE_KEY = "app_images_cache";
|
||||
public static String APP_IMAGES_CACHE_DEFAULT = "1";
|
||||
public static String APP_IMAGES_CACHE_SIZE_KEY = "app_images_cache_size";
|
||||
public static String APP_IMAGES_CACHE_SIZE_DEFAULT = "100 MB";
|
||||
|
||||
public static void initDefaultSettings(Context ctx) {
|
||||
|
||||
|
@ -158,14 +164,32 @@ public class AppDatabaseSettings {
|
|||
appSettingsApi.insertNewSetting(
|
||||
APP_BIOMETRIC_KEY, APP_BIOMETRIC_DEFAULT, APP_BIOMETRIC_DEFAULT);
|
||||
}
|
||||
if (appSettingsApi.fetchSettingCountByKey(APP_BIOMETRIC_LIFE_CYCLE_KEY) == 0) {
|
||||
appSettingsApi.insertNewSetting(
|
||||
APP_BIOMETRIC_LIFE_CYCLE_KEY,
|
||||
APP_BIOMETRIC_LIFE_CYCLE_DEFAULT,
|
||||
APP_BIOMETRIC_LIFE_CYCLE_DEFAULT);
|
||||
}
|
||||
if (appSettingsApi.fetchSettingCountByKey(APP_DATA_CACHE_KEY) == 0) {
|
||||
appSettingsApi.insertNewSetting(
|
||||
APP_DATA_CACHE_KEY, APP_DATA_CACHE_DEFAULT, APP_DATA_CACHE_DEFAULT);
|
||||
}
|
||||
if (appSettingsApi.fetchSettingCountByKey(APP_DATA_CACHE_SIZE_KEY) == 0) {
|
||||
appSettingsApi.insertNewSetting(
|
||||
APP_DATA_CACHE_SIZE_KEY,
|
||||
APP_DATA_CACHE_SIZE_DEFAULT,
|
||||
APP_DATA_CACHE_SIZE_DEFAULT);
|
||||
}
|
||||
if (appSettingsApi.fetchSettingCountByKey(APP_IMAGES_CACHE_KEY) == 0) {
|
||||
appSettingsApi.insertNewSetting(
|
||||
APP_IMAGES_CACHE_KEY, APP_IMAGES_CACHE_DEFAULT, APP_IMAGES_CACHE_DEFAULT);
|
||||
}
|
||||
if (appSettingsApi.fetchSettingCountByKey(APP_IMAGES_CACHE_SIZE_KEY) == 0) {
|
||||
appSettingsApi.insertNewSetting(
|
||||
APP_IMAGES_CACHE_SIZE_KEY,
|
||||
APP_IMAGES_CACHE_SIZE_DEFAULT,
|
||||
APP_IMAGES_CACHE_SIZE_DEFAULT);
|
||||
}
|
||||
}
|
||||
|
||||
public static String getSettingsValue(Context ctx, String key) {
|
||||
|
|
|
@ -15,7 +15,6 @@ import java.util.HashMap;
|
|||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
import org.mian.gitnex.R;
|
||||
|
||||
/**
|
||||
* @author opyale
|
||||
|
@ -34,14 +33,10 @@ public class PicassoCache implements Cache {
|
|||
|
||||
public PicassoCache(File cachePath, Context ctx) throws IOException, ClassNotFoundException {
|
||||
|
||||
TinyDB tinyDb = TinyDB.getInstance(ctx);
|
||||
|
||||
CACHE_SIZE =
|
||||
FilesData.returnOnlyNumberFileSize(
|
||||
tinyDb.getString(
|
||||
"cacheSizeImagesStr",
|
||||
ctx.getString(
|
||||
R.string.cacheSizeImagesSelectionSelectedText)))
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
ctx, AppDatabaseSettings.APP_IMAGES_CACHE_SIZE_KEY))
|
||||
* 1024
|
||||
* 1024;
|
||||
this.cachePath = cachePath;
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
android:id="@+id/cacheSizeDataSelected"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/cacheSizeDataSelectionSelectedText"
|
||||
android:text="@string/cacheSizeDataDialogHeader"
|
||||
android:textColor="?attr/selectedTextColor"
|
||||
android:textSize="@dimen/dimen16sp" />
|
||||
|
||||
|
@ -131,7 +131,7 @@
|
|||
android:id="@+id/cacheSizeImagesSelected"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/cacheSizeImagesSelectionSelectedText"
|
||||
android:text="@string/cacheSizeImagesDialogHeader"
|
||||
android:textColor="?attr/selectedTextColor"
|
||||
android:textSize="@dimen/dimen16sp" />
|
||||
|
||||
|
|
|
@ -237,10 +237,8 @@
|
|||
<string name="settingsFileViewerSourceCodeSelectedText" translatable="false">Sublime</string>
|
||||
<string name="cacheSizeDataDialogHeader">Data Cache Size</string>
|
||||
<string name="cacheSizeDataSelectionHeaderText">Data Cache Size</string>
|
||||
<string name="cacheSizeDataSelectionSelectedText" translatable="false">50 MB</string>
|
||||
<string name="cacheSizeImagesDialogHeader">Images Cache Size</string>
|
||||
<string name="cacheSizeImagesSelectionHeaderText">Images Cache Size</string>
|
||||
<string name="cacheSizeImagesSelectionSelectedText" translatable="false">50 MB</string>
|
||||
<string name="clearCacheSelectionHeaderText">Clear Cache</string>
|
||||
<string name="clearCacheSelectionSelectedText" translatable="false">0 B</string>
|
||||
<string name="clearCacheDialogHeader">Clear Cache?</string>
|
||||
|
|
Loading…
Reference in New Issue