From e2a8819385dab5c925cbc25f728a6491fea185e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Tue, 3 Feb 2015 14:28:54 +0100 Subject: Floating Action Button added in app settings --- OpenKeychain/build.gradle | 1 + .../keychain/remote/ui/AppSettingsActivity.java | 99 ++++++++++++------ .../res/drawable-hdpi/ic_play_arrow_white_24dp.png | Bin 0 -> 282 bytes .../res/drawable-mdpi/ic_play_arrow_white_24dp.png | Bin 0 -> 257 bytes .../drawable-xhdpi/ic_play_arrow_white_24dp.png | Bin 0 -> 318 bytes .../drawable-xxhdpi/ic_play_arrow_white_24dp.png | Bin 0 -> 399 bytes .../drawable-xxxhdpi/ic_play_arrow_white_24dp.png | Bin 0 -> 477 bytes .../src/main/res/drawable/drawer_header.png | Bin 47409 -> 47902 bytes .../res/layout/api_account_settings_activity.xml | 2 +- .../main/res/layout/api_app_settings_activity.xml | 111 +++++++++++++++++++-- .../main/res/layout/api_remote_create_account.xml | 2 +- .../main/res/layout/api_remote_error_message.xml | 2 +- .../main/res/layout/api_remote_register_app.xml | 2 +- .../main/res/layout/api_remote_select_pub_keys.xml | 2 +- .../src/main/res/layout/certify_key_activity.xml | 2 +- .../src/main/res/layout/create_key_activity.xml | 2 +- .../src/main/res/layout/decrypt_files_activity.xml | 2 +- .../src/main/res/layout/decrypt_text_activity.xml | 2 +- .../src/main/res/layout/edit_key_activity.xml | 2 +- .../src/main/res/layout/encrypt_files_activity.xml | 2 +- .../src/main/res/layout/encrypt_text_activity.xml | 2 +- OpenKeychain/src/main/res/layout/help_activity.xml | 5 +- .../src/main/res/layout/import_keys_activity.xml | 2 +- .../src/main/res/layout/key_list_content.xml | 2 +- .../src/main/res/layout/key_server_preference.xml | 2 +- .../src/main/res/layout/log_display_activity.xml | 2 +- OpenKeychain/src/main/res/layout/nfc_activity.xml | 2 +- .../res/layout/preference_toolbar_activity.xml | 2 +- .../src/main/res/layout/qr_code_activity.xml | 2 +- .../src/main/res/layout/safe_slinger_activity.xml | 2 +- .../main/res/layout/select_public_key_activity.xml | 2 +- OpenKeychain/src/main/res/layout/toolbar.xml | 13 --- .../src/main/res/layout/toolbar_standalone.xml | 13 +++ .../src/main/res/layout/upload_key_activity.xml | 2 +- .../src/main/res/layout/view_cert_activity.xml | 2 +- .../src/main/res/layout/view_key_activity.xml | 2 +- .../main/res/layout/view_key_advanced_activity.xml | 2 +- .../src/main/res/menu/api_app_settings.xml | 5 +- OpenKeychain/src/main/res/values/colors.xml | 2 + 39 files changed, 214 insertions(+), 85 deletions(-) create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_play_arrow_white_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_play_arrow_white_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_play_arrow_white_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_play_arrow_white_24dp.png create mode 100644 OpenKeychain/src/main/res/drawable-xxxhdpi/ic_play_arrow_white_24dp.png delete mode 100644 OpenKeychain/src/main/res/layout/toolbar.xml create mode 100644 OpenKeychain/src/main/res/layout/toolbar_standalone.xml (limited to 'OpenKeychain') diff --git a/OpenKeychain/build.gradle b/OpenKeychain/build.gradle index eca62026a..c5d2bbcff 100644 --- a/OpenKeychain/build.gradle +++ b/OpenKeychain/build.gradle @@ -28,6 +28,7 @@ dependencies { compile 'com.jpardogo.materialtabstrip:library:1.0.8' compile 'it.neokree:MaterialNavigationDrawer:1.3' compile 'com.nispok:snackbar:2.7.4' + compile 'com.getbase:floatingactionbutton:1.7.0' } android { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsActivity.java index 8abe40016..fa72f4de3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppSettingsActivity.java @@ -21,12 +21,18 @@ import android.app.Activity; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; +import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; +import com.getbase.floatingactionbutton.FloatingActionButton; + +import org.spongycastle.util.encoders.Hex; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.operations.results.OperationResult; @@ -36,13 +42,22 @@ import org.sufficientlysecure.keychain.remote.AppSettings; import org.sufficientlysecure.keychain.ui.BaseActivity; import org.sufficientlysecure.keychain.util.Log; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + public class AppSettingsActivity extends BaseActivity { private Uri mAppUri; - private AppSettingsHeaderFragment mSettingsFragment; private AccountsListFragment mAccountsListFragment; private AppSettingsAllowedKeysListFragment mAllowedKeysFragment; + private TextView mAppNameView; + private ImageView mAppIconView; + private TextView mPackageName; + private TextView mPackageSignature; + + private FloatingActionButton mStartFab; + // model AppSettings mAppSettings; @@ -50,23 +65,26 @@ public class AppSettingsActivity extends BaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setFullScreenDialogDoneClose(R.string.api_settings_save, - new View.OnClickListener() { - @Override - public void onClick(View v) { - save(); - } - }, - new View.OnClickListener() { - @Override - public void onClick(View v) { - cancel(); - } - }); - setTitle(null); + mAppNameView = (TextView) findViewById(R.id.api_app_settings_app_name); + mAppIconView = (ImageView) findViewById(R.id.api_app_settings_app_icon); + mPackageName = (TextView) findViewById(R.id.api_app_settings_package_name); + mPackageSignature = (TextView) findViewById(R.id.api_app_settings_package_signature); + mStartFab = (FloatingActionButton) findViewById(R.id.fab); - mSettingsFragment = (AppSettingsHeaderFragment) getSupportFragmentManager().findFragmentById( - R.id.api_app_settings_fragment); + mStartFab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startApp(); + } + }); + + setFullScreenDialogClose(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancel(); + } + }); + setTitle(null); Intent intent = getIntent(); mAppUri = intent.getData(); @@ -109,8 +127,8 @@ public class AppSettingsActivity extends BaseActivity { case R.id.menu_api_settings_revoke: revokeAccess(); return true; - case R.id.menu_api_settings_start: - startApp(); + case R.id.menu_api_save: + save(); return true; } return super.onOptionsItemSelected(item); @@ -134,18 +152,37 @@ public class AppSettingsActivity extends BaseActivity { private void loadData(Bundle savedInstanceState, Uri appUri) { mAppSettings = new ProviderHelper(this).getApiAppSettings(appUri); - mSettingsFragment.setAppSettings(mAppSettings); - -// String appName; -// PackageManager pm = getPackageManager(); -// try { -// ApplicationInfo ai = pm.getApplicationInfo(mAppSettings.getPackageName(), 0); -// appName = (String) pm.getApplicationLabel(ai); -// } catch (PackageManager.NameNotFoundException e) { -// // fallback -// appName = mAppSettings.getPackageName(); -// } -// setTitle(appName); + + // get application name and icon from package manager + String appName; + Drawable appIcon = null; + PackageManager pm = getApplicationContext().getPackageManager(); + try { + ApplicationInfo ai = pm.getApplicationInfo(mAppSettings.getPackageName(), 0); + + appName = (String) pm.getApplicationLabel(ai); + appIcon = pm.getApplicationIcon(ai); + } catch (PackageManager.NameNotFoundException e) { + // fallback + appName = mAppSettings.getPackageName(); + } + mAppNameView.setText(appName); + mAppIconView.setImageDrawable(appIcon); + + // advanced info: package name + mPackageName.setText(mAppSettings.getPackageName()); + + // advanced info: package signature SHA-256 + try { + MessageDigest md = MessageDigest.getInstance("SHA-256"); + md.update(mAppSettings.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); + } Uri accountsUri = appUri.buildUpon().appendPath(KeychainContract.PATH_ACCOUNTS).build(); Log.d(Constants.TAG, "accountsUri: " + accountsUri); diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_play_arrow_white_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_play_arrow_white_24dp.png new file mode 100644 index 000000000..164385d04 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-hdpi/ic_play_arrow_white_24dp.png differ diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_play_arrow_white_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_play_arrow_white_24dp.png new file mode 100644 index 000000000..8d1e433a5 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-mdpi/ic_play_arrow_white_24dp.png differ diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_play_arrow_white_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_play_arrow_white_24dp.png new file mode 100644 index 000000000..a55d19922 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xhdpi/ic_play_arrow_white_24dp.png differ diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_play_arrow_white_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_play_arrow_white_24dp.png new file mode 100644 index 000000000..043acd808 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_play_arrow_white_24dp.png differ diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_play_arrow_white_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_play_arrow_white_24dp.png new file mode 100644 index 000000000..7cc008475 Binary files /dev/null and b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_play_arrow_white_24dp.png differ diff --git a/OpenKeychain/src/main/res/drawable/drawer_header.png b/OpenKeychain/src/main/res/drawable/drawer_header.png index 614098bd7..373534722 100644 Binary files a/OpenKeychain/src/main/res/drawable/drawer_header.png and b/OpenKeychain/src/main/res/drawable/drawer_header.png differ diff --git a/OpenKeychain/src/main/res/layout/api_account_settings_activity.xml b/OpenKeychain/src/main/res/layout/api_account_settings_activity.xml index 763504f54..b12bfb080 100644 --- a/OpenKeychain/src/main/res/layout/api_account_settings_activity.xml +++ b/OpenKeychain/src/main/res/layout/api_account_settings_activity.xml @@ -5,7 +5,7 @@ + layout="@layout/toolbar_standalone" /> - + + + + + + + + + + + - - @@ -55,7 +95,56 @@ android:layout_height="match_parent" android:orientation="vertical" /> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/api_remote_create_account.xml b/OpenKeychain/src/main/res/layout/api_remote_create_account.xml index 7ae0a0e1e..f57ec9ad1 100644 --- a/OpenKeychain/src/main/res/layout/api_remote_create_account.xml +++ b/OpenKeychain/src/main/res/layout/api_remote_create_account.xml @@ -5,7 +5,7 @@ + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + android:orientation="vertical" + android:elevation="4dp"> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> \ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/qr_code_activity.xml b/OpenKeychain/src/main/res/layout/qr_code_activity.xml index 79aba346f..fd495608c 100644 --- a/OpenKeychain/src/main/res/layout/qr_code_activity.xml +++ b/OpenKeychain/src/main/res/layout/qr_code_activity.xml @@ -5,7 +5,7 @@ + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> - \ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/toolbar_standalone.xml b/OpenKeychain/src/main/res/layout/toolbar_standalone.xml new file mode 100644 index 000000000..5d83a2aa1 --- /dev/null +++ b/OpenKeychain/src/main/res/layout/toolbar_standalone.xml @@ -0,0 +1,13 @@ + + \ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/upload_key_activity.xml b/OpenKeychain/src/main/res/layout/upload_key_activity.xml index f4d262f1d..342052bdd 100644 --- a/OpenKeychain/src/main/res/layout/upload_key_activity.xml +++ b/OpenKeychain/src/main/res/layout/upload_key_activity.xml @@ -5,7 +5,7 @@ + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> + layout="@layout/toolbar_standalone" /> #388E3C #C8E6C9 #00BCD4 + #00BCD4 + #0097A7 #212121 #727272 #FFFFFF -- cgit v1.2.3