Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
android-mvp
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Marcus Sales
android-mvp
Commits
5be2ae99
Commit
5be2ae99
authored
Mar 02, 2017
by
Marcus Sales
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Dependências diretas substituídas por módulos de DI.
parent
00df9753
Changes
26
Show whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
449 additions
and
69 deletions
+449
-69
build.gradle
app/build.gradle
+18
-19
MvpApp.java
app/src/main/java/br/com/evologica/mvp/MvpApp.java
+26
-4
AppDataManager.java
...c/main/java/br/com/evologica/mvp/data/AppDataManager.java
+17
-16
AppPreferencesHelper.java
...br/com/evologica/mvp/data/prefs/AppPreferencesHelper.java
+10
-2
ActivityContext.java
...rc/main/java/br/com/evologica/mvp/di/ActivityContext.java
+15
-0
ApiInfo.java
app/src/main/java/br/com/evologica/mvp/di/ApiInfo.java
+15
-0
ApplicationContext.java
...main/java/br/com/evologica/mvp/di/ApplicationContext.java
+15
-0
DatabaseInfo.java
app/src/main/java/br/com/evologica/mvp/di/DatabaseInfo.java
+15
-0
PerActivity.java
app/src/main/java/br/com/evologica/mvp/di/PerActivity.java
+16
-0
PreferenceInfo.java
...src/main/java/br/com/evologica/mvp/di/PreferenceInfo.java
+16
-0
ActivityComponent.java
.../br/com/evologica/mvp/di/component/ActivityComponent.java
+23
-0
ApplicationComponent.java
.../com/evologica/mvp/di/component/ApplicationComponent.java
+31
-0
ActivityModule.java
...n/java/br/com/evologica/mvp/di/module/ActivityModule.java
+61
-0
ApplicationModule.java
...ava/br/com/evologica/mvp/di/module/ApplicationModule.java
+70
-0
BaseActivity.java
.../main/java/br/com/evologica/mvp/ui/base/BaseActivity.java
+21
-0
BasePresenter.java
...main/java/br/com/evologica/mvp/ui/base/BasePresenter.java
+15
-0
LoginActivity.java
...ain/java/br/com/evologica/mvp/ui/login/LoginActivity.java
+10
-3
LoginMvpPresenter.java
...java/br/com/evologica/mvp/ui/login/LoginMvpPresenter.java
+2
-0
LoginPresenter.java
...in/java/br/com/evologica/mvp/ui/login/LoginPresenter.java
+11
-2
MainActivity.java
.../main/java/br/com/evologica/mvp/ui/main/MainActivity.java
+8
-9
MainMvpPresenter.java
...n/java/br/com/evologica/mvp/ui/main/MainMvpPresenter.java
+2
-0
MainPresenter.java
...main/java/br/com/evologica/mvp/ui/main/MainPresenter.java
+9
-2
SplashActivity.java
...n/java/br/com/evologica/mvp/ui/splash/SplashActivity.java
+7
-5
SplashMvpPresenter.java
...va/br/com/evologica/mvp/ui/splash/SplashMvpPresenter.java
+2
-0
SplashPresenter.java
.../java/br/com/evologica/mvp/ui/splash/SplashPresenter.java
+9
-2
build.gradle
build.gradle
+5
-5
No files found.
app/build.gradle
View file @
5be2ae99
...
...
@@ -42,11 +42,11 @@ dependencies {
// compile "org.greenrobot:greendao:$rootProject.greenDaoVersion"
// debugCompile "com.amitshekhar.android:debug-db:$rootProject.debugDBVersion"
//
//
// dependency injection
//
compile "com.google.dagger:dagger:$rootProject.dagger2Version"
//
annotationProcessor "com.google.dagger:dagger-compiler:$rootProject.dagger2Version"
//
provided 'javax.annotation:jsr250-api:1.0'
//
compile 'javax.inject:javax.inject:1'
// dependency injection
compile
"com.google.dagger:dagger:$rootProject.dagger2Version"
annotationProcessor
"com.google.dagger:dagger-compiler:$rootProject.dagger2Version"
provided
'javax.annotation:jsr250-api:1.0'
compile
'javax.inject:javax.inject:1'
//
// // reactive
// compile "io.reactivex.rxjava2:rxjava:$rootProject.rxjava2Version"
...
...
@@ -62,19 +62,18 @@ dependencies {
// // logger
// compile "com.jakewharton.timber:timber:$rootProject.timberVersion"
//
//
// dependencies for local unit tests
//
testCompile "junit:junit:$rootProject.ext.junitVersion"
//
testCompile "org.mockito:mockito-core:$rootProject.mockitoVersion"
//
testAnnotationProcessor "com.google.dagger:dagger-compiler:$rootProject.dagger2Version"
// dependencies for local unit tests
testCompile
"junit:junit:$rootProject.ext.junitVersion"
testCompile
"org.mockito:mockito-core:$rootProject.mockitoVersion"
testAnnotationProcessor
"com.google.dagger:dagger-compiler:$rootProject.dagger2Version"
//
// // UI Testing
// androidTestCompile "com.android.support.test.espresso:espresso-core:$rootProject.espressoVersion"
// androidTestCompile "com.android.support.test.espresso:espresso-intents:$rootProject.espressoVersion"
// androidTestCompile "org.mockito:mockito-core:$rootProject.mockitoVersion"
// androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:$rootProject.dagger2Version"
// androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
// exclude group: 'com.android.support', module: 'support-annotations'
// })
// //compile 'com.android.support:appcompat-v7:25.1.0'
testCompile
'junit:junit:4.12'
// UI Testing
androidTestCompile
"com.android.support.test.espresso:espresso-core:$rootProject.espressoVersion"
androidTestCompile
"com.android.support.test.espresso:espresso-intents:$rootProject.espressoVersion"
androidTestCompile
"org.mockito:mockito-core:$rootProject.mockitoVersion"
androidTestAnnotationProcessor
"com.google.dagger:dagger-compiler:$rootProject.dagger2Version"
/* androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'*/
}
app/src/main/java/br/com/evologica/mvp/MvpApp.java
View file @
5be2ae99
...
...
@@ -2,7 +2,12 @@ package br.com.evologica.mvp;
import
android.app.Application
;
import
br.com.evologica.mvp.data.AppDataManager
;
import
javax.inject.Inject
;
import
br.com.evologica.mvp.data.DataManager
;
import
br.com.evologica.mvp.di.component.ApplicationComponent
;
import
br.com.evologica.mvp.di.component.DaggerApplicationComponent
;
import
br.com.evologica.mvp.di.module.ApplicationModule
;
import
uk.co.chrisjenx.calligraphy.CalligraphyConfig
;
/**
...
...
@@ -11,17 +16,34 @@ import uk.co.chrisjenx.calligraphy.CalligraphyConfig;
public
class
MvpApp
extends
Application
{
@Inject
DataManager
mDataManager
;
@Inject
CalligraphyConfig
mCalligraphyConfig
;
private
ApplicationComponent
mApplicationComponent
;
@Override
public
void
onCreate
()
{
super
.
onCreate
();
AppDataManager
.
initInstance
(
this
);
//
AppDataManager.initInstance(this);
CalligraphyConfig
.
initDefault
(
new
CalligraphyConfig
.
Builder
()
/*
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("fonts/source-sans-pro/SourceSansPro-Regular.ttf")
.setFontAttrId(R.attr.fontPath)
.
build
());
.build());*/
mApplicationComponent
=
DaggerApplicationComponent
.
builder
()
.
applicationModule
(
new
ApplicationModule
(
this
)).
build
();
mApplicationComponent
.
inject
(
this
);
CalligraphyConfig
.
initDefault
(
mCalligraphyConfig
);
}
public
ApplicationComponent
getComponent
()
{
return
mApplicationComponent
;
}
}
app/src/main/java/br/com/evologica/mvp/data/AppDataManager.java
View file @
5be2ae99
...
...
@@ -2,43 +2,44 @@ package br.com.evologica.mvp.data;
import
android.content.Context
;
import
br.com.evologica.mvp.data.prefs.AppPreferencesHelper
;
import
javax.inject.Inject
;
import
javax.inject.Singleton
;
import
br.com.evologica.mvp.data.prefs.PreferencesHelper
;
import
br.com.evologica.mvp.di.ApplicationContext
;
/**
* Created by marcussales on 01/03/2017.
*/
@Singleton
public
class
AppDataManager
implements
DataManager
{
private
AppPreferencesHelper
mAppPreferencesHelper
;
private
static
AppDataManager
_INSTANCE
;
public
static
AppDataManager
initInstance
(
Context
ctx
)
{
_INSTANCE
=
new
AppDataManager
(
ctx
);
return
_INSTANCE
;
}
private
static
final
String
TAG
=
"AppDataManager"
;
public
static
AppDataManager
getInstance
(){
return
_INSTANCE
;
}
private
final
Context
mContext
;
private
final
PreferencesHelper
mPreferencesHelper
;
public
AppDataManager
(
Context
ctx
)
{
mAppPreferencesHelper
=
new
AppPreferencesHelper
(
ctx
,
"whatever"
);
@Inject
public
AppDataManager
(
@ApplicationContext
Context
ctx
,
PreferencesHelper
preferencesHelper
)
{
mContext
=
ctx
;
mPreferencesHelper
=
preferencesHelper
;
}
@Override
public
void
setLoggedIn
()
{
m
App
PreferencesHelper
.
setLoggedIn
();
mPreferencesHelper
.
setLoggedIn
();
}
@Override
public
void
setLoggedOut
()
{
m
App
PreferencesHelper
.
setLoggedOut
();
mPreferencesHelper
.
setLoggedOut
();
}
@Override
public
boolean
isLogged
()
{
return
m
App
PreferencesHelper
.
isLogged
();
return
mPreferencesHelper
.
isLogged
();
}
}
app/src/main/java/br/com/evologica/mvp/data/prefs/AppPreferencesHelper.java
View file @
5be2ae99
...
...
@@ -3,18 +3,26 @@ package br.com.evologica.mvp.data.prefs;
import
android.content.Context
;
import
android.content.SharedPreferences
;
import
javax.inject.Inject
;
import
javax.inject.Singleton
;
import
br.com.evologica.mvp.di.ApplicationContext
;
import
br.com.evologica.mvp.di.PreferenceInfo
;
/**
* Created by marcussales on 01/03/2017.
*/
@Singleton
public
class
AppPreferencesHelper
implements
PreferencesHelper
{
private
static
final
String
PREF_KEY_USER_LOGGED_IN
=
"PREF_KEY_USER_LOGGED_IN"
;
private
final
SharedPreferences
mPrefs
;
public
AppPreferencesHelper
(
Context
context
,
String
prefFileName
)
{
@Inject
public
AppPreferencesHelper
(
@ApplicationContext
Context
context
,
@PreferenceInfo
String
prefFileName
)
{
mPrefs
=
context
.
getSharedPreferences
(
prefFileName
,
Context
.
MODE_PRIVATE
);
}
...
...
app/src/main/java/br/com/evologica/mvp/di/ActivityContext.java
0 → 100644
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
di
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
javax.inject.Qualifier
;
/**
* Created by marcussales on 02/03/2017.
*/
@Qualifier
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
ActivityContext
{
}
app/src/main/java/br/com/evologica/mvp/di/ApiInfo.java
0 → 100644
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
di
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
javax.inject.Qualifier
;
/**
* Created by marcussales on 02/03/2017.
*/
@Qualifier
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
ApiInfo
{
}
app/src/main/java/br/com/evologica/mvp/di/ApplicationContext.java
0 → 100644
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
di
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
javax.inject.Qualifier
;
/**
* Created by marcussales on 02/03/2017.
*/
@Qualifier
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
ApplicationContext
{
}
app/src/main/java/br/com/evologica/mvp/di/DatabaseInfo.java
0 → 100644
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
di
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
javax.inject.Qualifier
;
/**
* Created by marcussales on 02/03/2017.
*/
@Qualifier
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
DatabaseInfo
{
}
app/src/main/java/br/com/evologica/mvp/di/PerActivity.java
0 → 100644
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
di
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
javax.inject.Scope
;
/**
* Created by marcussales on 02/03/2017.
*/
@Scope
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
PerActivity
{
}
app/src/main/java/br/com/evologica/mvp/di/PreferenceInfo.java
0 → 100644
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
di
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
javax.inject.Qualifier
;
/**
* Created by marcussales on 02/03/2017.
*/
@Qualifier
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
PreferenceInfo
{
}
app/src/main/java/br/com/evologica/mvp/di/component/ActivityComponent.java
0 → 100644
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
di
.
component
;
import
br.com.evologica.mvp.di.PerActivity
;
import
br.com.evologica.mvp.di.module.ActivityModule
;
import
br.com.evologica.mvp.ui.login.LoginActivity
;
import
br.com.evologica.mvp.ui.main.MainActivity
;
import
br.com.evologica.mvp.ui.splash.SplashActivity
;
import
dagger.Component
;
/**
* Created by marcussales on 02/03/2017.
*/
@PerActivity
@Component
(
dependencies
=
ApplicationComponent
.
class
,
modules
=
ActivityModule
.
class
)
public
interface
ActivityComponent
{
void
inject
(
MainActivity
activity
);
void
inject
(
LoginActivity
activity
);
void
inject
(
SplashActivity
activity
);
}
app/src/main/java/br/com/evologica/mvp/di/component/ApplicationComponent.java
0 → 100644
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
di
.
component
;
import
android.app.Application
;
import
android.content.Context
;
import
javax.inject.Singleton
;
import
br.com.evologica.mvp.MvpApp
;
import
br.com.evologica.mvp.data.DataManager
;
import
br.com.evologica.mvp.di.ApplicationContext
;
import
br.com.evologica.mvp.di.module.ApplicationModule
;
import
dagger.Component
;
/**
* Created by marcussales on 02/03/2017.
*/
@Singleton
@Component
(
modules
=
ApplicationModule
.
class
)
public
interface
ApplicationComponent
{
void
inject
(
MvpApp
app
);
@ApplicationContext
Context
context
();
Application
application
();
DataManager
getDataManager
();
}
app/src/main/java/br/com/evologica/mvp/di/module/ActivityModule.java
0 → 100644
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
di
.
module
;
import
android.app.Activity
;
import
android.content.Context
;
import
br.com.evologica.mvp.di.ActivityContext
;
import
br.com.evologica.mvp.di.PerActivity
;
import
br.com.evologica.mvp.ui.login.LoginMvpPresenter
;
import
br.com.evologica.mvp.ui.login.LoginMvpView
;
import
br.com.evologica.mvp.ui.login.LoginPresenter
;
import
br.com.evologica.mvp.ui.main.MainMvpPresenter
;
import
br.com.evologica.mvp.ui.main.MainMvpView
;
import
br.com.evologica.mvp.ui.main.MainPresenter
;
import
br.com.evologica.mvp.ui.splash.SplashMvpPresenter
;
import
br.com.evologica.mvp.ui.splash.SplashMvpView
;
import
br.com.evologica.mvp.ui.splash.SplashPresenter
;
import
dagger.Module
;
import
dagger.Provides
;
/**
* Created by marcussales on 02/03/2017.
*/
@Module
public
class
ActivityModule
{
private
Activity
mActivity
;
public
ActivityModule
(
Activity
activity
)
{
this
.
mActivity
=
activity
;
}
@Provides
@ActivityContext
Context
provideContext
(){
return
mActivity
;
}
@Provides
Activity
provideActivity
(){
return
mActivity
;
}
@Provides
@PerActivity
SplashMvpPresenter
<
SplashMvpView
>
provideSplashPresenter
(
SplashPresenter
<
SplashMvpView
>
presenter
){
return
presenter
;
}
@Provides
@PerActivity
LoginMvpPresenter
<
LoginMvpView
>
provideLoginPresenter
(
LoginPresenter
<
LoginMvpView
>
presenter
){
return
presenter
;
}
@Provides
@PerActivity
MainMvpPresenter
<
MainMvpView
>
provideMainPresenter
(
MainPresenter
<
MainMvpView
>
presenter
){
return
presenter
;
}
}
app/src/main/java/br/com/evologica/mvp/di/module/ApplicationModule.java
0 → 100644
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
di
.
module
;
import
android.app.Application
;
import
android.content.Context
;
import
javax.inject.Singleton
;
import
br.com.evologica.mvp.R
;
import
br.com.evologica.mvp.data.AppDataManager
;
import
br.com.evologica.mvp.data.DataManager
;
import
br.com.evologica.mvp.data.prefs.AppPreferencesHelper
;
import
br.com.evologica.mvp.data.prefs.PreferencesHelper
;
import
br.com.evologica.mvp.di.ApplicationContext
;
import
br.com.evologica.mvp.di.PreferenceInfo
;
import
dagger.Module
;
import
dagger.Provides
;
import
uk.co.chrisjenx.calligraphy.CalligraphyConfig
;
/**
* Created by marcussales on 02/03/2017.
*/
@Module
public
class
ApplicationModule
{
private
final
Application
mApplication
;
public
ApplicationModule
(
Application
application
)
{
mApplication
=
application
;
}
@Provides
@ApplicationContext
Context
provideContext
()
{
return
mApplication
;
}
@Provides
Application
provideApplication
()
{
return
mApplication
;
}
@Provides
@Singleton
DataManager
provideDataManager
(
AppDataManager
appDataManager
){
return
appDataManager
;
}
@Provides
@Singleton
PreferencesHelper
providePreferencesHelper
(
AppPreferencesHelper
appPreferencesHelper
){
return
appPreferencesHelper
;
}
@Provides
@PreferenceInfo
String
providePreferenceName
(){
return
"whatever"
;
}
@Provides
@Singleton
CalligraphyConfig
provideCalligraphyDefaultConfig
()
{
return
new
CalligraphyConfig
.
Builder
()
.
setDefaultFontPath
(
"fonts/source-sans-pro/SourceSansPro-Regular.ttf"
)
.
setFontAttrId
(
R
.
attr
.
fontPath
)
.
build
();
}
}
app/src/main/java/br/com/evologica/mvp/ui/base/BaseActivity.java
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
ui
.
base
;
import
android.content.Context
;
import
android.os.Bundle
;
import
android.support.annotation.Nullable
;
import
android.support.annotation.StringRes
;
import
android.support.v7.app.AppCompatActivity
;
import
br.com.evologica.mvp.MvpApp
;
import
br.com.evologica.mvp.di.component.ActivityComponent
;
import
br.com.evologica.mvp.di.component.DaggerActivityComponent
;
import
br.com.evologica.mvp.di.module.ActivityModule
;
import
uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper
;
/**
...
...
@@ -12,6 +18,21 @@ import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper;
public
class
BaseActivity
extends
AppCompatActivity
implements
MvpView
,
BaseFragment
.
Callback
{
private
ActivityComponent
mActivityComponent
;
@Override
protected
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
mActivityComponent
=
DaggerActivityComponent
.
builder
()
.
activityModule
(
new
ActivityModule
(
this
))
.
applicationComponent
(((
MvpApp
)
getApplication
()).
getComponent
())
.
build
();
}
public
ActivityComponent
getActivityComponent
()
{
return
mActivityComponent
;
}
@Override
protected
void
attachBaseContext
(
Context
newBase
)
{
super
.
attachBaseContext
(
CalligraphyContextWrapper
.
wrap
(
newBase
));
...
...
app/src/main/java/br/com/evologica/mvp/ui/base/BasePresenter.java
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
ui
.
base
;
import
javax.inject.Inject
;
import
br.com.evologica.mvp.data.DataManager
;
/**
* Created by marcussales on 01/03/2017.
*/
...
...
@@ -8,6 +12,13 @@ public class BasePresenter<V extends MvpView> implements MvpPresenter<V> {
private
V
mMvpView
;
private
final
DataManager
mDataManager
;
@Inject
public
BasePresenter
(
DataManager
mDataManager
)
{
this
.
mDataManager
=
mDataManager
;
}
public
V
getMvpView
()
{
return
mMvpView
;
}
...
...
@@ -21,4 +32,8 @@ public class BasePresenter<V extends MvpView> implements MvpPresenter<V> {
public
void
onDetach
()
{
}
public
DataManager
getDataManager
()
{
return
mDataManager
;
}
}
app/src/main/java/br/com/evologica/mvp/ui/login/LoginActivity.java
View file @
5be2ae99
...
...
@@ -6,6 +6,8 @@ import android.support.annotation.Nullable;
import
android.view.View
;
import
android.widget.EditText
;
import
javax.inject.Inject
;
import
br.com.evologica.mvp.R
;
import
br.com.evologica.mvp.ui.base.BaseActivity
;
import
br.com.evologica.mvp.ui.main.MainActivity
;
...
...
@@ -19,7 +21,10 @@ import butterknife.OnClick;
public
class
LoginActivity
extends
BaseActivity
implements
LoginMvpView
{
private
LoginMvpPresenter
<
LoginMvpView
>
mPresenter
;
private
static
final
String
TAG
=
"LoginActivity"
;
@Inject
LoginMvpPresenter
<
LoginMvpView
>
mPresenter
;
@BindView
(
R
.
id
.
et_email
)
EditText
mEmailEditText
;
...
...
@@ -32,9 +37,11 @@ public class LoginActivity extends BaseActivity implements LoginMvpView {
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_login
);
mPresenter
=
new
LoginPresenter
<
LoginMvpView
>(
);
mPresenter
.
onAttach
(
LoginActivity
.
this
);
getActivityComponent
().
inject
(
this
);
ButterKnife
.
bind
(
this
);
mPresenter
.
onAttach
(
LoginActivity
.
this
);
}
@OnClick
(
R
.
id
.
btn_login
)
...
...
app/src/main/java/br/com/evologica/mvp/ui/login/LoginMvpPresenter.java
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
ui
.
login
;
import
br.com.evologica.mvp.di.PerActivity
;
import
br.com.evologica.mvp.ui.base.MvpPresenter
;
/**
* Created by marcussales on 01/03/2017.
*/
@PerActivity
public
interface
LoginMvpPresenter
<
V
extends
LoginMvpView
>
extends
MvpPresenter
<
V
>
{
void
onLogin
(
String
email
,
String
password
);
...
...
app/src/main/java/br/com/evologica/mvp/ui/login/LoginPresenter.java
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
ui
.
login
;
import
br.com.evologica.mvp.data.AppDataManager
;
import
javax.inject.Inject
;
import
br.com.evologica.mvp.data.DataManager
;
import
br.com.evologica.mvp.ui.base.BasePresenter
;
/**
...
...
@@ -9,9 +11,16 @@ import br.com.evologica.mvp.ui.base.BasePresenter;
public
class
LoginPresenter
<
V
extends
LoginMvpView
>
extends
BasePresenter
<
V
>
implements
LoginMvpPresenter
<
V
>
{
private
static
final
String
TAG
=
"LoginPresenter"
;
@Inject
public
LoginPresenter
(
DataManager
dataManager
)
{
super
(
dataManager
);
}
@Override
public
void
onLogin
(
String
email
,
String
password
){
AppDataManager
.
getInstance
().
setLoggedIn
();
getDataManager
().
setLoggedIn
();
getMvpView
().
openMainActivity
();
}
}
app/src/main/java/br/com/evologica/mvp/ui/main/MainActivity.java
View file @
5be2ae99
...
...
@@ -6,6 +6,8 @@ import android.support.annotation.Nullable;
import
android.view.View
;
import
android.widget.Button
;
import
javax.inject.Inject
;
import
br.com.evologica.mvp.R
;
import
br.com.evologica.mvp.ui.base.BaseActivity
;
import
br.com.evologica.mvp.ui.login.LoginActivity
;
...
...
@@ -19,7 +21,8 @@ import butterknife.OnClick;
public
class
MainActivity
extends
BaseActivity
implements
MainMvpView
{
private
MainMvpPresenter
<
MainMvpView
>
mPresenter
;
@Inject
MainMvpPresenter
<
MainMvpView
>
mPresenter
;
@BindView
(
R
.
id
.
logout_button
)
Button
mLogoutButton
;
...
...
@@ -29,16 +32,12 @@ public class MainActivity extends BaseActivity implements MainMvpView {
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_main
);
mPresenter
=
new
MainPresenter
<
MainMvpView
>(
);
mPresenter
.
onAttach
(
MainActivity
.
this
);
getActivityComponent
().
inject
(
this
);
ButterKnife
.
bind
(
this
);
// mLogoutButton.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
//
// }
// });
mPresenter
.
onAttach
(
MainActivity
.
this
);
}
@OnClick
(
R
.
id
.
logout_button
)
...
...
app/src/main/java/br/com/evologica/mvp/ui/main/MainMvpPresenter.java
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
ui
.
main
;
import
br.com.evologica.mvp.di.PerActivity
;
import
br.com.evologica.mvp.ui.base.MvpPresenter
;
import
br.com.evologica.mvp.ui.base.MvpView
;
...
...
@@ -7,6 +8,7 @@ import br.com.evologica.mvp.ui.base.MvpView;
* Created by marcussales on 01/03/2017.
*/
@PerActivity
public
interface
MainMvpPresenter
<
V
extends
MvpView
>
extends
MvpPresenter
<
V
>
{
void
onLogout
();
...
...
app/src/main/java/br/com/evologica/mvp/ui/main/MainPresenter.java
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
ui
.
main
;
import
br.com.evologica.mvp.data.AppDataManager
;
import
javax.inject.Inject
;
import
br.com.evologica.mvp.data.DataManager
;
import
br.com.evologica.mvp.ui.base.BasePresenter
;
/**
...
...
@@ -9,9 +11,14 @@ import br.com.evologica.mvp.ui.base.BasePresenter;
public
class
MainPresenter
<
V
extends
MainMvpView
>
extends
BasePresenter
<
V
>
implements
MainMvpPresenter
<
V
>
{
@Inject
public
MainPresenter
(
DataManager
dataManager
)
{
super
(
dataManager
);
}
@Override
public
void
onLogout
()
{
AppDataManager
.
getInstance
().
setLoggedOut
();
getDataManager
().
setLoggedOut
();
getMvpView
().
openLoginActivity
();
}
}
app/src/main/java/br/com/evologica/mvp/ui/splash/SplashActivity.java
View file @
5be2ae99
...
...
@@ -4,6 +4,8 @@ import android.content.Intent;
import
android.os.Bundle
;
import
android.support.annotation.Nullable
;
import
javax.inject.Inject
;
import
br.com.evologica.mvp.R
;
import
br.com.evologica.mvp.ui.base.BaseActivity
;
import
br.com.evologica.mvp.ui.login.LoginActivity
;
...
...
@@ -16,19 +18,19 @@ import butterknife.ButterKnife;
public
class
SplashActivity
extends
BaseActivity
implements
SplashMvpView
{
private
SplashMvpPresenter
<
SplashMvpView
>
mPresenter
;
@Inject
SplashMvpPresenter
<
SplashMvpView
>
mPresenter
;
@Override
protected
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_splash
);
mPresenter
=
new
SplashPresenter
<
SplashMvpView
>();
mPresenter
.
onAttach
(
SplashActivity
.
this
);
ButterKnife
.
bind
(
this
);
getActivityComponent
().
inject
(
this
);
ButterKnife
.
bind
(
this
);
mPresenter
.
onAttach
(
SplashActivity
.
this
);
}
@Override
...
...
app/src/main/java/br/com/evologica/mvp/ui/splash/SplashMvpPresenter.java
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
ui
.
splash
;
import
br.com.evologica.mvp.di.PerActivity
;
import
br.com.evologica.mvp.ui.base.MvpPresenter
;
import
br.com.evologica.mvp.ui.base.MvpView
;
...
...
@@ -7,5 +8,6 @@ import br.com.evologica.mvp.ui.base.MvpView;
* Created by marcussales on 01/03/2017.
*/
@PerActivity
public
interface
SplashMvpPresenter
<
V
extends
MvpView
>
extends
MvpPresenter
<
V
>
{
}
app/src/main/java/br/com/evologica/mvp/ui/splash/SplashPresenter.java
View file @
5be2ae99
package
br
.
com
.
evologica
.
mvp
.
ui
.
splash
;
import
br.com.evologica.mvp.data.AppDataManager
;
import
javax.inject.Inject
;
import
br.com.evologica.mvp.data.DataManager
;
import
br.com.evologica.mvp.ui.base.BasePresenter
;
/**
...
...
@@ -9,11 +11,16 @@ import br.com.evologica.mvp.ui.base.BasePresenter;
public
class
SplashPresenter
<
V
extends
SplashMvpView
>
extends
BasePresenter
<
V
>
implements
SplashMvpPresenter
<
V
>
{
@Inject
public
SplashPresenter
(
DataManager
dataManager
)
{
super
(
dataManager
);
}
@Override
public
void
onAttach
(
V
mvpView
)
{
super
.
onAttach
(
mvpView
);
if
(!
AppDataManager
.
getInstance
().
isLogged
()){
if
(!
getDataManager
().
isLogged
()){
getMvpView
().
openLoginActivity
();
}
else
{
getMvpView
().
openMainActivity
();
...
...
build.gradle
View file @
5be2ae99
...
...
@@ -38,7 +38,7 @@ ext {
//rx2AndroidNetworking = '0.0.1'
//
dagger2Version = '2.8'
dagger2Version
=
'2.8'
//rxjava2Version = '2.0.5'
//rxandroidVersion = '2.0.1'
butterKnifeVersion
=
'8.5.1'
...
...
@@ -47,8 +47,8 @@ ext {
// debugDBVersion = '1.0.0'
// timberVersion = '4.5.1'
//
//
//Test dependencies
//
junitVersion = '4.12'
//
espressoVersion = '2.2.2'
//
mockitoVersion = '2.7.1'
//Test dependencies
junitVersion
=
'4.12'
espressoVersion
=
'2.2.2'
mockitoVersion
=
'2.7.1'
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment