aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2015-02-27 01:44:40 +0100
committerDominik Schürmann <dominik@dominikschuermann.de>2015-02-27 01:44:40 +0100
commit11c34364545ff99268949e558cddcb853ea1810b (patch)
tree44cd4d58e20637a0ce8f933f232101ce4c03683c /OpenKeychain
parent4ccd9f9bb148a75e9cde48648216d1037a617c03 (diff)
downloadopen-keychain-11c34364545ff99268949e558cddcb853ea1810b.tar.gz
open-keychain-11c34364545ff99268949e558cddcb853ea1810b.tar.bz2
open-keychain-11c34364545ff99268949e558cddcb853ea1810b.zip
Prettify qr code in advanced key view
Diffstat (limited to 'OpenKeychain')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java30
-rw-r--r--OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml32
2 files changed, 50 insertions, 12 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java
index 6d019c5cd..8d0a2dd1d 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java
@@ -17,16 +17,20 @@
package org.sufficientlysecure.keychain.ui;
+import android.app.ActivityOptions;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.PorterDuff;
import android.net.Uri;
import android.os.AsyncTask;
+import android.os.Build;
import android.os.Bundle;
+import android.support.v4.app.ActivityCompat;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
+import android.support.v7.widget.CardView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -58,7 +62,8 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements
public static final String ARG_DATA_URI = "uri";
private TextView mFingerprint;
- private ImageView mFingerprintQrCode;
+ private ImageView mQrCode;
+ private CardView mQrCodeLayout;
private View mFingerprintShareButton;
private View mFingerprintClipboardButton;
private View mKeyShareButton;
@@ -80,7 +85,8 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements
mProviderHelper = new ProviderHelper(ViewKeyAdvShareFragment.this.getActivity());
mFingerprint = (TextView) view.findViewById(R.id.view_key_fingerprint);
- mFingerprintQrCode = (ImageView) view.findViewById(R.id.view_key_fingerprint_qr_code_image);
+ mQrCode = (ImageView) view.findViewById(R.id.view_key_qr_code);
+ mQrCodeLayout = (CardView) view.findViewById(R.id.view_key_qr_code_layout);
mFingerprintShareButton = view.findViewById(R.id.view_key_action_fingerprint_share);
mFingerprintClipboardButton = view.findViewById(R.id.view_key_action_fingerprint_clipboard);
mKeyShareButton = view.findViewById(R.id.view_key_action_key_share);
@@ -91,7 +97,7 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements
mKeySafeSlingerButton.setColorFilter(getResources().getColor(R.color.tertiary_text_light),
PorterDuff.Mode.SRC_IN);
- mFingerprintQrCode.setOnClickListener(new View.OnClickListener() {
+ mQrCodeLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showQrCodeDialog();
@@ -213,8 +219,18 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements
private void showQrCodeDialog() {
Intent qrCodeIntent = new Intent(getActivity(), QrCodeViewActivity.class);
+
+ // create the transition animation - the images in the layouts
+ // of both activities are defined with android:transitionName="qr_code"
+ Bundle opts = null;
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ ActivityOptions options = ActivityOptions
+ .makeSceneTransitionAnimation(getActivity(), mQrCodeLayout, "qr_code");
+ opts = options.toBundle();
+ }
+
qrCodeIntent.setData(mDataUri);
- startActivity(qrCodeIntent);
+ ActivityCompat.startActivity(getActivity(), qrCodeIntent, opts);
}
@Override
@@ -325,14 +341,14 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements
// scale the image up to our actual size. we do this in code rather
// than let the ImageView do this because we don't require filtering.
Bitmap scaled = Bitmap.createScaledBitmap(qrCode,
- mFingerprintQrCode.getHeight(), mFingerprintQrCode.getHeight(),
+ mQrCode.getHeight(), mQrCode.getHeight(),
false);
- mFingerprintQrCode.setImageBitmap(scaled);
+ mQrCode.setImageBitmap(scaled);
// simple fade-in animation
AlphaAnimation anim = new AlphaAnimation(0.0f, 1.0f);
anim.setDuration(200);
- mFingerprintQrCode.startAnimation(anim);
+ mQrCode.startAnimation(anim);
}
}
};
diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml b/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml
index 127fe36de..1056a4681 100644
--- a/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml
@@ -1,4 +1,5 @@
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -67,15 +68,36 @@
android:layout_height="1dip"
android:background="?android:attr/listDivider" />
- <ImageView
- android:id="@+id/view_key_fingerprint_qr_code_image"
- android:paddingTop="8dp"
- android:paddingBottom="8dp"
+
+ <android.support.v7.widget.CardView
+ android:id="@+id/view_key_qr_code_layout"
+ android:transitionName="qr_code"
+ android:visibility="visible"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
- style="@style/SelectableItem" />
+ android:clickable="true"
+ android:foreground="?android:attr/selectableItemBackground"
+ card_view:cardBackgroundColor="@android:color/white"
+ card_view:cardUseCompatPadding="true"
+ card_view:cardCornerRadius="4dp">
+
+ <ImageView
+ android:id="@+id/view_key_qr_code"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </android.support.v7.widget.CardView>
+
+ <!--<ImageView-->
+ <!--android:id="@+id/view_key_fingerprint_qr_code_image"-->
+ <!--android:paddingTop="8dp"-->
+ <!--android:paddingBottom="8dp"-->
+ <!--android:layout_width="200dp"-->
+ <!--android:layout_height="200dp"-->
+ <!--android:layout_gravity="center_horizontal"-->
+ <!--android:layout_weight="1"-->
+ <!--style="@style/SelectableItem" />-->
<TextView
style="@style/SectionHeader"