mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-18 13:49:53 +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.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.os.Build;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.annotation.UiThread;
|
import android.support.annotation.UiThread;
|
||||||
import android.support.v4.app.ActivityCompat;
|
import android.support.v4.app.ActivityCompat;
|
||||||
@@ -134,11 +135,17 @@ class BlogPostViewHolder extends RecyclerView.ViewHolder {
|
|||||||
i.putExtra(GROUP_ID, item.getGroupId().getBytes());
|
i.putExtra(GROUP_ID, item.getGroupId().getBytes());
|
||||||
i.putExtra(POST_ID, item.getId().getBytes());
|
i.putExtra(POST_ID, item.getId().getBytes());
|
||||||
|
|
||||||
ActivityOptionsCompat options =
|
// work-around for android bug #224270
|
||||||
makeSceneTransitionAnimation((Activity) ctx, layout,
|
if (Build.VERSION.SDK_INT >= 23) {
|
||||||
getTransitionName(item.getId()));
|
ActivityOptionsCompat options =
|
||||||
ActivityCompat
|
makeSceneTransitionAnimation((Activity) ctx, layout,
|
||||||
.startActivity((Activity) ctx, i, options.toBundle());
|
getTransitionName(item.getId()));
|
||||||
|
ActivityCompat
|
||||||
|
.startActivity((Activity) ctx, i,
|
||||||
|
options.toBundle());
|
||||||
|
} else {
|
||||||
|
ctx.startActivity(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.briarproject.android.contact;
|
package org.briarproject.android.contact;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.v4.app.ActivityCompat;
|
import android.support.v4.app.ActivityCompat;
|
||||||
@@ -119,22 +120,28 @@ public class ContactListFragment extends BaseFragment implements EventListener {
|
|||||||
ConversationActivity.class);
|
ConversationActivity.class);
|
||||||
i.putExtra(GROUP_ID, groupId.getBytes());
|
i.putExtra(GROUP_ID, groupId.getBytes());
|
||||||
|
|
||||||
ContactListAdapter.ContactHolder holder =
|
// work-around for android bug #224270
|
||||||
(ContactListAdapter.ContactHolder) list
|
if (Build.VERSION.SDK_INT >= 23) {
|
||||||
.getRecyclerView()
|
ContactListAdapter.ContactHolder holder =
|
||||||
.findViewHolderForAdapterPosition(
|
(ContactListAdapter.ContactHolder) list
|
||||||
adapter.findItemPosition(item));
|
.getRecyclerView()
|
||||||
Pair<View, String> avatar =
|
.findViewHolderForAdapterPosition(
|
||||||
Pair.create((View) holder.avatar, ViewCompat
|
adapter.findItemPosition(
|
||||||
.getTransitionName(holder.avatar));
|
item));
|
||||||
Pair<View, String> bulb =
|
Pair<View, String> avatar =
|
||||||
Pair.create((View) holder.bulb, ViewCompat
|
Pair.create((View) holder.avatar, ViewCompat
|
||||||
.getTransitionName(holder.bulb));
|
.getTransitionName(holder.avatar));
|
||||||
ActivityOptionsCompat options =
|
Pair<View, String> bulb =
|
||||||
makeSceneTransitionAnimation(getActivity(),
|
Pair.create((View) holder.bulb, ViewCompat.
|
||||||
avatar, bulb);
|
getTransitionName(holder.bulb));
|
||||||
ActivityCompat.startActivity(getActivity(), i,
|
ActivityOptionsCompat options =
|
||||||
options.toBundle());
|
makeSceneTransitionAnimation(getActivity(),
|
||||||
|
avatar, bulb);
|
||||||
|
ActivityCompat.startActivity(getActivity(), i,
|
||||||
|
options.toBundle());
|
||||||
|
} else {
|
||||||
|
getActivity().startActivity(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user