diff --git a/briar-android/src/org/briarproject/android/forum/ForumActivity.java b/briar-android/src/org/briarproject/android/forum/ForumActivity.java index b99cb9f4733ae8c8a6e8c3799ab58b001d4fe45a..712a7f3fe24714519c2541c9d44fe0a83ed6d6c8 100644 --- a/briar-android/src/org/briarproject/android/forum/ForumActivity.java +++ b/briar-android/src/org/briarproject/android/forum/ForumActivity.java @@ -27,10 +27,8 @@ import org.briarproject.R; import org.briarproject.android.ActivityComponent; import org.briarproject.android.BriarActivity; import org.briarproject.android.api.AndroidNotificationManager; -import org.briarproject.android.controller.handler.ResultHandler; import org.briarproject.android.controller.handler.UiResultHandler; import org.briarproject.android.util.BriarRecyclerView; -import org.briarproject.android.util.CustomAnimations; import org.briarproject.api.sync.GroupId; import org.briarproject.util.StringUtils; @@ -309,7 +307,7 @@ public class ForumActivity extends BriarActivity implements private final List<ForumEntry> forumEntries; // highlight not depandant on time private ForumEntry replyEntry; -// temporary highlight + // temporary highlight private ForumEntry addedEntry; public ForumAdapter(@NonNull List<ForumEntry> forumEntries) { @@ -336,6 +334,7 @@ public class ForumActivity extends BriarActivity implements isShowingDescendants = true; showDescendants(higherEntry); } + notifyItemChanged(getVisiblePos(higherEntry)); break; } } @@ -361,8 +360,9 @@ public class ForumActivity extends BriarActivity implements return false; } - private boolean hasVisibleDescendants(int visiblePos) { - int levelLimit = forumEntries.get(visiblePos).getLevel(); + private boolean hasVisibleDescendants(ForumEntry forumEntry) { + int visiblePos = getVisiblePos(forumEntry); + int levelLimit = forumEntry.getLevel(); for (int i = visiblePos + 1; i < getItemCount(); i++) { ForumEntry entry = getVisibleEntry(i); if (entry.getLevel() <= levelLimit) @@ -527,7 +527,7 @@ public class ForumActivity extends BriarActivity implements if (hasDescendants(data)) { ui.chevron.setVisibility(VISIBLE); - if (hasVisibleDescendants(position)) { + if (hasVisibleDescendants(data)) { ui.chevron.setSelected(false); } else { ui.chevron.setSelected(true); @@ -551,17 +551,9 @@ public class ForumActivity extends BriarActivity implements .getColor(ForumActivity.this, R.color.forum_cell_highlight)); } else if (data.equals(addedEntry)) { - CustomAnimations.animateColorTransition(ui.cell, ContextCompat - .getColor(ForumActivity.this, - R.color.window_background), 3000, - new ResultHandler<Void>() { - @Override - public void onResult(Void result) { - ui.setIsRecyclable(true); - } - }); - // don't allow cell recycling until the animation finishes - ui.setIsRecyclable(false); + ui.cell.setBackgroundColor(ContextCompat + .getColor(ForumActivity.this, + R.color.forum_cell_highlight)); addedEntry = null; } else { ui.cell.setBackgroundColor(ContextCompat @@ -576,7 +568,7 @@ public class ForumActivity extends BriarActivity implements } setReplyEntry(data); linearLayoutManager - .scrollToPositionWithOffset(position, 0); + .scrollToPositionWithOffset(getVisiblePos(data), 0); } }); }