Explain why forum can't be shared with contact

Closes #533
parent ddbac369
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -9,8 +8,9 @@
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="@dimen/listitem_height_contact_selector"
android:background="?attr/selectableItemBackground">
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:padding="@dimen/listitem_horizontal_margin">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/avatarView"
......@@ -20,13 +20,10 @@
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/listitem_horizontal_margin"
android:layout_marginStart="@dimen/listitem_horizontal_margin"
android:transitionName="avatar"
tools:src="@drawable/ic_launcher"/>
<TextView
android:id="@+id/nameView"
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
......@@ -35,10 +32,28 @@
android:layout_toEndOf="@+id/avatarView"
android:layout_toLeftOf="@+id/checkBox"
android:layout_toRightOf="@+id/avatarView"
android:maxLines="2"
android:textSize="@dimen/text_size_large"
android:textColor="@color/briar_text_primary"
tools:text="This is a name of a contact"/>
android:orientation="vertical">
<TextView
android:id="@+id/nameView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="2"
android:textColor="@color/briar_text_primary"
android:textSize="@dimen/text_size_large"
tools:text="This is a name of a contact"/>
<TextView
android:id="@+id/infoView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="2"
android:text="@string/forum_invitation_already_sharing"
android:textColor="@color/briar_text_tertiary"
android:textSize="@dimen/text_size_small"
tools:visibility="visible"/>
</LinearLayout>
<CheckBox
android:id="@+id/checkBox"
......@@ -47,7 +62,6 @@
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="@dimen/listitem_horizontal_margin"
android:clickable="false"/>
</RelativeLayout>
......
......@@ -23,7 +23,6 @@
<dimen name="listitem_vertical_margin">10dp</dimen>
<dimen name="listitem_text_left_margin">72dp</dimen>
<dimen name="listitem_height_one_line_avatar">56dp</dimen>
<dimen name="listitem_height_contact_selector">68dp</dimen>
<dimen name="listitem_picture_size">48dp</dimen>
<dimen name="listitem_picture_size_small">23dp</dimen>
<dimen name="listitem_picture_frame_size">53dp</dimen>
......
......@@ -221,6 +221,7 @@
<string name="forum_new_entry_received">New forum entry</string>
<string name="forum_new_message_hint">New Entry</string>
<string name="forum_message_reply_hint">New Reply</string>
<string name="forum_invitation_already_sharing">Already sharing</string>
<!-- Dialogs -->
<string name="dialog_title_lost_password">Lost Password</string>
......
......@@ -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,10 +21,13 @@ 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<ContactSelectorAdapter.SelectableContactHolder> {
public ContactSelectorAdapter(Context context,
ContactSelectorAdapter(Context context,
OnItemClickListener listener) {
super(context, listener);
......@@ -53,11 +58,15 @@ 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.shared.setVisibility(GONE);
grayOutItem(ui, false);
}
}
public Collection<ContactId> getSelectedContactIds() {
Collection<ContactId> getSelectedContactIds() {
Collection<ContactId> selected = new ArrayList<>();
for (int i = 0; i < contacts.size(); i++) {
......@@ -69,15 +78,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 +97,27 @@ public class ContactSelectorAdapter
return compareByName(c1, c2);
}
private void grayOutItem(final SelectableContactHolder ui) {
private void grayOutItem(final SelectableContactHolder ui,
final boolean gray) {
if (Build.VERSION.SDK_INT >= 11) {
float alpha = 0.25f;
float alpha = 1f;
if (gray) alpha = 0.25f;
ui.avatar.setAlpha(alpha);
ui.name.setAlpha(alpha);
ui.shared.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) {
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);
}
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment