diff --git a/briar-android/res/layout/list_item_selectable_contact.xml b/briar-android/res/layout/list_item_selectable_contact.xml
index 5642afc01..a1054b891 100644
--- a/briar-android/res/layout/list_item_selectable_contact.xml
+++ b/briar-android/res/layout/list_item_selectable_contact.xml
@@ -1,7 +1,6 @@
+ android:layout_height="wrap_content"
+ android:background="?attr/selectableItemBackground"
+ android:padding="@dimen/listitem_horizontal_margin">
-
+ android:orientation="vertical">
+
+
+
+
+
+
diff --git a/briar-android/res/values/dimens.xml b/briar-android/res/values/dimens.xml
index 8aa43b669..8b09f7246 100644
--- a/briar-android/res/values/dimens.xml
+++ b/briar-android/res/values/dimens.xml
@@ -23,7 +23,6 @@
10dp
72dp
56dp
- 68dp
48dp
23dp
53dp
diff --git a/briar-android/res/values/strings.xml b/briar-android/res/values/strings.xml
index 4bef054ae..2d1daa679 100644
--- a/briar-android/res/values/strings.xml
+++ b/briar-android/res/values/strings.xml
@@ -221,6 +221,7 @@
New forum entry
New Entry
New Reply
+ Already sharing
Lost Password
diff --git a/briar-android/src/org/briarproject/android/forum/ContactSelectorAdapter.java b/briar-android/src/org/briarproject/android/forum/ContactSelectorAdapter.java
index 23ef1e78c..9a2fe4590 100644
--- a/briar-android/src/org/briarproject/android/forum/ContactSelectorAdapter.java
+++ b/briar-android/src/org/briarproject/android/forum/ContactSelectorAdapter.java
@@ -6,10 +6,12 @@ import android.graphics.ColorFilter;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.os.Build;
+import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
+import android.widget.TextView;
import org.briarproject.R;
import org.briarproject.android.contact.BaseContactListAdapter;
@@ -19,13 +21,31 @@ import org.briarproject.api.contact.ContactId;
import java.util.ArrayList;
import java.util.Collection;
-public class ContactSelectorAdapter
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
+
+class ContactSelectorAdapter
extends BaseContactListAdapter {
- public ContactSelectorAdapter(Context context,
+ 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
@@ -53,11 +73,16 @@ public class ContactSelectorAdapter
if (item.isDisabled()) {
// we share this forum already with that contact
ui.layout.setEnabled(false);
- grayOutItem(ui);
+ ui.shared.setVisibility(VISIBLE);
+ grayOutItem(ui, true);
+ } else {
+ ui.layout.setEnabled(true);
+ ui.shared.setVisibility(GONE);
+ grayOutItem(ui, false);
}
}
- public Collection getSelectedContactIds() {
+ Collection getSelectedContactIds() {
Collection selected = new ArrayList<>();
for (int i = 0; i < contacts.size(); i++) {
@@ -69,15 +94,17 @@ public class ContactSelectorAdapter
return selected;
}
- protected static class SelectableContactHolder
+ static class SelectableContactHolder
extends BaseContactListAdapter.BaseContactHolder {
private final CheckBox checkBox;
+ private final TextView shared;
- public SelectableContactHolder(View v) {
+ SelectableContactHolder(View v) {
super(v);
checkBox = (CheckBox) v.findViewById(R.id.checkBox);
+ shared = (TextView) v.findViewById(R.id.infoView);
}
}
@@ -86,18 +113,15 @@ public class ContactSelectorAdapter
return compareByName(c1, c2);
}
- private void grayOutItem(final SelectableContactHolder ui) {
+ private void grayOutItem(SelectableContactHolder ui, boolean gray) {
if (Build.VERSION.SDK_INT >= 11) {
- float alpha = 0.25f;
+ float alpha = gray ? 0.25f : 1f;
ui.avatar.setAlpha(alpha);
ui.name.setAlpha(alpha);
ui.checkBox.setAlpha(alpha);
} else {
- ColorFilter colorFilter = new PorterDuffColorFilter(Color.GRAY,
- PorterDuff.Mode.MULTIPLY);
- ui.avatar.setColorFilter(colorFilter);
- ui.name.setEnabled(false);
- ui.checkBox.setEnabled(false);
+ if (gray) ui.avatar.setColorFilter(grayColorFilter);
+ else ui.avatar.clearColorFilter();
}
}
}