Prevent crash

This commit is contained in:
M66B 2019-12-24 12:10:07 +01:00
parent 7b10f68040
commit 3343d5ab12
1 changed files with 42 additions and 41 deletions

View File

@ -422,53 +422,54 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
tvSubject.setEllipsize(TextUtils.TruncateAt.MIDDLE); tvSubject.setEllipsize(TextUtils.TruncateAt.MIDDLE);
} }
view.setAccessibilityDelegate(new View.AccessibilityDelegate() { if (view != null)
@Override view.setAccessibilityDelegate(new View.AccessibilityDelegate() {
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { @Override
super.onInitializeAccessibilityNodeInfo(host, info); public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(host, info);
TupleMessageEx message = getMessage(); TupleMessageEx message = getMessage();
if (message == null) if (message == null)
return; return;
if (ibExpander.getVisibility() == View.VISIBLE) { if (ibExpander.getVisibility() == View.VISIBLE) {
boolean expanded = properties.getValue("expanded", message.id); boolean expanded = properties.getValue("expanded", message.id);
info.addAction(new AccessibilityNodeInfo.AccessibilityAction(R.id.ibExpander, info.addAction(new AccessibilityNodeInfo.AccessibilityAction(R.id.ibExpander,
context.getString(expanded ? R.string.title_accessibility_collapse : R.string.title_accessibility_expand))); context.getString(expanded ? R.string.title_accessibility_collapse : R.string.title_accessibility_expand)));
}
if (ibAvatar.getVisibility() == View.VISIBLE && ibAvatar.isEnabled())
info.addAction(new AccessibilityNodeInfo.AccessibilityAction(R.id.ibAvatar,
context.getString(R.string.title_accessibility_view_contact)));
if (ibFlagged.getVisibility() == View.VISIBLE && ibFlagged.isEnabled()) {
int flagged = (message.count - message.unflagged);
info.addAction(new AccessibilityNodeInfo.AccessibilityAction(R.id.ibFlagged,
context.getString(flagged > 0 ? R.string.title_unflag : R.string.title_flag)));
}
} }
if (ibAvatar.getVisibility() == View.VISIBLE && ibAvatar.isEnabled()) @Override
info.addAction(new AccessibilityNodeInfo.AccessibilityAction(R.id.ibAvatar, public boolean performAccessibilityAction(View host, int action, Bundle args) {
context.getString(R.string.title_accessibility_view_contact))); TupleMessageEx message = getMessage();
if (message == null)
return false;
if (ibFlagged.getVisibility() == View.VISIBLE && ibFlagged.isEnabled()) { switch (action) {
int flagged = (message.count - message.unflagged); case R.id.ibExpander:
info.addAction(new AccessibilityNodeInfo.AccessibilityAction(R.id.ibFlagged, onToggleMessage(message);
context.getString(flagged > 0 ? R.string.title_unflag : R.string.title_flag))); return true;
case R.id.ibAvatar:
onViewContact(message);
return true;
case R.id.ibFlagged:
onToggleFlag(message);
return true;
default:
return super.performAccessibilityAction(host, action, args);
}
} }
} });
@Override
public boolean performAccessibilityAction(View host, int action, Bundle args) {
TupleMessageEx message = getMessage();
if (message == null)
return false;
switch (action) {
case R.id.ibExpander:
onToggleMessage(message);
return true;
case R.id.ibAvatar:
onViewContact(message);
return true;
case R.id.ibFlagged:
onToggleFlag(message);
return true;
default:
return super.performAccessibilityAction(host, action, args);
}
}
});
} }
private void ensureExpanded() { private void ensureExpanded() {