diff options
Diffstat (limited to 'OpenKeychain')
17 files changed, 78 insertions, 43 deletions
diff --git a/OpenKeychain/build.gradle b/OpenKeychain/build.gradle index c5d2bbcff..bf7208060 100644 --- a/OpenKeychain/build.gradle +++ b/OpenKeychain/build.gradle @@ -26,9 +26,9 @@ dependencies { compile 'com.journeyapps:zxing-android-integration:2.0.1@aar' compile 'com.google.zxing:core:3.0.1' compile 'com.jpardogo.materialtabstrip:library:1.0.8' - compile 'it.neokree:MaterialNavigationDrawer:1.3' + compile 'it.neokree:MaterialNavigationDrawer:1.3.1' compile 'com.nispok:snackbar:2.7.4' - compile 'com.getbase:floatingactionbutton:1.7.0' + compile 'com.getbase:floatingactionbutton:1.8.0' } android { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index 079ebb729..55efd9bb0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -56,6 +56,8 @@ import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; +import com.getbase.floatingactionbutton.FloatingActionButton; + import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.operations.results.ConsolidateResult; @@ -105,6 +107,10 @@ public class KeyListFragment extends LoaderFragment private String mQuery; private SearchView mSearchView; + private FloatingActionButton mFabQrCode; + private FloatingActionButton mFabCloud; + private FloatingActionButton mFabFile; + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -123,6 +129,29 @@ public class KeyListFragment extends LoaderFragment mStickyList = (StickyListHeadersListView) view.findViewById(R.id.key_list_list); mStickyList.setOnItemClickListener(this); + mFabQrCode = (FloatingActionButton) view.findViewById(R.id.fab_add_qr_code); + mFabCloud = (FloatingActionButton) view.findViewById(R.id.fab_add_cloud); + mFabFile = (FloatingActionButton) view.findViewById(R.id.fab_add_file); + + mFabQrCode.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + scanQrCode(); + } + }); + mFabCloud.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + searchCloud(); + } + }); + mFabFile.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + importFile(); + } + }); + mSwipeRefreshLayout = (ListAwareSwipeRefreshLayout) view.findViewById(R.id.key_list_swipe_container); mSwipeRefreshLayout.setOnRefreshListener(new NoScrollableSwipeRefreshLayout.OnRefreshListener() { @Override @@ -198,6 +227,9 @@ public class KeyListFragment extends LoaderFragment public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); + // show app name instead of "keys" from nav drawer + getActivity().setTitle(R.string.app_name); + mStickyList.setOnItemClickListener(this); mStickyList.setAreHeadersSticky(true); mStickyList.setDrawingListUnderStickyHeader(false); @@ -496,26 +528,11 @@ public class KeyListFragment extends LoaderFragment @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { - case R.id.menu_key_list_add: - Intent scanQrCode = new Intent(getActivity(), QrCodeScanActivity.class); - scanQrCode.setAction(QrCodeScanActivity.ACTION_SCAN_WITH_RESULT); - startActivityForResult(scanQrCode, 0); - return true; - - case R.id.menu_key_list_search_cloud: - searchCloud(); - return true; case R.id.menu_key_list_create: createKey(); return true; - case R.id.menu_key_list_import_existing_key: - Intent intentImportExisting = new Intent(getActivity(), ImportKeysActivity.class); - intentImportExisting.setAction(ImportKeysActivity.ACTION_IMPORT_KEY_FROM_FILE_AND_RETURN); - startActivityForResult(intentImportExisting, 0); - return true; - case R.id.menu_key_list_export: mExportHelper.showExportKeysDialog(null, Constants.Path.APP_DIR_FILE, true); return true; @@ -587,6 +604,18 @@ public class KeyListFragment extends LoaderFragment startActivity(importIntent); } + private void scanQrCode() { + Intent scanQrCode = new Intent(getActivity(), QrCodeScanActivity.class); + scanQrCode.setAction(QrCodeScanActivity.ACTION_SCAN_WITH_RESULT); + startActivityForResult(scanQrCode, 0); + } + + private void importFile() { + Intent intentImportExisting = new Intent(getActivity(), ImportKeysActivity.class); + intentImportExisting.setAction(ImportKeysActivity.ACTION_IMPORT_KEY_FROM_FILE_AND_RETURN); + startActivityForResult(intentImportExisting, 0); + } + private void createKey() { Intent intent = new Intent(getActivity(), CreateKeyActivity.class); startActivityForResult(intent, 0); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NavDrawerActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NavDrawerActivity.java index d82e1c246..1bd1f0085 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NavDrawerActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NavDrawerActivity.java @@ -24,6 +24,8 @@ import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.remote.ui.AppsListFragment; import it.neokree.materialnavigationdrawer.MaterialNavigationDrawer; +import it.neokree.materialnavigationdrawer.elements.MaterialSection; +import it.neokree.materialnavigationdrawer.elements.listeners.MaterialSectionListener; public abstract class NavDrawerActivity extends MaterialNavigationDrawer { @@ -39,7 +41,7 @@ public abstract class NavDrawerActivity extends MaterialNavigationDrawer { setDrawerHeaderImage(R.drawable.drawer_header); // create sections - addSection(newSection(getString(R.string.title_keys), R.drawable.ic_vpn_key_black_24dp, new KeyListFragment())); + addSection(newSection(getString(R.string.nav_keys), R.drawable.ic_vpn_key_black_24dp, new KeyListFragment())); addSection(newSection(getString(R.string.nav_encrypt_decrypt), R.drawable.ic_lock_black_24dp, new EncryptDecryptOverviewFragment())); addSection(newSection(getString(R.string.title_api_registered_apps), R.drawable.ic_apps_black_24dp, new AppsListFragment())); diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_folder_white_24dp.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_folder_white_24dp.png Binary files differnew file mode 100644 index 000000000..9f5c75609 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_folder_white_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_folder_white_24dp.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_folder_white_24dp.png Binary files differnew file mode 100644 index 000000000..1c5797c9e --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_folder_white_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_folder_white_24dp.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_folder_white_24dp.png Binary files differnew file mode 100644 index 000000000..e5f54cef0 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_folder_white_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_folder_white_24dp.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_folder_white_24dp.png Binary files differnew file mode 100644 index 000000000..0d1ac4876 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_folder_white_24dp.png diff --git a/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_folder_white_24dp.png b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_folder_white_24dp.png Binary files differnew file mode 100644 index 000000000..7a3c198ee --- /dev/null +++ b/OpenKeychain/src/main/res/drawable-xxxhdpi/ic_folder_white_24dp.png diff --git a/OpenKeychain/src/main/res/drawable/qrcode.xml b/OpenKeychain/src/main/res/drawable/qrcode.xml new file mode 100644 index 000000000..87eb7d485 --- /dev/null +++ b/OpenKeychain/src/main/res/drawable/qrcode.xml @@ -0,0 +1,8 @@ +<!-- drawable/qrcode.xml -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#fff" android:pathData="M5,5H7V7H5V5M1,1H11V11H1V1M3,3V9H9V3H3M5,17H7V19H5V17M1,13H11V23H1V13M3,15V21H9V15H3M17,5H19V7H17V5M13,1H23V11H13V1M15,3V9H21V3H15M13,13H17V15H19V13H23V15H19V17H23V23H19V21H15V23H13V21H15V19H13V13M21,21V19H19V21H21M19,17H17V15H15V19H19V17Z" />
+</vector>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/api_app_settings_activity.xml b/OpenKeychain/src/main/res/layout/api_app_settings_activity.xml index c7b8c9b3a..253836080 100644 --- a/OpenKeychain/src/main/res/layout/api_app_settings_activity.xml +++ b/OpenKeychain/src/main/res/layout/api_app_settings_activity.xml @@ -18,7 +18,7 @@ <ImageView android:id="@+id/status_bar" android:layout_width="match_parent" - android:layout_height="@dimen/statusbar_margin" + android:layout_height="@dimen/statusbar_height" android:background="?attr/colorPrimary" /> <android.support.v7.widget.Toolbar diff --git a/OpenKeychain/src/main/res/layout/first_time_activity.xml b/OpenKeychain/src/main/res/layout/first_time_activity.xml index 61737e548..ba80214a6 100644 --- a/OpenKeychain/src/main/res/layout/first_time_activity.xml +++ b/OpenKeychain/src/main/res/layout/first_time_activity.xml @@ -7,7 +7,7 @@ <ImageView android:id="@+id/status_bar" android:layout_width="match_parent" - android:layout_height="@dimen/statusbar_margin" /> + android:layout_height="@dimen/statusbar_height" /> <LinearLayout android:id="@+id/first_time_buttons" diff --git a/OpenKeychain/src/main/res/layout/key_list_fragment.xml b/OpenKeychain/src/main/res/layout/key_list_fragment.xml index 0c3c6404a..290e56872 100644 --- a/OpenKeychain/src/main/res/layout/key_list_fragment.xml +++ b/OpenKeychain/src/main/res/layout/key_list_fragment.xml @@ -63,18 +63,20 @@ android:layout_marginEnd="16dp"> <com.getbase.floatingactionbutton.FloatingActionButton - android:id="@+id/fab_add_cloud" + android:id="@+id/fab_add_qr_code" android:layout_width="wrap_content" android:layout_height="wrap_content" + fab:fab_icon="@drawable/qrcode" fab:fab_colorNormal="@color/fab" fab:fab_colorPressed="@color/fab_pressed" fab:fab_title="Scan QR Code" fab:fab_size="mini" /> <com.getbase.floatingactionbutton.FloatingActionButton - android:id="@+id/fab_add_qr_code" + android:id="@+id/fab_add_cloud" android:layout_width="wrap_content" android:layout_height="wrap_content" + fab:fab_icon="@drawable/ic_cloud_search_24px" fab:fab_colorNormal="@color/fab" fab:fab_colorPressed="@color/fab_pressed" fab:fab_title="Search Cloud" @@ -84,6 +86,7 @@ android:id="@+id/fab_add_file" android:layout_width="wrap_content" android:layout_height="wrap_content" + fab:fab_icon="@drawable/ic_folder_white_24dp" fab:fab_colorNormal="@color/fab" fab:fab_colorPressed="@color/fab_pressed" fab:fab_title="Import from File" diff --git a/OpenKeychain/src/main/res/layout/toolbar_standalone.xml b/OpenKeychain/src/main/res/layout/toolbar_standalone.xml index cef0b862d..950c2f2ae 100644 --- a/OpenKeychain/src/main/res/layout/toolbar_standalone.xml +++ b/OpenKeychain/src/main/res/layout/toolbar_standalone.xml @@ -7,10 +7,14 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> + <!-- + We always have windowTranslucentStatus=true to get under the status bar. + Thus this ImageView is the part under the status bar! + --> <ImageView android:id="@+id/status_bar" android:layout_width="match_parent" - android:layout_height="@dimen/statusbar_margin" + android:layout_height="@dimen/statusbar_height" android:background="?attr/colorPrimary" /> <android.support.v7.widget.Toolbar diff --git a/OpenKeychain/src/main/res/menu/key_list.xml b/OpenKeychain/src/main/res/menu/key_list.xml index 8a682badc..386a9d46e 100644 --- a/OpenKeychain/src/main/res/menu/key_list.xml +++ b/OpenKeychain/src/main/res/menu/key_list.xml @@ -10,17 +10,6 @@ app:showAsAction="collapseActionView|always" /> <item - android:id="@+id/menu_key_list_search_cloud" - android:icon="@drawable/ic_cloud_search_24px" - android:title="@string/menu_search_cloud" - app:showAsAction="ifRoom|withText" /> - - <item - android:id="@+id/menu_key_list_add" - android:title="@string/import_qr_code_button" - app:showAsAction="ifRoom|withText" /> - - <item android:id="@+id/menu_key_list_export" android:title="@string/menu_export_all_keys" app:showAsAction="never" /> @@ -31,11 +20,6 @@ app:showAsAction="never" /> <item - android:id="@+id/menu_key_list_import_existing_key" - android:title="@string/menu_import_existing_key" - app:showAsAction="never" /> - - <item android:id="@+id/menu_key_list_debug_cons" android:title="Debug / Consolidate" android:visible="false" diff --git a/OpenKeychain/src/main/res/values-v21/dimens.xml b/OpenKeychain/src/main/res/values-v21/dimens.xml index d54327293..3a85cca93 100644 --- a/OpenKeychain/src/main/res/values-v21/dimens.xml +++ b/OpenKeychain/src/main/res/values-v21/dimens.xml @@ -1,6 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <dimen name="statusbar_margin">21dp</dimen> - <!-- 120dp + statusbar_margin --> + <!-- + Status bar height according to + http://www.google.com/design/spec/layout/structure.html#structure-system-bars + --> + <dimen name="statusbar_height">24dp</dimen> + <!-- 120dp + statusbar_height --> <dimen name="big_toolbar">141dp</dimen> </resources>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/values/dimens.xml b/OpenKeychain/src/main/res/values/dimens.xml index 21ef110ea..7e361a358 100644 --- a/OpenKeychain/src/main/res/values/dimens.xml +++ b/OpenKeychain/src/main/res/values/dimens.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <dimen name="statusbar_margin">0dp</dimen> + <!-- on Android < 5, we do not color the status bar, thus 0dp! --> + <dimen name="statusbar_height">0dp</dimen> <dimen name="big_toolbar">120dp</dimen> </resources>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/values/themes.xml b/OpenKeychain/src/main/res/values/themes.xml index f1d1ea490..885d5e682 100644 --- a/OpenKeychain/src/main/res/values/themes.xml +++ b/OpenKeychain/src/main/res/values/themes.xml @@ -4,7 +4,7 @@ <style name="KeychainTheme" parent="KeychainTheme.Base" /> <!--<style name="KeychainTheme.Base" parent="HoloKeychainTheme">--> - <style name="KeychainTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> + <style name="KeychainTheme.Base" parent="Theme.AppCompat.Light"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/accent</item> |