Add Recycle Bin setting in code

This commit is contained in:
J-Jamet
2018-02-26 14:16:14 +01:00
parent 8858a5cdca
commit 81503c6934
3 changed files with 40 additions and 11 deletions

View File

@@ -40,6 +40,7 @@ import com.keepassdroid.adapters.NodeAdapter;
import com.keepassdroid.app.App;
import com.keepassdroid.compat.ActivityCompat;
import com.keepassdroid.compat.EditorCompat;
import com.keepassdroid.database.PwDatabase;
import com.keepassdroid.database.PwEntry;
import com.keepassdroid.database.PwGroup;
import com.keepassdroid.database.PwNode;
@@ -165,6 +166,7 @@ public abstract class ListNodesActivity extends LockCloseListActivity
editor.putString(getString(R.string.sort_node_key), sortNodeEnum.name());
editor.putBoolean(getString(R.string.sort_ascending_key), ascending);
editor.putBoolean(getString(R.string.sort_group_before_key), groupsBefore);
editor.putBoolean(getString(R.string.sort_recycle_bin_bottom_key), recycleBinBottom);
EditorCompat.apply(editor);
// Tell the adapter to refresh it's list
@@ -177,11 +179,27 @@ public abstract class ListNodesActivity extends LockCloseListActivity
switch ( item.getItemId() ) {
case R.id.menu_sort:
SortDialogFragment sortDialogFragment =
SortDialogFragment.getInstance(
PrefsUtil.getListSort(this),
PrefsUtil.getAscendingSort(this),
PrefsUtil.getGroupsBeforeSort(this));
SortDialogFragment sortDialogFragment;
PwDatabase database = App.getDB().pm;
/*
// TODO Recycle bin bottom
if (database.isRecycleBinAvailable() && database.isRecycleBinEnable()) {
sortDialogFragment =
SortDialogFragment.getInstance(
PrefsUtil.getListSort(this),
PrefsUtil.getAscendingSort(this),
PrefsUtil.getGroupsBeforeSort(this),
PrefsUtil.getRecycleBinBottomSort(this));
} else {
*/
sortDialogFragment =
SortDialogFragment.getInstance(
PrefsUtil.getListSort(this),
PrefsUtil.getAscendingSort(this),
PrefsUtil.getGroupsBeforeSort(this));
//}
sortDialogFragment.show(getSupportFragmentManager(), "sortDialog");
return true;
@@ -278,12 +296,15 @@ public abstract class ListNodesActivity extends LockCloseListActivity
if ( mSuccess) {
mAdapter.removeNode(pwNode);
PwGroup parent = pwNode.getParent();
PwGroup recycleBin = App.getDB().pm.getRecycleBin();
// Add trash if it doesn't exists
if (parent.equals(recycleBin)
&& mCurrentGroup.getParent() == null
&& !mCurrentGroup.equals(recycleBin)) {
mAdapter.addNode(parent);
PwDatabase database = App.getDB().pm;
if (database.isRecycleBinAvailable() && database.isRecycleBinEnable()) {
PwGroup recycleBin = database.getRecycleBin();
// Add trash if it doesn't exists
if (parent.equals(recycleBin)
&& mCurrentGroup.getParent() == null
&& !mCurrentGroup.equals(recycleBin)) {
mAdapter.addNode(parent);
}
}
} else {
mHandler.post(new UIToastTask(ListNodesActivity.this, "Unrecoverable error: " + mMessage));

View File

@@ -108,6 +108,12 @@ public class PrefsUtil {
ctx.getResources().getBoolean(R.bool.sort_ascending_default));
}
public static boolean getRecycleBinBottomSort(Context ctx) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
return prefs.getBoolean(ctx.getString(R.string.sort_recycle_bin_bottom_key),
ctx.getResources().getBoolean(R.bool.sort_recycle_bin_bottom_default));
}
public static boolean isPasswordMask(Context ctx) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
return prefs.getBoolean(ctx.getString(R.string.maskpass_key),

View File

@@ -51,6 +51,7 @@
<string name="sort_node_key" translatable="false">sort_node_key</string>
<string name="sort_group_before_key" translatable="false">sort_group_before_key</string>
<string name="sort_ascending_key" translatable="false">sort_ascending_key</string>
<string name="sort_recycle_bin_bottom_key" translatable="false">sort_recycle_bin_bottom_key</string>
<string name="timeout_key" translatable="false">timeout_key</string>
<string name="saf_key" translatable="false">storage_access_framework_key</string>
<integer name="roundsFix_default" translatable="false">100000</integer>
@@ -73,6 +74,7 @@
<bool name="full_file_path_enable_default" translatable="true">false</bool>
<bool name="sort_group_before_default" translatable="true">true</bool>
<bool name="sort_ascending_default" translatable="true">true</bool>
<bool name="sort_recycle_bin_bottom_default" translatable="true">true</bool>
<string name="clipboard_timeout_default" translatable="false">300000</string>
<string-array name="clipboard_timeout_values">