From f8cf7034db2da9a2554edf32f0d11fa7a5d5b889 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Fri, 7 Apr 2017 10:42:18 -0300 Subject: [PATCH] Show explanation about visibility in member lists --- .../memberlist/GroupMemberListActivity.java | 6 +++- .../sharing/BlogSharingStatusActivity.java | 6 ++++ .../sharing/ForumSharingStatusActivity.java | 6 ++++ .../sharing/SharingStatusActivity.java | 10 ++++++- .../src/main/res/drawable/ic_info.xml | 10 +++++++ .../res/layout/activity_sharing_status.xml | 30 +++++++++++++++++++ briar-android/src/main/res/values/strings.xml | 3 ++ 7 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 briar-android/src/main/res/drawable/ic_info.xml create mode 100644 briar-android/src/main/res/layout/activity_sharing_status.xml diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/memberlist/GroupMemberListActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/memberlist/GroupMemberListActivity.java index feadb3d516..de7776da6d 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/memberlist/GroupMemberListActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/memberlist/GroupMemberListActivity.java @@ -4,6 +4,7 @@ import android.content.Intent; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.view.MenuItem; +import android.widget.TextView; import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; @@ -40,7 +41,7 @@ public class GroupMemberListActivity extends BriarActivity { public void onCreate(@Nullable final Bundle state) { super.onCreate(state); - setContentView(R.layout.list); + setContentView(R.layout.activity_sharing_status); Intent i = getIntent(); byte[] b = i.getByteArrayExtra(GROUP_ID); @@ -52,6 +53,9 @@ public class GroupMemberListActivity extends BriarActivity { list.setLayoutManager(linearLayoutManager); adapter = new MemberListAdapter(this); list.setAdapter(adapter); + + TextView info = (TextView) findViewById(R.id.info); + info.setText(R.string.sharing_status_groups); } @Override diff --git a/briar-android/src/main/java/org/briarproject/briar/android/sharing/BlogSharingStatusActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/sharing/BlogSharingStatusActivity.java index a1adeace55..011ed26b4b 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/sharing/BlogSharingStatusActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/sharing/BlogSharingStatusActivity.java @@ -5,6 +5,7 @@ import org.briarproject.bramble.api.db.DatabaseExecutor; import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; +import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.api.blog.BlogSharingManager; @@ -25,6 +26,11 @@ public class BlogSharingStatusActivity extends SharingStatusActivity { component.inject(this); } + @Override + int getInfoText() { + return R.string.sharing_status_blog; + } + @Override @DatabaseExecutor protected Collection<Contact> getSharedWith() throws DbException { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ForumSharingStatusActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ForumSharingStatusActivity.java index 057da939e1..692191d4e6 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ForumSharingStatusActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ForumSharingStatusActivity.java @@ -5,6 +5,7 @@ import org.briarproject.bramble.api.db.DatabaseExecutor; import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; +import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.api.forum.ForumSharingManager; @@ -25,6 +26,11 @@ public class ForumSharingStatusActivity extends SharingStatusActivity { component.inject(this); } + @Override + int getInfoText() { + return R.string.sharing_status_forum; + } + @Override @DatabaseExecutor protected Collection<Contact> getSharedWith() throws DbException { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/sharing/SharingStatusActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/sharing/SharingStatusActivity.java index db72e8c55c..4fd258d453 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/sharing/SharingStatusActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/sharing/SharingStatusActivity.java @@ -3,8 +3,10 @@ package org.briarproject.briar.android.sharing; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; +import android.support.annotation.StringRes; import android.support.v7.widget.LinearLayoutManager; import android.view.MenuItem; +import android.widget.TextView; import org.briarproject.bramble.api.contact.Contact; import org.briarproject.bramble.api.db.DatabaseExecutor; @@ -45,7 +47,7 @@ abstract class SharingStatusActivity extends BriarActivity { public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.list); + setContentView(R.layout.activity_sharing_status); Intent i = getIntent(); byte[] b = i.getByteArrayExtra(GROUP_ID); @@ -57,6 +59,9 @@ abstract class SharingStatusActivity extends BriarActivity { list.setLayoutManager(new LinearLayoutManager(this)); list.setAdapter(adapter); list.setEmptyText(getString(R.string.nobody)); + + TextView info = (TextView) findViewById(R.id.info); + info.setText(getInfoText()); } @Override @@ -84,6 +89,9 @@ abstract class SharingStatusActivity extends BriarActivity { } } + @StringRes + abstract int getInfoText(); + @DatabaseExecutor abstract protected Collection<Contact> getSharedWith() throws DbException; diff --git a/briar-android/src/main/res/drawable/ic_info.xml b/briar-android/src/main/res/drawable/ic_info.xml new file mode 100644 index 0000000000..112cabcada --- /dev/null +++ b/briar-android/src/main/res/drawable/ic_info.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:alpha="0.56" + android:viewportHeight="24.0" + android:viewportWidth="24.0"> + <path + android:fillColor="#000000" + android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z"/> +</vector> diff --git a/briar-android/src/main/res/layout/activity_sharing_status.xml b/briar-android/src/main/res/layout/activity_sharing_status.xml new file mode 100644 index 0000000000..359c87569b --- /dev/null +++ b/briar-android/src/main/res/layout/activity_sharing_status.xml @@ -0,0 +1,30 @@ +<?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="match_parent" + android:orientation="vertical"> + + <TextView + android:id="@+id/info" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:drawableLeft="@drawable/ic_info" + android:drawablePadding="@dimen/margin_medium" + android:padding="@dimen/margin_medium" + android:textColor="?android:textColorSecondary" + android:textSize="@dimen/text_size_tiny" + tools:text="@string/sharing_status_forum"/> + + <View style="@style/Divider.Horizontal"/> + + <org.briarproject.briar.android.view.BriarRecyclerView + android:id="@+id/list" + android:layout_width="match_parent" + android:layout_height="match_parent" + app:scrollToEnd="false" + tools:listitem="@layout/list_item_contact"/> + +</LinearLayout> \ No newline at end of file diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index a10f34cafa..99e86b60e6 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -194,6 +194,7 @@ <string name="groups_invitations_response_declined_sent">You declined the group invitation from %s.</string> <string name="groups_invitations_response_accepted_received">%s accepted the group invitation.</string> <string name="groups_invitations_response_declined_received">%s declined the group invitation.</string> + <string name="sharing_status_groups">Only the creator can invite new members to the group. Below are all current members of the group.</string> <!-- Private Groups Revealing Contacts --> <string name="groups_reveal_contacts">Reveal Contacts</string> @@ -252,6 +253,7 @@ <string name="forum_invitation_response_declined_received">%s declined the forum invitation.</string> <string name="sharing_status">Sharing Status</string> + <string name="sharing_status_forum">Any member of a forum can share it with their contacts. You are sharing this forum with the following contacts. There may also be other members who you can\'t see.</string> <string name="shared_with">Shared with %1$d (%2$d online)</string> <plurals name="forums_shared"> <item quantity="one">%d forum shared by contacts</item> @@ -291,6 +293,7 @@ <string name="blogs_sharing_invitations_title">Blog Invitations</string> <string name="blogs_sharing_joined_toast">Subscribed to Blog</string> <string name="blogs_sharing_declined_toast">Blog Invitation Declined</string> + <string name="sharing_status_blog">Anyone who subscribes to a blog can share it with their contacts. You are sharing this blog with the following contacts. There may also be other subscribers who you can\'t see.</string> <!-- RSS Feeds --> <string name="blogs_rss_feeds_import">Import RSS Feed</string> -- GitLab