diff --git a/CHANGELOG b/CHANGELOG index fd85fa5ac..f0ad83f93 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,8 @@ KeePassDroid (0.1.3) * Hide Meta-Info entries * Change "Copy URL" to "Go to URL" + * Support "Go to Homepage" + * Support Lock menu option KeePassDroid (0.1.2) diff --git a/res/values/strings.xml b/res/values/strings.xml index 905316faf..9db87a99e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -21,4 +21,5 @@ Go to Homepage http://www.keepassdroid.com +Lock Database diff --git a/src/com/android/keepass/EntryActivity.java b/src/com/android/keepass/EntryActivity.java index d383e74a9..a65830b80 100644 --- a/src/com/android/keepass/EntryActivity.java +++ b/src/com/android/keepass/EntryActivity.java @@ -40,6 +40,7 @@ public class EntryActivity extends Activity { private static final int MENU_GOTO_URL = Menu.FIRST + 1; private static final int MENU_COPY_USER = Menu.FIRST + 2; private static final int MENU_COPY_PASS = Menu.FIRST + 3; + private static final int MENU_LOCK = Menu.FIRST + 4; public static void Launch(Activity act, PwEntry pw) { @@ -47,7 +48,7 @@ public class EntryActivity extends Activity { i.putExtra(KEY_ENTRY, pw.uuid); - act.startActivity(i); + act.startActivityForResult(i,0); } private PwEntry mEntry; @@ -58,6 +59,7 @@ public class EntryActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.entry_view); + setResult(KeePass.EXIT_NORMAL); Intent i = getIntent(); UUID uuid = UUID.nameUUIDFromBytes(i.getByteArrayExtra(KEY_ENTRY)); @@ -101,6 +103,8 @@ public class EntryActivity extends Activity { menu.findItem(MENU_COPY_USER).setIcon(android.R.drawable.ic_menu_set_as); menu.add(0, MENU_COPY_PASS, 0, R.string.menu_copy_pass); menu.findItem(MENU_COPY_PASS).setIcon(android.R.drawable.ic_menu_agenda); + menu.add(0, MENU_LOCK, 0, R.string.menu_lock); + menu.findItem(MENU_LOCK).setIcon(android.R.drawable.ic_lock_lock); return true; } @@ -129,6 +133,10 @@ public class EntryActivity extends Activity { case MENU_COPY_PASS: Util.copyToClipboard(this, new String(mEntry.getPassword())); return true; + case MENU_LOCK: + setResult(KeePass.EXIT_LOCK); + finish(); + return true; } return super.onOptionsItemSelected(item); diff --git a/src/com/android/keepass/GroupActivity.java b/src/com/android/keepass/GroupActivity.java index f62bd86cc..180e3c017 100644 --- a/src/com/android/keepass/GroupActivity.java +++ b/src/com/android/keepass/GroupActivity.java @@ -29,6 +29,8 @@ import android.app.Activity; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; +import android.view.Menu; +import android.view.MenuItem; import android.view.View; import android.widget.ListView; @@ -36,6 +38,8 @@ public class GroupActivity extends ListActivity { public static final String KEY_ENTRY = "entry"; + private static final int MENU_LOCK = Menu.FIRST; + private PwGroup mGroup; public static void Launch(Activity act, PwGroup group) { @@ -46,7 +50,7 @@ public class GroupActivity extends ListActivity { } - act.startActivity(i); + act.startActivityForResult(i,0); } private int mId; @@ -70,6 +74,7 @@ public class GroupActivity extends ListActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list); + setResult(KeePass.EXIT_NORMAL); int id = getIntent().getIntExtra(KEY_ENTRY, -1); assert(mId >= 0); @@ -87,5 +92,36 @@ public class GroupActivity extends ListActivity { getListView().setTextFilterEnabled(true); } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + super.onCreateOptionsMenu(menu); + + menu.add(0, MENU_LOCK, 0, R.string.menu_lock); + menu.findItem(MENU_LOCK).setIcon(android.R.drawable.ic_lock_lock); + + return true; + } + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch ( item.getItemId() ) { + case MENU_LOCK: + setResult(KeePass.EXIT_LOCK); + finish(); + return true; + } + + return super.onOptionsItemSelected(item); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + + if (resultCode == KeePass.EXIT_LOCK ) { + setResult(KeePass.EXIT_LOCK); + finish(); + } + } } diff --git a/src/com/android/keepass/KeePass.java b/src/com/android/keepass/KeePass.java index 6b0d2fdda..6a870b0c0 100644 --- a/src/com/android/keepass/KeePass.java +++ b/src/com/android/keepass/KeePass.java @@ -43,6 +43,9 @@ import java.util.UUID; import java.util.Vector; public class KeePass extends Activity { + + public static final int EXIT_NORMAL = 0; + public static final int EXIT_LOCK = 1; private static final int MENU_HOMEPAGE = Menu.FIRST;