Dagger 2.8 implementation added
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/commit/c421e709 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/c421e709 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/c421e709 Branch: refs/heads/master Commit: c421e7099219e17daae77b1124d33376ce22d410 Parents: 7a3ccba Author: Sagar <[email protected]> Authored: Mon Jun 11 23:09:53 2018 +0530 Committer: Sagar <[email protected]> Committed: Mon Jun 11 23:09:53 2018 +0530 ---------------------------------------------------------------------- app/build.gradle | 5 ++ app/src/main/AndroidManifest.xml | 2 +- .../taverna/mobile/TavernaApplication.java | 44 +++++++---- .../apache/taverna/mobile/data/DataManager.java | 19 +++-- .../taverna/mobile/data/local/DBHelper.java | 6 +- .../mobile/data/local/PreferencesHelper.java | 17 +++-- .../taverna/mobile/data/model/Announcement.java | 11 ++- .../mobile/data/model/Announcements.java | 1 - .../mobile/data/remote/BaseApiManager.java | 15 +++- .../mobile/injection/ActivityContext.java | 11 +++ .../mobile/injection/ApplicationContext.java | 11 +++ .../taverna/mobile/injection/PerActivity.java | 17 +++++ .../injection/component/ActivityComponent.java | 78 ++++++++++++++++++++ .../component/ApplicationComponent.java | 26 +++++++ .../mobile/injection/module/ActivityModule.java | 30 ++++++++ .../injection/module/ApplicationModule.java | 40 ++++++++++ .../taverna/mobile/ui/DashboardActivity.java | 11 +-- .../taverna/mobile/ui/DownloadingFragment.java | 4 - .../taverna/mobile/ui/FlashScreenActivity.java | 13 ++-- .../mobile/ui/adapter/AnnouncementAdapter.java | 3 +- .../ui/adapter/FavouriteWorkflowsAdapter.java | 4 +- .../ui/adapter/TutorialSliderAdapter.java | 7 +- .../mobile/ui/adapter/WorkflowAdapter.java | 4 +- .../ui/anouncements/AnnouncementFragment.java | 24 +++--- .../ui/anouncements/AnnouncementPresenter.java | 3 + .../taverna/mobile/ui/base/BaseActivity.java | 27 +++++++ .../FavouriteWorkflowsActivity.java | 3 +- .../FavouriteWorkflowsFragment.java | 24 +++--- .../FavouriteWorkflowsPresenter.java | 4 +- .../FavouriteWorkflowDetailActivity.java | 3 +- .../FavouriteWorkflowDetailFragment.java | 14 ++-- .../FavouriteWorkflowDetailPresenter.java | 3 + .../mobile/ui/imagezoom/ImageZoomActivity.java | 3 +- .../mobile/ui/imagezoom/ImageZoomFragment.java | 11 ++- .../mobile/ui/imagezoom/ImageZoomPresenter.java | 4 +- .../taverna/mobile/ui/login/LoginActivity.java | 3 +- .../taverna/mobile/ui/login/LoginFragment.java | 15 ++-- .../taverna/mobile/ui/login/LoginPresenter.java | 4 +- .../ui/myworkflows/MyWorkflowActivity.java | 61 +++++++++++++++ .../ui/myworkflows/MyWorkflowFragment.java | 19 ++--- .../ui/myworkflows/MyWorkflowPresenter.java | 4 +- .../ui/myworkflows/MyWorkflowsActivity.java | 60 --------------- .../ui/playerlogin/PlayerLoginFragment.java | 12 +-- .../ui/playerlogin/PlayerLoginPresenter.java | 3 + .../mobile/ui/tutorial/TutorialActivity.java | 11 ++- .../ui/userprofile/UserProfileActivity.java | 4 +- .../ui/userprofile/UserProfileFragment.java | 14 ++-- .../mobile/ui/workflow/WorkflowFragment.java | 16 ++-- .../mobile/ui/workflow/WorkflowPresenter.java | 5 +- .../workflowdetail/WorkflowDetailActivity.java | 3 +- .../workflowdetail/WorkflowDetailFragment.java | 14 ++-- .../workflowdetail/WorkflowDetailPresenter.java | 3 + .../ui/workflowrun/WorkflowRunActivity.java | 22 +++--- .../ui/workflowrun/WorkflowRunPresenter.java | 4 +- app/src/main/res/layout/activity_usage.xml | 1 - .../mobile/AnnouncementPresenterTest.java | 2 +- build.gradle | 1 + 57 files changed, 553 insertions(+), 230 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/build.gradle ---------------------------------------------------------------------- diff --git a/app/build.gradle b/app/build.gradle index 0daa6c6..597f937 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -127,4 +127,9 @@ dependencies { testImplementation "junit:junit:4.12" testImplementation "org.mockito:mockito-all:1.10.19" + //Dependencies for Dagger 2 + implementation "com.google.dagger:dagger:$rootProject.dagger" + annotationProcessor "com.google.dagger:dagger-compiler:$rootProject.dagger" + + } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/AndroidManifest.xml ---------------------------------------------------------------------- diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e4290b7..1290302 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -103,7 +103,7 @@ limitations under the License. <activity android:name=".ui.usage.UsageActivity" /> <activity android:name=".ui.userprofile.UserProfileActivity"/> <activity android:name=".ui.favouriteworkflow.FavouriteWorkflowsActivity"/> - <activity android:name=".ui.myworkflows.MyWorkflowsActivity"/> + <activity android:name=".ui.myworkflows.MyWorkflowActivity"/> </application> </manifest> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/TavernaApplication.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/TavernaApplication.java b/app/src/main/java/org/apache/taverna/mobile/TavernaApplication.java index d2ab2af..41bd726 100644 --- a/app/src/main/java/org/apache/taverna/mobile/TavernaApplication.java +++ b/app/src/main/java/org/apache/taverna/mobile/TavernaApplication.java @@ -19,31 +19,30 @@ package org.apache.taverna.mobile; -import android.app.Application; -import android.content.Context; - import com.facebook.stetho.Stetho; import com.raizlabs.android.dbflow.config.FlowConfig; import com.raizlabs.android.dbflow.config.FlowManager; import com.squareup.leakcanary.LeakCanary; -public class TavernaApplication extends Application { +import org.apache.taverna.mobile.injection.component.ApplicationComponent; +import org.apache.taverna.mobile.injection.component.DaggerApplicationComponent; +import org.apache.taverna.mobile.injection.module.ApplicationModule; - private static TavernaApplication instance; +import android.app.Application; +import android.content.Context; - public static Context getContext() { - return instance; - } +public class TavernaApplication extends Application { + + ApplicationComponent mApplicationComponent; @Override public void onCreate() { super.onCreate(); - if (instance == null) { - instance = this; - } - FlowManager.init(new FlowConfig.Builder(this).build()); - Stetho.initializeWithDefaults(this); + FlowManager.init(new FlowConfig.Builder(this).build()); + if(BuildConfig.DEBUG) { + Stetho.initializeWithDefaults(this); + } if (LeakCanary.isInAnalyzerProcess(this)) { return; @@ -51,4 +50,23 @@ public class TavernaApplication extends Application { LeakCanary.install(this); } + + public static TavernaApplication get(Context context) { + return (TavernaApplication) context.getApplicationContext(); + } + + public ApplicationComponent getComponent() { + if (mApplicationComponent == null) { + mApplicationComponent = DaggerApplicationComponent.builder() + .applicationModule(new ApplicationModule(this)) + .build(); + } + return mApplicationComponent; + } + + + public void setComponent(ApplicationComponent applicationComponent) { + mApplicationComponent = applicationComponent; + } + } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/data/DataManager.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/data/DataManager.java b/app/src/main/java/org/apache/taverna/mobile/data/DataManager.java index f44b933..707857c 100644 --- a/app/src/main/java/org/apache/taverna/mobile/data/DataManager.java +++ b/app/src/main/java/org/apache/taverna/mobile/data/DataManager.java @@ -34,25 +34,34 @@ import org.apache.taverna.mobile.data.remote.BaseApiManager; import java.util.List; import java.util.Map; +import javax.inject.Inject; +import javax.inject.Singleton; + import io.reactivex.Observable; import io.reactivex.ObservableSource; import io.reactivex.functions.Function; import okhttp3.RequestBody; import okhttp3.ResponseBody; +@Singleton public class DataManager { - public BaseApiManager mBaseApiManager = new BaseApiManager(); + private BaseApiManager mBaseApiManager; - public DBHelper mDBHelper = new DBHelper(); + private DBHelper mDBHelper; private PreferencesHelper mPreferencesHelper; - public DataManager() { + @Inject + public DataManager(BaseApiManager baseApiManager, DBHelper dbHelper, PreferencesHelper + mPreferencesHelper) { + this.mPreferencesHelper = mPreferencesHelper; + this.mBaseApiManager = baseApiManager; + this.mDBHelper = dbHelper; } - public DataManager(PreferencesHelper mPreferencesHelper) { - this.mPreferencesHelper = mPreferencesHelper; + public DBHelper getDBHelper() { + return mDBHelper; } /** http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/data/local/DBHelper.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/data/local/DBHelper.java b/app/src/main/java/org/apache/taverna/mobile/data/local/DBHelper.java index 3e98c50..352c1d8 100644 --- a/app/src/main/java/org/apache/taverna/mobile/data/local/DBHelper.java +++ b/app/src/main/java/org/apache/taverna/mobile/data/local/DBHelper.java @@ -18,7 +18,6 @@ */ package org.apache.taverna.mobile.data.local; - import android.support.annotation.Nullable; import com.raizlabs.android.dbflow.sql.language.SQLite; @@ -30,16 +29,21 @@ import org.apache.taverna.mobile.data.model.Workflows; import java.util.List; import java.util.concurrent.Callable; +import javax.inject.Inject; +import javax.inject.Singleton; + import io.reactivex.Observable; import io.reactivex.ObservableSource; +@Singleton public class DBHelper { public static final String SVG_URI = "svgURI"; public static final String JPG_URI = "jpgURI"; + @Inject public DBHelper() { } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/data/local/PreferencesHelper.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/data/local/PreferencesHelper.java b/app/src/main/java/org/apache/taverna/mobile/data/local/PreferencesHelper.java index a4818bf..80e2f00 100644 --- a/app/src/main/java/org/apache/taverna/mobile/data/local/PreferencesHelper.java +++ b/app/src/main/java/org/apache/taverna/mobile/data/local/PreferencesHelper.java @@ -18,9 +18,10 @@ */ package org.apache.taverna.mobile.data.local; - import org.apache.taverna.mobile.R; import org.apache.taverna.mobile.data.model.User; +import org.apache.taverna.mobile.injection.ActivityContext; +import org.apache.taverna.mobile.injection.ApplicationContext; import android.content.Context; import android.content.SharedPreferences; @@ -28,10 +29,14 @@ import android.preference.PreferenceManager; import java.util.concurrent.Callable; +import javax.inject.Inject; +import javax.inject.Singleton; + +import dagger.Provides; import io.reactivex.Observable; import io.reactivex.ObservableSource; - +@Singleton public class PreferencesHelper { public static final String PREF_KEY_PLAYER_LOGGED_IN = "pref_player_logged_in"; @@ -63,17 +68,17 @@ public class PreferencesHelper { public static final String PREF_KEY_PLAYER_USER_PASSWORD = "pref_password"; + private static final String IS_FIRST_TIME_LAUNCH = "IsFirstTimeLaunch"; + private final SharedPreferences sharedPref; private Context mContext; - private static final String IS_FIRST_TIME_LAUNCH = "IsFirstTimeLaunch"; - - public PreferencesHelper(Context context) { + @Inject + public PreferencesHelper(@ApplicationContext Context context) { sharedPref = PreferenceManager.getDefaultSharedPreferences(context); mContext = context; } - public void clear() { sharedPref.edit().clear().apply(); } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/data/model/Announcement.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/data/model/Announcement.java b/app/src/main/java/org/apache/taverna/mobile/data/model/Announcement.java index d4f1201..ebea4eb 100644 --- a/app/src/main/java/org/apache/taverna/mobile/data/model/Announcement.java +++ b/app/src/main/java/org/apache/taverna/mobile/data/model/Announcement.java @@ -24,9 +24,12 @@ import org.simpleframework.xml.Text; import android.os.Parcel; import android.os.Parcelable; +import javax.inject.Inject; +import javax.inject.Singleton; -public class Announcement implements Parcelable { +import dagger.Provides; +public class Announcement implements Parcelable { @Attribute(name = "resource", required = false) String resource; @@ -40,8 +43,6 @@ public class Announcement implements Parcelable { @Text String content; - - public String getContent() { return content; } @@ -87,10 +88,8 @@ public class Announcement implements Parcelable { dest.writeString(this.content); } - public Announcement() { - } - protected Announcement(Parcel in) { + public Announcement(Parcel in) { this.resource = in.readString(); this.uri = in.readString(); this.id = in.readString(); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/data/model/Announcements.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/data/model/Announcements.java b/app/src/main/java/org/apache/taverna/mobile/data/model/Announcements.java index 8ac3de4..c66b3e0 100644 --- a/app/src/main/java/org/apache/taverna/mobile/data/model/Announcements.java +++ b/app/src/main/java/org/apache/taverna/mobile/data/model/Announcements.java @@ -26,7 +26,6 @@ import android.os.Parcelable; import java.util.List; - @Root(name = "announcements") public class Announcements implements Parcelable { http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/data/remote/BaseApiManager.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/data/remote/BaseApiManager.java b/app/src/main/java/org/apache/taverna/mobile/data/remote/BaseApiManager.java index 84d5aed..83fe64b 100644 --- a/app/src/main/java/org/apache/taverna/mobile/data/remote/BaseApiManager.java +++ b/app/src/main/java/org/apache/taverna/mobile/data/remote/BaseApiManager.java @@ -18,21 +18,31 @@ */ package org.apache.taverna.mobile.data.remote; -import org.apache.taverna.mobile.TavernaApplication; import org.apache.taverna.mobile.data.local.PreferencesHelper; +import javax.inject.Inject; +import javax.inject.Singleton; + import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; import retrofit2.converter.simplexml.SimpleXmlConverterFactory; +@Singleton public class BaseApiManager { public static final String MY_EXPERIMENT_END_POINT = "http://www.myexperiment.org/"; + PreferencesHelper mPreferencesHelper; + + @Inject + public BaseApiManager(PreferencesHelper preferencesHelper) { + mPreferencesHelper = preferencesHelper; + } + /******** * Helper class that sets up a new services with simplexml converter factory *******/ @@ -70,7 +80,6 @@ public class BaseApiManager { } public TavernaPlayerService getTavernaPlayerApi() { - return createJsonApi(TavernaPlayerService.class, - new PreferencesHelper(TavernaApplication.getContext()).getPlayerURL()); + return createJsonApi(TavernaPlayerService.class, mPreferencesHelper.getPlayerURL()); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/injection/ActivityContext.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/injection/ActivityContext.java b/app/src/main/java/org/apache/taverna/mobile/injection/ActivityContext.java new file mode 100644 index 0000000..1476b50 --- /dev/null +++ b/app/src/main/java/org/apache/taverna/mobile/injection/ActivityContext.java @@ -0,0 +1,11 @@ +package org.apache.taverna.mobile.injection; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +import javax.inject.Qualifier; + +@Qualifier +@Retention(RetentionPolicy.RUNTIME) +public @interface ActivityContext { +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/injection/ApplicationContext.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/injection/ApplicationContext.java b/app/src/main/java/org/apache/taverna/mobile/injection/ApplicationContext.java new file mode 100644 index 0000000..e71f26a --- /dev/null +++ b/app/src/main/java/org/apache/taverna/mobile/injection/ApplicationContext.java @@ -0,0 +1,11 @@ +package org.apache.taverna.mobile.injection; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +import javax.inject.Qualifier; + +@Qualifier +@Retention(RetentionPolicy.RUNTIME) +public @interface ApplicationContext { +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/injection/PerActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/injection/PerActivity.java b/app/src/main/java/org/apache/taverna/mobile/injection/PerActivity.java new file mode 100755 index 0000000..e32dd59 --- /dev/null +++ b/app/src/main/java/org/apache/taverna/mobile/injection/PerActivity.java @@ -0,0 +1,17 @@ +package org.apache.taverna.mobile.injection; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +import javax.inject.Scope; + +/** + * A scoping annotation to permit objects whose lifetime should + * conform to the life of the Activity to be memorised in the + * correct component. + */ + +@Scope +@Retention(RetentionPolicy.RUNTIME) +public @interface PerActivity { +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/injection/component/ActivityComponent.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/injection/component/ActivityComponent.java b/app/src/main/java/org/apache/taverna/mobile/injection/component/ActivityComponent.java new file mode 100644 index 0000000..c6705f6 --- /dev/null +++ b/app/src/main/java/org/apache/taverna/mobile/injection/component/ActivityComponent.java @@ -0,0 +1,78 @@ +package org.apache.taverna.mobile.injection.component; + +import org.apache.taverna.mobile.injection.PerActivity; +import org.apache.taverna.mobile.injection.module.ActivityModule; +import org.apache.taverna.mobile.ui.DashboardActivity; +import org.apache.taverna.mobile.ui.anouncements.AnnouncementFragment; +import org.apache.taverna.mobile.ui.favouriteworkflow.FavouriteWorkflowsActivity; +import org.apache.taverna.mobile.ui.favouriteworkflow.FavouriteWorkflowsFragment; +import org.apache.taverna.mobile.ui.favouriteworkflowdetail.FavouriteWorkflowDetailActivity; +import org.apache.taverna.mobile.ui.favouriteworkflowdetail.FavouriteWorkflowDetailFragment; +import org.apache.taverna.mobile.ui.imagezoom.ImageZoomActivity; +import org.apache.taverna.mobile.ui.imagezoom.ImageZoomFragment; +import org.apache.taverna.mobile.ui.login.LoginActivity; +import org.apache.taverna.mobile.ui.login.LoginFragment; +import org.apache.taverna.mobile.ui.myworkflows.MyWorkflowActivity; +import org.apache.taverna.mobile.ui.myworkflows.MyWorkflowFragment; +import org.apache.taverna.mobile.ui.playerlogin.PlayerLoginFragment; +import org.apache.taverna.mobile.ui.tutorial.TutorialActivity; +import org.apache.taverna.mobile.ui.usage.UsageActivity; +import org.apache.taverna.mobile.ui.userprofile.UserProfileActivity; +import org.apache.taverna.mobile.ui.userprofile.UserProfileFragment; +import org.apache.taverna.mobile.ui.workflow.WorkflowFragment; +import org.apache.taverna.mobile.ui.workflowdetail.WorkflowDetailActivity; +import org.apache.taverna.mobile.ui.workflowdetail.WorkflowDetailFragment; +import org.apache.taverna.mobile.ui.workflowrun.WorkflowRunActivity; + +import dagger.Component; + +/** + * This component inject dependencies to all Activities across the application + */ + +@PerActivity +@Component(dependencies = ApplicationComponent.class, modules = ActivityModule.class) +public interface ActivityComponent { + + void inject(DashboardActivity dashboardActivity); + + void inject(FavouriteWorkflowsActivity favouriteWorkflowsActivity); + + void inject(FavouriteWorkflowDetailActivity favouriteWorkflowDetailActivity); + + void inject(ImageZoomActivity imageZoomActivity); + + void inject(LoginActivity loginActivity); + + void inject(MyWorkflowActivity myWorkflowActivity); + + void inject(TutorialActivity tutorialActivity); + + void inject(UsageActivity usageActivity); + + void inject(UserProfileActivity userProfileActivity); + + void inject(WorkflowDetailActivity workflowDetailActivity); + + void inject(AnnouncementFragment announcementFragment); + + void inject(FavouriteWorkflowsFragment favouriteWorkflowsFragment); + + void inject(FavouriteWorkflowDetailFragment favouriteWorkflowDetailFragment); + + void inject(ImageZoomFragment imageZoomFragment); + + void inject(LoginFragment loginFragment); + + void inject(MyWorkflowFragment myWorkflowFragment); + + void inject(PlayerLoginFragment playerLoginFragment); + + void inject(UserProfileFragment userProfileFragment); + + void inject(WorkflowFragment workflowFragment); + + void inject(WorkflowDetailFragment workflowDetailFragment); + + void inject(WorkflowRunActivity workflowRunActivity); +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/injection/component/ApplicationComponent.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/injection/component/ApplicationComponent.java b/app/src/main/java/org/apache/taverna/mobile/injection/component/ApplicationComponent.java new file mode 100644 index 0000000..517a3a5 --- /dev/null +++ b/app/src/main/java/org/apache/taverna/mobile/injection/component/ApplicationComponent.java @@ -0,0 +1,26 @@ +package org.apache.taverna.mobile.injection.component; + +import android.app.Application; +import android.content.Context; + +import org.apache.taverna.mobile.data.DataManager; +import org.apache.taverna.mobile.data.local.PreferencesHelper; +import org.apache.taverna.mobile.injection.ApplicationContext; +import org.apache.taverna.mobile.injection.module.ActivityModule; +import org.apache.taverna.mobile.injection.module.ApplicationModule; + +import javax.inject.Singleton; + +import dagger.Component; + +@Singleton +@Component(modules = ApplicationModule.class) +public interface ApplicationComponent { + + @ApplicationContext + Context context(); + Application application(); + DataManager dataManager(); + PreferencesHelper preferencesHelper(); + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/injection/module/ActivityModule.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/injection/module/ActivityModule.java b/app/src/main/java/org/apache/taverna/mobile/injection/module/ActivityModule.java new file mode 100644 index 0000000..d54752a --- /dev/null +++ b/app/src/main/java/org/apache/taverna/mobile/injection/module/ActivityModule.java @@ -0,0 +1,30 @@ +package org.apache.taverna.mobile.injection.module; + +import android.app.Activity; +import android.content.Context; + +import org.apache.taverna.mobile.injection.ActivityContext; + +import dagger.Module; +import dagger.Provides; + +@Module +public class ActivityModule { + + private Activity mActivity; + + public ActivityModule(Activity activity) { + mActivity = activity; + } + + @Provides + Activity provideActivity() { + return mActivity; + } + + @Provides + @ActivityContext + Context providesContext() { + return mActivity; + } +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/injection/module/ApplicationModule.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/injection/module/ApplicationModule.java b/app/src/main/java/org/apache/taverna/mobile/injection/module/ApplicationModule.java new file mode 100644 index 0000000..f6c04c6 --- /dev/null +++ b/app/src/main/java/org/apache/taverna/mobile/injection/module/ApplicationModule.java @@ -0,0 +1,40 @@ +package org.apache.taverna.mobile.injection.module; + +import android.app.Application; +import android.content.Context; +import android.content.SharedPreferences; + +import com.raizlabs.android.dbflow.annotation.Database; + +import org.apache.taverna.mobile.data.remote.TavernaService; +import org.apache.taverna.mobile.injection.ApplicationContext; + +import javax.inject.Singleton; + +import dagger.Module; +import dagger.Provides; + +/** + * Provide application-level dependencies. + */ + +@Module +public class ApplicationModule { + protected final Application mApplication; + + public ApplicationModule(Application application) { + mApplication = application; + } + + @Provides + Application provideApplication() { + return mApplication; + } + + @Provides + @ApplicationContext + Context provideContext() { + return mApplication; + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/DashboardActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/DashboardActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/DashboardActivity.java index 2b32bbf..4410d5f 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/DashboardActivity.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/DashboardActivity.java @@ -55,15 +55,19 @@ import com.bumptech.glide.load.resource.drawable.GlideDrawable; import com.bumptech.glide.request.animation.GlideAnimation; import com.bumptech.glide.request.target.SimpleTarget; +import javax.inject.Inject; + import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import de.hdodenhof.circleimageview.CircleImageView; -import static org.apache.taverna.mobile.TavernaApplication.getContext; +import static com.raizlabs.android.dbflow.config.FlowManager.getContext; public class DashboardActivity extends AppCompatActivity { + @Inject DataManager dataManager; + @BindView(R.id.nav_view) NavigationView navigationView; @@ -74,7 +78,6 @@ public class DashboardActivity extends AppCompatActivity { Toolbar toolbar; private Dialog dialog; - private DataManager dataManager; private Fragment fragment; private MenuItem item; @@ -110,8 +113,6 @@ public class DashboardActivity extends AppCompatActivity { navigationView.setCheckedItem(R.id.nav_workflows); } - dataManager = new DataManager(new PreferencesHelper(this)); - setNavHeader(); } @@ -277,7 +278,7 @@ public class DashboardActivity extends AppCompatActivity { private void signOut() { mDrawerLayout.closeDrawers(); dataManager.getPreferencesHelper().clear(); - dataManager.mDBHelper.clearFavouriteWorkflow(); + dataManager.getDBHelper().clearFavouriteWorkflow(); startActivity(new Intent(getApplicationContext(), LoginActivity.class)); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/DownloadingFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/DownloadingFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/DownloadingFragment.java index 11c1300..4c3dc8b 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/DownloadingFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/DownloadingFragment.java @@ -32,10 +32,8 @@ import org.apache.taverna.mobile.utils.Constants; import butterknife.BindView; import butterknife.ButterKnife; - public class DownloadingFragment extends Fragment { - @BindView(R.id.tvMessage) TextView tv_Message; @@ -50,7 +48,6 @@ public class DownloadingFragment extends Fragment { return fragment; } - @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -76,5 +73,4 @@ public class DownloadingFragment extends Fragment { tv_Message.setText(message); } - } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/FlashScreenActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/FlashScreenActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/FlashScreenActivity.java index e882a5a..2a1dd61 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/FlashScreenActivity.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/FlashScreenActivity.java @@ -18,7 +18,6 @@ */ package org.apache.taverna.mobile.ui; - import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; @@ -32,6 +31,8 @@ import org.apache.taverna.mobile.ui.tutorial.TutorialActivity; import java.util.concurrent.TimeUnit; +import javax.inject.Inject; + import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.functions.Consumer; @@ -39,16 +40,14 @@ import io.reactivex.schedulers.Schedulers; public class FlashScreenActivity extends AppCompatActivity { - private DataManager dataManager; - private PreferencesHelper preferencesHelper; - + @Inject + DataManager dataManager; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_flash_screen); - preferencesHelper = new PreferencesHelper(this); - dataManager = new DataManager(new PreferencesHelper(this)); + Observable.timer(2, TimeUnit.SECONDS) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -57,7 +56,7 @@ public class FlashScreenActivity extends AppCompatActivity { public void accept(Long aLong) throws Exception { if (!dataManager.getPreferencesHelper().isLoggedInFlag()) { dataManager.getPreferencesHelper().clear(); - if (preferencesHelper.isFirstTimeLaunch()) { + if (dataManager.getPreferencesHelper().isFirstTimeLaunch()) { startActivity(new Intent(FlashScreenActivity.this, TutorialActivity.class)); (FlashScreenActivity.this).finish(); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/adapter/AnnouncementAdapter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/AnnouncementAdapter.java b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/AnnouncementAdapter.java index 70b91af..a3cc635 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/AnnouncementAdapter.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/AnnouncementAdapter.java @@ -30,10 +30,11 @@ import android.widget.TextView; import java.util.List; +import javax.inject.Inject; + import butterknife.BindView; import butterknife.ButterKnife; - public class AnnouncementAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private final int VIEW_ITEM = 1; http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/adapter/FavouriteWorkflowsAdapter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/FavouriteWorkflowsAdapter.java b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/FavouriteWorkflowsAdapter.java index c5c462f..44ba09b 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/FavouriteWorkflowsAdapter.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/FavouriteWorkflowsAdapter.java @@ -42,6 +42,8 @@ import org.apache.taverna.mobile.data.model.Workflow; import java.util.List; +import javax.inject.Inject; + import butterknife.BindView; import butterknife.ButterKnife; @@ -50,9 +52,9 @@ public class FavouriteWorkflowsAdapter extends RecyclerView.Adapter<RecyclerView private static final String TAG = FavouriteWorkflowsAdapter.class.getName(); private final List<Workflow> mWorkflowList; - private final Context context; + public FavouriteWorkflowsAdapter(List<Workflow> mWorkflowList, Context context) { this.mWorkflowList = mWorkflowList; this.context = context; http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/adapter/TutorialSliderAdapter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/TutorialSliderAdapter.java b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/TutorialSliderAdapter.java index 607d2e2..ebdc277 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/TutorialSliderAdapter.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/TutorialSliderAdapter.java @@ -25,12 +25,17 @@ import android.view.View; import android.view.ViewGroup; import org.apache.taverna.mobile.data.model.TutorialSliderEnum; +import org.apache.taverna.mobile.injection.ApplicationContext; + +import javax.inject.Inject; public class TutorialSliderAdapter extends PagerAdapter { private Context context; - public TutorialSliderAdapter(Context context) { + + @Inject + public TutorialSliderAdapter(@ApplicationContext Context context) { this.context = context; } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java index 0b7901d..ab011f6 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java @@ -43,6 +43,8 @@ import android.widget.TextView; import java.util.List; +import javax.inject.Inject; + import butterknife.BindView; import butterknife.ButterKnife; @@ -54,9 +56,9 @@ public class WorkflowAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde private static final String TAG = WorkflowAdapter.class.getName(); private final List<Workflow> mWorkflowList; - private final Context context; + public WorkflowAdapter(List<Workflow> mWorkflowList, Context context) { this.mWorkflowList = mWorkflowList; this.context = context; http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementFragment.java index 40a8c27..ac1df9b 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementFragment.java @@ -22,9 +22,12 @@ import org.apache.taverna.mobile.R; import org.apache.taverna.mobile.data.DataManager; import org.apache.taverna.mobile.data.model.Announcements; import org.apache.taverna.mobile.data.model.DetailAnnouncement; +import org.apache.taverna.mobile.injection.component.ActivityComponent; +import org.apache.taverna.mobile.injection.module.ActivityModule; import org.apache.taverna.mobile.ui.adapter.AnnouncementAdapter; import org.apache.taverna.mobile.ui.adapter.EndlessRecyclerOnScrollListener; import org.apache.taverna.mobile.ui.adapter.RecyclerItemClickListner; +import org.apache.taverna.mobile.ui.base.BaseActivity; import org.apache.taverna.mobile.utils.ConnectionInfo; import org.apache.taverna.mobile.utils.ScrollChildSwipeRefreshLayout; @@ -48,15 +51,23 @@ import android.widget.Button; import android.widget.ProgressBar; import android.widget.TextView; +import javax.inject.Inject; + import butterknife.BindView; import butterknife.ButterKnife; - public class AnnouncementFragment extends Fragment implements RecyclerItemClickListner .OnItemClickListener, AnnouncementMvpView { public final String LOG_TAG = getClass().getSimpleName(); + @Inject + DataManager dataManager; + @Inject + AnnouncementPresenter mAnnouncementPresenter; + + AnnouncementAdapter mAnnouncementAdapter; + @BindView(R.id.rv_movies) RecyclerView mRecyclerView; @@ -72,12 +83,6 @@ public class AnnouncementFragment extends Fragment implements RecyclerItemClickL private Announcements mAnnouncements; - private DataManager dataManager; - - private AnnouncementPresenter mAnnouncementPresenter; - - private AnnouncementAdapter mAnnouncementAdapter; - private int mPageNumber = 1; private DetailAnnouncement mAnnouncementDetail; @@ -101,10 +106,7 @@ public class AnnouncementFragment extends Fragment implements RecyclerItemClickL @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - - mAnnouncements = new Announcements(); - dataManager = new DataManager(); - mAnnouncementPresenter = new AnnouncementPresenter(dataManager); + ((BaseActivity) getActivity()).getActivityComponent().inject(this); setHasOptionsMenu(true); } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementPresenter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementPresenter.java index 633d544..6045e82 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementPresenter.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/anouncements/AnnouncementPresenter.java @@ -29,6 +29,8 @@ import org.apache.taverna.mobile.ui.base.BasePresenter; import java.util.HashMap; import java.util.Map; +import javax.inject.Inject; + import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.observers.DisposableObserver; import io.reactivex.schedulers.Schedulers; @@ -41,6 +43,7 @@ public class AnnouncementPresenter extends BasePresenter<AnnouncementMvpView> { private DataManager mDataManager; private CompositeDisposable compositeDisposable; + @Inject public AnnouncementPresenter(DataManager dataManager) { mDataManager = dataManager; compositeDisposable = new CompositeDisposable(); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/base/BaseActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/base/BaseActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/base/BaseActivity.java new file mode 100644 index 0000000..37710b7 --- /dev/null +++ b/app/src/main/java/org/apache/taverna/mobile/ui/base/BaseActivity.java @@ -0,0 +1,27 @@ +package org.apache.taverna.mobile.ui.base; + +import org.apache.taverna.mobile.TavernaApplication; +import org.apache.taverna.mobile.injection.component.ActivityComponent; +import org.apache.taverna.mobile.injection.component.DaggerActivityComponent; +import org.apache.taverna.mobile.injection.module.ActivityModule; + +import android.support.v7.app.AppCompatActivity; + +/** + * @author lusifer + */ +public class BaseActivity extends AppCompatActivity { + + private ActivityComponent activityComponent; + + + public ActivityComponent getActivityComponent() { + if (activityComponent == null) { + activityComponent = DaggerActivityComponent.builder() + .activityModule(new ActivityModule(this)) + .applicationComponent(TavernaApplication.get(this).getComponent()) + .build(); + } + return activityComponent; + } +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsActivity.java index a8cceef..898322c 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsActivity.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsActivity.java @@ -9,12 +9,13 @@ import android.view.Menu; import android.view.MenuItem; import org.apache.taverna.mobile.R; +import org.apache.taverna.mobile.ui.base.BaseActivity; import org.apache.taverna.mobile.utils.ActivityUtils; import butterknife.BindView; import butterknife.ButterKnife; -public class FavouriteWorkflowsActivity extends AppCompatActivity { +public class FavouriteWorkflowsActivity extends BaseActivity { @BindView(R.id.toolbar) Toolbar mToolbar; http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsFragment.java index d988d78..8f0c4ab 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsFragment.java @@ -18,12 +18,12 @@ */ package org.apache.taverna.mobile.ui.favouriteworkflow; - import org.apache.taverna.mobile.R; import org.apache.taverna.mobile.data.DataManager; import org.apache.taverna.mobile.data.model.Workflow; import org.apache.taverna.mobile.ui.adapter.FavouriteWorkflowsAdapter; import org.apache.taverna.mobile.ui.adapter.RecyclerItemClickListner; +import org.apache.taverna.mobile.ui.base.BaseActivity; import org.apache.taverna.mobile.ui.favouriteworkflowdetail.FavouriteWorkflowDetailActivity; import org.apache.taverna.mobile.utils.Constants; @@ -50,6 +50,8 @@ import android.widget.Toast; import java.util.ArrayList; import java.util.List; +import javax.inject.Inject; + import butterknife.BindView; import butterknife.ButterKnife; @@ -58,6 +60,10 @@ public class FavouriteWorkflowsFragment extends Fragment public final String LOG_TAG = getClass().getSimpleName(); + @Inject DataManager dataManager; + @Inject FavouriteWorkflowsPresenter mFavouriteWorkflowsPresenter; + FavouriteWorkflowsAdapter mFavouriteWorkflowsAdapter; + FavouriteWorkflowsAdapter mSearchFavouriteWorkflowAdapter; @BindView(R.id.rv_fav_workflows) RecyclerView mRecyclerView; @@ -68,25 +74,13 @@ public class FavouriteWorkflowsFragment extends Fragment @BindView(R.id.layout_empty_fav_workflow) RelativeLayout tvNoWorkflowError; - private DataManager dataManager; - - private FavouriteWorkflowsPresenter mFavouriteWorkflowsPresenter; - - private FavouriteWorkflowsAdapter mFavouriteWorkflowsAdapter; - - private List<Workflow> mWorkflowList; + List<Workflow> mWorkflowList; private SearchView searchView; - private FavouriteWorkflowsAdapter mSearchFavouriteWorkflowAdapter; - @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - dataManager = new DataManager(); - - mFavouriteWorkflowsPresenter = new FavouriteWorkflowsPresenter(dataManager); - mWorkflowList = new ArrayList<>(); setHasOptionsMenu(true); } @@ -97,7 +91,7 @@ public class FavouriteWorkflowsFragment extends Fragment View rootView = inflater.inflate(R.layout.fragment_favourite_workflow_list, container, false); - + ((BaseActivity) getActivity()).getActivityComponent().inject(this); ButterKnife.bind(this, rootView); mFavouriteWorkflowsPresenter.attachView(this); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsPresenter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsPresenter.java index f0ab7bf..093545e 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsPresenter.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsPresenter.java @@ -28,12 +28,13 @@ import org.apache.taverna.mobile.utils.RxSearch; import java.util.List; import java.util.concurrent.TimeUnit; +import javax.inject.Inject; + import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.observers.DisposableObserver; import io.reactivex.schedulers.Schedulers; - public class FavouriteWorkflowsPresenter extends BasePresenter<FavouriteWorkflowsMvpView> { public final String LOG_TAG = getClass().getSimpleName(); @@ -41,6 +42,7 @@ public class FavouriteWorkflowsPresenter extends BasePresenter<FavouriteWorkflow private DataManager mDataManager; private CompositeDisposable compositeDisposable; + @Inject public FavouriteWorkflowsPresenter(DataManager dataManager) { mDataManager = dataManager; compositeDisposable = new CompositeDisposable(); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailActivity.java index 6e84a9e..5e102d9 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailActivity.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailActivity.java @@ -26,12 +26,13 @@ import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import org.apache.taverna.mobile.R; +import org.apache.taverna.mobile.ui.base.BaseActivity; import org.apache.taverna.mobile.utils.Constants; import butterknife.BindView; import butterknife.ButterKnife; -public class FavouriteWorkflowDetailActivity extends AppCompatActivity { +public class FavouriteWorkflowDetailActivity extends BaseActivity { @BindView(R.id.toolbar) Toolbar mToolbar; http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailFragment.java index de44e59..2da966c 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailFragment.java @@ -50,12 +50,15 @@ import org.apache.taverna.mobile.data.DataManager; import org.apache.taverna.mobile.data.model.License; import org.apache.taverna.mobile.data.model.User; import org.apache.taverna.mobile.data.model.Workflow; +import org.apache.taverna.mobile.ui.base.BaseActivity; import org.apache.taverna.mobile.ui.imagezoom.ImageZoomActivity; import org.apache.taverna.mobile.ui.imagezoom.ImageZoomFragment; import org.apache.taverna.mobile.ui.workflowrun.WorkflowRunActivity; import org.apache.taverna.mobile.utils.ConnectionInfo; import org.apache.taverna.mobile.utils.Constants; +import javax.inject.Inject; + import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; @@ -67,6 +70,9 @@ public class FavouriteWorkflowDetailFragment extends Fragment public final String LOG_TAG = getClass().getSimpleName(); + @Inject DataManager dataManager; + @Inject FavouriteWorkflowDetailPresenter mWorkflowDetailPresenter; + @BindView(R.id.ivWorkflowImage) ImageView workflowImage; @@ -105,10 +111,6 @@ public class FavouriteWorkflowDetailFragment extends Fragment private AlertDialog alertDialog; - private DataManager dataManager; - - private FavouriteWorkflowDetailPresenter mWorkflowDetailPresenter; - private String id; private String licenceId = null; @@ -136,8 +138,6 @@ public class FavouriteWorkflowDetailFragment extends Fragment id = getArguments().getString(ID); - dataManager = new DataManager(); - mWorkflowDetailPresenter = new FavouriteWorkflowDetailPresenter(dataManager); } @@ -146,7 +146,7 @@ public class FavouriteWorkflowDetailFragment extends Fragment savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_detail_workflow, container, false); - + ((BaseActivity) getActivity()).getActivityComponent().inject(this); ButterKnife.bind(this, rootView); mWorkflowDetailPresenter.attachView(this); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailPresenter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailPresenter.java index fe03548..d02d058 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailPresenter.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailPresenter.java @@ -27,6 +27,8 @@ import org.apache.taverna.mobile.ui.base.BasePresenter; import java.util.HashMap; import java.util.Map; +import javax.inject.Inject; + import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.observers.DisposableObserver; import io.reactivex.schedulers.Schedulers; @@ -40,6 +42,7 @@ public class FavouriteWorkflowDetailPresenter extends private DataManager mDataManager; private CompositeDisposable compositeDisposable; + @Inject public FavouriteWorkflowDetailPresenter(DataManager dataManager) { mDataManager = dataManager; compositeDisposable = new CompositeDisposable(); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/imagezoom/ImageZoomActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/imagezoom/ImageZoomActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/imagezoom/ImageZoomActivity.java index a49370c..3782973 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/imagezoom/ImageZoomActivity.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/imagezoom/ImageZoomActivity.java @@ -24,11 +24,12 @@ import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import org.apache.taverna.mobile.R; +import org.apache.taverna.mobile.ui.base.BaseActivity; import org.apache.taverna.mobile.utils.ActivityUtils; import butterknife.ButterKnife; -public class ImageZoomActivity extends AppCompatActivity { +public class ImageZoomActivity extends BaseActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/imagezoom/ImageZoomFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/imagezoom/ImageZoomFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/imagezoom/ImageZoomFragment.java index ad5680f..fcb2b41 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/imagezoom/ImageZoomFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/imagezoom/ImageZoomFragment.java @@ -40,8 +40,11 @@ import com.bumptech.glide.request.target.SizeReadyCallback; import com.bumptech.glide.request.target.Target; import org.apache.taverna.mobile.R; +import org.apache.taverna.mobile.ui.base.BaseActivity; import org.apache.taverna.mobile.utils.ConnectionInfo; +import javax.inject.Inject; + import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; @@ -55,6 +58,7 @@ public class ImageZoomFragment extends Fragment implements ImageZoomMvpView { private static final String SERVER_ERROR = "Sever Error. Please try after sometime"; + @Inject ImageZoomPresenter mImageZoomPresenter; @BindView(R.id.ivWorkflowImage) ImageView workflowImage; @@ -68,10 +72,6 @@ public class ImageZoomFragment extends Fragment implements ImageZoomMvpView { private String jpgURI; - private ImageZoomPresenter mImageZoomPresenter; - - - public static ImageZoomFragment newInstance(String jpgURI, String svgURI) { Bundle args = new Bundle(); args.putString(JPG_URI, jpgURI); @@ -86,7 +86,6 @@ public class ImageZoomFragment extends Fragment implements ImageZoomMvpView { super.onCreate(savedInstanceState); svgURI = getArguments().getString(SVG_URI); jpgURI = getArguments().getString(JPG_URI); - mImageZoomPresenter = new ImageZoomPresenter(); } @@ -95,7 +94,7 @@ public class ImageZoomFragment extends Fragment implements ImageZoomMvpView { savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_image_zoom, container, false); - + ((BaseActivity) getActivity()).getActivityComponent().inject(this); ButterKnife.bind(this, rootView); mImageZoomPresenter.attachView(this); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/imagezoom/ImageZoomPresenter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/imagezoom/ImageZoomPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/imagezoom/ImageZoomPresenter.java index fd8d43d..426405a 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/imagezoom/ImageZoomPresenter.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/imagezoom/ImageZoomPresenter.java @@ -43,11 +43,13 @@ import org.apache.taverna.mobile.utils.SvgDrawableTranscoder; import java.io.InputStream; -public class ImageZoomPresenter extends BasePresenter<ImageZoomMvpView> { +import javax.inject.Inject; +public class ImageZoomPresenter extends BasePresenter<ImageZoomMvpView> { private GenericRequestBuilder<Uri, InputStream, SVG, PictureDrawable> requestBuilder; + @Inject public ImageZoomPresenter() { } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/login/LoginActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/login/LoginActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/login/LoginActivity.java index 61d2341..882095c 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/login/LoginActivity.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/login/LoginActivity.java @@ -22,10 +22,11 @@ import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import org.apache.taverna.mobile.R; +import org.apache.taverna.mobile.ui.base.BaseActivity; import org.apache.taverna.mobile.utils.ActivityUtils; -public class LoginActivity extends AppCompatActivity { +public class LoginActivity extends BaseActivity { private static final String TAG = "LoginActivity"; @Override http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/login/LoginFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/login/LoginFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/login/LoginFragment.java index 23b97b8..930cc2a 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/login/LoginFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/login/LoginFragment.java @@ -23,6 +23,7 @@ import org.apache.taverna.mobile.R; import org.apache.taverna.mobile.data.DataManager; import org.apache.taverna.mobile.data.local.PreferencesHelper; import org.apache.taverna.mobile.ui.DashboardActivity; +import org.apache.taverna.mobile.ui.base.BaseActivity; import org.apache.taverna.mobile.utils.ConnectionInfo; import android.app.ProgressDialog; @@ -44,12 +45,17 @@ import android.view.WindowManager; import android.widget.CheckBox; import android.widget.EditText; +import javax.inject.Inject; + import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; public class LoginFragment extends Fragment implements LoginMvpView, View.OnFocusChangeListener { + @Inject DataManager dataManager; + @Inject LoginPresenter mLoginPresenter; + @BindView(R.id.etEmail) EditText mEditTextEmail; @@ -65,15 +71,10 @@ public class LoginFragment extends Fragment implements LoginMvpView, View.OnFocu @BindView(R.id.cbRemember) CheckBox mCheckBoxRemember; - private DataManager dataManager; - private LoginPresenter mLoginPresenter; - - private ProgressDialog progressDialog; private final String myExperimentURL = "https://www.myexperiment.org/users/new"; - public static LoginFragment newInstance() { LoginFragment fragment = new LoginFragment(); @@ -85,9 +86,6 @@ public class LoginFragment extends Fragment implements LoginMvpView, View.OnFocu super.onCreate(savedInstanceState); - dataManager = new DataManager(new PreferencesHelper(getContext())); - mLoginPresenter = new LoginPresenter(dataManager); - } @Override @@ -95,6 +93,7 @@ public class LoginFragment extends Fragment implements LoginMvpView, View.OnFocu savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_login, container, false); + ((BaseActivity) getActivity()).getActivityComponent().inject(this); ButterKnife.bind(this, rootView); mLoginPresenter.attachView(this); return rootView; http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/login/LoginPresenter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/login/LoginPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/login/LoginPresenter.java index 4b85914..e3fd901 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/login/LoginPresenter.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/login/LoginPresenter.java @@ -25,12 +25,13 @@ import org.apache.taverna.mobile.data.DataManager; import org.apache.taverna.mobile.data.model.User; import org.apache.taverna.mobile.ui.base.BasePresenter; +import javax.inject.Inject; + import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.observers.DisposableObserver; import io.reactivex.schedulers.Schedulers; - public class LoginPresenter extends BasePresenter<LoginMvpView> { public final String LOG_TAG = getClass().getSimpleName(); @@ -38,6 +39,7 @@ public class LoginPresenter extends BasePresenter<LoginMvpView> { private DataManager mDataManager; private CompositeDisposable compositeDisposable; + @Inject public LoginPresenter(DataManager dataManager) { mDataManager = dataManager; compositeDisposable = new CompositeDisposable(); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowActivity.java new file mode 100644 index 0000000..440af4f --- /dev/null +++ b/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowActivity.java @@ -0,0 +1,61 @@ +package org.apache.taverna.mobile.ui.myworkflows; + +import android.support.annotation.Nullable; +import android.support.v7.app.ActionBar; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.support.v7.widget.Toolbar; +import android.view.Menu; +import android.view.MenuItem; + +import org.apache.taverna.mobile.R; +import org.apache.taverna.mobile.ui.base.BaseActivity; +import org.apache.taverna.mobile.utils.ActivityUtils; + +import butterknife.BindView; +import butterknife.ButterKnife; + +public class MyWorkflowActivity extends BaseActivity { + + @BindView(R.id.toolbar) + Toolbar mToolbar; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_my_workflows); + + ButterKnife.bind(this); + + setSupportActionBar(mToolbar); + ActionBar actionbar = getSupportActionBar(); + + if (actionbar != null) { + actionbar.setHomeButtonEnabled(true); + actionbar.setDisplayHomeAsUpEnabled(true); + actionbar.setTitle(R.string.title_nav_my_workflows); + } + + if (savedInstanceState == null) { + ActivityUtils.addFragmentToActivity(getSupportFragmentManager(), + new MyWorkflowFragment(), R.id.frame_container); + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.dashboard_main, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + finish(); + return true; + } + return super.onOptionsItemSelected(item); + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowFragment.java index 0247d90..3f890dc 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowFragment.java @@ -24,6 +24,7 @@ import org.apache.taverna.mobile.data.local.PreferencesHelper; import org.apache.taverna.mobile.data.model.Workflow; import org.apache.taverna.mobile.ui.adapter.RecyclerItemClickListner; import org.apache.taverna.mobile.ui.adapter.WorkflowAdapter; +import org.apache.taverna.mobile.ui.base.BaseActivity; import org.apache.taverna.mobile.ui.workflowdetail.WorkflowDetailActivity; import org.apache.taverna.mobile.utils.ConnectionInfo; import org.apache.taverna.mobile.utils.ScrollChildSwipeRefreshLayout; @@ -47,6 +48,8 @@ import android.widget.RelativeLayout; import java.util.ArrayList; import java.util.List; +import javax.inject.Inject; + import butterknife.BindView; import butterknife.ButterKnife; @@ -55,6 +58,10 @@ public class MyWorkflowFragment extends Fragment implements MyWorkflowMvpView, public final String LOG_TAG = getClass().getSimpleName(); + @Inject DataManager dataManager; + @Inject MyWorkflowPresenter mWorkflowPresenter; + WorkflowAdapter mWorkflowAdapter; + @BindView(R.id.rv_workflows) RecyclerView mRecyclerView; @@ -67,13 +74,6 @@ public class MyWorkflowFragment extends Fragment implements MyWorkflowMvpView, @BindView(R.id.layout_empty_workflows) RelativeLayout mTextViewNoWorkflow; - private DataManager dataManager; - - private MyWorkflowPresenter mWorkflowPresenter; - - private WorkflowAdapter mWorkflowAdapter; - - private List<Workflow> mWorkflowList; @Override @@ -82,9 +82,6 @@ public class MyWorkflowFragment extends Fragment implements MyWorkflowMvpView, mWorkflowList = new ArrayList<>(); - dataManager = new DataManager(new PreferencesHelper(getContext())); - - mWorkflowPresenter = new MyWorkflowPresenter(dataManager); setHasOptionsMenu(true); } @@ -94,7 +91,7 @@ public class MyWorkflowFragment extends Fragment implements MyWorkflowMvpView, savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_dashboard, container, false); - + ((BaseActivity) getActivity()).getActivityComponent().inject(this); ButterKnife.bind(this, rootView); mWorkflowPresenter.attachView(this); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowPresenter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowPresenter.java index 2fea21c..0107501 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowPresenter.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowPresenter.java @@ -28,6 +28,8 @@ import org.apache.taverna.mobile.ui.base.BasePresenter; import java.util.HashMap; import java.util.Map; +import javax.inject.Inject; + import io.reactivex.Observable; import io.reactivex.ObservableSource; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -41,9 +43,9 @@ public class MyWorkflowPresenter extends BasePresenter<MyWorkflowMvpView> { public final String LOG_TAG = getClass().getSimpleName(); private DataManager mDataManager; - private CompositeDisposable compositeDisposable; + @Inject public MyWorkflowPresenter(DataManager dataManager) { mDataManager = dataManager; compositeDisposable = new CompositeDisposable(); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowsActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowsActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowsActivity.java deleted file mode 100644 index 92aa528..0000000 --- a/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowsActivity.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.apache.taverna.mobile.ui.myworkflows; - -import android.support.annotation.Nullable; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; -import android.support.v7.widget.Toolbar; -import android.view.Menu; -import android.view.MenuItem; - -import org.apache.taverna.mobile.R; -import org.apache.taverna.mobile.utils.ActivityUtils; - -import butterknife.BindView; -import butterknife.ButterKnife; - -public class MyWorkflowsActivity extends AppCompatActivity { - - @BindView(R.id.toolbar) - Toolbar mToolbar; - - @Override - protected void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_my_workflows); - - ButterKnife.bind(this); - - setSupportActionBar(mToolbar); - ActionBar actionbar = getSupportActionBar(); - - if (actionbar != null) { - actionbar.setHomeButtonEnabled(true); - actionbar.setDisplayHomeAsUpEnabled(true); - actionbar.setTitle(R.string.title_nav_my_workflows); - } - - if (savedInstanceState == null) { - ActivityUtils.addFragmentToActivity(getSupportFragmentManager(), - new MyWorkflowFragment(), R.id.frame_container); - } - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.dashboard_main, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - finish(); - return true; - } - return super.onOptionsItemSelected(item); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java index 6c78ca8..3195f93 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginFragment.java @@ -22,6 +22,7 @@ package org.apache.taverna.mobile.ui.playerlogin; import org.apache.taverna.mobile.R; import org.apache.taverna.mobile.data.DataManager; import org.apache.taverna.mobile.data.local.PreferencesHelper; +import org.apache.taverna.mobile.ui.base.BaseActivity; import org.apache.taverna.mobile.utils.ConnectionInfo; import android.content.Context; @@ -39,6 +40,8 @@ import android.view.WindowManager; import android.widget.CheckBox; import android.widget.EditText; +import javax.inject.Inject; + import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; @@ -47,6 +50,9 @@ import butterknife.OnClick; public class PlayerLoginFragment extends Fragment implements PlayerLoginMvpView, View .OnFocusChangeListener { + @Inject DataManager dataManager; + @Inject PlayerLoginPresenter mPlayerLoginPresenter; + @BindView(R.id.etEmail) EditText mEditTextEmail; @@ -62,13 +68,10 @@ public class PlayerLoginFragment extends Fragment implements PlayerLoginMvpView, @BindView(R.id.cbRemember) CheckBox mCheckBoxRemember; OnSuccessful mCallback; - private DataManager dataManager; - private PlayerLoginPresenter mPlayerLoginPresenter; public static PlayerLoginFragment newInstance() { Bundle args = new Bundle(); - PlayerLoginFragment fragment = new PlayerLoginFragment(); fragment.setArguments(args); return fragment; @@ -78,8 +81,6 @@ public class PlayerLoginFragment extends Fragment implements PlayerLoginMvpView, public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - dataManager = new DataManager(new PreferencesHelper(getContext())); - mPlayerLoginPresenter = new PlayerLoginPresenter(dataManager); } @@ -88,6 +89,7 @@ public class PlayerLoginFragment extends Fragment implements PlayerLoginMvpView, savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_player_login_layout, container, false); + ((BaseActivity) getActivity()).getActivityComponent().inject(this); ButterKnife.bind(this, rootView); mPlayerLoginPresenter.attachView(this); String email = dataManager.getPreferencesHelper().getPlayerUserEmail(); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java index b8a4d65..b75a9d0 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/playerlogin/PlayerLoginPresenter.java @@ -25,6 +25,8 @@ import org.apache.taverna.mobile.R; import org.apache.taverna.mobile.data.DataManager; import org.apache.taverna.mobile.ui.base.BasePresenter; +import javax.inject.Inject; + import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.observers.DisposableObserver; @@ -39,6 +41,7 @@ public class PlayerLoginPresenter extends BasePresenter<PlayerLoginMvpView> { private DataManager mDataManager; private CompositeDisposable compositeDisposable; + @Inject public PlayerLoginPresenter(DataManager dataManager) { mDataManager = dataManager; compositeDisposable = new CompositeDisposable(); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/tutorial/TutorialActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/tutorial/TutorialActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/tutorial/TutorialActivity.java index 23b11f0..1efaa9c 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/tutorial/TutorialActivity.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/tutorial/TutorialActivity.java @@ -33,14 +33,16 @@ import org.apache.taverna.mobile.R; import org.apache.taverna.mobile.data.local.PreferencesHelper; import org.apache.taverna.mobile.data.model.TutorialSliderEnum; import org.apache.taverna.mobile.ui.adapter.TutorialSliderAdapter; +import org.apache.taverna.mobile.ui.base.BaseActivity; import org.apache.taverna.mobile.ui.login.LoginActivity; +import javax.inject.Inject; + import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; - -public class TutorialActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener { +public class TutorialActivity extends BaseActivity implements ViewPager.OnPageChangeListener { @BindView(R.id.slide_pager) ViewPager slidePager; @@ -54,12 +56,13 @@ public class TutorialActivity extends AppCompatActivity implements ViewPager.OnP @BindView(R.id.btn_next) Button bNext; - private PreferencesHelper preferencesHelper; + @Inject + PreferencesHelper preferencesHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - preferencesHelper = new PreferencesHelper(this); + getActivityComponent().inject(this); setContentView(R.layout.activity_tutorial); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileActivity.java index 9e3719f..437fd47 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileActivity.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileActivity.java @@ -26,11 +26,12 @@ import android.support.v7.widget.Toolbar; import android.view.MenuItem; import org.apache.taverna.mobile.R; +import org.apache.taverna.mobile.ui.base.BaseActivity; import org.apache.taverna.mobile.utils.ActivityUtils; import butterknife.BindView; import butterknife.ButterKnife; -public class UserProfileActivity extends AppCompatActivity { +public class UserProfileActivity extends BaseActivity { @BindView(R.id.toolbar) Toolbar mToolbar; @@ -55,7 +56,6 @@ public class UserProfileActivity extends AppCompatActivity { ActivityUtils.addFragmentToActivity(getSupportFragmentManager(), new UserProfileFragment(), R.id.frame_container); } - } @Override http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileFragment.java index c80a17e..de266f2 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileFragment.java @@ -17,8 +17,11 @@ import com.bumptech.glide.request.target.SimpleTarget; import org.apache.taverna.mobile.R; import org.apache.taverna.mobile.data.DataManager; import org.apache.taverna.mobile.data.local.PreferencesHelper; +import org.apache.taverna.mobile.ui.base.BaseActivity; import org.apache.taverna.mobile.ui.favouriteworkflow.FavouriteWorkflowsActivity; -import org.apache.taverna.mobile.ui.myworkflows.MyWorkflowsActivity; +import org.apache.taverna.mobile.ui.myworkflows.MyWorkflowActivity; + +import javax.inject.Inject; import butterknife.BindView; import butterknife.ButterKnife; @@ -27,6 +30,8 @@ import de.hdodenhof.circleimageview.CircleImageView; public class UserProfileFragment extends Fragment { + @Inject DataManager dataManager; + @BindView(R.id.user_name) TextView mUserName; @@ -48,8 +53,6 @@ public class UserProfileFragment extends Fragment { @BindView(R.id.user_country) TextView mUserCountry; - private DataManager dataManager; - @Override public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_user_profile, parent, false); @@ -58,6 +61,7 @@ public class UserProfileFragment extends Fragment { @Override public void onViewCreated(View view, Bundle savedInstanceState) { + ((BaseActivity) getActivity()).getActivityComponent().inject(this); ButterKnife.bind(this, view); setUserDetail(); @@ -66,7 +70,7 @@ public class UserProfileFragment extends Fragment { @OnClick(R.id.my_workflow_layout) void myWorkflows(View v) { - Intent intent = new Intent(getActivity(), MyWorkflowsActivity.class); + Intent intent = new Intent(getActivity(), MyWorkflowActivity.class); getActivity().startActivity(intent); } @@ -78,8 +82,6 @@ public class UserProfileFragment extends Fragment { private void setUserDetail() { - dataManager = new DataManager(new PreferencesHelper(getContext())); - String userName = dataManager.getPreferencesHelper().getUserName(); String userDescription = dataManager.getPreferencesHelper().getUserDescription(); String userEmail = dataManager.getPreferencesHelper().getUserEmail(); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java index ddd9b0b..b87b947 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java @@ -18,7 +18,6 @@ */ package org.apache.taverna.mobile.ui.workflow; - import org.apache.taverna.mobile.R; import org.apache.taverna.mobile.data.DataManager; import org.apache.taverna.mobile.data.model.Workflow; @@ -26,6 +25,7 @@ import org.apache.taverna.mobile.data.model.Workflows; import org.apache.taverna.mobile.ui.adapter.EndlessRecyclerOnScrollListener; import org.apache.taverna.mobile.ui.adapter.RecyclerItemClickListner; import org.apache.taverna.mobile.ui.adapter.WorkflowAdapter; +import org.apache.taverna.mobile.ui.base.BaseActivity; import org.apache.taverna.mobile.ui.workflowdetail.WorkflowDetailActivity; import org.apache.taverna.mobile.utils.ConnectionInfo; import org.apache.taverna.mobile.utils.Constants; @@ -53,6 +53,8 @@ import android.widget.ProgressBar; import java.util.ArrayList; import java.util.List; +import javax.inject.Inject; + import butterknife.BindView; import butterknife.ButterKnife; @@ -61,6 +63,11 @@ public class WorkflowFragment extends Fragment implements WorkflowMvpView, public final String LOG_TAG = getClass().getSimpleName(); + @Inject + WorkflowPresenter mWorkflowPresenter; + WorkflowAdapter mWorkflowAdapter; + WorkflowAdapter mSearchWorkflowAdapter; + @BindView(R.id.rv_workflows) RecyclerView mRecyclerView; @@ -70,10 +77,6 @@ public class WorkflowFragment extends Fragment implements WorkflowMvpView, @BindView(R.id.swipe_refresh) ScrollChildSwipeRefreshLayout mSwipeRefresh; - private WorkflowPresenter mWorkflowPresenter; - private WorkflowAdapter mWorkflowAdapter; - private WorkflowAdapter mSearchWorkflowAdapter; - private int mPageNumber = 1; private int mSearchPageNumber = 1; @@ -87,8 +90,6 @@ public class WorkflowFragment extends Fragment implements WorkflowMvpView, super.onCreate(savedInstanceState); mWorkflowList = new ArrayList<>(); mSearchWorkflowList = new ArrayList<>(); - DataManager dataManager = new DataManager(); - mWorkflowPresenter = new WorkflowPresenter(dataManager); setHasOptionsMenu(true); } @@ -96,6 +97,7 @@ public class WorkflowFragment extends Fragment implements WorkflowMvpView, public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_dashboard, container, false); + ((BaseActivity) getActivity()).getActivityComponent().inject(this); ButterKnife.bind(this, rootView); mWorkflowPresenter.attachView(this); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/c421e709/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java index 18a166a..24d0827 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java @@ -32,6 +32,8 @@ import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; +import javax.inject.Inject; + import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.observers.DisposableObserver; @@ -40,10 +42,11 @@ import io.reactivex.schedulers.Schedulers; public class WorkflowPresenter extends BasePresenter<WorkflowMvpView> { public final String LOG_TAG = WorkflowPresenter.class.getSimpleName(); + private DataManager mDataManager; private CompositeDisposable compositeDisposable; - + @Inject public WorkflowPresenter(DataManager dataManager) { mDataManager = dataManager; compositeDisposable = new CompositeDisposable();
