mirror of
https://github.com/android-password-store/Android-Password-Store
synced 2025-09-02 07:15:21 +00:00
enable the users to delete the repository
This commit is contained in:
Binary file not shown.
@@ -9,8 +9,8 @@ android {
|
|||||||
applicationId "com.zeapo.pwdstore"
|
applicationId "com.zeapo.pwdstore"
|
||||||
minSdkVersion 15
|
minSdkVersion 15
|
||||||
targetSdkVersion 21
|
targetSdkVersion 21
|
||||||
versionCode 26
|
versionCode 27
|
||||||
versionName "1.2.0.7"
|
versionName "1.2.0.8"
|
||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
|
@@ -267,19 +267,19 @@ public class PasswordStore extends ActionBarActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void checkLocalRepository(File localDir) {
|
private void checkLocalRepository(File localDir) {
|
||||||
Log.d("PASS", localDir.getAbsolutePath());
|
Log.d("PASS", "Check, dir: " + localDir.getAbsolutePath());
|
||||||
FragmentManager fragmentManager = getFragmentManager();
|
FragmentManager fragmentManager = getFragmentManager();
|
||||||
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||||
|
|
||||||
|
int status = 0;
|
||||||
|
|
||||||
|
if (localDir.exists()) {
|
||||||
// if we are coming back from gpg do not anything
|
// if we are coming back from gpg do not anything
|
||||||
if (this.leftActivity) {
|
if (this.leftActivity) {
|
||||||
this.leftActivity = false;
|
this.leftActivity = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int status = 0;
|
|
||||||
|
|
||||||
if (localDir.exists()) {
|
|
||||||
File[] folders = localDir.listFiles();
|
File[] folders = localDir.listFiles();
|
||||||
status = folders.length;
|
status = folders.length;
|
||||||
|
|
||||||
@@ -291,10 +291,15 @@ public class PasswordStore extends ActionBarActivity {
|
|||||||
// either the repo is empty or it was not correctly cloned
|
// either the repo is empty or it was not correctly cloned
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case 0:
|
case 0:
|
||||||
if(!localDir.equals(PasswordRepository.getWorkTree()))
|
if(!localDir.equals(PasswordRepository.getWorkTree()) && localDir.exists())
|
||||||
break;
|
break;
|
||||||
PasswordRepository.setInitialized(false);
|
PasswordRepository.setInitialized(false);
|
||||||
|
|
||||||
|
// if we still have the pass list (after deleting for instance) remove it
|
||||||
|
if (fragmentManager.findFragmentByTag("PasswordsList") != null) {
|
||||||
|
fragmentManager.popBackStack();
|
||||||
|
}
|
||||||
|
|
||||||
ToCloneOrNot cloneFrag = new ToCloneOrNot();
|
ToCloneOrNot cloneFrag = new ToCloneOrNot();
|
||||||
fragmentTransaction.replace(R.id.main_layout, cloneFrag, "ToCloneOrNot");
|
fragmentTransaction.replace(R.id.main_layout, cloneFrag, "ToCloneOrNot");
|
||||||
fragmentTransaction.commit();
|
fragmentTransaction.commit();
|
||||||
@@ -302,6 +307,12 @@ public class PasswordStore extends ActionBarActivity {
|
|||||||
default:
|
default:
|
||||||
|
|
||||||
if (fragmentManager.findFragmentByTag("PasswordsList") == null) {
|
if (fragmentManager.findFragmentByTag("PasswordsList") == null) {
|
||||||
|
|
||||||
|
// clean things up
|
||||||
|
if (fragmentManager.findFragmentByTag("ToCloneOrNot") != null) {
|
||||||
|
fragmentManager.popBackStack();
|
||||||
|
}
|
||||||
|
|
||||||
PasswordRepository.setInitialized(true);
|
PasswordRepository.setInitialized(true);
|
||||||
plist = new PasswordFragment();
|
plist = new PasswordFragment();
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
@@ -315,7 +326,6 @@ public class PasswordStore extends ActionBarActivity {
|
|||||||
fragmentTransaction.commit();
|
fragmentTransaction.commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.leftActivity = false;
|
this.leftActivity = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -22,6 +22,7 @@ import com.zeapo.pwdstore.utils.PasswordRepository;
|
|||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.eclipse.jgit.api.CloneCommand;
|
import org.eclipse.jgit.api.CloneCommand;
|
||||||
|
import org.eclipse.jgit.lib.Repository;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
@@ -44,6 +45,7 @@ public class UserPreference extends ActionBarActivity implements Preference.OnPr
|
|||||||
findPreference("openpgp_key_id").setOnPreferenceClickListener((UserPreference) getActivity());
|
findPreference("openpgp_key_id").setOnPreferenceClickListener((UserPreference) getActivity());
|
||||||
findPreference("ssh_key").setOnPreferenceClickListener((UserPreference) getActivity());
|
findPreference("ssh_key").setOnPreferenceClickListener((UserPreference) getActivity());
|
||||||
findPreference("git_server_info").setOnPreferenceClickListener((UserPreference) getActivity());
|
findPreference("git_server_info").setOnPreferenceClickListener((UserPreference) getActivity());
|
||||||
|
findPreference("git_delete_repo").setOnPreferenceClickListener((UserPreference) getActivity());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -117,6 +119,36 @@ public class UserPreference extends ActionBarActivity implements Preference.OnPr
|
|||||||
startActivityForResult(intent, EDIT_GIT_INFO);
|
startActivityForResult(intent, EDIT_GIT_INFO);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case "git_delete_repo":
|
||||||
|
{
|
||||||
|
new AlertDialog.Builder(this).
|
||||||
|
setTitle(R.string.pref_dialog_delete_title).
|
||||||
|
setMessage(R.string.pref_dialog_delete_msg).
|
||||||
|
setCancelable(false).
|
||||||
|
setPositiveButton(R.string.dialog_delete,
|
||||||
|
new DialogInterface.OnClickListener() {
|
||||||
|
public void onClick(DialogInterface dialog, int id) {
|
||||||
|
try {
|
||||||
|
FileUtils.deleteDirectory(PasswordRepository.getWorkTree());
|
||||||
|
} catch (Exception e) {
|
||||||
|
//This is what happens when jgit fails :(
|
||||||
|
//TODO Handle the diffent cases of exceptions
|
||||||
|
}
|
||||||
|
|
||||||
|
dialog.cancel();
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
).
|
||||||
|
setNegativeButton(R.string.dialog_do_not_delete,
|
||||||
|
new DialogInterface.OnClickListener() {
|
||||||
|
public void onClick(DialogInterface dialog, int id) {
|
||||||
|
dialog.cancel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
).
|
||||||
|
show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -95,6 +95,9 @@
|
|||||||
<string name="pref_git_username_hint">username</string>
|
<string name="pref_git_username_hint">username</string>
|
||||||
<string name="pref_edit_server_info">Edit git server settings</string>
|
<string name="pref_edit_server_info">Edit git server settings</string>
|
||||||
<string name="pref_ssh_title">Import ssh-key</string>
|
<string name="pref_ssh_title">Import ssh-key</string>
|
||||||
|
<string name="pref_git_delete_repo">Delete repository</string>
|
||||||
|
<string name="pref_dialog_delete_title">Clear repository</string>
|
||||||
|
<string name="pref_dialog_delete_msg">Do you want to delete the current password store directory? This will not clear your configuration.</string>
|
||||||
<string name="pref_crypto_title">Crypto</string>
|
<string name="pref_crypto_title">Crypto</string>
|
||||||
<string name="pref_provider_title">Select OpenPGP Provider!</string>
|
<string name="pref_provider_title">Select OpenPGP Provider!</string>
|
||||||
<string name="pref_provider_account_title">Set your OpenPGP account</string>
|
<string name="pref_provider_account_title">Set your OpenPGP account</string>
|
||||||
|
@@ -3,6 +3,7 @@
|
|||||||
<PreferenceCategory android:title="@string/pref_git_title">
|
<PreferenceCategory android:title="@string/pref_git_title">
|
||||||
<Preference android:title="@string/pref_edit_server_info" android:key="git_server_info"/>
|
<Preference android:title="@string/pref_edit_server_info" android:key="git_server_info"/>
|
||||||
<Preference android:title="@string/pref_ssh_title" android:key="ssh_key" />
|
<Preference android:title="@string/pref_ssh_title" android:key="ssh_key" />
|
||||||
|
<Preference android:title="@string/pref_git_delete_repo" android:key="git_delete_repo"/>
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory android:title="@string/pref_crypto_title">
|
<PreferenceCategory android:title="@string/pref_crypto_title">
|
||||||
|
Reference in New Issue
Block a user