diff --git a/briar-android/src/org/briarproject/android/forum/ContactSelectorAdapter.java b/briar-android/src/org/briarproject/android/forum/ContactSelectorAdapter.java index 25e8fa1e91dd21576c6e1155a559ad1b74ca13b7..9a2fe4590677cbde9595c7f58751e262ea297176 100644 --- a/briar-android/src/org/briarproject/android/forum/ContactSelectorAdapter.java +++ b/briar-android/src/org/briarproject/android/forum/ContactSelectorAdapter.java @@ -27,10 +27,25 @@ import static android.view.View.VISIBLE; class ContactSelectorAdapter extends BaseContactListAdapter<ContactSelectorAdapter.SelectableContactHolder> { + private final ColorFilter grayColorFilter; + ContactSelectorAdapter(Context context, OnItemClickListener listener) { super(context, listener); + if (Build.VERSION.SDK_INT >= 11) { + grayColorFilter = null; + } else { + // Overlay the background colour at 75% opacity + int bg = ContextCompat.getColor(context, R.color.window_background); + int alpha = (int) (255 * 0.75f); + int red = Color.red(bg); + int green = Color.green(bg); + int blue = Color.blue(bg); + bg = Color.argb(alpha, red, green, blue); + grayColorFilter = new PorterDuffColorFilter(bg, + PorterDuff.Mode.SRC_OVER); + } } @Override @@ -61,6 +76,7 @@ class ContactSelectorAdapter ui.shared.setVisibility(VISIBLE); grayOutItem(ui, true); } else { + ui.layout.setEnabled(true); ui.shared.setVisibility(GONE); grayOutItem(ui, false); } @@ -97,27 +113,15 @@ class ContactSelectorAdapter return compareByName(c1, c2); } - private void grayOutItem(final SelectableContactHolder ui, - final boolean gray) { + private void grayOutItem(SelectableContactHolder ui, boolean gray) { if (Build.VERSION.SDK_INT >= 11) { - float alpha = 1f; - if (gray) alpha = 0.25f; + float alpha = gray ? 0.25f : 1f; ui.avatar.setAlpha(alpha); ui.name.setAlpha(alpha); - ui.shared.setAlpha(alpha); ui.checkBox.setAlpha(alpha); } else { - if (gray) { - ColorFilter colorFilter = new PorterDuffColorFilter( - ContextCompat.getColor(ctx, R.color.window_background), - PorterDuff.Mode.MULTIPLY); - ui.avatar.setColorFilter(colorFilter); - } else{ - ui.avatar.clearColorFilter(); - } - ui.name.setEnabled(!gray); - ui.shared.setEnabled(!gray); - ui.checkBox.setEnabled(!gray); + if (gray) ui.avatar.setColorFilter(grayColorFilter); + else ui.avatar.clearColorFilter(); } } }