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;