aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/utils
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/utils')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java
index 245d9604..4836c41d 100644
--- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java
+++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java
@@ -1,7 +1,13 @@
package com.zeapo.pwdstore.utils;
+import android.app.Activity;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
import android.util.Log;
+import com.zeapo.pwdstore.UserPreference;
+
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.eclipse.jgit.api.Git;
@@ -111,6 +117,38 @@ public class PasswordRepository {
repository = null;
}
+ public static void initialize(Activity callingActivity) {
+ File dir = null;
+ SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(callingActivity.getApplicationContext());
+
+ if (settings.getBoolean("git_external", false)) {
+ if (settings.getString("git_external_repo", null) != null) {
+ dir = new File(settings.getString("git_external_repo", null));
+ }
+ } else {
+ dir = new File(callingActivity.getFilesDir() + "/store");
+ }
+ // temp for debug
+ if (dir == null) {
+ Intent intent = new Intent(callingActivity, UserPreference.class);
+ intent.putExtra("operation", "git_external");
+ callingActivity.startActivity(intent);
+ return;
+ }
+
+ // uninitialize the repo if the dir does not exist or is absolutely empty
+ if (!dir.exists() || !dir.isDirectory() || FileUtils.listFiles(dir, null, false).isEmpty()) {
+ settings.edit().putBoolean("repository_initialized", false).apply();
+ }
+
+ if (!PasswordRepository.getPasswords(dir).isEmpty()) {
+ settings.edit().putBoolean("repository_initialized", true).apply();
+ }
+
+ // create the repository static variable in PasswordRepository
+ PasswordRepository.getRepository(new File(dir.getAbsolutePath() + "/.git"));
+ }
+
public static ArrayList<File> getFilesList(){
return getFilesList(repository.getWorkTree());
}