Handle no browser when trying to opening links. Fixed app crashes in various cases.

This commit is contained in:
Alex Ning 2019-10-04 15:11:53 +08:00
parent 11f6b5dc91
commit 9b24fff160
3 changed files with 21 additions and 17 deletions

View File

@ -207,7 +207,11 @@ public class LinkResolverActivity extends AppCompatActivity {
if (!packageNames.isEmpty()) { if (!packageNames.isEmpty()) {
intent.setPackage(packageNames.get(0)); intent.setPackage(packageNames.get(0));
startActivity(intent); try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
Toast.makeText(this, R.string.no_browser_found, Toast.LENGTH_SHORT).show();
}
} else { } else {
Toast.makeText(this, R.string.no_browser_found, Toast.LENGTH_SHORT).show(); Toast.makeText(this, R.string.no_browser_found, Toast.LENGTH_SHORT).show();
} }

View File

@ -640,7 +640,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
} }
private void refresh(boolean fetchPost, boolean fetchComments) { private void refresh(boolean fetchPost, boolean fetchComments) {
if (!isRefreshing) { if (mAdapter != null && !isRefreshing) {
isRefreshing = true; isRefreshing = true;
mChildrenStartingIndex = 0; mChildrenStartingIndex = 0;

View File

@ -979,14 +979,12 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
} }
private int getParentPosition(int position) { private int getParentPosition(int position) {
if (position >= mVisibleComments.size()) { if (position < mVisibleComments.size()) {
return -1; int childDepth = mVisibleComments.get(position).getDepth();
} for (int i = position; i >= 0; i--) {
if (mVisibleComments.get(i).getDepth() < childDepth) {
int childDepth = mVisibleComments.get(position).getDepth(); return i;
for (int i = position; i >= 0; i--) { }
if (mVisibleComments.get(i).getDepth() < childDepth) {
return i;
} }
} }
return -1; return -1;
@ -1557,13 +1555,15 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
expandButton.setOnClickListener(view -> { expandButton.setOnClickListener(view -> {
if (expandButton.getVisibility() == View.VISIBLE) { if (expandButton.getVisibility() == View.VISIBLE) {
int commentPosition = mIsSingleCommentThreadMode ? getAdapterPosition() - 2 : getAdapterPosition() - 1; int commentPosition = mIsSingleCommentThreadMode ? getAdapterPosition() - 2 : getAdapterPosition() - 1;
if (mVisibleComments.get(commentPosition).isExpanded()) { if(commentPosition < mVisibleComments.size()) {
collapseChildren(commentPosition); if (mVisibleComments.get(commentPosition).isExpanded()) {
expandButton.setImageResource(R.drawable.ic_expand_more_black_20dp); collapseChildren(commentPosition);
} else { expandButton.setImageResource(R.drawable.ic_expand_more_black_20dp);
expandChildren(commentPosition); } else {
mVisibleComments.get(commentPosition).setExpanded(true); expandChildren(commentPosition);
expandButton.setImageResource(R.drawable.ic_expand_less_black_20dp); mVisibleComments.get(commentPosition).setExpanded(true);
expandButton.setImageResource(R.drawable.ic_expand_less_black_20dp);
}
} }
} }
}); });