diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-09-06 00:49:19 +0200 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2015-09-06 00:49:19 +0200 |
commit | 60e9141b8612ee8d0344e3c66109dfb9877e108a (patch) | |
tree | 5dbe71c421b37d061c9c37699e6ae6ebeb23b9cc /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateGithubFragment.java | |
parent | 2cda48642722069c7e26d0a25d196e8a41128290 (diff) | |
download | open-keychain-60e9141b8612ee8d0344e3c66109dfb9877e108a.tar.gz open-keychain-60e9141b8612ee8d0344e3c66109dfb9877e108a.tar.bz2 open-keychain-60e9141b8612ee8d0344e3c66109dfb9877e108a.zip |
linked: basic shared element transition
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateGithubFragment.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateGithubFragment.java | 48 |
1 files changed, 44 insertions, 4 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateGithubFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateGithubFragment.java index f04e10529..0cc21f448 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateGithubFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateGithubFragment.java @@ -44,10 +44,13 @@ import android.os.Bundle; import android.os.Handler; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.app.ActivityOptionsCompat; +import android.support.v4.app.FragmentActivity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.webkit.CookieManager; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ImageView; @@ -83,6 +86,7 @@ public class LinkedIdCreateGithubFragment extends CryptoOperationFragment<SaveKe long mMasterKeyId; private SaveKeyringParcel mSaveKeyringParcel; private TextView mLinkedIdTitle, mLinkedIdComment; + private boolean mFinishOnStop; public static LinkedIdCreateGithubFragment newInstance() { return new LinkedIdCreateGithubFragment(); @@ -107,10 +111,23 @@ public class LinkedIdCreateGithubFragment extends CryptoOperationFragment<SaveKe mLinkedIdTitle = (TextView) view.findViewById(R.id.linked_id_title); mLinkedIdComment = (TextView) view.findViewById(R.id.linked_id_comment); + view.findViewById(R.id.back_button).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + LinkedIdWizard activity = (LinkedIdWizard) getActivity(); + if (activity == null) { + return; + } + activity.loadFragment(null, null, LinkedIdWizard.FRAG_ACTION_TO_LEFT); + } + }); + view.findViewById(R.id.button_send).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { step1GetOAuthCode(); + // for animation testing + // onCryptoOperationSuccess(null); } }); @@ -263,6 +280,11 @@ public class LinkedIdCreateGithubFragment extends CryptoOperationFragment<SaveKe URI uri = URI.create("https://gist.github.com/" + gistLogin + "/" + gistId); GithubResource resource = GithubResource.create(uri); + View linkedItem = mButtonContainer.getChildAt(2); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + linkedItem.setTransitionName(resource.toUri().toString()); + } + revokeToken(accessToken); mStatus2.setDisplayedChild(2); @@ -334,19 +356,28 @@ public class LinkedIdCreateGithubFragment extends CryptoOperationFragment<SaveKe @Override public void onCryptoOperationSuccess(EditKeyResult result) { mStatus3.setDisplayedChild(2); + + mButtonContainer.getInAnimation().setDuration(750); mButtonContainer.setDisplayedChild(2); new Handler().postDelayed(new Runnable() { @Override public void run() { - Activity activity = getActivity(); + FragmentActivity activity = getActivity(); Intent intent = new Intent(activity, ViewKeyActivity.class); intent.setData(KeyRings.buildGenericKeyRingUri(mMasterKeyId)); + // intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - mButtonContainer.getCurrentView().setTransitionName("linked_item"); - activity.finishAfterTransition(); + intent.putExtra(ViewKeyActivity.EXTRA_LINKED_TRANSITION, true); + View linkedItem = mButtonContainer.getChildAt(2); + + Bundle options = ActivityOptionsCompat.makeSceneTransitionAnimation( + activity, linkedItem, linkedItem.getTransitionName()).toBundle(); + activity.startActivity(intent, options); + mFinishOnStop = true; } else { + activity.startActivity(intent); activity.finish(); } } @@ -354,6 +385,16 @@ public class LinkedIdCreateGithubFragment extends CryptoOperationFragment<SaveKe } @Override + public void onStop() { + super.onStop(); + if (mFinishOnStop) { + Activity activity = getActivity(); + activity.setResult(Activity.RESULT_OK); + activity.finish(); + } + } + + @Override public void onCryptoOperationError(EditKeyResult result) { result.createNotify(getActivity()).show(this); mStatus3.setDisplayedChild(3); @@ -365,7 +406,6 @@ public class LinkedIdCreateGithubFragment extends CryptoOperationFragment<SaveKe mStatus3.setDisplayedChild(3); } - private String mOAuthCode, mOAuthState; @SuppressLint("SetJavaScriptEnabled") // trusted https website, it's ok |