diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-03-26 13:21:29 +0100 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-03-26 13:21:29 +0100 |
commit | 92a4d0e914d7cd132b7e755caf914710969e512d (patch) | |
tree | ca5fff6ef9729acddb0cc0d27fb82661a1e66923 | |
parent | 9542dc0e12a61535c2866a70cdd9266aff6cd9d7 (diff) | |
download | open-keychain-92a4d0e914d7cd132b7e755caf914710969e512d.tar.gz open-keychain-92a4d0e914d7cd132b7e755caf914710969e512d.tar.bz2 open-keychain-92a4d0e914d7cd132b7e755caf914710969e512d.zip |
Part 2 of basic user interface for api accounts
4 files changed, 64 insertions, 109 deletions
diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AccountSettingsActivity.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AccountSettingsActivity.java index 1092c7dc8..671a3e0aa 100644 --- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AccountSettingsActivity.java +++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AccountSettingsActivity.java @@ -21,6 +21,7 @@ import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; +import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -68,20 +69,20 @@ public class AccountSettingsActivity extends ActionBarActivity { } } -// @Override -// public boolean onCreateOptionsMenu(Menu menu) { -// super.onCreateOptionsMenu(menu); -// getMenuInflater().inflate(R.menu.api_app_settings, menu); -// return true; -// } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + super.onCreateOptionsMenu(menu); + getMenuInflater().inflate(R.menu.api_account_settings, menu); + return true; + } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { - case R.id.menu_api_settings_revoke: + case R.id.menu_account_settings_delete: deleteAccount(); return true; - case R.id.menu_api_settings_cancel: + case R.id.menu_account_settings_cancel: finish(); return true; } diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AccountSettingsFragment.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AccountSettingsFragment.java index 3d88d216e..91e74f2bf 100644 --- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AccountSettingsFragment.java +++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AccountSettingsFragment.java @@ -17,6 +17,7 @@ package org.sufficientlysecure.keychain.remote.ui; +import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; @@ -32,11 +33,14 @@ import android.widget.ImageView; import android.widget.Spinner; import android.widget.TextView; +import com.beardedhen.androidbootstrap.BootstrapButton; + import org.spongycastle.util.encoders.Hex; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.remote.AccountSettings; import org.sufficientlysecure.keychain.remote.AppSettings; +import org.sufficientlysecure.keychain.ui.EditKeyActivity; import org.sufficientlysecure.keychain.ui.SelectSecretKeyLayoutFragment; import org.sufficientlysecure.keychain.ui.adapter.KeyValueSpinnerAdapter; import org.sufficientlysecure.keychain.util.AlgorithmNames; @@ -52,15 +56,13 @@ public class AccountSettingsFragment extends Fragment implements private AccountSettings mAccSettings; // view - private TextView mAppNameView; - private ImageView mAppIconView; + private TextView mAccNameView; private Spinner mEncryptionAlgorithm; private Spinner mHashAlgorithm; private Spinner mCompression; - private TextView mPackageName; - private TextView mPackageSignature; private SelectSecretKeyLayoutFragment mSelectKeyFragment; + private BootstrapButton mCreateKeyButton; KeyValueSpinnerAdapter mEncryptionAdapter; KeyValueSpinnerAdapter mHashAdapter; @@ -70,27 +72,15 @@ public class AccountSettingsFragment extends Fragment implements return mAccSettings; } - public void setAccSettings(AccountSettings appSettings) { - this.mAccSettings = appSettings; -// setPackage(appSettings.getPackageName()); -// mPackageName.setText(appSettings.getPackageName()); - -// try { -// MessageDigest md = MessageDigest.getInstance("SHA-256"); -// md.update(appSettings.getPackageSignature()); -// byte[] digest = md.digest(); -// String signature = new String(Hex.encode(digest)); -// -// mPackageSignature.setText(signature); -// } catch (NoSuchAlgorithmException e) { -// Log.e(Constants.TAG, "Should not happen!", e); -// } - - mSelectKeyFragment.selectKey(appSettings.getKeyId()); - mEncryptionAlgorithm.setSelection(mEncryptionAdapter.getPosition(appSettings + public void setAccSettings(AccountSettings accountSettings) { + this.mAccSettings = accountSettings; + + mAccNameView.setText(accountSettings.getAccountName()); + mSelectKeyFragment.selectKey(accountSettings.getKeyId()); + mEncryptionAlgorithm.setSelection(mEncryptionAdapter.getPosition(accountSettings .getEncryptionAlgorithm())); - mHashAlgorithm.setSelection(mHashAdapter.getPosition(appSettings.getHashAlgorithm())); - mCompression.setSelection(mCompressionAdapter.getPosition(appSettings.getCompression())); + mHashAlgorithm.setSelection(mHashAdapter.getPosition(accountSettings.getHashAlgorithm())); + mCompression.setSelection(mCompressionAdapter.getPosition(accountSettings.getCompression())); } /** @@ -117,14 +107,19 @@ public class AccountSettingsFragment extends Fragment implements R.id.api_account_settings_select_key_fragment); mSelectKeyFragment.setCallback(this); - mAppNameView = (TextView) view.findViewById(R.id.api_account_settings_app_name); - mAppIconView = (ImageView) view.findViewById(R.id.api_account_settings_app_icon); + mAccNameView = (TextView) view.findViewById(R.id.api_account_settings_acc_name); mEncryptionAlgorithm = (Spinner) view .findViewById(R.id.api_account_settings_encryption_algorithm); mHashAlgorithm = (Spinner) view.findViewById(R.id.api_account_settings_hash_algorithm); mCompression = (Spinner) view.findViewById(R.id.api_account_settings_compression); - mPackageName = (TextView) view.findViewById(R.id.api_account_settings_package_name); - mPackageSignature = (TextView) view.findViewById(R.id.api_account_settings_package_signature); + mCreateKeyButton = (BootstrapButton) view.findViewById(R.id.api_account_settings_create_key); + + mCreateKeyButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + createKey(); + } + }); AlgorithmNames algorithmNames = new AlgorithmNames(getActivity()); @@ -172,25 +167,15 @@ public class AccountSettingsFragment extends Fragment implements } }); } -// -// private void setPackage(String packageName) { -// PackageManager pm = getActivity().getApplicationContext().getPackageManager(); -// -// // get application name and icon from package manager -// String appName = null; -// Drawable appIcon = null; -// try { -// ApplicationInfo ai = pm.getApplicationInfo(packageName, 0); -// -// appName = (String) pm.getApplicationLabel(ai); -// appIcon = pm.getApplicationIcon(ai); -// } catch (final NameNotFoundException e) { -// // fallback -// appName = packageName; -// } -// mAppNameView.setText(appName); -// mAppIconView.setImageDrawable(appIcon); -// } + + private void createKey() { + Intent intent = new Intent(getActivity(), EditKeyActivity.class); + intent.setAction(EditKeyActivity.ACTION_CREATE_KEY); + intent.putExtra(EditKeyActivity.EXTRA_GENERATE_DEFAULT_KEYS, true); + // set default user id to account name TODO: not working currently in EditKey + intent.putExtra(EditKeyActivity.EXTRA_USER_IDS, mAccSettings.getAccountName()); + startActivityForResult(intent, 0); + } /** * callback from select secret key fragment diff --git a/OpenPGP-Keychain/src/main/res/layout/api_account_settings_fragment.xml b/OpenPGP-Keychain/src/main/res/layout/api_account_settings_fragment.xml index 3284b5b0a..de58b6d19 100644 --- a/OpenPGP-Keychain/src/main/res/layout/api_account_settings_fragment.xml +++ b/OpenPGP-Keychain/src/main/res/layout/api_account_settings_fragment.xml @@ -7,34 +7,14 @@ android:layout_height="wrap_content" android:orientation="vertical"> - <RelativeLayout - android:layout_width="match_parent" - android:layout_height="?android:attr/listPreferredItemHeight" - android:layout_marginBottom="4dp" - android:layout_marginTop="4dp" - android:gravity="center_horizontal" - android:orientation="horizontal"> - - <ImageView - android:id="@+id/api_account_settings_app_icon" - android:layout_width="48dp" - android:layout_height="48dp" - android:layout_alignParentBottom="true" - android:layout_alignParentTop="true" - android:layout_marginRight="6dp" - android:src="@drawable/icon" /> - - <TextView - android:id="@+id/api_account_settings_app_name" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_centerVertical="true" - android:layout_toRightOf="@+id/api_app_settings_app_icon" - android:gravity="center_vertical" - android:orientation="vertical" - android:text="Name (set in-code)" - android:textAppearance="?android:attr/textAppearanceMedium" /> - </RelativeLayout> + <TextView + android:id="@+id/api_account_settings_acc_name" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center_vertical" + android:orientation="vertical" + android:text="Name (set in-code)" + android:textAppearance="?android:attr/textAppearanceMedium" /> <fragment android:id="@+id/api_account_settings_select_key_fragment" @@ -43,6 +23,19 @@ android:layout_height="wrap_content" tools:layout="@layout/select_secret_key_layout_fragment" /> + <com.beardedhen.androidbootstrap.BootstrapButton + android:id="@+id/api_account_settings_create_key" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_marginBottom="4dp" + android:layout_marginRight="4dp" + android:layout_marginTop="4dp" + android:text="@string/api_settings_create_key" + bootstrapbutton:bb_icon_left="fa-key" + bootstrapbutton:bb_size="default" + bootstrapbutton:bb_type="default" /> + <org.sufficientlysecure.keychain.ui.widget.FoldableLinearLayout android:layout_width="match_parent" android:layout_height="match_parent" @@ -84,32 +77,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" /> - <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="@string/api_settings_package_name" - android:textAppearance="?android:attr/textAppearanceMedium" /> - - <TextView - android:id="@+id/api_account_settings_package_name" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="com.example" - android:textAppearance="?android:attr/textAppearanceSmall" /> - - <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="@string/api_settings_package_signature" - android:textAppearance="?android:attr/textAppearanceMedium" /> - - <TextView - android:id="@+id/api_account_settings_package_signature" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="Base64 encoded signature" - android:textAppearance="?android:attr/textAppearanceSmall" /> - </org.sufficientlysecure.keychain.ui.widget.FoldableLinearLayout> </LinearLayout>
\ No newline at end of file diff --git a/OpenPGP-Keychain/src/main/res/values/strings.xml b/OpenPGP-Keychain/src/main/res/values/strings.xml index 5bf7ca8ca..0d9cdc1bb 100644 --- a/OpenPGP-Keychain/src/main/res/values/strings.xml +++ b/OpenPGP-Keychain/src/main/res/values/strings.xml @@ -418,9 +418,11 @@ <string name="api_settings_hide_advanced">Hide advanced settings</string> <string name="api_settings_no_key">No key selected</string> <string name="api_settings_select_key">Select key</string> + <string name="api_settings_create_key">Create new key for this account</string> <string name="api_settings_save">Save</string> <string name="api_settings_cancel">Cancel</string> <string name="api_settings_revoke">Revoke access</string> + <string name="api_settings_delete_account">Delete account</string> <string name="api_settings_package_name">Package Name</string> <string name="api_settings_package_signature">SHA-256 of Package Signature</string> <string name="api_settings_accounts">Accounts</string> |