diff --git a/app/src/main/java/com/keepassdroid/activities/ListNodesActivity.java b/app/src/main/java/com/keepassdroid/activities/ListNodesActivity.java
index db6e5705d..083660e2b 100644
--- a/app/src/main/java/com/keepassdroid/activities/ListNodesActivity.java
+++ b/app/src/main/java/com/keepassdroid/activities/ListNodesActivity.java
@@ -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));
diff --git a/app/src/main/java/com/keepassdroid/settings/PrefsUtil.java b/app/src/main/java/com/keepassdroid/settings/PrefsUtil.java
index 53b616bbe..ffa2d9b4c 100644
--- a/app/src/main/java/com/keepassdroid/settings/PrefsUtil.java
+++ b/app/src/main/java/com/keepassdroid/settings/PrefsUtil.java
@@ -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),
diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml
index 38a65cab9..1098b07ec 100644
--- a/app/src/main/res/values/donottranslate.xml
+++ b/app/src/main/res/values/donottranslate.xml
@@ -51,6 +51,7 @@
sort_node_key
sort_group_before_key
sort_ascending_key
+ sort_recycle_bin_bottom_key
timeout_key
storage_access_framework_key
100000
@@ -73,6 +74,7 @@
false
true
true
+ true
300000