diff --git a/briar-android/res/menu/forum_share_actions.xml b/briar-android/res/menu/contact_selection_actions.xml
similarity index 73%
rename from briar-android/res/menu/forum_share_actions.xml
rename to briar-android/res/menu/contact_selection_actions.xml
index a3d6c1547..fbef25059 100644
--- a/briar-android/res/menu/forum_share_actions.xml
+++ b/briar-android/res/menu/contact_selection_actions.xml
@@ -4,9 +4,9 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
\ No newline at end of file
diff --git a/briar-android/res/values-de/strings.xml b/briar-android/res/values-de/strings.xml
index 2967f16b1..e3f453755 100644
--- a/briar-android/res/values-de/strings.xml
+++ b/briar-android/res/values-de/strings.xml
@@ -171,7 +171,7 @@
Forum wurde verlassen
Forum teilen
- Teile dieses Forum mit den gewählten Kontakten
+ Teile dieses Forum mit den gewählten Kontakten
Kontakte auswählen
Du scheinst hier neu zu sein und noch keine Kontakte zu haben.\n\nBitte komm zurück, wenn du deinen ersten Kontakt hinzugefügt hast.
Forum mit gewählten Kontakten geteilt
diff --git a/briar-android/res/values-es/strings.xml b/briar-android/res/values-es/strings.xml
index 521fbd9f8..63135b3bf 100644
--- a/briar-android/res/values-es/strings.xml
+++ b/briar-android/res/values-es/strings.xml
@@ -159,7 +159,7 @@
Foro abandonado
Compartir foro
- Compartir este foro con los contactos seleccionados
+ Compartir este foro con los contactos seleccionados
Elige contactos
Parece que eres nuevo aquí y no tienes contactos aún.\n\nPor favor, vuelve cuando hayas añadido tu primer contacto.
Foro compartido con los contactos seleccionados
diff --git a/briar-android/res/values-it/strings.xml b/briar-android/res/values-it/strings.xml
index 28a764499..e7b7a678f 100644
--- a/briar-android/res/values-it/strings.xml
+++ b/briar-android/res/values-it/strings.xml
@@ -136,7 +136,7 @@
Forum lasciato
Condividi Forum
- Condividi questo forum con i contatti scelti
+ Condividi questo forum con i contatti scelti
Scegli Contatti
Forum condiviso con i contatti scelti
C\'è stato un errore nella condivisione di questo forum.
diff --git a/briar-android/res/values-pt-rBR/strings.xml b/briar-android/res/values-pt-rBR/strings.xml
index 4fd4eb8c7..75d4cc14b 100644
--- a/briar-android/res/values-pt-rBR/strings.xml
+++ b/briar-android/res/values-pt-rBR/strings.xml
@@ -171,7 +171,7 @@ Se sentido sozinho aqui? Compartilhe esse fórum com seus contatos!
Saiu do fórum
Compartilhar fórum
- Compartilhar este fórum com os contatos escolhidos
+ Compartilhar este fórum com os contatos escolhidos
Escolher contatos
Parece que você é novo aqui e não tem nenhum contato ainda.
Por favor volte aqui depois de adicionar um contato.
diff --git a/briar-android/res/values/strings.xml b/briar-android/res/values/strings.xml
index b1652f5fb..004c00129 100644
--- a/briar-android/res/values/strings.xml
+++ b/briar-android/res/values/strings.xml
@@ -195,7 +195,7 @@
Share Forum
- Share this forum with chosen contacts
+ Contacts selected
Choose Contacts
It seems that you are new here and have no contacts yet.\n\nPlease come back here after you added your first contact.
Forum shared with chosen contacts
diff --git a/briar-android/src/org/briarproject/android/sharing/ContactSelectorFragment.java b/briar-android/src/org/briarproject/android/sharing/ContactSelectorFragment.java
index 82db75adf..b496bcdeb 100644
--- a/briar-android/src/org/briarproject/android/sharing/ContactSelectorFragment.java
+++ b/briar-android/src/org/briarproject/android/sharing/ContactSelectorFragment.java
@@ -23,7 +23,6 @@ import org.briarproject.api.contact.Contact;
import org.briarproject.api.contact.ContactId;
import org.briarproject.api.contact.ContactManager;
import org.briarproject.api.db.DbException;
-import org.briarproject.api.forum.ForumSharingManager;
import org.briarproject.api.identity.IdentityManager;
import org.briarproject.api.identity.LocalAuthor;
import org.briarproject.api.sync.GroupId;
@@ -48,7 +47,6 @@ public class ContactSelectorFragment extends BaseFragment implements
public static final String TAG = ContactSelectorFragment.class.getName();
private static final Logger LOG = Logger.getLogger(TAG);
- private ShareActivity shareActivity;
private Menu menu;
private BriarRecyclerView list;
private ContactSelectorAdapter adapter;
@@ -59,13 +57,11 @@ public class ContactSelectorFragment extends BaseFragment implements
volatile ContactManager contactManager;
@Inject
volatile IdentityManager identityManager;
- @Inject
- volatile ForumSharingManager forumSharingManager;
private volatile GroupId groupId;
+ private volatile ContactSelectorListener listener;
public static ContactSelectorFragment newInstance(GroupId groupId) {
-
Bundle args = new Bundle();
args.putByteArray(GROUP_ID, groupId.getBytes());
ContactSelectorFragment fragment = new ContactSelectorFragment();
@@ -81,7 +77,7 @@ public class ContactSelectorFragment extends BaseFragment implements
@Override
public void onAttach(Context context) {
super.onAttach(context);
- shareActivity = (ShareActivity) context;
+ listener = (ContactSelectorListener) context;
}
@Override
@@ -139,6 +135,7 @@ public class ContactSelectorFragment extends BaseFragment implements
@Override
public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
if (adapter != null) {
selectedContacts = adapter.getSelectedContactIds();
outState.putIntegerArrayList(CONTACTS,
@@ -148,7 +145,7 @@ public class ContactSelectorFragment extends BaseFragment implements
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- inflater.inflate(R.menu.forum_share_actions, menu);
+ inflater.inflate(R.menu.contact_selection_actions, menu);
super.onCreateOptionsMenu(menu, inflater);
this.menu = menu;
// hide sharing action initially, if no contact is selected
@@ -160,11 +157,11 @@ public class ContactSelectorFragment extends BaseFragment implements
// Handle presses on the action bar items
switch (item.getItemId()) {
case android.R.id.home:
- shareActivity.onBackPressed();
+ listener.onBackPressed();
return true;
- case R.id.action_share_forum:
+ case R.id.action_contacts_selected:
selectedContacts = adapter.getSelectedContactIds();
- shareActivity.showMessageScreen(groupId, selectedContacts);
+ listener.contactsSelected(groupId, selectedContacts);
return true;
default:
return super.onOptionsItemSelected(item);
@@ -185,7 +182,7 @@ public class ContactSelectorFragment extends BaseFragment implements
}
private void loadContacts(@Nullable final Collection selection) {
- shareActivity.runOnDbThread(new Runnable() {
+ listener.runOnDbThread(new Runnable() {
@Override
public void run() {
try {
@@ -199,7 +196,7 @@ public class ContactSelectorFragment extends BaseFragment implements
boolean selected = selection != null &&
selection.contains(c.getId());
// do we have already some sharing with that contact?
- boolean disabled = shareActivity.isDisabled(groupId, c);
+ boolean disabled = listener.isDisabled(groupId, c);
contacts.add(new SelectableContactListItem(c,
localAuthor, groupId, selected, disabled));
}
@@ -216,7 +213,7 @@ public class ContactSelectorFragment extends BaseFragment implements
}
private void displayContacts(final List contacts) {
- shareActivity.runOnUiThreadUnlessDestroyed(new Runnable() {
+ listener.runOnUiThreadUnlessDestroyed(new Runnable() {
@Override
public void run() {
if (contacts.isEmpty()) list.showData();
@@ -228,7 +225,7 @@ public class ContactSelectorFragment extends BaseFragment implements
private void updateMenuItem() {
if (menu == null) return;
- MenuItem item = menu.findItem(R.id.action_share_forum);
+ MenuItem item = menu.findItem(R.id.action_contacts_selected);
if (item == null) return;
selectedContacts = adapter.getSelectedContactIds();
diff --git a/briar-android/src/org/briarproject/android/sharing/ContactSelectorListener.java b/briar-android/src/org/briarproject/android/sharing/ContactSelectorListener.java
new file mode 100644
index 000000000..e1805594a
--- /dev/null
+++ b/briar-android/src/org/briarproject/android/sharing/ContactSelectorListener.java
@@ -0,0 +1,25 @@
+package org.briarproject.android.sharing;
+
+import android.support.annotation.UiThread;
+
+import org.briarproject.android.DestroyableContext;
+import org.briarproject.api.contact.Contact;
+import org.briarproject.api.contact.ContactId;
+import org.briarproject.api.db.DbException;
+import org.briarproject.api.sync.GroupId;
+
+import java.util.Collection;
+
+public interface ContactSelectorListener extends DestroyableContext {
+
+ void runOnDbThread(Runnable runnable);
+
+ boolean isDisabled(GroupId groupId, Contact c) throws DbException;
+
+ @UiThread
+ void contactsSelected(GroupId groupId, Collection contacts);
+
+ @UiThread
+ void onBackPressed();
+
+}
diff --git a/briar-android/src/org/briarproject/android/sharing/ShareActivity.java b/briar-android/src/org/briarproject/android/sharing/ShareActivity.java
index d79a7ed2e..abef634fe 100644
--- a/briar-android/src/org/briarproject/android/sharing/ShareActivity.java
+++ b/briar-android/src/org/briarproject/android/sharing/ShareActivity.java
@@ -6,7 +6,7 @@ import android.view.View;
import org.briarproject.R;
import org.briarproject.android.BriarActivity;
-import org.briarproject.android.fragment.BaseFragment;
+import org.briarproject.android.fragment.BaseFragment.BaseFragmentListener;
import org.briarproject.api.contact.Contact;
import org.briarproject.api.contact.ContactId;
import org.briarproject.api.db.DbException;
@@ -17,7 +17,7 @@ import java.util.Collection;
import java.util.List;
public abstract class ShareActivity extends BriarActivity implements
- BaseFragment.BaseFragmentListener {
+ BaseFragmentListener, ContactSelectorListener {
final static String CONTACTS = "contacts";
@@ -44,9 +44,15 @@ public abstract class ShareActivity extends BriarActivity implements
abstract ShareMessageFragment getMessageFragment(GroupId groupId,
Collection contacts);
- abstract boolean isDisabled(GroupId groupId, Contact c) throws DbException;
+ /**
+ * This must only be called from a DbThread
+ */
+ public abstract boolean isDisabled(GroupId groupId, Contact c)
+ throws DbException;
- void showMessageScreen(GroupId groupId, Collection contacts) {
+ @Override
+ public void contactsSelected(GroupId groupId,
+ Collection contacts) {
ShareMessageFragment messageFragment =
getMessageFragment(groupId, contacts);
diff --git a/briar-android/src/org/briarproject/android/sharing/ShareBlogActivity.java b/briar-android/src/org/briarproject/android/sharing/ShareBlogActivity.java
index 696ea1452..b102453e5 100644
--- a/briar-android/src/org/briarproject/android/sharing/ShareBlogActivity.java
+++ b/briar-android/src/org/briarproject/android/sharing/ShareBlogActivity.java
@@ -29,7 +29,7 @@ public class ShareBlogActivity extends ShareActivity {
/**
* This must only be called from a DbThread
*/
- boolean isDisabled(GroupId groupId, Contact c) throws DbException {
+ public boolean isDisabled(GroupId groupId, Contact c) throws DbException {
return !blogSharingManager.canBeShared(groupId, c);
}
}
diff --git a/briar-android/src/org/briarproject/android/sharing/ShareForumActivity.java b/briar-android/src/org/briarproject/android/sharing/ShareForumActivity.java
index 51a5d5a22..1f7653537 100644
--- a/briar-android/src/org/briarproject/android/sharing/ShareForumActivity.java
+++ b/briar-android/src/org/briarproject/android/sharing/ShareForumActivity.java
@@ -28,7 +28,7 @@ public class ShareForumActivity extends ShareActivity {
/**
* This must only be called from a DbThread
*/
- boolean isDisabled(GroupId groupId, Contact c) throws DbException {
+ public boolean isDisabled(GroupId groupId, Contact c) throws DbException {
return !forumSharingManager.canBeShared(groupId, c);
}
}