diff options
| author | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-02-27 01:44:40 +0100 | 
|---|---|---|
| committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-02-27 01:44:40 +0100 | 
| commit | 11c34364545ff99268949e558cddcb853ea1810b (patch) | |
| tree | 44cd4d58e20637a0ce8f933f232101ce4c03683c | |
| parent | 4ccd9f9bb148a75e9cde48648216d1037a617c03 (diff) | |
| download | open-keychain-11c34364545ff99268949e558cddcb853ea1810b.tar.gz open-keychain-11c34364545ff99268949e558cddcb853ea1810b.tar.bz2 open-keychain-11c34364545ff99268949e558cddcb853ea1810b.zip | |
Prettify qr code in advanced key view
| -rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java | 30 | ||||
| -rw-r--r-- | OpenKeychain/src/main/res/layout/view_key_adv_share_fragment.xml | 32 | 
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" | 
