From e757b83a96b659b332891a94c6d1e6b04bc1596b Mon Sep 17 00:00:00 2001 From: Henrik Date: Wed, 20 Dec 2017 14:28:21 +0100 Subject: [PATCH 01/22] Replaced Guice with Dagger 2 --- app/build.gradle | 16 +- .../tests/gist/GistFilesViewActivityTest.java | 11 +- .../android/ApplicationComponent.java | 31 ++++ .../pockethub/android/ApplicationModule.java | 18 ++ .../github/pockethub/android/PocketHub.java | 20 ++- .../pockethub/android/PocketHubModule.java | 25 ++- .../pockethub/android/ServicesModule.java | 44 ----- .../accounts/AuthenticatedUserLoader.java | 15 +- .../android/accounts/LoginActivity.java | 4 +- .../core/commit/RefreshCommitTask.java | 16 +- .../android/core/gist/RefreshGistTask.java | 19 ++- .../android/core/issue/RefreshIssueTask.java | 23 +-- .../android/core/user/UserComparator.java | 2 +- .../android/dagger/ActivityBuilder.java | 114 +++++++++++++ .../android/dagger/ActivityScope.java | 11 ++ .../CommitCompareViewFragmentProvider.java | 13 ++ .../dagger/CommitViewFragmentProvider.java | 13 ++ .../dagger/CreateCommentFragmentProvider.java | 17 ++ .../android/dagger/DialogFragmentBuilder.java | 26 +++ .../dagger/FiltersViewFragmentProvider.java | 13 ++ .../dagger/GistFilesViewFragmentProvider.java | 13 ++ .../dagger/GistsPagerFragmentProvider.java | 21 +++ .../dagger/GistsViewFragmentProvider.java | 13 ++ .../dagger/HomePagerFragmentProvider.java | 33 ++++ .../dagger/IssueBrowseFragmentProvider.java | 13 ++ .../IssueDashboardPagerFragmentProvider.java | 13 ++ .../dagger/IssueSearchFragmentProvider.java | 13 ++ .../dagger/IssuesViewFragmentProvider.java | 13 ++ .../android/dagger/MainFragmentProvider.java | 30 ++++ .../dagger/NotificationFragmentProvider.java | 14 ++ ...epositoryContributorsFragmentProvider.java | 13 ++ .../RepositoryViewFragmentProvider.java | 29 ++++ .../SearchActivityFragmentProvider.java | 18 ++ .../dagger/UserViewFragmentProvider.java | 26 +++ .../persistence/AccountDataManager.java | 20 ++- .../android/persistence/CacheHelper.java | 2 +- .../android/persistence/DatabaseCache.java | 9 +- .../persistence/OrganizationRepositories.java | 31 +--- .../android/persistence/Organizations.java | 2 +- .../pockethub/android/sync/SyncAdapter.java | 25 +-- .../android/sync/SyncAdapterService.java | 12 +- .../pockethub/android/sync/SyncCampaign.java | 32 ++-- .../pockethub/android/ui/BaseActivity.java | 7 +- .../pockethub/android/ui/DialogFragment.java | 4 +- .../android/ui/DialogFragmentHelper.java | 6 +- .../pockethub/android/ui/MainActivity.java | 17 +- .../pockethub/android/ui/NewsFragment.java | 4 +- ...AccountAuthenticatorAppCompatActivity.java | 10 +- .../BaseFragment.java} | 15 +- .../ui/comment/CreateCommentActivity.java | 3 +- .../ui/comment/RenderedCommentFragment.java | 4 +- .../ui/commit/CommitCompareListFragment.java | 4 +- .../ui/commit/CommitCompareViewActivity.java | 4 +- .../ui/commit/CommitDiffListFragment.java | 14 +- .../ui/commit/CommitFileViewActivity.java | 6 +- .../android/ui/commit/CommitListFragment.java | 4 +- .../android/ui/commit/CommitViewActivity.java | 4 +- .../android/ui/gist/GistFileFragment.java | 4 +- .../ui/gist/GistFilesViewActivity.java | 12 +- .../android/ui/gist/GistFragment.java | 14 +- .../android/ui/gist/GistsFragment.java | 2 +- .../android/ui/gist/GistsPagerFragment.java | 4 +- .../android/ui/gist/GistsViewActivity.java | 6 +- .../android/ui/gist/MyGistsFragment.java | 6 +- .../ui/issue/AssigneeDialogFragment.java | 4 +- .../ui/issue/DashboardIssueFragment.java | 6 +- .../android/ui/issue/EditAssigneeTask.java | 16 +- .../android/ui/issue/EditIssueActivity.java | 4 +- .../ui/issue/EditIssuesFilterActivity.java | 4 +- .../android/ui/issue/EditLabelsTask.java | 24 +-- .../android/ui/issue/EditMilestoneTask.java | 20 +-- .../android/ui/issue/EditStateTask.java | 13 +- .../android/ui/issue/FilterListFragment.java | 6 +- .../android/ui/issue/FiltersViewActivity.java | 4 +- .../android/ui/issue/IssueBrowseActivity.java | 4 +- .../android/ui/issue/IssueFragment.java | 46 ++++-- .../android/ui/issue/IssueSearchActivity.java | 8 +- .../android/ui/issue/IssuesFragment.java | 8 +- .../android/ui/issue/IssuesViewActivity.java | 6 +- .../ui/issue/SearchIssueListFragment.java | 4 +- .../ui/ref/BranchFileViewActivity.java | 6 +- .../android/ui/repo/OrganizationLoader.java | 4 +- .../repo/RepositoryContributorsActivity.java | 4 +- .../repo/RepositoryContributorsFragment.java | 2 +- .../ui/repo/RepositoryListFragment.java | 6 +- .../ui/repo/RepositoryViewActivity.java | 4 +- ...AccountAuthenticatorAppCompatActivity.java | 140 ---------------- .../roboactivities/RoboAppCompatActivity.java | 155 ------------------ .../ui/search/SearchUserListFragment.java | 4 +- .../android/ui/user/MembersFragment.java | 4 +- .../android/ui/user/PagedUserFragment.java | 2 +- .../android/ui/user/UserViewActivity.java | 4 +- .../pockethub/android/util/AvatarLoader.java | 64 ++++---- .../android/util/HttpImageGetter.java | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 95 files changed, 889 insertions(+), 693 deletions(-) create mode 100644 app/src/main/java/com/github/pockethub/android/ApplicationComponent.java create mode 100644 app/src/main/java/com/github/pockethub/android/ApplicationModule.java delete mode 100644 app/src/main/java/com/github/pockethub/android/ServicesModule.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/ActivityBuilder.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/ActivityScope.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/CommitCompareViewFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/CommitViewFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/CreateCommentFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/DialogFragmentBuilder.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/FiltersViewFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/GistFilesViewFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/GistsPagerFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/GistsViewFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/HomePagerFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/IssueBrowseFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/IssueDashboardPagerFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/IssueSearchFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/IssuesViewFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/MainFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/NotificationFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/RepositoryContributorsFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/RepositoryViewFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/SearchActivityFragmentProvider.java create mode 100644 app/src/main/java/com/github/pockethub/android/dagger/UserViewFragmentProvider.java rename app/src/main/java/com/github/pockethub/android/ui/{roboactivities => base}/AccountAuthenticatorAppCompatActivity.java (94%) rename app/src/main/java/com/github/pockethub/android/ui/{roboactivities/RoboSupportFragment.java => base/BaseFragment.java} (86%) delete mode 100644 app/src/main/java/com/github/pockethub/android/ui/roboactivities/RoboAccountAuthenticatorAppCompatActivity.java delete mode 100644 app/src/main/java/com/github/pockethub/android/ui/roboactivities/RoboAppCompatActivity.java diff --git a/app/build.gradle b/app/build.gradle index fbfb6e759..029e641c2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -122,13 +122,19 @@ dependencies { compile 'com.trello.rxlifecycle2:rxlifecycle:2.0.1' compile 'com.trello.rxlifecycle2:rxlifecycle-android:2.0.1' compile 'com.bugsnag:bugsnag-android:3.2.7' - compile 'org.roboguice:roboguice:2.0' + + compile 'com.google.dagger:dagger:2.13' + annotationProcessor 'com.google.dagger:dagger-compiler:2.13' + + compile 'com.google.dagger:dagger-android:2.13' + compile 'com.google.dagger:dagger-android-support:2.13' + annotationProcessor 'com.google.dagger:dagger-android-processor:2.13' + + provided 'com.episode6.hackit.auto.factory:auto-factory-annotations:1.0-beta5' + annotationProcessor 'com.google.auto.factory:auto-factory:1.0-beta5' compile 'com.github.meisolsson:githubsdk:0.4.5' - compile ('com.google.inject.extensions:guice-assistedinject:3.0'){ - exclude group: 'com.google.inject' - } compile 'com.afollestad.material-dialogs:core:0.9.4.4' //Self compiled .aar version of wishlist @@ -137,7 +143,7 @@ dependencies { //Libs for testing testCompile 'junit:junit:4.12' testCompile "org.mockito:mockito-core:1.9.5" - testCompile('org.robolectric:robolectric:3.3.2') { + testCompile('org.robolectric:robolectric:3.1.4') { exclude group: 'commons-logging', module: 'commons-logging' exclude group: 'org.apache.httpcomponents', module: 'httpclient' } diff --git a/app/src/androidTest/java/com/github/pockethub/android/tests/gist/GistFilesViewActivityTest.java b/app/src/androidTest/java/com/github/pockethub/android/tests/gist/GistFilesViewActivityTest.java index 40c1b0bb2..ca822249f 100644 --- a/app/src/androidTest/java/com/github/pockethub/android/tests/gist/GistFilesViewActivityTest.java +++ b/app/src/androidTest/java/com/github/pockethub/android/tests/gist/GistFilesViewActivityTest.java @@ -24,12 +24,10 @@ import com.github.pockethub.android.ui.gist.GistFilesViewActivity; import com.meisolsson.githubsdk.model.Gist; import com.meisolsson.githubsdk.model.GistFile; -import com.google.inject.Inject; +import javax.inject.Inject; import java.util.Map; -import roboguice.RoboGuice; - /** * Tests of {@link GistFilesViewActivity} */ @@ -37,7 +35,7 @@ public class GistFilesViewActivityTest extends ActivityTest { @Inject - private GistStore store; + protected GistStore store; private Gist gist; @@ -52,8 +50,9 @@ public GistFilesViewActivityTest() { protected void setUp() throws Exception { super.setUp(); - RoboGuice.injectMembers(getInstrumentation().getTargetContext() - .getApplicationContext(), this); + // TODO: Fix this test + // RoboGuice.injectMembers(getInstrumentation().getTargetContext() + // .getApplicationContext(), this); Map files = new ArrayMap<>(); diff --git a/app/src/main/java/com/github/pockethub/android/ApplicationComponent.java b/app/src/main/java/com/github/pockethub/android/ApplicationComponent.java new file mode 100644 index 000000000..910f2a3ba --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/ApplicationComponent.java @@ -0,0 +1,31 @@ +package com.github.pockethub.android; + +import android.app.Application; + +import com.github.pockethub.android.dagger.ActivityBuilder; +import com.github.pockethub.android.dagger.DialogFragmentBuilder; + +import javax.inject.Singleton; + +import dagger.BindsInstance; +import dagger.Component; +import dagger.android.AndroidInjector; +import dagger.android.support.AndroidSupportInjectionModule; + +@Singleton +@Component(modules = { + AndroidSupportInjectionModule.class, + ApplicationModule.class, + PocketHubModule.class, + ActivityBuilder.class, + DialogFragmentBuilder.class +}) +interface ApplicationComponent extends AndroidInjector { + + @Component.Builder + abstract class Builder extends AndroidInjector.Builder { + + @BindsInstance + abstract Builder application(Application application); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/github/pockethub/android/ApplicationModule.java b/app/src/main/java/com/github/pockethub/android/ApplicationModule.java new file mode 100644 index 000000000..678e25dfb --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/ApplicationModule.java @@ -0,0 +1,18 @@ +package com.github.pockethub.android; + +import android.app.Application; +import android.content.Context; + +import javax.inject.Singleton; + +import dagger.Binds; +import dagger.BindsInstance; +import dagger.Module; + +@Module +abstract class ApplicationModule { + + @Binds + @Singleton + abstract Context provideApplicationContext(Application application); +} diff --git a/app/src/main/java/com/github/pockethub/android/PocketHub.java b/app/src/main/java/com/github/pockethub/android/PocketHub.java index 70911643c..e9a208faf 100644 --- a/app/src/main/java/com/github/pockethub/android/PocketHub.java +++ b/app/src/main/java/com/github/pockethub/android/PocketHub.java @@ -16,13 +16,17 @@ package com.github.pockethub.android; -import android.app.Application; +import android.util.Log; import com.bugsnag.android.Bugsnag; import net.danlew.android.joda.JodaTimeAndroid; -public class PocketHub extends Application { +import javax.inject.Inject; +import dagger.android.AndroidInjector; +import dagger.android.DaggerApplication; + +public class PocketHub extends DaggerApplication { @Override public void onCreate() { @@ -31,4 +35,16 @@ public void onCreate() { Bugsnag.init(this); Bugsnag.setNotifyReleaseStages("production"); } + + @Inject + void logInjection() { + Log.i("Test", "Injecting " + PocketHub.class.getSimpleName()); + } + + @Override + protected AndroidInjector applicationInjector() { + return DaggerApplicationComponent.builder() + .application(this) + .create(this); + } } diff --git a/app/src/main/java/com/github/pockethub/android/PocketHubModule.java b/app/src/main/java/com/github/pockethub/android/PocketHubModule.java index 2388e0597..d2bc02261 100644 --- a/app/src/main/java/com/github/pockethub/android/PocketHubModule.java +++ b/app/src/main/java/com/github/pockethub/android/PocketHubModule.java @@ -22,21 +22,24 @@ import com.github.pockethub.android.core.commit.CommitStore; import com.github.pockethub.android.core.gist.GistStore; import com.github.pockethub.android.core.issue.IssueStore; -import com.github.pockethub.android.persistence.OrganizationRepositories; -import com.github.pockethub.android.sync.SyncCampaign; -import com.google.inject.AbstractModule; -import com.google.inject.Provides; -import com.google.inject.assistedinject.FactoryModuleBuilder; -import com.google.inject.name.Named; +import com.github.pockethub.android.persistence.AccountDataManager; +import com.github.pockethub.android.persistence.CacheHelper; +import com.github.pockethub.android.persistence.DatabaseCache; import java.io.File; import java.lang.ref.WeakReference; +import javax.inject.Named; + +import dagger.Module; +import dagger.Provides; + /** * Main module provide services and clients */ -public class PocketHubModule extends AbstractModule { +@Module +public class PocketHubModule { private WeakReference issues; @@ -44,14 +47,6 @@ public class PocketHubModule extends AbstractModule { private WeakReference commits; - @Override - protected void configure() { - install(new ServicesModule()); - install(new FactoryModuleBuilder().build(SyncCampaign.Factory.class)); - install(new FactoryModuleBuilder() - .build(OrganizationRepositories.Factory.class)); - } - @Provides Account account(Context context){ AccountManager accountManager = (AccountManager) context.getSystemService(Context.ACCOUNT_SERVICE); diff --git a/app/src/main/java/com/github/pockethub/android/ServicesModule.java b/app/src/main/java/com/github/pockethub/android/ServicesModule.java deleted file mode 100644 index ec99069f9..000000000 --- a/app/src/main/java/com/github/pockethub/android/ServicesModule.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2015 PocketHub - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.github.pockethub.android; - -import android.content.Context; - -import com.meisolsson.githubsdk.core.ServiceGenerator; -import com.meisolsson.githubsdk.model.User; -import com.meisolsson.githubsdk.service.users.UserService; -import com.google.inject.AbstractModule; -import com.google.inject.Provides; - -import java.io.IOException; - -/** - * Provide GitHub-API related services - */ -public class ServicesModule extends AbstractModule { - - @Override - protected void configure() { - } - - @Provides - User currentUser(Context context) throws IOException { - return ServiceGenerator.createService(context, UserService.class) - .getUser() - .blockingGet() - .body(); - } -} diff --git a/app/src/main/java/com/github/pockethub/android/accounts/AuthenticatedUserLoader.java b/app/src/main/java/com/github/pockethub/android/accounts/AuthenticatedUserLoader.java index 2ea85565d..cac21bff6 100644 --- a/app/src/main/java/com/github/pockethub/android/accounts/AuthenticatedUserLoader.java +++ b/app/src/main/java/com/github/pockethub/android/accounts/AuthenticatedUserLoader.java @@ -21,13 +21,9 @@ import android.app.Activity; import com.github.kevinsawicki.wishlist.AsyncLoader; -import com.google.inject.Inject; import java.io.IOException; -import roboguice.RoboGuice; -import roboguice.inject.ContextScope; - /** * Base loader class that ensures an authenticated account exists before * {@link #load(Account)} is called @@ -41,9 +37,6 @@ public abstract class AuthenticatedUserLoader extends AsyncLoader { */ protected Activity activity; - @Inject - private ContextScope contextScope; - /** * Create loader for context * @@ -52,7 +45,6 @@ public abstract class AuthenticatedUserLoader extends AsyncLoader { public AuthenticatedUserLoader(final Activity activity) { super(activity); this.activity = activity; - RoboGuice.injectMembers(activity, this); } /** @@ -74,12 +66,7 @@ public final D loadInBackground() { return getAccountFailureData(); } - contextScope.enter(getContext()); - try { - return load(account); - } finally { - contextScope.exit(getContext()); - } + return load(account); } /** diff --git a/app/src/main/java/com/github/pockethub/android/accounts/LoginActivity.java b/app/src/main/java/com/github/pockethub/android/accounts/LoginActivity.java index ceb6305d5..cc89b21a5 100644 --- a/app/src/main/java/com/github/pockethub/android/accounts/LoginActivity.java +++ b/app/src/main/java/com/github/pockethub/android/accounts/LoginActivity.java @@ -30,7 +30,7 @@ import com.afollestad.materialdialogs.MaterialDialog; import com.github.pockethub.android.R; import com.github.pockethub.android.ui.MainActivity; -import com.github.pockethub.android.ui.roboactivities.RoboAccountAuthenticatorAppCompatActivity; +import com.github.pockethub.android.ui.base.AccountAuthenticatorAppCompatActivity; import com.meisolsson.githubsdk.core.ServiceGenerator; import com.meisolsson.githubsdk.core.TokenStore; import com.meisolsson.githubsdk.model.GitHubToken; @@ -49,7 +49,7 @@ /** * Activity to login */ -public class LoginActivity extends RoboAccountAuthenticatorAppCompatActivity { +public class LoginActivity extends AccountAuthenticatorAppCompatActivity { /** * Auth token type parameter diff --git a/app/src/main/java/com/github/pockethub/android/core/commit/RefreshCommitTask.java b/app/src/main/java/com/github/pockethub/android/core/commit/RefreshCommitTask.java index c3198a961..c58fcd25e 100644 --- a/app/src/main/java/com/github/pockethub/android/core/commit/RefreshCommitTask.java +++ b/app/src/main/java/com/github/pockethub/android/core/commit/RefreshCommitTask.java @@ -20,24 +20,25 @@ import com.github.pockethub.android.util.HttpImageGetter; import com.github.pockethub.android.util.RxPageUtil; +import com.google.auto.factory.AutoFactory; +import com.google.auto.factory.Provided; import com.meisolsson.githubsdk.core.ServiceGenerator; import com.meisolsson.githubsdk.model.Repository; import com.meisolsson.githubsdk.service.repositories.RepositoryCommentService; -import com.google.inject.Inject; +import javax.inject.Inject; import io.reactivex.Observable; import io.reactivex.Single; -import roboguice.RoboGuice; /** * Task to load a commit by SHA-1 id */ +@AutoFactory public class RefreshCommitTask { private final Context context; - @Inject - private CommitStore store; + private final CommitStore store; private final Repository repository; @@ -50,14 +51,13 @@ public class RefreshCommitTask { * @param id * @param imageGetter */ - public RefreshCommitTask(Activity activity, Repository repository, - String id, HttpImageGetter imageGetter) { - + public RefreshCommitTask(@Provided CommitStore store, @Provided HttpImageGetter imageGetter, + Activity activity, Repository repository, String id) { + this.store = store; this.repository = repository; this.id = id; this.imageGetter = imageGetter; this.context = activity; - RoboGuice.injectMembers(activity, this); } /** diff --git a/app/src/main/java/com/github/pockethub/android/core/gist/RefreshGistTask.java b/app/src/main/java/com/github/pockethub/android/core/gist/RefreshGistTask.java index 7755c4dbb..4caca1090 100644 --- a/app/src/main/java/com/github/pockethub/android/core/gist/RefreshGistTask.java +++ b/app/src/main/java/com/github/pockethub/android/core/gist/RefreshGistTask.java @@ -19,12 +19,14 @@ import android.content.Context; import com.github.pockethub.android.util.HttpImageGetter; +import com.google.auto.factory.AutoFactory; +import com.google.auto.factory.Provided; import com.meisolsson.githubsdk.core.ServiceGenerator; import com.meisolsson.githubsdk.model.Gist; import com.meisolsson.githubsdk.model.GitHubComment; import com.meisolsson.githubsdk.service.gists.GistCommentService; import com.meisolsson.githubsdk.service.gists.GistService; -import com.google.inject.Inject; +import javax.inject.Inject; import java.io.IOException; import java.util.Collections; @@ -35,19 +37,18 @@ import io.reactivex.SingleEmitter; import io.reactivex.SingleOnSubscribe; import retrofit2.Response; -import retrofit2.http.Body; -import roboguice.RoboGuice; /** * Task to load and store a {@link Gist}. */ +@AutoFactory public class RefreshGistTask { private final Context context; + private final GistService service; - @Inject - private GistStore store; + private final GistStore store; private final String id; @@ -59,13 +60,13 @@ public class RefreshGistTask { * @param gistId * @param imageGetter */ - public RefreshGistTask(Activity activity, String gistId, - HttpImageGetter imageGetter) { - id = gistId; + public RefreshGistTask(@Provided GistStore store, @Provided HttpImageGetter imageGetter, + Activity activity, String gistId) { + this.store = store; + this.id = gistId; this.imageGetter = imageGetter; this.context = activity; this.service = ServiceGenerator.createService(context, GistService.class); - RoboGuice.injectMembers(activity, this); } public Single refresh() { diff --git a/app/src/main/java/com/github/pockethub/android/core/issue/RefreshIssueTask.java b/app/src/main/java/com/github/pockethub/android/core/issue/RefreshIssueTask.java index afa6410e1..1001adf68 100644 --- a/app/src/main/java/com/github/pockethub/android/core/issue/RefreshIssueTask.java +++ b/app/src/main/java/com/github/pockethub/android/core/issue/RefreshIssueTask.java @@ -17,9 +17,12 @@ import android.content.Context; -import com.github.pockethub.android.core.PageIterator; +import com.github.pockethub.android.DaggerApplicationComponent; +import com.github.pockethub.android.PocketHub; import com.github.pockethub.android.util.HttpImageGetter; import com.github.pockethub.android.util.RxPageUtil; +import com.google.auto.factory.AutoFactory; +import com.google.auto.factory.Provided; import com.meisolsson.githubsdk.core.ServiceGenerator; import com.meisolsson.githubsdk.model.GitHubComment; import com.meisolsson.githubsdk.model.Issue; @@ -29,7 +32,7 @@ import com.meisolsson.githubsdk.model.Repository; import com.meisolsson.githubsdk.service.issues.IssueCommentService; import com.meisolsson.githubsdk.service.issues.IssueEventService; -import com.google.inject.Inject; +import javax.inject.Inject; import com.meisolsson.githubsdk.service.pull_request.PullRequestService; import java.util.Collections; @@ -37,22 +40,19 @@ import io.reactivex.Observable; import io.reactivex.Single; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.schedulers.Schedulers; import retrofit2.Response; -import roboguice.RoboGuice; /** * Task to load and store an {@link Issue} */ +@AutoFactory public class RefreshIssueTask { private static final String TAG = "RefreshIssueTask"; private final Context context; - @Inject - private IssueStore store; + private final IssueStore store; private final Repository repo; @@ -70,14 +70,17 @@ public class RefreshIssueTask { * @param issueNumber The issue's number * @param bodyImageGetter {@link HttpImageGetter} to fetch images for the bodies */ - public RefreshIssueTask(Context context, Repository repo, int issueNumber, - HttpImageGetter bodyImageGetter, HttpImageGetter commentImageGetter) { + public RefreshIssueTask(@Provided Context context, + Repository repo, int issueNumber, + @Provided HttpImageGetter bodyImageGetter, + @Provided HttpImageGetter commentImageGetter, + @Provided IssueStore store) { this.repo = repo; this.issueNumber = issueNumber; this.bodyImageGetter = bodyImageGetter; this.context = context; this.commentImageGetter = commentImageGetter; - RoboGuice.getInjector(context).injectMembers(this); + this.store = store; } /** diff --git a/app/src/main/java/com/github/pockethub/android/core/user/UserComparator.java b/app/src/main/java/com/github/pockethub/android/core/user/UserComparator.java index a8db2dbf8..66afe44e1 100644 --- a/app/src/main/java/com/github/pockethub/android/core/user/UserComparator.java +++ b/app/src/main/java/com/github/pockethub/android/core/user/UserComparator.java @@ -18,7 +18,7 @@ import android.accounts.Account; import com.meisolsson.githubsdk.model.User; -import com.google.inject.Inject; +import javax.inject.Inject; import java.util.Comparator; diff --git a/app/src/main/java/com/github/pockethub/android/dagger/ActivityBuilder.java b/app/src/main/java/com/github/pockethub/android/dagger/ActivityBuilder.java new file mode 100644 index 000000000..780941a08 --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/ActivityBuilder.java @@ -0,0 +1,114 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.accounts.LoginActivity; +import com.github.pockethub.android.accounts.LoginWebViewActivity; +import com.github.pockethub.android.dagger.MainFragmentProvider; +import com.github.pockethub.android.ui.MainActivity; +import com.github.pockethub.android.ui.commit.CommitCompareViewActivity; +import com.github.pockethub.android.ui.commit.CommitFileViewActivity; +import com.github.pockethub.android.ui.commit.CommitViewActivity; +import com.github.pockethub.android.ui.gist.CreateGistActivity; +import com.github.pockethub.android.ui.gist.GistFilesViewActivity; +import com.github.pockethub.android.ui.gist.GistsPagerFragment; +import com.github.pockethub.android.ui.gist.GistsViewActivity; +import com.github.pockethub.android.ui.issue.EditIssueActivity; +import com.github.pockethub.android.ui.issue.EditIssuesFilterActivity; +import com.github.pockethub.android.ui.issue.FiltersViewActivity; +import com.github.pockethub.android.ui.issue.IssueBrowseActivity; +import com.github.pockethub.android.ui.issue.IssueSearchActivity; +import com.github.pockethub.android.ui.issue.IssuesViewActivity; +import com.github.pockethub.android.ui.notification.NotificationActivity; +import com.github.pockethub.android.ui.ref.BranchFileViewActivity; +import com.github.pockethub.android.ui.repo.RepositoryContributorsActivity; +import com.github.pockethub.android.ui.repo.RepositoryViewActivity; +import com.github.pockethub.android.ui.search.SearchActivity; +import com.github.pockethub.android.ui.user.UriLauncherActivity; +import com.github.pockethub.android.ui.user.UserViewActivity; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +public interface ActivityBuilder { + + @ContributesAndroidInjector(modules = MainFragmentProvider.class) + MainActivity mainActivity(); + + @ContributesAndroidInjector(modules = RepositoryViewFragmentProvider.class) + RepositoryViewActivity repositoryViewActivity(); + + @ContributesAndroidInjector(modules = IssuesViewFragmentProvider.class) + IssuesViewActivity issuesViewActivity(); + + @ContributesAndroidInjector(modules = NotificationFragmentProvider.class) + NotificationActivity notificationActivity(); + + @ContributesAndroidInjector + CreateGistActivity createGistActivity(); + + @ContributesAndroidInjector(modules = IssueBrowseFragmentProvider.class) + IssueBrowseActivity issueBrowseActivity(); + + @ContributesAndroidInjector + EditIssuesFilterActivity editIssuesFilterActivity(); + + @ContributesAndroidInjector + EditIssueActivity editIssueActivity(); + + @ContributesAndroidInjector(modules = SearchActivityFragmentProvider.class) + SearchActivity searchActivity(); + + @ContributesAndroidInjector(modules = FiltersViewFragmentProvider.class) + FiltersViewActivity filtersViewActivity(); + + @ContributesAndroidInjector(modules = GistsViewFragmentProvider.class) + GistsViewActivity gistsViewActivity(); + + @ContributesAndroidInjector(modules = GistFilesViewFragmentProvider.class) + GistFilesViewActivity gistFilesViewActivity(); + + @ContributesAndroidInjector(modules = CreateCommentFragmentProvider.class) + com.github.pockethub.android.ui.gist.CreateCommentActivity createGistCommentActivity(); + + @ContributesAndroidInjector(modules = CreateCommentFragmentProvider.class) + com.github.pockethub.android.ui.issue.CreateCommentActivity createIssueCommentActivity(); + + @ContributesAndroidInjector(modules = CreateCommentFragmentProvider.class) + com.github.pockethub.android.ui.commit.CreateCommentActivity createCommitCommentActivity(); + + @ContributesAndroidInjector(modules = CreateCommentFragmentProvider.class) + com.github.pockethub.android.ui.gist.EditCommentActivity editGistCommentActivity(); + + @ContributesAndroidInjector(modules = CreateCommentFragmentProvider.class) + com.github.pockethub.android.ui.issue.EditCommentActivity editIssueCommentActivity(); + + @ContributesAndroidInjector(modules = RepositoryContributorsFragmentProvider.class) + RepositoryContributorsActivity repositoryContributorsActivity(); + + @ContributesAndroidInjector(modules = UserViewFragmentProvider.class) + UserViewActivity userViewActivity(); + + @ContributesAndroidInjector + LoginActivity loginActivity(); + + @ContributesAndroidInjector + UriLauncherActivity uriLauncherActivity(); + + @ContributesAndroidInjector(modules = IssueSearchFragmentProvider.class) + IssueSearchActivity issueSearchActivity(); + + @ContributesAndroidInjector(modules = CommitCompareViewFragmentProvider.class) + CommitCompareViewActivity commitCompareViewActivity(); + + @ContributesAndroidInjector(modules = CommitViewFragmentProvider.class) + CommitViewActivity commitViewActivity(); + + @ContributesAndroidInjector + CommitFileViewActivity commitFileViewActivity(); + + @ContributesAndroidInjector + BranchFileViewActivity branchFileViewActivity(); + + @ContributesAndroidInjector + LoginWebViewActivity loginWebViewActivity(); +} \ No newline at end of file diff --git a/app/src/main/java/com/github/pockethub/android/dagger/ActivityScope.java b/app/src/main/java/com/github/pockethub/android/dagger/ActivityScope.java new file mode 100644 index 000000000..e1e8f3f9f --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/ActivityScope.java @@ -0,0 +1,11 @@ +package com.github.pockethub.android.dagger; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +import javax.inject.Scope; + +@Scope +@Retention(RetentionPolicy.RUNTIME) +public @interface ActivityScope { +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/CommitCompareViewFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/CommitCompareViewFragmentProvider.java new file mode 100644 index 000000000..e2de68d4a --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/CommitCompareViewFragmentProvider.java @@ -0,0 +1,13 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.commit.CommitCompareListFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface CommitCompareViewFragmentProvider { + + @ContributesAndroidInjector + CommitCompareListFragment commitCompareListFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/CommitViewFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/CommitViewFragmentProvider.java new file mode 100644 index 000000000..d43ffbd48 --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/CommitViewFragmentProvider.java @@ -0,0 +1,13 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.commit.CommitDiffListFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface CommitViewFragmentProvider { + + @ContributesAndroidInjector + CommitDiffListFragment commitDiffListFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/CreateCommentFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/CreateCommentFragmentProvider.java new file mode 100644 index 000000000..7a2f169a8 --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/CreateCommentFragmentProvider.java @@ -0,0 +1,17 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.comment.RawCommentFragment; +import com.github.pockethub.android.ui.comment.RenderedCommentFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface CreateCommentFragmentProvider { + + @ContributesAndroidInjector + RawCommentFragment rawCommentFragment(); + + @ContributesAndroidInjector + RenderedCommentFragment renderedCommentFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/DialogFragmentBuilder.java b/app/src/main/java/com/github/pockethub/android/dagger/DialogFragmentBuilder.java new file mode 100644 index 000000000..aebefb24f --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/DialogFragmentBuilder.java @@ -0,0 +1,26 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.ConfirmDialogFragment; +import com.github.pockethub.android.ui.issue.AssigneeDialogFragment; +import com.github.pockethub.android.ui.issue.LabelsDialogFragment; +import com.github.pockethub.android.ui.issue.MilestoneDialogFragment; +import com.github.pockethub.android.ui.ref.RefDialogFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +public interface DialogFragmentBuilder { + + @ContributesAndroidInjector + LabelsDialogFragment labelsDialogFragment(); + + @ContributesAndroidInjector + AssigneeDialogFragment assigneeDialogFragment(); + + @ContributesAndroidInjector + MilestoneDialogFragment milestoneDialogFragment(); + + @ContributesAndroidInjector + RefDialogFragment refDialogFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/FiltersViewFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/FiltersViewFragmentProvider.java new file mode 100644 index 000000000..583dcc8c4 --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/FiltersViewFragmentProvider.java @@ -0,0 +1,13 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.issue.FilterListFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface FiltersViewFragmentProvider { + + @ContributesAndroidInjector + FilterListFragment filterListFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/GistFilesViewFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/GistFilesViewFragmentProvider.java new file mode 100644 index 000000000..5f0055387 --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/GistFilesViewFragmentProvider.java @@ -0,0 +1,13 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.gist.GistFileFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface GistFilesViewFragmentProvider { + + @ContributesAndroidInjector + GistFileFragment gistFileFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/GistsPagerFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/GistsPagerFragmentProvider.java new file mode 100644 index 000000000..9e2b50abf --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/GistsPagerFragmentProvider.java @@ -0,0 +1,21 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.gist.MyGistsFragment; +import com.github.pockethub.android.ui.gist.PublicGistsFragment; +import com.github.pockethub.android.ui.gist.StarredGistsFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface GistsPagerFragmentProvider { + + @ContributesAndroidInjector + MyGistsFragment myGistsFragment(); + + @ContributesAndroidInjector + PublicGistsFragment publicGistsFragment(); + + @ContributesAndroidInjector + StarredGistsFragment starredGistsFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/GistsViewFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/GistsViewFragmentProvider.java new file mode 100644 index 000000000..9111a5c57 --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/GistsViewFragmentProvider.java @@ -0,0 +1,13 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.gist.GistFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface GistsViewFragmentProvider { + + @ContributesAndroidInjector + GistFragment gistFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/HomePagerFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/HomePagerFragmentProvider.java new file mode 100644 index 000000000..5d4717d79 --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/HomePagerFragmentProvider.java @@ -0,0 +1,33 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.repo.RepositoryListFragment; +import com.github.pockethub.android.ui.user.MembersFragment; +import com.github.pockethub.android.ui.user.MyFollowersFragment; +import com.github.pockethub.android.ui.user.MyFollowingFragment; +import com.github.pockethub.android.ui.user.OrganizationNewsFragment; +import com.github.pockethub.android.ui.user.UserReceivedNewsFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface HomePagerFragmentProvider { + + @ContributesAndroidInjector + UserReceivedNewsFragment userReceivedNewsFragment(); + + @ContributesAndroidInjector + OrganizationNewsFragment organizationNewsFragment(); + + @ContributesAndroidInjector + RepositoryListFragment repositoryListFragment(); + + @ContributesAndroidInjector + MyFollowersFragment myFollowersFragment(); + + @ContributesAndroidInjector + MyFollowingFragment myFollowingFragment(); + + @ContributesAndroidInjector + MembersFragment membersFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/IssueBrowseFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/IssueBrowseFragmentProvider.java new file mode 100644 index 000000000..b5be53d2f --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/IssueBrowseFragmentProvider.java @@ -0,0 +1,13 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.issue.IssuesFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface IssueBrowseFragmentProvider { + + @ContributesAndroidInjector + IssuesFragment issuesFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/IssueDashboardPagerFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/IssueDashboardPagerFragmentProvider.java new file mode 100644 index 000000000..ea0a38d5c --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/IssueDashboardPagerFragmentProvider.java @@ -0,0 +1,13 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.issue.DashboardIssueFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface IssueDashboardPagerFragmentProvider { + + @ContributesAndroidInjector + DashboardIssueFragment dashboardIssueFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/IssueSearchFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/IssueSearchFragmentProvider.java new file mode 100644 index 000000000..b4f0049a9 --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/IssueSearchFragmentProvider.java @@ -0,0 +1,13 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.issue.SearchIssueListFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface IssueSearchFragmentProvider { + + @ContributesAndroidInjector + SearchIssueListFragment searchIssueListFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/IssuesViewFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/IssuesViewFragmentProvider.java new file mode 100644 index 000000000..a9d79d971 --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/IssuesViewFragmentProvider.java @@ -0,0 +1,13 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.issue.IssueFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface IssuesViewFragmentProvider { + + @ContributesAndroidInjector + IssueFragment issueFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/MainFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/MainFragmentProvider.java new file mode 100644 index 000000000..11fc4aec2 --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/MainFragmentProvider.java @@ -0,0 +1,30 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.gist.GistsPagerFragment; +import com.github.pockethub.android.ui.issue.FilterListFragment; +import com.github.pockethub.android.ui.issue.IssueDashboardPagerFragment; +import com.github.pockethub.android.ui.repo.RepositoryListFragment; +import com.github.pockethub.android.ui.user.HomePagerFragment; +import com.github.pockethub.android.ui.user.MyFollowersFragment; +import com.github.pockethub.android.ui.user.MyFollowingFragment; +import com.github.pockethub.android.ui.user.OrganizationNewsFragment; +import com.github.pockethub.android.ui.user.UserReceivedNewsFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +public interface MainFragmentProvider { + + @ContributesAndroidInjector(modules = HomePagerFragmentProvider.class) + HomePagerFragment homePagerFragment(); + + @ContributesAndroidInjector(modules = GistsPagerFragmentProvider.class) + GistsPagerFragment gistsPagerFragment(); + + @ContributesAndroidInjector(modules = IssueDashboardPagerFragmentProvider.class) + IssueDashboardPagerFragment issueDashboardPagerFragment(); + + @ContributesAndroidInjector + FilterListFragment filterListFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/NotificationFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/NotificationFragmentProvider.java new file mode 100644 index 000000000..1725bc1d5 --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/NotificationFragmentProvider.java @@ -0,0 +1,14 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.notification.NotificationListFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface NotificationFragmentProvider { + + @ContributesAndroidInjector + NotificationListFragment notificationListFragment(); + +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/RepositoryContributorsFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/RepositoryContributorsFragmentProvider.java new file mode 100644 index 000000000..a63133de0 --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/RepositoryContributorsFragmentProvider.java @@ -0,0 +1,13 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.repo.RepositoryContributorsFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface RepositoryContributorsFragmentProvider { + + @ContributesAndroidInjector + RepositoryContributorsFragment repositoryContributorsFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/RepositoryViewFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/RepositoryViewFragmentProvider.java new file mode 100644 index 000000000..6ed933199 --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/RepositoryViewFragmentProvider.java @@ -0,0 +1,29 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.code.RepositoryCodeFragment; +import com.github.pockethub.android.ui.commit.CommitListFragment; +import com.github.pockethub.android.ui.issue.IssuesFragment; +import com.github.pockethub.android.ui.repo.RepositoryNewsFragment; +import com.github.pockethub.android.ui.repo.RepositoryReadmeFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface RepositoryViewFragmentProvider { + + @ContributesAndroidInjector + RepositoryReadmeFragment repositoryReadmeFragment(); + + @ContributesAndroidInjector + RepositoryNewsFragment repositoryNewsFragment(); + + @ContributesAndroidInjector + RepositoryCodeFragment repositoryCodeFragment(); + + @ContributesAndroidInjector + CommitListFragment commitListFragment(); + + @ContributesAndroidInjector + IssuesFragment issuesFragment(); +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/SearchActivityFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/SearchActivityFragmentProvider.java new file mode 100644 index 000000000..fa3763353 --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/SearchActivityFragmentProvider.java @@ -0,0 +1,18 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.search.SearchRepositoryListFragment; +import com.github.pockethub.android.ui.search.SearchUserListFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface SearchActivityFragmentProvider { + + @ContributesAndroidInjector + SearchRepositoryListFragment searchRepositoryListFragment(); + + @ContributesAndroidInjector + SearchUserListFragment searchUserListFragment(); + +} diff --git a/app/src/main/java/com/github/pockethub/android/dagger/UserViewFragmentProvider.java b/app/src/main/java/com/github/pockethub/android/dagger/UserViewFragmentProvider.java new file mode 100644 index 000000000..b95a7e5ef --- /dev/null +++ b/app/src/main/java/com/github/pockethub/android/dagger/UserViewFragmentProvider.java @@ -0,0 +1,26 @@ +package com.github.pockethub.android.dagger; + +import com.github.pockethub.android.ui.repo.UserRepositoryListFragment; +import com.github.pockethub.android.ui.user.UserCreatedNewsFragment; +import com.github.pockethub.android.ui.user.UserFollowersFragment; +import com.github.pockethub.android.ui.user.UserFollowingFragment; + +import dagger.Module; +import dagger.android.ContributesAndroidInjector; + +@Module +interface UserViewFragmentProvider { + + @ContributesAndroidInjector + UserCreatedNewsFragment userCreatedNewsFragment(); + + @ContributesAndroidInjector + UserRepositoryListFragment userRepositoryListFragment(); + + @ContributesAndroidInjector + UserFollowersFragment userFollowersFragment(); + + @ContributesAndroidInjector + UserFollowingFragment userFollowingFragment(); + +} diff --git a/app/src/main/java/com/github/pockethub/android/persistence/AccountDataManager.java b/app/src/main/java/com/github/pockethub/android/persistence/AccountDataManager.java index b297c26f6..2bdbaa76f 100644 --- a/app/src/main/java/com/github/pockethub/android/persistence/AccountDataManager.java +++ b/app/src/main/java/com/github/pockethub/android/persistence/AccountDataManager.java @@ -24,11 +24,10 @@ import com.github.pockethub.android.RequestReader; import com.github.pockethub.android.RequestWriter; import com.github.pockethub.android.core.issue.IssueFilter; -import com.github.pockethub.android.persistence.OrganizationRepositories.Factory; import com.meisolsson.githubsdk.model.Repository; import com.meisolsson.githubsdk.model.User; -import com.google.inject.Inject; -import com.google.inject.name.Named; +import javax.inject.Inject; +import javax.inject.Named; import java.io.File; import java.io.IOException; @@ -59,20 +58,23 @@ public class AccountDataManager { private static final int FORMAT_VERSION = 4; @Inject - private Context context; + protected Context context; @Inject - private DatabaseCache dbCache; + protected DatabaseCache dbCache; @Inject - private Factory allRepos; + protected OrganizationRepositoriesFactory allRepos; @Inject - private Organizations userAndOrgsResource; + protected Organizations userAndOrgsResource; @Inject @Named("cacheDir") - private File root; + protected File root; + + @Inject + public AccountDataManager() {} /** * @return context @@ -173,7 +175,7 @@ public List getOrgs(boolean forceReload) throws IOException { */ public List getRepos(final User user, boolean forceReload) throws IOException { - OrganizationRepositories resource = allRepos.under(user); + OrganizationRepositories resource = allRepos.create(user); return forceReload ? dbCache.requestAndStore(resource) : dbCache .loadOrRequest(resource); } diff --git a/app/src/main/java/com/github/pockethub/android/persistence/CacheHelper.java b/app/src/main/java/com/github/pockethub/android/persistence/CacheHelper.java index 891066000..2449d8713 100644 --- a/app/src/main/java/com/github/pockethub/android/persistence/CacheHelper.java +++ b/app/src/main/java/com/github/pockethub/android/persistence/CacheHelper.java @@ -19,7 +19,7 @@ import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; -import com.google.inject.Inject; +import javax.inject.Inject; /** * Helper class to create & upgrade database cache tables diff --git a/app/src/main/java/com/github/pockethub/android/persistence/DatabaseCache.java b/app/src/main/java/com/github/pockethub/android/persistence/DatabaseCache.java index 9cbf9e139..bf43d1a24 100644 --- a/app/src/main/java/com/github/pockethub/android/persistence/DatabaseCache.java +++ b/app/src/main/java/com/github/pockethub/android/persistence/DatabaseCache.java @@ -21,8 +21,8 @@ import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; -import com.google.inject.Inject; -import com.google.inject.Provider; +import javax.inject.Inject; +import javax.inject.Provider; import java.io.IOException; import java.util.ArrayList; @@ -37,7 +37,10 @@ public class DatabaseCache { private static final String TAG = "DatabaseCache"; @Inject - private Provider helperProvider; + protected Provider helperProvider; + + @Inject + public DatabaseCache() {} /** * Get writable database diff --git a/app/src/main/java/com/github/pockethub/android/persistence/OrganizationRepositories.java b/app/src/main/java/com/github/pockethub/android/persistence/OrganizationRepositories.java index b18c673bb..f4d0c89af 100644 --- a/app/src/main/java/com/github/pockethub/android/persistence/OrganizationRepositories.java +++ b/app/src/main/java/com/github/pockethub/android/persistence/OrganizationRepositories.java @@ -23,6 +23,8 @@ import android.database.sqlite.SQLiteQueryBuilder; import com.github.pockethub.android.core.PageIterator; +import com.google.auto.factory.AutoFactory; +import com.google.auto.factory.Provided; import com.meisolsson.githubsdk.core.ServiceGenerator; import com.meisolsson.githubsdk.model.Page; import com.meisolsson.githubsdk.model.Permissions; @@ -30,9 +32,8 @@ import com.meisolsson.githubsdk.model.User; import com.meisolsson.githubsdk.service.activity.WatchingService; import com.meisolsson.githubsdk.service.repositories.RepositoryService; -import com.google.inject.Inject; -import com.google.inject.Provider; -import com.google.inject.assistedinject.Assisted; +import javax.inject.Inject; +import javax.inject.Provider; import java.io.IOException; import java.util.ArrayList; @@ -45,22 +46,8 @@ /** * Cache of repositories under a given organization */ -public class OrganizationRepositories implements - PersistableResource { - - /** - * Creation factory - */ - public interface Factory { - - /** - * Get repositories under given organization - * - * @param org - * @return repositories - */ - OrganizationRepositories under(User org); - } +@AutoFactory +public class OrganizationRepositories implements PersistableResource { private final User org; @@ -75,9 +62,9 @@ public interface Factory { * @param context * @param accountProvider */ - @Inject - public OrganizationRepositories(@Assisted User orgs, Context context, - Provider accountProvider) { + public OrganizationRepositories(User orgs, + @Provided Context context, + @Provided Provider accountProvider) { this.org = orgs; this.context = context; this.accountProvider = accountProvider; diff --git a/app/src/main/java/com/github/pockethub/android/persistence/Organizations.java b/app/src/main/java/com/github/pockethub/android/persistence/Organizations.java index 366d2e893..2b3ee036b 100644 --- a/app/src/main/java/com/github/pockethub/android/persistence/Organizations.java +++ b/app/src/main/java/com/github/pockethub/android/persistence/Organizations.java @@ -26,7 +26,7 @@ import com.meisolsson.githubsdk.model.User; import com.meisolsson.githubsdk.service.organizations.OrganizationService; import com.meisolsson.githubsdk.service.users.UserService; -import com.google.inject.Inject; +import javax.inject.Inject; import java.io.IOException; import java.util.ArrayList; diff --git a/app/src/main/java/com/github/pockethub/android/sync/SyncAdapter.java b/app/src/main/java/com/github/pockethub/android/sync/SyncAdapter.java index 457defe0b..de456153b 100644 --- a/app/src/main/java/com/github/pockethub/android/sync/SyncAdapter.java +++ b/app/src/main/java/com/github/pockethub/android/sync/SyncAdapter.java @@ -22,23 +22,17 @@ import android.content.SyncResult; import android.os.Bundle; -import com.github.pockethub.android.sync.SyncCampaign.Factory; -import com.google.inject.Inject; - -import roboguice.inject.ContextScope; -import roboguice.inject.ContextSingleton; +import javax.inject.Inject; +import javax.inject.Singleton; /** * Sync adapter */ -@ContextSingleton +@Singleton public class SyncAdapter extends AbstractThreadedSyncAdapter { @Inject - private ContextScope contextScope; - - @Inject - private Factory campaignFactory; + protected SyncCampaignFactory campaignFactory; private SyncCampaign campaign = null; @@ -56,14 +50,9 @@ public SyncAdapter(final Context context) { public void onPerformSync(final Account account, final Bundle extras, final String authority, final ContentProviderClient provider, final SyncResult syncResult) { - contextScope.enter(getContext()); - try { - cancelCampaign(); - campaign = campaignFactory.create(syncResult); - campaign.run(); - } finally { - contextScope.exit(getContext()); - } + cancelCampaign(); + campaign = campaignFactory.create(syncResult); + campaign.run(); } @Override diff --git a/app/src/main/java/com/github/pockethub/android/sync/SyncAdapterService.java b/app/src/main/java/com/github/pockethub/android/sync/SyncAdapterService.java index 3fc69bb74..ee1da755e 100644 --- a/app/src/main/java/com/github/pockethub/android/sync/SyncAdapterService.java +++ b/app/src/main/java/com/github/pockethub/android/sync/SyncAdapterService.java @@ -18,21 +18,21 @@ import android.content.Intent; import android.os.IBinder; -import com.google.inject.Inject; +import javax.inject.Inject; +import javax.inject.Provider; -import roboguice.inject.ContextScopedProvider; -import roboguice.service.RoboService; +import dagger.android.DaggerService; /** * Sync adapter service */ -public class SyncAdapterService extends RoboService { +public class SyncAdapterService extends DaggerService { @Inject - private ContextScopedProvider syncAdapterProvider; + protected Provider syncAdapterProvider; @Override public IBinder onBind(Intent intent) { - return syncAdapterProvider.get(this).getSyncAdapterBinder(); + return syncAdapterProvider.get().getSyncAdapterBinder(); } } diff --git a/app/src/main/java/com/github/pockethub/android/sync/SyncCampaign.java b/app/src/main/java/com/github/pockethub/android/sync/SyncCampaign.java index cafc5c90f..718605b9d 100644 --- a/app/src/main/java/com/github/pockethub/android/sync/SyncCampaign.java +++ b/app/src/main/java/com/github/pockethub/android/sync/SyncCampaign.java @@ -21,10 +21,12 @@ import com.github.pockethub.android.persistence.DatabaseCache; import com.github.pockethub.android.persistence.OrganizationRepositories; +import com.github.pockethub.android.persistence.OrganizationRepositoriesFactory; import com.github.pockethub.android.persistence.Organizations; +import com.google.auto.factory.AutoFactory; +import com.google.auto.factory.Provided; import com.meisolsson.githubsdk.model.User; -import com.google.inject.Inject; -import com.google.inject.assistedinject.Assisted; +import javax.inject.Inject; import java.io.IOException; import java.util.List; @@ -32,32 +34,19 @@ /** * A cancelable sync operation to synchronize data for a given account */ +@AutoFactory public class SyncCampaign implements Runnable { private static final String TAG = "SyncCampaign"; - /** - * Factory to create campaign - */ - public interface Factory { - - /** - * Create campaign for result - * - * @param syncResult - * @return campaign - */ - SyncCampaign create(SyncResult syncResult); - } - @Inject - private DatabaseCache cache; + protected DatabaseCache cache; @Inject - private OrganizationRepositories.Factory repos; + protected OrganizationRepositoriesFactory repos; @Inject - private Organizations persistedOrgs; + protected Organizations persistedOrgs; private final SyncResult syncResult; @@ -68,8 +57,7 @@ public interface Factory { * * @param syncResult */ - @Inject - public SyncCampaign(@Assisted SyncResult syncResult) { + public SyncCampaign(SyncResult syncResult) { this.syncResult = syncResult; } @@ -93,7 +81,7 @@ public void run() { Log.d(TAG, "Syncing repos for " + org.login()); try { - cache.requestAndStore(repos.under(org)); + cache.requestAndStore(repos.create(org)); syncResult.stats.numUpdates++; } catch (IOException | SQLException e) { syncResult.stats.numIoExceptions++; diff --git a/app/src/main/java/com/github/pockethub/android/ui/BaseActivity.java b/app/src/main/java/com/github/pockethub/android/ui/BaseActivity.java index 1ecbf4e70..8c8ae13b4 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/BaseActivity.java +++ b/app/src/main/java/com/github/pockethub/android/ui/BaseActivity.java @@ -18,22 +18,23 @@ import android.os.Bundle; import android.os.Parcelable; import android.support.annotation.CallSuper; +import android.support.v7.app.AppCompatActivity; -import com.github.pockethub.android.ui.roboactivities.RoboAppCompatActivity; import com.trello.rxlifecycle2.LifecycleProvider; import com.trello.rxlifecycle2.LifecycleTransformer; import com.trello.rxlifecycle2.RxLifecycle; import com.trello.rxlifecycle2.android.ActivityEvent; import com.trello.rxlifecycle2.android.RxLifecycleAndroid; +import dagger.android.support.DaggerAppCompatActivity; import io.reactivex.Observable; import io.reactivex.subjects.BehaviorSubject; /** * Activity that display dialogs */ -public abstract class BaseActivity extends - RoboAppCompatActivity implements DialogResultListener, LifecycleProvider { +public abstract class BaseActivity extends DaggerAppCompatActivity + implements DialogResultListener, LifecycleProvider { private final BehaviorSubject lifecycleSubject = BehaviorSubject.create(); diff --git a/app/src/main/java/com/github/pockethub/android/ui/DialogFragment.java b/app/src/main/java/com/github/pockethub/android/ui/DialogFragment.java index a48eafd4f..5d0ae31b9 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/DialogFragment.java +++ b/app/src/main/java/com/github/pockethub/android/ui/DialogFragment.java @@ -21,12 +21,12 @@ import android.support.annotation.StringRes; import com.afollestad.materialdialogs.MaterialDialog; -import com.github.pockethub.android.ui.roboactivities.RoboSupportFragment; +import com.github.pockethub.android.ui.base.BaseFragment; /** * Base fragment capable of receiving dialog callbacks */ -public abstract class DialogFragment extends RoboSupportFragment implements +public abstract class DialogFragment extends BaseFragment implements DialogResultListener { private MaterialDialog progressDialog; diff --git a/app/src/main/java/com/github/pockethub/android/ui/DialogFragmentHelper.java b/app/src/main/java/com/github/pockethub/android/ui/DialogFragmentHelper.java index 03320fbfd..e47085537 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/DialogFragmentHelper.java +++ b/app/src/main/java/com/github/pockethub/android/ui/DialogFragmentHelper.java @@ -25,15 +25,15 @@ import com.afollestad.materialdialogs.MaterialDialog; -import roboguice.fragment.RoboDialogFragment; +import dagger.android.support.DaggerAppCompatDialogFragment; import static android.app.Activity.RESULT_CANCELED; /** * Base dialog fragment helper */ -public abstract class DialogFragmentHelper extends RoboDialogFragment implements - OnClickListener { +public abstract class DialogFragmentHelper extends DaggerAppCompatDialogFragment + implements OnClickListener { /** * Dialog message diff --git a/app/src/main/java/com/github/pockethub/android/ui/MainActivity.java b/app/src/main/java/com/github/pockethub/android/ui/MainActivity.java index 548a4c914..ffd954396 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/MainActivity.java +++ b/app/src/main/java/com/github/pockethub/android/ui/MainActivity.java @@ -66,8 +66,9 @@ import com.github.pockethub.android.util.AvatarLoader; import com.meisolsson.githubsdk.core.TokenStore; import com.meisolsson.githubsdk.model.User; -import com.google.inject.Inject; -import com.google.inject.Provider; +import javax.inject.Inject; +import javax.inject.Provider; +import javax.inject.Singleton; import java.util.Collections; import java.util.HashMap; @@ -75,17 +76,18 @@ import java.util.Map; -public class MainActivity extends BaseActivity implements - LoaderManager.LoaderCallbacks>, NavigationView.OnNavigationItemSelectedListener { +public class MainActivity extends BaseActivity + implements LoaderManager.LoaderCallbacks>, + NavigationView.OnNavigationItemSelectedListener { private static final String TAG = "MainActivity"; private static final String PREF_USER_LEARNED_DRAWER = "navigation_drawer_learned"; @Inject - private AccountDataManager accountDataManager; + protected AccountDataManager accountDataManager; @Inject - private Provider userComparatorProvider; + protected Provider userComparatorProvider; private List orgs = Collections.emptyList(); @@ -94,7 +96,8 @@ public class MainActivity extends BaseActivity implements private NavigationView navigationView; @Inject - private AvatarLoader avatars; + @Singleton + protected AvatarLoader avatars; private DrawerLayout drawerLayout; private boolean userLearnedDrawer; private Toolbar toolbar; diff --git a/app/src/main/java/com/github/pockethub/android/ui/NewsFragment.java b/app/src/main/java/com/github/pockethub/android/ui/NewsFragment.java index e54119751..26627ddae 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/NewsFragment.java +++ b/app/src/main/java/com/github/pockethub/android/ui/NewsFragment.java @@ -52,7 +52,7 @@ import com.meisolsson.githubsdk.model.payload.CommitCommentPayload; import com.meisolsson.githubsdk.model.payload.PushPayload; import com.meisolsson.githubsdk.model.payload.ReleasePayload; -import com.google.inject.Inject; +import javax.inject.Inject; import java.util.List; @@ -88,7 +88,7 @@ public abstract class NewsFragment extends PagedItemFragment { protected final UserEventMatcher userMatcher = new UserEventMatcher(); @Inject - private AvatarLoader avatars; + protected AvatarLoader avatars; @Override public void onActivityCreated(Bundle savedInstanceState) { diff --git a/app/src/main/java/com/github/pockethub/android/ui/roboactivities/AccountAuthenticatorAppCompatActivity.java b/app/src/main/java/com/github/pockethub/android/ui/base/AccountAuthenticatorAppCompatActivity.java similarity index 94% rename from app/src/main/java/com/github/pockethub/android/ui/roboactivities/AccountAuthenticatorAppCompatActivity.java rename to app/src/main/java/com/github/pockethub/android/ui/base/AccountAuthenticatorAppCompatActivity.java index 1fd6b7e39..413e6da9b 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/roboactivities/AccountAuthenticatorAppCompatActivity.java +++ b/app/src/main/java/com/github/pockethub/android/ui/base/AccountAuthenticatorAppCompatActivity.java @@ -14,13 +14,12 @@ * limitations under the License. */ -package com.github.pockethub.android.ui.roboactivities; +package com.github.pockethub.android.ui.base; import android.accounts.AccountAuthenticatorResponse; import android.accounts.AccountManager; import android.os.Bundle; import android.support.annotation.CallSuper; -import android.support.v7.app.AppCompatActivity; import com.trello.rxlifecycle2.LifecycleProvider; import com.trello.rxlifecycle2.LifecycleTransformer; @@ -28,6 +27,8 @@ import com.trello.rxlifecycle2.android.ActivityEvent; import com.trello.rxlifecycle2.android.RxLifecycleAndroid; +import dagger.android.AndroidInjection; +import dagger.android.support.DaggerAppCompatActivity; import io.reactivex.Observable; import io.reactivex.subjects.BehaviorSubject; @@ -47,7 +48,9 @@ * * Based on @mccrajs's implementation here. */ -public class AccountAuthenticatorAppCompatActivity extends AppCompatActivity implements LifecycleProvider { +public abstract class AccountAuthenticatorAppCompatActivity extends DaggerAppCompatActivity + implements LifecycleProvider { + private AccountAuthenticatorResponse mAccountAuthenticatorResponse = null; private Bundle mResultBundle = null; @@ -120,6 +123,7 @@ public final void setAccountAuthenticatorResult(Bundle result) { */ @Override protected void onCreate(Bundle icicle) { + AndroidInjection.inject(this); super.onCreate(icicle); lifecycleSubject.onNext(ActivityEvent.CREATE); diff --git a/app/src/main/java/com/github/pockethub/android/ui/roboactivities/RoboSupportFragment.java b/app/src/main/java/com/github/pockethub/android/ui/base/BaseFragment.java similarity index 86% rename from app/src/main/java/com/github/pockethub/android/ui/roboactivities/RoboSupportFragment.java rename to app/src/main/java/com/github/pockethub/android/ui/base/BaseFragment.java index 147d1b326..eede081b5 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/roboactivities/RoboSupportFragment.java +++ b/app/src/main/java/com/github/pockethub/android/ui/base/BaseFragment.java @@ -14,11 +14,13 @@ * limitations under the License. */ -package com.github.pockethub.android.ui.roboactivities; +package com.github.pockethub.android.ui.base; import android.app.Activity; +import android.content.Context; import android.os.Bundle; import android.support.annotation.CallSuper; +import android.support.annotation.NonNull; import android.support.v4.app.Fragment; import android.view.View; @@ -28,21 +30,23 @@ import com.trello.rxlifecycle2.android.FragmentEvent; import com.trello.rxlifecycle2.android.RxLifecycleAndroid; +import dagger.android.support.AndroidSupportInjection; +import dagger.android.support.DaggerFragment; import io.reactivex.Observable; import io.reactivex.subjects.BehaviorSubject; -import roboguice.RoboGuice; -public abstract class RoboSupportFragment extends Fragment implements LifecycleProvider { +public abstract class BaseFragment extends DaggerFragment implements LifecycleProvider { private final BehaviorSubject lifecycleSubject = BehaviorSubject.create(); + @NonNull @Override public final Observable lifecycle() { return lifecycleSubject; } @Override - public final LifecycleTransformer bindUntilEvent(FragmentEvent event) { + public final LifecycleTransformer bindUntilEvent(@NonNull FragmentEvent event) { return RxLifecycle.bindUntilEvent(lifecycleSubject, event); } @@ -62,7 +66,7 @@ public void onAttach(Activity activity) { @CallSuper public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - RoboGuice.getInjector(getActivity()).injectMembersWithoutViews(this); + AndroidSupportInjection.inject(this); lifecycleSubject.onNext(FragmentEvent.CREATE); } @@ -70,7 +74,6 @@ public void onCreate(Bundle savedInstanceState) { @CallSuper public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - RoboGuice.getInjector(getActivity()).injectViewMembers(this); lifecycleSubject.onNext(FragmentEvent.CREATE_VIEW); } diff --git a/app/src/main/java/com/github/pockethub/android/ui/comment/CreateCommentActivity.java b/app/src/main/java/com/github/pockethub/android/ui/comment/CreateCommentActivity.java index 326234e7a..0cb634553 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/comment/CreateCommentActivity.java +++ b/app/src/main/java/com/github/pockethub/android/ui/comment/CreateCommentActivity.java @@ -26,7 +26,8 @@ import com.github.pockethub.android.util.AvatarLoader; import com.meisolsson.githubsdk.model.GitHubComment; import com.meisolsson.githubsdk.model.git.GitComment; -import com.google.inject.Inject; + +import javax.inject.Inject; import static com.github.pockethub.android.Intents.EXTRA_COMMENT; import static com.github.pockethub.android.ui.view.OcticonTextView.ICON_EDIT; diff --git a/app/src/main/java/com/github/pockethub/android/ui/comment/RenderedCommentFragment.java b/app/src/main/java/com/github/pockethub/android/ui/comment/RenderedCommentFragment.java index 255cab23b..f0b6fc485 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/comment/RenderedCommentFragment.java +++ b/app/src/main/java/com/github/pockethub/android/ui/comment/RenderedCommentFragment.java @@ -31,7 +31,7 @@ import com.github.pockethub.android.util.HttpImageGetter; import com.github.pockethub.android.util.ToastUtils; import com.meisolsson.githubsdk.model.Repository; -import com.google.inject.Inject; +import javax.inject.Inject; import java.io.Serializable; @@ -50,7 +50,7 @@ public class RenderedCommentFragment extends DialogFragment implements private TextView bodyText; @Inject - private HttpImageGetter imageGetter; + protected HttpImageGetter imageGetter; @Override public void onViewCreated(View view, Bundle savedInstanceState) { diff --git a/app/src/main/java/com/github/pockethub/android/ui/commit/CommitCompareListFragment.java b/app/src/main/java/com/github/pockethub/android/ui/commit/CommitCompareListFragment.java index a17f5ccf5..bc856fcd3 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/commit/CommitCompareListFragment.java +++ b/app/src/main/java/com/github/pockethub/android/ui/commit/CommitCompareListFragment.java @@ -43,7 +43,7 @@ import com.meisolsson.githubsdk.model.GitHubFile; import com.meisolsson.githubsdk.model.Repository; import com.meisolsson.githubsdk.service.repositories.RepositoryCommitService; -import com.google.inject.Inject; +import javax.inject.Inject; import java.text.MessageFormat; import java.util.Collection; @@ -76,7 +76,7 @@ public class CommitCompareListFragment extends DialogFragment implements private String head; @Inject - private AvatarLoader avatars; + protected AvatarLoader avatars; private HeaderFooterListAdapter adapter; diff --git a/app/src/main/java/com/github/pockethub/android/ui/commit/CommitCompareViewActivity.java b/app/src/main/java/com/github/pockethub/android/ui/commit/CommitCompareViewActivity.java index f3eeab834..847dcca04 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/commit/CommitCompareViewActivity.java +++ b/app/src/main/java/com/github/pockethub/android/ui/commit/CommitCompareViewActivity.java @@ -30,7 +30,7 @@ import com.github.pockethub.android.ui.repo.RepositoryViewActivity; import com.github.pockethub.android.util.AvatarLoader; import com.github.pockethub.android.util.InfoUtils; -import com.google.inject.Inject; +import javax.inject.Inject; import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; import static android.content.Intent.FLAG_ACTIVITY_SINGLE_TOP; @@ -63,7 +63,7 @@ public static Intent createIntent(final Repository repository, private Repository repository; @Inject - private AvatarLoader avatars; + protected AvatarLoader avatars; private Fragment fragment; diff --git a/app/src/main/java/com/github/pockethub/android/ui/commit/CommitDiffListFragment.java b/app/src/main/java/com/github/pockethub/android/ui/commit/CommitDiffListFragment.java index dc0830102..a85043637 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/commit/CommitDiffListFragment.java +++ b/app/src/main/java/com/github/pockethub/android/ui/commit/CommitDiffListFragment.java @@ -36,6 +36,7 @@ import android.widget.Toast; import com.afollestad.materialdialogs.MaterialDialog; +import com.github.pockethub.android.core.commit.RefreshCommitTaskFactory; import com.meisolsson.githubsdk.model.Commit; import com.meisolsson.githubsdk.model.GitHubFile; import com.meisolsson.githubsdk.model.Repository; @@ -55,7 +56,7 @@ import com.github.pockethub.android.util.ToastUtils; import com.meisolsson.githubsdk.model.git.GitComment; import com.meisolsson.githubsdk.model.git.GitCommit; -import com.google.inject.Inject; +import javax.inject.Inject; import java.util.Collections; import java.util.Date; @@ -95,10 +96,10 @@ public class CommitDiffListFragment extends DialogFragment implements private List files; @Inject - private AvatarLoader avatars; + protected AvatarLoader avatars; @Inject - private CommitStore store; + protected CommitStore store; private View loadingView; @@ -125,7 +126,10 @@ public class CommitDiffListFragment extends DialogFragment implements private HeaderFooterListAdapter adapter; @Inject - private HttpImageGetter commentImageGetter; + protected RefreshCommitTaskFactory refreshCommitTaskFactory; + + @Inject + protected HttpImageGetter commentImageGetter; @Override public void onCreate(Bundle savedInstanceState) { @@ -238,7 +242,7 @@ private void shareCommit() { } private void refreshCommit() { - new RefreshCommitTask(getActivity(), repository, base, commentImageGetter) + refreshCommitTaskFactory.create(getActivity(), repository, base) .refresh() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) diff --git a/app/src/main/java/com/github/pockethub/android/ui/commit/CommitFileViewActivity.java b/app/src/main/java/com/github/pockethub/android/ui/commit/CommitFileViewActivity.java index 8f2921630..002555c36 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/commit/CommitFileViewActivity.java +++ b/app/src/main/java/com/github/pockethub/android/ui/commit/CommitFileViewActivity.java @@ -48,7 +48,7 @@ import com.github.pockethub.android.util.ToastUtils; import com.meisolsson.githubsdk.model.git.GitBlob; import com.meisolsson.githubsdk.service.git.GitService; -import com.google.inject.Inject; +import javax.inject.Inject; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; @@ -114,10 +114,10 @@ public static Intent createIntent(Repository repository, String commit, GitHubFi private MenuItem markdownItem; @Inject - private AvatarLoader avatars; + protected AvatarLoader avatars; @Inject - private HttpImageGetter imageGetter; + protected HttpImageGetter imageGetter; @Override protected void onCreate(Bundle savedInstanceState) { diff --git a/app/src/main/java/com/github/pockethub/android/ui/commit/CommitListFragment.java b/app/src/main/java/com/github/pockethub/android/ui/commit/CommitListFragment.java index 8becf6424..fb2074532 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/commit/CommitListFragment.java +++ b/app/src/main/java/com/github/pockethub/android/ui/commit/CommitListFragment.java @@ -48,7 +48,7 @@ import com.meisolsson.githubsdk.model.git.GitReference; import com.meisolsson.githubsdk.service.repositories.RepositoryCommitService; import com.meisolsson.githubsdk.service.repositories.RepositoryService; -import com.google.inject.Inject; +import javax.inject.Inject; import java.util.List; @@ -70,7 +70,7 @@ public class CommitListFragment extends PagedItemFragment protected AvatarLoader avatars; @Inject - private CommitStore store; + protected CommitStore store; private Repository repository; diff --git a/app/src/main/java/com/github/pockethub/android/ui/commit/CommitViewActivity.java b/app/src/main/java/com/github/pockethub/android/ui/commit/CommitViewActivity.java index 441080baf..a9eb93b86 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/commit/CommitViewActivity.java +++ b/app/src/main/java/com/github/pockethub/android/ui/commit/CommitViewActivity.java @@ -32,7 +32,7 @@ import com.github.pockethub.android.ui.repo.RepositoryViewActivity; import com.github.pockethub.android.util.AvatarLoader; import com.github.pockethub.android.util.InfoUtils; -import com.google.inject.Inject; +import javax.inject.Inject; import java.util.Collection; @@ -103,7 +103,7 @@ public static Intent createIntent(final Repository repository, private int initialPosition; @Inject - private AvatarLoader avatars; + protected AvatarLoader avatars; private CommitPagerAdapter adapter; diff --git a/app/src/main/java/com/github/pockethub/android/ui/gist/GistFileFragment.java b/app/src/main/java/com/github/pockethub/android/ui/gist/GistFileFragment.java index 7f2ba2584..b10c03858 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/gist/GistFileFragment.java +++ b/app/src/main/java/com/github/pockethub/android/ui/gist/GistFileFragment.java @@ -36,7 +36,7 @@ import com.github.pockethub.android.util.ToastUtils; import com.meisolsson.githubsdk.model.Gist; import com.meisolsson.githubsdk.model.GistFile; -import com.google.inject.Inject; +import javax.inject.Inject; import java.io.IOException; import java.util.Map; @@ -64,7 +64,7 @@ public class GistFileFragment extends DialogFragment implements private Gist gist; @Inject - private GistStore store; + protected GistStore store; private SourceEditor editor; diff --git a/app/src/main/java/com/github/pockethub/android/ui/gist/GistFilesViewActivity.java b/app/src/main/java/com/github/pockethub/android/ui/gist/GistFilesViewActivity.java index c2b6c3941..2caeeca9a 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/gist/GistFilesViewActivity.java +++ b/app/src/main/java/com/github/pockethub/android/ui/gist/GistFilesViewActivity.java @@ -24,6 +24,7 @@ import android.view.View; import android.widget.ProgressBar; +import com.github.pockethub.android.core.gist.RefreshGistTaskFactory; import com.meisolsson.githubsdk.model.Gist; import com.meisolsson.githubsdk.model.User; import com.github.pockethub.android.Intents.Builder; @@ -35,8 +36,7 @@ import com.github.pockethub.android.ui.PagerActivity; import com.github.pockethub.android.ui.ViewPager; import com.github.pockethub.android.util.AvatarLoader; -import com.github.pockethub.android.util.HttpImageGetter; -import com.google.inject.Inject; +import javax.inject.Inject; import io.reactivex.Single; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -77,13 +77,13 @@ public static Intent createIntent(Gist gist, int position) { private Gist gist; @Inject - private GistStore store; + protected GistStore store; @Inject - private AvatarLoader avatars; + protected AvatarLoader avatars; @Inject - private HttpImageGetter imageGetter; + protected RefreshGistTaskFactory refreshGistTaskFactory; private GistFilesPagerAdapter adapter; @@ -115,7 +115,7 @@ protected void onCreate(Bundle savedInstanceState) { loadingBar.setVisibility(View.VISIBLE); pager.setVisibility(View.GONE); tabs.setVisibility(View.GONE); - new RefreshGistTask(this, gistId, imageGetter) + refreshGistTaskFactory.create(this, gistId) .refresh() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) diff --git a/app/src/main/java/com/github/pockethub/android/ui/gist/GistFragment.java b/app/src/main/java/com/github/pockethub/android/ui/gist/GistFragment.java index 833f51fdb..cf9479d39 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/gist/GistFragment.java +++ b/app/src/main/java/com/github/pockethub/android/ui/gist/GistFragment.java @@ -33,6 +33,7 @@ import android.widget.ProgressBar; import android.widget.TextView; +import com.github.pockethub.android.core.gist.RefreshGistTaskFactory; import com.github.pockethub.android.rx.RxProgress; import com.meisolsson.githubsdk.core.ServiceGenerator; import com.meisolsson.githubsdk.model.Gist; @@ -57,7 +58,7 @@ import com.github.pockethub.android.util.ToastUtils; import com.meisolsson.githubsdk.service.gists.GistCommentService; import com.meisolsson.githubsdk.service.gists.GistService; -import com.google.inject.Inject; +import javax.inject.Inject; import java.util.ArrayList; import java.util.Collections; @@ -95,10 +96,13 @@ public class GistFragment extends DialogFragment implements OnItemClickListener private ProgressBar progress; @Inject - private GistStore store; + protected GistStore store; @Inject - private HttpImageGetter imageGetter; + protected RefreshGistTaskFactory refreshGistTaskFactory; + + @Inject + protected HttpImageGetter imageGetter; private View headerView; @@ -119,7 +123,7 @@ public class GistFragment extends DialogFragment implements OnItemClickListener private boolean loadFinished; @Inject - private AvatarLoader avatars; + protected AvatarLoader avatars; private List fileHeaders = new ArrayList<>(); @@ -397,7 +401,7 @@ private void updateList(Gist gist, List comments) { } private void refreshGist() { - new RefreshGistTask(getActivity(), gistId, imageGetter) + refreshGistTaskFactory.create(getActivity(), gistId) .refresh() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) diff --git a/app/src/main/java/com/github/pockethub/android/ui/gist/GistsFragment.java b/app/src/main/java/com/github/pockethub/android/ui/gist/GistsFragment.java index 14ea4c7f9..b3f806657 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/gist/GistsFragment.java +++ b/app/src/main/java/com/github/pockethub/android/ui/gist/GistsFragment.java @@ -27,7 +27,7 @@ import com.github.pockethub.android.ui.PagedItemFragment; import com.github.pockethub.android.util.AvatarLoader; import com.meisolsson.githubsdk.model.Gist; -import com.google.inject.Inject; +import javax.inject.Inject; import java.util.List; diff --git a/app/src/main/java/com/github/pockethub/android/ui/gist/GistsPagerFragment.java b/app/src/main/java/com/github/pockethub/android/ui/gist/GistsPagerFragment.java index 7418df626..11c06219e 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/gist/GistsPagerFragment.java +++ b/app/src/main/java/com/github/pockethub/android/ui/gist/GistsPagerFragment.java @@ -35,7 +35,7 @@ import com.meisolsson.githubsdk.model.Gist; import com.meisolsson.githubsdk.model.Page; import com.meisolsson.githubsdk.service.gists.GistService; -import com.google.inject.Inject; +import javax.inject.Inject; import java.util.Random; @@ -52,7 +52,7 @@ public class GistsPagerFragment extends TabPagerFragment gists, int position) { private int initialPosition; @Inject - private GistStore store; + protected GistStore store; @Inject - private AvatarLoader avatars; + protected AvatarLoader avatars; private GistsPagerAdapter adapter; diff --git a/app/src/main/java/com/github/pockethub/android/ui/gist/MyGistsFragment.java b/app/src/main/java/com/github/pockethub/android/ui/gist/MyGistsFragment.java index c329ee407..b193ad1b7 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/gist/MyGistsFragment.java +++ b/app/src/main/java/com/github/pockethub/android/ui/gist/MyGistsFragment.java @@ -24,8 +24,8 @@ import com.meisolsson.githubsdk.core.ServiceGenerator; import com.meisolsson.githubsdk.model.Gist; import com.meisolsson.githubsdk.service.gists.GistService; -import com.google.inject.Inject; -import com.google.inject.Provider; +import javax.inject.Inject; +import javax.inject.Provider; import static android.app.Activity.RESULT_OK; import static com.github.pockethub.android.RequestCodes.GIST_CREATE; @@ -37,7 +37,7 @@ public class MyGistsFragment extends GistsFragment { @Inject - private Provider accountProvider; + protected Provider accountProvider; @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { diff --git a/app/src/main/java/com/github/pockethub/android/ui/issue/AssigneeDialogFragment.java b/app/src/main/java/com/github/pockethub/android/ui/issue/AssigneeDialogFragment.java index 4903bcc6b..756afd56f 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/issue/AssigneeDialogFragment.java +++ b/app/src/main/java/com/github/pockethub/android/ui/issue/AssigneeDialogFragment.java @@ -29,7 +29,7 @@ import com.github.pockethub.android.ui.BaseActivity; import com.github.pockethub.android.ui.SingleChoiceDialogFragment; import com.github.pockethub.android.util.AvatarLoader; -import com.google.inject.Inject; +import javax.inject.Inject; import java.util.ArrayList; @@ -103,7 +103,7 @@ public static void show(final BaseActivity activity, } @Inject - private AvatarLoader loader; + protected AvatarLoader loader; @Override public Dialog onCreateDialog(final Bundle savedInstanceState) { diff --git a/app/src/main/java/com/github/pockethub/android/ui/issue/DashboardIssueFragment.java b/app/src/main/java/com/github/pockethub/android/ui/issue/DashboardIssueFragment.java index e258aea32..2bc4565d3 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/issue/DashboardIssueFragment.java +++ b/app/src/main/java/com/github/pockethub/android/ui/issue/DashboardIssueFragment.java @@ -30,7 +30,7 @@ import com.meisolsson.githubsdk.core.ServiceGenerator; import com.meisolsson.githubsdk.model.Issue; import com.meisolsson.githubsdk.service.issues.IssueService; -import com.google.inject.Inject; +import javax.inject.Inject; import java.util.List; import java.util.Map; @@ -48,10 +48,10 @@ public class DashboardIssueFragment extends PagedItemFragment { public static final String ARG_FILTER = "filter"; @Inject - private IssueStore store; + protected IssueStore store; @Inject - private AvatarLoader avatars; + protected AvatarLoader avatars; private Map filterData; diff --git a/app/src/main/java/com/github/pockethub/android/ui/issue/EditAssigneeTask.java b/app/src/main/java/com/github/pockethub/android/ui/issue/EditAssigneeTask.java index 2f86fb3a5..938d68b0a 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/issue/EditAssigneeTask.java +++ b/app/src/main/java/com/github/pockethub/android/ui/issue/EditAssigneeTask.java @@ -16,6 +16,8 @@ package com.github.pockethub.android.ui.issue; import com.github.pockethub.android.rx.RxProgress; +import com.google.auto.factory.AutoFactory; +import com.google.auto.factory.Provided; import com.meisolsson.githubsdk.model.Issue; import com.meisolsson.githubsdk.model.Repository; import com.meisolsson.githubsdk.model.User; @@ -23,14 +25,13 @@ import com.github.pockethub.android.core.issue.IssueStore; import com.github.pockethub.android.ui.BaseActivity; import com.meisolsson.githubsdk.model.request.issue.IssueRequest; -import com.google.inject.Inject; +import javax.inject.Inject; import java.util.Collections; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.functions.Consumer; import io.reactivex.schedulers.Schedulers; -import roboguice.RoboGuice; import static com.github.pockethub.android.RequestCodes.ISSUE_ASSIGNEE_UPDATE; @@ -38,10 +39,10 @@ * Task to edit the assignee */ //TODO Let this take multiple assignees +@AutoFactory public class EditAssigneeTask { - @Inject - private IssueStore store; + private final IssueStore store; private final AssigneeDialog assigneeDialog; @@ -60,16 +61,15 @@ public class EditAssigneeTask { * @param repositoryId * @param issueNumber */ - public EditAssigneeTask(final BaseActivity activity, + public EditAssigneeTask(@Provided IssueStore store, final BaseActivity activity, final Repository repositoryId, final int issueNumber, final Consumer observer) { + this.store = store; this.activity = activity; this.repositoryId = repositoryId; this.issueNumber = issueNumber; this.observer = observer; - assigneeDialog = new AssigneeDialog(activity, ISSUE_ASSIGNEE_UPDATE, - repositoryId); - RoboGuice.injectMembers(activity, this); + assigneeDialog = new AssigneeDialog(activity, ISSUE_ASSIGNEE_UPDATE, repositoryId); } /** diff --git a/app/src/main/java/com/github/pockethub/android/ui/issue/EditIssueActivity.java b/app/src/main/java/com/github/pockethub/android/ui/issue/EditIssueActivity.java index 86af20a62..929ad8547 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/issue/EditIssueActivity.java +++ b/app/src/main/java/com/github/pockethub/android/ui/issue/EditIssueActivity.java @@ -60,7 +60,7 @@ import com.meisolsson.githubsdk.model.request.issue.IssueRequest; import com.meisolsson.githubsdk.service.issues.IssueService; import com.meisolsson.githubsdk.service.repositories.RepositoryCollaboratorService; -import com.google.inject.Inject; +import javax.inject.Inject; import java.io.IOException; import java.util.ArrayList; @@ -148,7 +148,7 @@ public static Intent createIntent(final Issue issue, private FloatingActionButton addImageFab; @Inject - private AvatarLoader avatars; + protected AvatarLoader avatars; private Issue issue; diff --git a/app/src/main/java/com/github/pockethub/android/ui/issue/EditIssuesFilterActivity.java b/app/src/main/java/com/github/pockethub/android/ui/issue/EditIssuesFilterActivity.java index ccd88b0df..386b63b34 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/issue/EditIssuesFilterActivity.java +++ b/app/src/main/java/com/github/pockethub/android/ui/issue/EditIssuesFilterActivity.java @@ -37,7 +37,7 @@ import com.github.pockethub.android.ui.BaseActivity; import com.github.pockethub.android.util.AvatarLoader; import com.github.pockethub.android.util.InfoUtils; -import com.google.inject.Inject; +import javax.inject.Inject; import java.util.List; import static android.view.View.GONE; @@ -66,7 +66,7 @@ public static Intent createIntent(IssueFilter filter) { private static final int REQUEST_ASSIGNEE = 3; @Inject - private AvatarLoader avatars; + protected AvatarLoader avatars; private LabelsDialog labelsDialog; diff --git a/app/src/main/java/com/github/pockethub/android/ui/issue/EditLabelsTask.java b/app/src/main/java/com/github/pockethub/android/ui/issue/EditLabelsTask.java index adf37abfd..6e2f0efa3 100644 --- a/app/src/main/java/com/github/pockethub/android/ui/issue/EditLabelsTask.java +++ b/app/src/main/java/com/github/pockethub/android/ui/issue/EditLabelsTask.java @@ -15,7 +15,11 @@ */ package com.github.pockethub.android.ui.issue; +import android.app.Activity; + import com.github.pockethub.android.rx.RxProgress; +import com.google.auto.factory.AutoFactory; +import com.google.auto.factory.Provided; import com.meisolsson.githubsdk.model.Issue; import com.meisolsson.githubsdk.model.Label; import com.meisolsson.githubsdk.model.Repository; @@ -23,7 +27,9 @@ import com.github.pockethub.android.core.issue.IssueStore; import com.github.pockethub.android.ui.BaseActivity; import com.meisolsson.githubsdk.model.request.issue.IssueRequest; -import com.google.inject.Inject; + +import javax.annotation.Nonnull; +import javax.inject.Inject; import java.util.ArrayList; import java.util.List; @@ -31,17 +37,16 @@ import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.functions.Consumer; import io.reactivex.schedulers.Schedulers; -import roboguice.RoboGuice; import static com.github.pockethub.android.RequestCodes.ISSUE_LABELS_UPDATE; /** * Task to edit labels */ +@AutoFactory public class EditLabelsTask { - @Inject - private IssueStore store; + private final IssueStore store; private final LabelsDialog labelsDialog; @@ -60,17 +65,16 @@ public class EditLabelsTask { * @param repositoryId * @param issueNumber */ - public EditLabelsTask(final BaseActivity activity, + public EditLabelsTask(@Provided IssueStore store, final BaseActivity activity, final Repository repositoryId, final int issueNumber, final Consumer observer) { this.activity = activity; + this.store = store; this.repositoryId = repositoryId; this.issueNumber = issueNumber; this.observer = observer; - labelsDialog = new LabelsDialog(activity, ISSUE_LABELS_UPDATE, - repositoryId); - RoboGuice.injectMembers(activity, this); + labelsDialog = new LabelsDialog(activity, ISSUE_LABELS_UPDATE, repositoryId); } /** @@ -91,8 +95,8 @@ public EditLabelsTask prompt(List