aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2015-03-09 16:56:10 +0100
committerVincent Breitmoser <valodim@mugenguild.com>2015-03-09 16:56:10 +0100
commit138773798ae9325ba92021c8779f71e6fc0c23c6 (patch)
tree69a3974605277ad295771cc2e100c1d513194e7c /OpenKeychain/src/main/java
parent08fd2a2de3795cf8fc4be590ba993c356c8eb67f (diff)
downloadopen-keychain-138773798ae9325ba92021c8779f71e6fc0c23c6.tar.gz
open-keychain-138773798ae9325ba92021c8779f71e6fc0c23c6.tar.bz2
open-keychain-138773798ae9325ba92021c8779f71e6fc0c23c6.zip
fix transition animation
Diffstat (limited to 'OpenKeychain/src/main/java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java31
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/LinkedIdsAdapter.java2
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdViewFragment.java17
3 files changed, 41 insertions, 9 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java
index a7dc63122..b1da6df9d 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyFragment.java
@@ -24,9 +24,8 @@ import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
-import android.support.v4.app.Fragment;
+import android.os.Handler;
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.transition.Fade;
@@ -42,10 +41,11 @@ import android.widget.ListView;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.compatibility.DialogFragmentWorkaround;
-import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.ui.adapter.LinkedIdsAdapter;
import org.sufficientlysecure.keychain.ui.adapter.UserIdsAdapter;
import org.sufficientlysecure.keychain.ui.dialog.UserIdInfoDialogFragment;
+import org.sufficientlysecure.keychain.ui.linked.LinkedIdViewFragment;
+import org.sufficientlysecure.keychain.ui.linked.LinkedIdViewFragment.OnIdentityLoadedListener;
import org.sufficientlysecure.keychain.util.Log;
public class ViewKeyFragment extends LoaderFragment implements
@@ -129,7 +129,7 @@ public class ViewKeyFragment extends LoaderFragment implements
}
private void showLinkedId(final int position) {
- Fragment frag;
+ final LinkedIdViewFragment frag;
try {
frag = mLinkedIdsAdapter.getLinkedIdFragment(mDataUri, position, mFingerprint);
} catch (IOException e) {
@@ -146,10 +146,27 @@ public class ViewKeyFragment extends LoaderFragment implements
}
getFragmentManager().beginTransaction()
- .replace(R.id.view_key_fragment, frag)
- .addSharedElement(mLinkedIdsCard, "card_linked_ids")
- .addToBackStack("linked_id")
+ .add(R.id.view_key_fragment, frag)
+ .hide(frag)
.commit();
+
+ frag.setOnIdentityLoadedListener(new OnIdentityLoadedListener() {
+ @Override
+ public void onIdentityLoaded() {
+ new Handler().post(new Runnable() {
+ @Override
+ public void run() {
+ getFragmentManager().beginTransaction()
+ .show(frag)
+ .addSharedElement(mLinkedIdsCard, "card_linked_ids")
+ .remove(ViewKeyFragment.this)
+ .addToBackStack("linked_id")
+ .commit();
+ }
+ });
+ }
+ });
+
}
private void showUserIdInfo(final int position) {
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/LinkedIdsAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/LinkedIdsAdapter.java
index ce4291101..76cb63223 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/LinkedIdsAdapter.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/LinkedIdsAdapter.java
@@ -126,7 +126,7 @@ public class LinkedIdsAdapter extends UserAttributesAdapter {
UserIdsAdapter.USER_PACKETS_PROJECTION, LINKED_IDS_WHERE, null, null);
}
- public Fragment getLinkedIdFragment(Uri baseUri,
+ public LinkedIdViewFragment getLinkedIdFragment(Uri baseUri,
int position, byte[] fingerprint) throws IOException {
Cursor c = getCursor();
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdViewFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdViewFragment.java
index fcb9d7bb4..284e6e0c1 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdViewFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdViewFragment.java
@@ -79,8 +79,9 @@ public class LinkedIdViewFragment extends Fragment implements
private ViewHolder mViewHolder;
private View mCurrentCert;
private int mLidRank;
+ private OnIdentityLoadedListener mIdLoadedListener;
- public static Fragment newInstance(Uri dataUri, int rank,
+ public static LinkedIdViewFragment newInstance(Uri dataUri, int rank,
boolean showCertified, byte[] fingerprint) throws IOException {
LinkedIdViewFragment frag = new LinkedIdViewFragment();
@@ -149,6 +150,12 @@ public class LinkedIdViewFragment extends Fragment implements
RawLinkedIdentity linkedId = LinkedIdentity.fromAttributeData(data);
loadIdentity(linkedId, certStatus);
+
+ if (mIdLoadedListener != null) {
+ mIdLoadedListener.onIdentityLoaded();
+ mIdLoadedListener = null;
+ }
+
} catch (IOException e) {
e.printStackTrace();
throw new AssertionError("reconstruction of user attribute must succeed!");
@@ -162,6 +169,14 @@ public class LinkedIdViewFragment extends Fragment implements
}
}
+ public interface OnIdentityLoadedListener {
+ public void onIdentityLoaded();
+ }
+
+ public void setOnIdentityLoadedListener(OnIdentityLoadedListener listener) {
+ mIdLoadedListener = listener;
+ }
+
private void loadIdentity(RawLinkedIdentity linkedId, int certStatus) {
mLinkedId = linkedId;