summaryrefslogtreecommitdiff
path: root/app/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/PasswordStore.java11
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java66
-rw-r--r--app/src/main/res/drawable-xxhdpi/red_rectangle.xml24
-rw-r--r--app/src/main/res/layout/activity_pwdstore.xml2
-rw-r--r--app/src/main/res/layout/decrypt_layout.xml164
-rw-r--r--app/src/main/res/layout/encrypt_layout.xml4
-rw-r--r--app/src/main/res/menu/pwdstore.xml10
-rw-r--r--app/src/main/res/xml/preference.xml3
8 files changed, 170 insertions, 114 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java b/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java
index 890a76bc..da90e33b 100644
--- a/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java
+++ b/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java
@@ -80,6 +80,13 @@ public class PasswordStore extends Activity implements ToCloneOrNot.OnFragmentI
}
return true;
+ case R.id.menu_add_password:
+ createPassword(getCurrentFocus());
+ break;
+
+ case R.id.menu_add_category:
+ break;
+
case R.id.referesh:
PasswordFragment plist;
if (null !=
@@ -204,7 +211,6 @@ public class PasswordStore extends Activity implements ToCloneOrNot.OnFragmentI
try {
Intent intent = new Intent(this, PgpHandler.class);
intent.putExtra("PGP-ID", FileUtils.readFileToString(PasswordRepository.getFile("/.gpg-id")));
- intent.putExtra("NAME", "test.gpg");
intent.putExtra("FILE_PATH", this.currentDir.getAbsolutePath());
intent.putExtra("Operation", "ENCRYPT");
// TODO Define different operations here
@@ -217,6 +223,7 @@ public class PasswordStore extends Activity implements ToCloneOrNot.OnFragmentI
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
System.out.println(resultCode);
- checkLocalRepository(this.currentDir);
+ if (resultCode == RESULT_OK)
+ checkLocalRepository(this.currentDir);
}
}
diff --git a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java
index fec575ac..8e7cfe65 100644
--- a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java
+++ b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpHandler.java
@@ -2,7 +2,9 @@ package com.zeapo.pwdstore.crypto;
import android.app.ActionBar;
import android.app.Activity;
+import android.app.AlertDialog;
import android.app.PendingIntent;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentSender;
import android.content.SharedPreferences;
@@ -20,7 +22,6 @@ import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
-import android.widget.GridLayout.LayoutParams;
import com.zeapo.pwdstore.R;
import com.zeapo.pwdstore.UserPreference;
@@ -37,7 +38,6 @@ import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
-import java.io.StringReader;
import java.io.UnsupportedEncodingException;
public class PgpHandler extends Activity {
@@ -67,14 +67,9 @@ public class PgpHandler extends Activity {
Bundle extra = getIntent().getExtras();
if (extra.getString("Operation").equals("DECRYPT")) {
setContentView(R.layout.decrypt_layout);
-
((TextView) findViewById(R.id.crypto_password_file)).setText(extra.getString("NAME"));
- findViewById(R.id.crypto_show_button).setVisibility(View.VISIBLE);
} else if (extra.getString("Operation").equals("ENCRYPT")) {
setContentView(R.layout.encrypt_layout);
-
- ((EditText) findViewById(R.id.crypto_password_edit)).setText(extra.getString("NAME"));
- findViewById(R.id.crypto_password_edit_layout).setVisibility(View.VISIBLE);
}
// some persistance
@@ -113,6 +108,7 @@ public class PgpHandler extends Activity {
int id = item.getItemId();
switch (id) {
case android.R.id.home:
+ setResult(RESULT_OK);
finish();
return true;
}
@@ -130,6 +126,8 @@ public class PgpHandler extends Activity {
case R.id.crypto_cancel_add:
finish();
break;
+ case R.id.crypto_delete_button:
+ deletePassword();
default:
// should not happen
@@ -267,7 +265,7 @@ public class PgpHandler extends Activity {
showToast(os.toString());
}
- setResult(998);
+ setResult(RESULT_OK);
finish();
} catch (Exception e) {
Log.e(Constants.TAG, "UnsupportedEncodingException", e);
@@ -341,9 +339,20 @@ public class PgpHandler extends Activity {
data.putExtra(OpenPgpApi.EXTRA_USER_IDS, new String[] {"default"});
data.putExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true);
+ String name = ((EditText) findViewById(R.id.crypto_password_file_edit)).getText().toString();
String pass = ((EditText) findViewById(R.id.crypto_password_edit)).getText().toString();
String extra = ((EditText) findViewById(R.id.crypto_extra_edit)).getText().toString();
+ if (name.isEmpty()) {
+ showToast("Please provide a file name");
+ return;
+ }
+
+ if (pass.isEmpty()) {
+ showToast("You cannot use an empty password or empty extra content");
+ return;
+ }
+
ByteArrayInputStream is;
try {
@@ -360,13 +369,26 @@ public class PgpHandler extends Activity {
}
+ private void deletePassword() {
+ new AlertDialog.Builder(this).
+ setMessage("Are you sure you want to delete the password " +
+ getIntent().getExtras().getString("NAME")
+ )
+ .setPositiveButton("YES", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ (new File(getIntent().getExtras().getString("FILE_PATH"))).delete();
+ setResult(RESULT_OK);
+ finish();
+ }
+ })
+ .setNegativeButton("NO", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
- public void getKeyIds(Intent data) {
- data.setAction(OpenPgpApi.ACTION_GET_KEY_IDS);
- data.putExtra(OpenPgpApi.EXTRA_USER_IDS, new String[]{getIntent().getExtras().getString("PGP-ID")});
-
- OpenPgpApi api = new OpenPgpApi(this, mServiceConnection.getService());
- api.executeApiAsync(data, null, null, new MyCallback(false, null, REQUEST_CODE_GET_KEY_IDS));
+ }
+ })
+ .show();
}
@Override
@@ -383,30 +405,14 @@ public class PgpHandler extends Activity {
* interaction, for example selected key ids.
*/
switch (requestCode) {
-// case REQUEST_CODE_SIGN: {
-// sign(data);
-// break;
-// }
case REQUEST_CODE_ENCRYPT: {
encrypt(data);
break;
}
-// case REQUEST_CODE_SIGN_AND_ENCRYPT: {
-// signAndEncrypt(data);
-// break;
-// }
case REQUEST_CODE_DECRYPT_AND_VERIFY: {
decryptAndVerify(data);
break;
}
-// case REQUEST_CODE_GET_KEY: {
-// getKey(data);
-// break;
-// }
- case REQUEST_CODE_GET_KEY_IDS: {
- getKeyIds(data);
- break;
- }
}
}
}
diff --git a/app/src/main/res/drawable-xxhdpi/red_rectangle.xml b/app/src/main/res/drawable-xxhdpi/red_rectangle.xml
new file mode 100644
index 00000000..b8e6a5d6
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/red_rectangle.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item>
+ <shape android:shape="rectangle"
+ android:dither="true">
+ <corners android:radius="2dp"/>
+ <solid android:color="#ccc" />
+
+ </shape>
+ </item>
+
+ <item android:bottom="2dp">
+ <shape android:shape="rectangle" android:dither="true">
+ <corners android:radius="2dp" />
+ <solid android:color="@android:color/holo_red_light" />
+
+ <padding android:bottom="8dp"
+ android:left="8dp"
+ android:right="8dp"
+ android:top="8dp" />
+ </shape>
+ </item>
+</layer-list> \ No newline at end of file
diff --git a/app/src/main/res/layout/activity_pwdstore.xml b/app/src/main/res/layout/activity_pwdstore.xml
index de559be0..08dcf2ad 100644
--- a/app/src/main/res/layout/activity_pwdstore.xml
+++ b/app/src/main/res/layout/activity_pwdstore.xml
@@ -20,7 +20,7 @@
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:src="@android:drawable/ic_input_add"
+ android:src="@drawable/ico_add"
android:background="@drawable/oval"
android:layout_gravity="center_vertical"
android:onClick="createPassword"
diff --git a/app/src/main/res/layout/decrypt_layout.xml b/app/src/main/res/layout/decrypt_layout.xml
index f422c439..b80d3e50 100644
--- a/app/src/main/res/layout/decrypt_layout.xml
+++ b/app/src/main/res/layout/decrypt_layout.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -11,105 +11,123 @@
android:orientation="vertical"
android:background="#eee">
- <GridLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="@drawable/rectangle"
- android:orientation="horizontal">
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textColor="@android:color/holo_orange_dark"
- android:text="Large Text"
- android:id="@+id/crypto_password_file"
- android:layout_gravity="center_vertical"
- android:layout_marginLeft="8dp"
- android:layout_column="0"
- android:layout_row="0"/>
-
- <ImageButton
- android:id="@+id/crypto_show_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/ic_key"
- android:background="@android:drawable/screen_background_light_transparent"
- android:layout_gravity="center_vertical"
- android:visibility="invisible"
- android:onClick="handleClick"
- android:layout_column="2"
- android:layout_row="0"/>
- </GridLayout>
-
<LinearLayout
- android:id="@+id/crypto_container"
- android:orientation="vertical"
android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:background="@drawable/rectangle"
- android:layout_marginTop="@dimen/activity_vertical_margin"
- android:visibility="invisible">
+ android:layout_height="fill_parent"
+ android:orientation="vertical">
<GridLayout
- android:id="@+id/crypto_password_show_layout"
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:background="@drawable/rectangle"
+ android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textStyle="bold"
- android:textColor="@android:color/black"
- android:text="Password: "
- android:layout_row="0"
- android:layout_column="0"/>
- <TextView
- android:id="@+id/crypto_password_show"
+ android:textColor="@android:color/holo_orange_dark"
+ android:text="Large Text"
+ android:id="@+id/crypto_password_file"
+ android:layout_gravity="center_vertical"
+ android:layout_marginLeft="8dp"
+ android:layout_column="0"
+ android:layout_row="0"/>
+
+ <ImageButton
+ android:id="@+id/crypto_show_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:typeface="monospace"
- android:textColor="@android:color/black"
+ android:src="@drawable/ico_add"
+ android:background="@android:drawable/screen_background_light_transparent"
+ android:layout_gravity="center_vertical"
+ android:onClick="handleClick"
android:layout_column="2"
android:layout_row="0"/>
- <ProgressBar
- android:id="@+id/pbLoading"
- android:layout_width="match_parent"
- android:layout_height="2dp"
- android:layout_marginTop="8dp"
- android:layout_marginBottom="8dp"
- style="?android:attr/progressBarStyleHorizontal"
- android:layout_row="1"
- android:layout_column="0"
- android:layout_columnSpan="3"/>
</GridLayout>
<LinearLayout
- android:id="@+id/crypto_extra_show_layout"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
+ android:id="@+id/crypto_container"
android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/rectangle"
+ android:layout_marginTop="@dimen/activity_vertical_margin"
android:visibility="invisible">
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textStyle="bold"
- android:textColor="@android:color/black"
- android:text="Extra content: "/>
- <ScrollView
- android:layout_width="wrap_content"
+ <GridLayout
+ android:id="@+id/crypto_password_show_layout"
+ android:layout_width="match_parent"
android:layout_height="wrap_content">
+
<TextView
- android:id="@+id/crypto_extra_show"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textStyle="bold"
+ android:textColor="@android:color/black"
+ android:text="Password: "
+ android:layout_row="0"
+ android:layout_column="0"/>
+ <TextView
+ android:id="@+id/crypto_password_show"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:typeface="monospace"
+ android:textColor="@android:color/black"
+ android:layout_column="2"
+ android:layout_row="0"/>
+
+ <ProgressBar
+ android:id="@+id/pbLoading"
android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:layout_marginTop="8dp"
+ android:layout_marginBottom="8dp"
+ style="?android:attr/progressBarStyleHorizontal"
+ android:layout_row="1"
+ android:layout_column="0"
+ android:layout_columnSpan="3"/>
+ </GridLayout>
+
+ <LinearLayout
+ android:id="@+id/crypto_extra_show_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:visibility="invisible">
+
+ <TextView
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:textStyle="bold"
android:textColor="@android:color/black"
- android:typeface="monospace"/>
- </ScrollView>
+ android:text="Extra content: "/>
+ <ScrollView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+ <TextView
+ android:id="@+id/crypto_extra_show"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textColor="@android:color/black"
+ android:typeface="monospace"/>
+ </ScrollView>
+ </LinearLayout>
</LinearLayout>
+
</LinearLayout>
-</LinearLayout> \ No newline at end of file
+ <ImageButton
+ android:id="@+id/crypto_delete_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/ico_del"
+ android:background="@drawable/oval"
+ android:layout_gravity="center_vertical"
+ android:onClick="handleClick"
+ android:layout_alignParentBottom="true"
+ android:layout_alignParentLeft="true"/>
+
+</RelativeLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/encrypt_layout.xml b/app/src/main/res/layout/encrypt_layout.xml
index c4949c9a..abc75fe5 100644
--- a/app/src/main/res/layout/encrypt_layout.xml
+++ b/app/src/main/res/layout/encrypt_layout.xml
@@ -98,7 +98,7 @@
<ImageButton
android:layout_height="wrap_content"
android:layout_width="wrap_content"
- android:src="@android:drawable/ic_input_add"
+ android:src="@drawable/ico_check"
android:background="@drawable/oval"
android:id="@+id/crypto_confirm_add"
android:onClick="handleClick"
@@ -109,7 +109,7 @@
<ImageButton
android:layout_height="wrap_content"
android:layout_width="wrap_content"
- android:src="@android:drawable/ic_delete"
+ android:src="@drawable/ico_cancel"
android:background="@drawable/oval"
android:id="@+id/crypto_cancel_add"
android:onClick="handleClick"
diff --git a/app/src/main/res/menu/pwdstore.xml b/app/src/main/res/menu/pwdstore.xml
index c8acb162..c6c4b348 100644
--- a/app/src/main/res/menu/pwdstore.xml
+++ b/app/src/main/res/menu/pwdstore.xml
@@ -1,6 +1,12 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".pwdstore" >
+ <item android:id="@+id/menu_add_password"
+ android:title="New password"/>
+
+ <item android:id="@+id/menu_add_category"
+ android:title="New category"/>
+
<item android:id="@+id/referesh"
android:title="Refresh"
android:showAsAction="ifRoom"
@@ -8,8 +14,6 @@
<item android:id="@+id/user_pref"
android:title="Settings"
- android:orderInCategory="100"
- android:showAsAction="ifRoom"
- android:icon="@android:drawable/ic_menu_manage"/>
+ android:orderInCategory="100"/>
</menu>
diff --git a/app/src/main/res/xml/preference.xml b/app/src/main/res/xml/preference.xml
index 402a1bd3..8686dff7 100644
--- a/app/src/main/res/xml/preference.xml
+++ b/app/src/main/res/xml/preference.xml
@@ -5,8 +5,5 @@
<org.openintents.openpgp.util.OpenPgpListPreference
android:key="openpgp_provider_list"
android:title="Select OpenPGP Provider!" />
- <Preference
- android:key="openpgp_provider_demo"
- android:title="OpenPGP Provider Demo" />
</PreferenceCategory>
</PreferenceScreen> \ No newline at end of file