mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 10:49:06 +01:00
Merge branch '686-crash-when-transitioning-out-of-reblogactivity' into 'master'
Limit scene transition animations to API 23 and above to work-around [android bug #224270](https://code.google.com/p/android/issues/detail?id=224270). This is only necessary if the transitioning view might not be available anymore when the exit transition is made. Closes #686 See merge request !361
This commit is contained in:
@@ -3,6 +3,7 @@ package org.briarproject.android.blogs;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.UiThread;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
@@ -134,11 +135,17 @@ class BlogPostViewHolder extends RecyclerView.ViewHolder {
|
||||
i.putExtra(GROUP_ID, item.getGroupId().getBytes());
|
||||
i.putExtra(POST_ID, item.getId().getBytes());
|
||||
|
||||
ActivityOptionsCompat options =
|
||||
makeSceneTransitionAnimation((Activity) ctx, layout,
|
||||
getTransitionName(item.getId()));
|
||||
ActivityCompat
|
||||
.startActivity((Activity) ctx, i, options.toBundle());
|
||||
// work-around for android bug #224270
|
||||
if (Build.VERSION.SDK_INT >= 23) {
|
||||
ActivityOptionsCompat options =
|
||||
makeSceneTransitionAnimation((Activity) ctx, layout,
|
||||
getTransitionName(item.getId()));
|
||||
ActivityCompat
|
||||
.startActivity((Activity) ctx, i,
|
||||
options.toBundle());
|
||||
} else {
|
||||
ctx.startActivity(i);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.briarproject.android.contact;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
@@ -119,22 +120,28 @@ public class ContactListFragment extends BaseFragment implements EventListener {
|
||||
ConversationActivity.class);
|
||||
i.putExtra(GROUP_ID, groupId.getBytes());
|
||||
|
||||
ContactListAdapter.ContactHolder holder =
|
||||
(ContactListAdapter.ContactHolder) list
|
||||
.getRecyclerView()
|
||||
.findViewHolderForAdapterPosition(
|
||||
adapter.findItemPosition(item));
|
||||
Pair<View, String> avatar =
|
||||
Pair.create((View) holder.avatar, ViewCompat
|
||||
.getTransitionName(holder.avatar));
|
||||
Pair<View, String> bulb =
|
||||
Pair.create((View) holder.bulb, ViewCompat
|
||||
.getTransitionName(holder.bulb));
|
||||
ActivityOptionsCompat options =
|
||||
makeSceneTransitionAnimation(getActivity(),
|
||||
avatar, bulb);
|
||||
ActivityCompat.startActivity(getActivity(), i,
|
||||
options.toBundle());
|
||||
// work-around for android bug #224270
|
||||
if (Build.VERSION.SDK_INT >= 23) {
|
||||
ContactListAdapter.ContactHolder holder =
|
||||
(ContactListAdapter.ContactHolder) list
|
||||
.getRecyclerView()
|
||||
.findViewHolderForAdapterPosition(
|
||||
adapter.findItemPosition(
|
||||
item));
|
||||
Pair<View, String> avatar =
|
||||
Pair.create((View) holder.avatar, ViewCompat
|
||||
.getTransitionName(holder.avatar));
|
||||
Pair<View, String> bulb =
|
||||
Pair.create((View) holder.bulb, ViewCompat.
|
||||
getTransitionName(holder.bulb));
|
||||
ActivityOptionsCompat options =
|
||||
makeSceneTransitionAnimation(getActivity(),
|
||||
avatar, bulb);
|
||||
ActivityCompat.startActivity(getActivity(), i,
|
||||
options.toBundle());
|
||||
} else {
|
||||
getActivity().startActivity(i);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user