From f81c8fcbd0c5b2a573e1b2ce220e6b6ce57eff75 Mon Sep 17 00:00:00 2001
From: Ernir Erlingsson <ernir@ymirmobile.com>
Date: Wed, 11 May 2016 12:22:53 +0200
Subject: [PATCH] rebased with master

---
 .../android/ActivityComponent.java            | 22 +++++++++------
 .../briarproject/android/ActivityModule.java  | 28 +++++++++++++++----
 .../android/AndroidComponent.java             |  6 ----
 .../forum/ContactSelectorFragment.java        | 20 ++++++-------
 .../android/forum/ShareForumActivity.java     |  9 +++---
 .../forum/ShareForumMessageFragment.java      | 23 ++++++---------
 6 files changed, 58 insertions(+), 50 deletions(-)

diff --git a/briar-android/src/org/briarproject/android/ActivityComponent.java b/briar-android/src/org/briarproject/android/ActivityComponent.java
index fcfd11761b..529bbf7ba2 100644
--- a/briar-android/src/org/briarproject/android/ActivityComponent.java
+++ b/briar-android/src/org/briarproject/android/ActivityComponent.java
@@ -2,24 +2,21 @@ package org.briarproject.android;
 
 import android.app.Activity;
 
-import org.briarproject.android.contact.ContactListFragment;
 import org.briarproject.android.contact.ConversationActivity;
 import org.briarproject.android.forum.AvailableForumsActivity;
+import org.briarproject.android.forum.ContactSelectorFragment;
 import org.briarproject.android.forum.CreateForumActivity;
 import org.briarproject.android.forum.ForumActivity;
-import org.briarproject.android.forum.ForumListFragment;
 import org.briarproject.android.forum.ReadForumPostActivity;
 import org.briarproject.android.forum.ShareForumActivity;
+import org.briarproject.android.forum.ShareForumMessageFragment;
 import org.briarproject.android.forum.WriteForumPostActivity;
 import org.briarproject.android.fragment.BaseFragment;
 import org.briarproject.android.identity.CreateIdentityActivity;
-import org.briarproject.android.introduction.ContactChooserFragment;
 import org.briarproject.android.introduction.IntroductionActivity;
 import org.briarproject.android.introduction.IntroductionMessageFragment;
 import org.briarproject.android.invitation.AddContactActivity;
-import org.briarproject.android.keyagreement.ChooseIdentityFragment;
 import org.briarproject.android.keyagreement.KeyAgreementActivity;
-import org.briarproject.android.keyagreement.ShowQrCodeFragment;
 import org.briarproject.android.panic.PanicPreferencesActivity;
 import org.briarproject.android.panic.PanicResponderActivity;
 
@@ -67,19 +64,22 @@ public interface ActivityComponent {
 
 	void inject(SettingsActivity activity);
 
+	/*
 	void inject(ContactListFragment fragment);
 
 	void inject(ForumListFragment fragment);
 
-	void inject(ChooseIdentityFragment fragment);
-
 	void inject(ShowQrCodeFragment fragment);
+	*/
 
 	void inject(IntroductionActivity activity);
 
+	/*
 	void inject(ContactChooserFragment fragment);
 
-	void inject(IntroductionMessageFragment fragment);
+	void inject(introductionmessagefragment fragment);
+
+	*/
 
 	@Named("ContactListFragment")
 	BaseFragment newContactListFragment();
@@ -96,6 +96,12 @@ public interface ActivityComponent {
 	@Named("ContactChooserFragment")
 	BaseFragment newContactChooserFragment();
 
+	@Named("ContactSelectorFragment")
+	ContactSelectorFragment newContactSelectorFragment();
+
+	@Named("ShareForumMessageFragment")
+	ShareForumMessageFragment newShareForumMessageFragment();
+
 	@Named("IntroductionMessageFragment")
 	IntroductionMessageFragment newIntroductionMessageFragment();
 }
diff --git a/briar-android/src/org/briarproject/android/ActivityModule.java b/briar-android/src/org/briarproject/android/ActivityModule.java
index 0b8b20298c..1ed65e9bec 100644
--- a/briar-android/src/org/briarproject/android/ActivityModule.java
+++ b/briar-android/src/org/briarproject/android/ActivityModule.java
@@ -8,17 +8,19 @@ import android.os.Bundle;
 import org.briarproject.android.contact.ContactListFragment;
 import org.briarproject.android.controller.BriarController;
 import org.briarproject.android.controller.BriarControllerImpl;
+import org.briarproject.android.controller.ConfigController;
+import org.briarproject.android.controller.ConfigControllerImpl;
 import org.briarproject.android.controller.NavDrawerController;
 import org.briarproject.android.controller.NavDrawerControllerImpl;
+import org.briarproject.android.controller.PasswordController;
 import org.briarproject.android.controller.PasswordControllerImpl;
+import org.briarproject.android.controller.SetupController;
 import org.briarproject.android.controller.SetupControllerImpl;
 import org.briarproject.android.controller.TransportStateListener;
+import org.briarproject.android.forum.ContactSelectorFragment;
 import org.briarproject.android.forum.ForumListFragment;
+import org.briarproject.android.forum.ShareForumMessageFragment;
 import org.briarproject.android.fragment.BaseFragment;
-import org.briarproject.android.controller.PasswordController;
-import org.briarproject.android.controller.SetupController;
-import org.briarproject.android.controller.ConfigController;
-import org.briarproject.android.controller.ConfigControllerImpl;
 import org.briarproject.android.introduction.ContactChooserFragment;
 import org.briarproject.android.introduction.IntroductionMessageFragment;
 import org.briarproject.android.keyagreement.ChooseIdentityFragment;
@@ -29,7 +31,7 @@ import javax.inject.Named;
 import dagger.Module;
 import dagger.Provides;
 
-import static org.briarproject.android.BriarService.*;
+import static org.briarproject.android.BriarService.BriarServiceConnection;
 
 @Module
 public class ActivityModule {
@@ -145,6 +147,22 @@ public class ActivityModule {
 		return fragment;
 	}
 
+	@Provides
+	@Named("ContactSelectorFragment")
+	ContactSelectorFragment provideContactSelectorFragment() {
+		ContactSelectorFragment fragment = new ContactSelectorFragment();
+		fragment.setArguments(new Bundle());
+		return fragment;
+	}
+
+	@Provides
+	@Named("ShareForumMessageFragment")
+	ShareForumMessageFragment provideShareForumMessageFragment() {
+		ShareForumMessageFragment fragment = new ShareForumMessageFragment();
+		fragment.setArguments(new Bundle());
+		return fragment;
+	}
+
 	@Provides
 	@Named("IntroductionMessageFragment")
 	IntroductionMessageFragment provideIntroductionMessageFragment() {
diff --git a/briar-android/src/org/briarproject/android/AndroidComponent.java b/briar-android/src/org/briarproject/android/AndroidComponent.java
index 57e584e3cc..ba2578addc 100644
--- a/briar-android/src/org/briarproject/android/AndroidComponent.java
+++ b/briar-android/src/org/briarproject/android/AndroidComponent.java
@@ -108,15 +108,9 @@ public interface AndroidComponent extends CoreEagerSingletons {
 
 	AndroidExecutor androidExecutor();
 
-	void inject(BriarService activity);
-
 	@IoExecutor
 	Executor ioExecutor();
 
-	void inject(ContactChooserFragment fragment);
-
-	void inject(IntroductionMessageFragment fragment);
-
 	void inject(DevReportActivity devReportActivity);
 
 	void inject(BriarService activity);
diff --git a/briar-android/src/org/briarproject/android/forum/ContactSelectorFragment.java b/briar-android/src/org/briarproject/android/forum/ContactSelectorFragment.java
index 73de55ec18..cd5ff9bcff 100644
--- a/briar-android/src/org/briarproject/android/forum/ContactSelectorFragment.java
+++ b/briar-android/src/org/briarproject/android/forum/ContactSelectorFragment.java
@@ -13,7 +13,6 @@ import android.view.View;
 import android.view.ViewGroup;
 
 import org.briarproject.R;
-import org.briarproject.android.AndroidComponent;
 import org.briarproject.android.contact.BaseContactListAdapter;
 import org.briarproject.android.contact.ContactListItem;
 import org.briarproject.android.fragment.BaseFragment;
@@ -63,13 +62,15 @@ public class ContactSelectorFragment extends BaseFragment implements
 	@Inject
 	protected volatile ForumSharingManager forumSharingManager;
 
-	public static ContactSelectorFragment newInstance(GroupId groupId) {
-		Bundle args = new Bundle();
-		args.putByteArray(GROUP_ID, groupId.getBytes());
+	public void initBundle(GroupId groupId) {
+		Bundle bundle = new Bundle();
+		bundle.putByteArray(GROUP_ID, groupId.getBytes());
+		setArguments(bundle);
+	}
+
+	@Inject
+	public ContactSelectorFragment() {
 
-		ContactSelectorFragment fragment = new ContactSelectorFragment();
-		fragment.setArguments(args);
-		return fragment;
 	}
 
 	@Override
@@ -83,11 +84,6 @@ public class ContactSelectorFragment extends BaseFragment implements
 		}
 	}
 
-	@Override
-	public void injectActivity(AndroidComponent component) {
-		component.inject(this);
-	}
-
 	@Override
 	public void onCreate(Bundle savedInstanceState) {
 		super.onCreate(savedInstanceState);
diff --git a/briar-android/src/org/briarproject/android/forum/ShareForumActivity.java b/briar-android/src/org/briarproject/android/forum/ShareForumActivity.java
index 75a0bc6768..81bcdf8cd7 100644
--- a/briar-android/src/org/briarproject/android/forum/ShareForumActivity.java
+++ b/briar-android/src/org/briarproject/android/forum/ShareForumActivity.java
@@ -6,7 +6,6 @@ import android.view.View;
 
 import org.briarproject.R;
 import org.briarproject.android.ActivityComponent;
-import org.briarproject.android.AndroidComponent;
 import org.briarproject.android.BriarActivity;
 import org.briarproject.android.fragment.BaseFragment;
 import org.briarproject.api.contact.ContactId;
@@ -34,7 +33,8 @@ public class ShareForumActivity extends BriarActivity implements
 
 		if (savedInstanceState == null) {
 			ContactSelectorFragment contactSelectorFragment =
-					ContactSelectorFragment.newInstance(groupId);
+					activityComponent.newContactSelectorFragment();
+			contactSelectorFragment.initBundle(groupId);
 			getSupportFragmentManager().beginTransaction()
 					.add(R.id.shareForumContainer, contactSelectorFragment)
 					.commit();
@@ -42,7 +42,7 @@ public class ShareForumActivity extends BriarActivity implements
 	}
 
 	@Override
-	public void injectActivity(AndroidComponent component) {
+	public void injectActivity(ActivityComponent component) {
 		component.inject(this);
 	}
 
@@ -50,7 +50,8 @@ public class ShareForumActivity extends BriarActivity implements
 			Collection<ContactId> contacts) {
 
 		ShareForumMessageFragment messageFragment =
-				ShareForumMessageFragment.newInstance(groupId, contacts);
+				activityComponent.newShareForumMessageFragment();
+		messageFragment.initBundle(groupId, contacts);
 
 		getSupportFragmentManager().beginTransaction()
 				.setCustomAnimations(android.R.anim.fade_in,
diff --git a/briar-android/src/org/briarproject/android/forum/ShareForumMessageFragment.java b/briar-android/src/org/briarproject/android/forum/ShareForumMessageFragment.java
index 7ed79d67cd..ab2586666e 100644
--- a/briar-android/src/org/briarproject/android/forum/ShareForumMessageFragment.java
+++ b/briar-android/src/org/briarproject/android/forum/ShareForumMessageFragment.java
@@ -13,7 +13,6 @@ import android.widget.TextView;
 import android.widget.Toast;
 
 import org.briarproject.R;
-import org.briarproject.android.AndroidComponent;
 import org.briarproject.android.fragment.BaseFragment;
 import org.briarproject.api.contact.ContactId;
 import org.briarproject.api.db.DbException;
@@ -45,17 +44,16 @@ public class ShareForumMessageFragment extends BaseFragment {
 	private volatile GroupId groupId;
 	private volatile Collection<ContactId> contacts;
 
-	public static ShareForumMessageFragment newInstance(GroupId groupId,
-			Collection<ContactId> contacts) {
-
-		ShareForumMessageFragment f = new ShareForumMessageFragment();
+	public void initBundle(GroupId groupId, Collection<ContactId> contacts) {
+		Bundle bundle = new Bundle();
+		bundle.putByteArray(GROUP_ID, groupId.getBytes());
+		bundle.putIntegerArrayList(CONTACTS, getContactsFromIds(contacts));
+		setArguments(bundle);
+	}
 
-		Bundle args = new Bundle();
-		args.putByteArray(GROUP_ID, groupId.getBytes());
-		args.putIntegerArrayList(CONTACTS, getContactsFromIds(contacts));
-		f.setArguments(args);
+	@Inject
+	public ShareForumMessageFragment() {
 
-		return f;
 	}
 
 	@Override
@@ -69,11 +67,6 @@ public class ShareForumMessageFragment extends BaseFragment {
 		}
 	}
 
-	@Override
-	public void injectActivity(AndroidComponent component) {
-		component.inject(this);
-	}
-
 	@Override
 	public View onCreateView(LayoutInflater inflater, ViewGroup container,
 			Bundle savedInstanceState) {
-- 
GitLab