Browse Source

Refs #40 List trashed passwords

isundil 7 years ago
parent
commit
473399117b

+ 5 - 0
app/src/main/AndroidManifest.xml

@@ -56,6 +56,11 @@
                 android:name="android.support.PARENT_ACTIVITY"
                 android:value="info.knacki.pass.ui.MainActivity" />
         </activity>
+        <activity android:name=".ui.TrashActivity">
+            <meta-data
+                android:name="android.support.PARENT_ACTIVITY"
+                android:value="info.knacki.pass.ui.MainActivity" />
+        </activity>
 
         <provider
             android:name="android.support.v4.content.FileProvider"

+ 3 - 3
app/src/main/java/info/knacki/pass/io/FileInterfaceFactory.java

@@ -57,12 +57,12 @@ public class FileInterfaceFactory {
     }
 
     protected static EncryptionMethodItem GetEncryptionMethod(File f) {
-        final String fName = f.getName();
+        String fileName = f.getName();
         if (PathUtils.IsHidden(f.getAbsolutePath())) {
-            PathUtils.UnHiddenPath(fName);
+            fileName = PathUtils.UnHiddenPath(fileName);
         }
         for (EncryptionMethodItem i: fEncryptionMethods)
-            if (f.getName().endsWith(i.fFileSuffix))
+            if (fileName.endsWith(i.fFileSuffix))
                 return i;
         log.severe("Unknown Interface for file type " +f.getAbsolutePath());
         throw new NoSuchMethodError();

+ 1 - 1
app/src/main/java/info/knacki/pass/io/PathUtils.java

@@ -31,7 +31,7 @@ public class PathUtils {
     }
 
     public static String UnHiddenPath(String path) {
-        return IsHidden(path) ? path.substring(path.length() -TRASH_SUFFIX.length()) : path;
+        return IsHidden(path) ? path.substring(0, path.length() -TRASH_SUFFIX.length()) : path;
     }
 
     public static String HiddenPath(String path) {

+ 3 - 0
app/src/main/java/info/knacki/pass/ui/MainActivity.java

@@ -143,6 +143,9 @@ public class MainActivity extends AppCompatActivity implements PasswordEditListe
             case R.id.settings:
                 ShowSettings();
                 break;
+            case R.id.trash:
+                startActivity(new Intent(this, TrashActivity.class));
+                break;
             default:
                 log.log(Level.WARNING, "Error: Unknown MenuItem id: " +item.getItemId());
                 return false;

+ 59 - 0
app/src/main/java/info/knacki/pass/ui/TrashActivity.java

@@ -0,0 +1,59 @@
+package info.knacki.pass.ui;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v7.app.AppCompatActivity;
+import android.widget.ScrollView;
+
+import java.io.File;
+
+import info.knacki.pass.R;
+import info.knacki.pass.io.PathUtils;
+import info.knacki.pass.ui.passwordList.EditablePasswordListView;
+import info.knacki.pass.ui.passwordList.PasswordEditListener;
+
+public class TrashActivity extends AppCompatActivity implements PasswordEditListener {
+    private EditablePasswordListView fPasswordListView;
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_pass_list);
+
+        setTitle(R.string.title);
+        fPasswordListView = new EditablePasswordListView<>(this, PathUtils.GetPassDir(this), true);
+        ((ScrollView)findViewById(R.id.passwordListContainer)).addView(fPasswordListView);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        fPasswordListView.refresh();
+    }
+
+    @Override
+    public void OnRemovePassword(File f) {
+
+    }
+
+    @Override
+    public void OnRemoveDirectory(File f) {
+
+    }
+
+    @Override
+    public void OnEncryptionInformation(File f) {
+        Intent i = new Intent(this, EncryptionInformationActivity.class);
+        i.putExtra(EncryptionInformationActivity.FILE_PATH, f.getAbsolutePath());
+        startActivity(i);
+    }
+
+    @Override
+    public void OnCopyToClipboard(File f) { }
+
+    @Override
+    public void OnPasswordClicked(File f) {
+        OnEncryptionInformation(f);
+    }
+}

+ 1 - 0
app/src/main/res/menu/main_menu.xml

@@ -4,6 +4,7 @@
         android:icon="@drawable/ic_sync"
         android:id="@+id/id_sync"
         android:title="@string/sync" />
+    <item android:id="@+id/trash" android:title="@string/trash"/>
     <item android:title="@string/New">
         <menu>
             <item android:id="@+id/new_folder" android:title="@string/newFolder"/>

+ 1 - 0
app/src/main/res/values-fr/lang.xml

@@ -104,4 +104,5 @@
     <string name="path">Fichier</string>
     <string name="change">Changer</string>
     <string name="change_encryption_method">Changer la méthode de chiffrement</string>
+    <string name="trash">Poubelle</string>
 </resources>

+ 1 - 0
app/src/main/res/values/lang.xml

@@ -104,4 +104,5 @@
     <string name="path">File</string>
     <string name="change">Change</string>
     <string name="change_encryption_method">Change encryption method</string>
+    <string name="trash">Trash</string>
 </resources>