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