Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
AloqaIM-Android
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
AloqaIM-Android
Commits
049de2ba
Commit
049de2ba
authored
Jan 09, 2018
by
Leonardo Aramaki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement dagger support for service injections
parent
df96f8a7
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
77 additions
and
98 deletions
+77
-98
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+3
-3
RocketChatApplication.kt
...ain/java/chat/rocket/android/app/RocketChatApplication.kt
+11
-2
LoginPresenter.kt
...droid/authentication/login/presentation/LoginPresenter.kt
+2
-5
SignupPresenter.kt
...oid/authentication/signup/presentation/SignupPresenter.kt
+12
-1
TwoFAPresenter.kt
...d/authentication/twofactor/presentation/TwoFAPresenter.kt
+2
-6
AppComponent.kt
app/src/main/java/chat/rocket/android/dagger/AppComponent.kt
+5
-1
AppModule.kt
.../main/java/chat/rocket/android/dagger/module/AppModule.kt
+16
-1
ServiceBuilder.kt
.../java/chat/rocket/android/dagger/module/ServiceBuilder.kt
+12
-0
SharedPreferencesRepository.kt
...ket/android/infrastructure/SharedPreferencesRepository.kt
+1
-8
FirebaseTokenService.kt
...ain/java/chat/rocket/android/push/FirebaseTokenService.kt
+2
-7
FirebaseTokenServiceProvider.kt
...at/rocket/android/push/di/FirebaseTokenServiceProvider.kt
+11
-0
PushModule.kt
app/src/main/java/chat/rocket/android/push/di/PushModule.kt
+0
-64
No files found.
app/src/main/AndroidManifest.xml
View file @
049de2ba
...
@@ -8,10 +8,10 @@
...
@@ -8,10 +8,10 @@
<uses-permission
android:name=
"com.google.android.c2dm.permission.RECEIVE"
/>
<uses-permission
android:name=
"com.google.android.c2dm.permission.RECEIVE"
/>
<permission
<permission
android:name=
"
chat.rocket.android
.permission.C2D_MESSAGE"
android:name=
"
${applicationId}
.permission.C2D_MESSAGE"
android:protectionLevel=
"signature"
/>
android:protectionLevel=
"signature"
/>
<uses-permission
android:name=
"
chat.rocket.android
.permission.C2D_MESSAGE"
/>
<uses-permission
android:name=
"
${applicationId}
.permission.C2D_MESSAGE"
/>
<application
<application
android:name=
".app.RocketChatApplication"
android:name=
".app.RocketChatApplication"
...
@@ -52,7 +52,7 @@
...
@@ -52,7 +52,7 @@
<action
android:name=
"com.google.android.c2dm.intent.RECEIVE"
/>
<action
android:name=
"com.google.android.c2dm.intent.RECEIVE"
/>
<action
android:name=
"com.google.android.c2dm.intent.REGISTRATION"
/>
<action
android:name=
"com.google.android.c2dm.intent.REGISTRATION"
/>
<category
android:name=
"
chat.rocket.android
"
/>
<category
android:name=
"
${applicationId}
"
/>
</intent-filter>
</intent-filter>
</receiver>
</receiver>
...
...
app/src/main/java/chat/rocket/android/app/RocketChatApplication.kt
View file @
049de2ba
...
@@ -2,24 +2,29 @@ package chat.rocket.android.app
...
@@ -2,24 +2,29 @@ package chat.rocket.android.app
import
android.app.Activity
import
android.app.Activity
import
android.app.Application
import
android.app.Application
import
android.app.Service
import
chat.rocket.android.BuildConfig
import
chat.rocket.android.BuildConfig
import
chat.rocket.android.app.utils.CustomImageFormatConfigurator
import
chat.rocket.android.app.utils.CustomImageFormatConfigurator
import
com.facebook.drawee.backends.pipeline.DraweeConfig
import
chat.rocket.android.dagger.DaggerAppComponent
import
chat.rocket.android.dagger.DaggerAppComponent
import
com.facebook.drawee.backends.pipeline.DraweeConfig
import
com.facebook.drawee.backends.pipeline.Fresco
import
com.facebook.drawee.backends.pipeline.Fresco
import
com.facebook.imagepipeline.core.ImagePipelineConfig
import
com.facebook.imagepipeline.core.ImagePipelineConfig
import
com.jakewharton.threetenabp.AndroidThreeTen
import
com.jakewharton.threetenabp.AndroidThreeTen
import
dagger.android.AndroidInjector
import
dagger.android.AndroidInjector
import
dagger.android.DispatchingAndroidInjector
import
dagger.android.DispatchingAndroidInjector
import
dagger.android.HasActivityInjector
import
dagger.android.HasActivityInjector
import
dagger.android.HasServiceInjector
import
timber.log.Timber
import
timber.log.Timber
import
javax.inject.Inject
import
javax.inject.Inject
class
RocketChatApplication
:
Application
(),
HasActivityInjector
{
class
RocketChatApplication
:
Application
(),
HasActivityInjector
,
HasServiceInjector
{
@Inject
@Inject
lateinit
var
activityDispatchingAndroidInjector
:
DispatchingAndroidInjector
<
Activity
>
lateinit
var
activityDispatchingAndroidInjector
:
DispatchingAndroidInjector
<
Activity
>
@Inject
lateinit
var
serviceDispatchingAndroidInjector
:
DispatchingAndroidInjector
<
Service
>
override
fun
onCreate
()
{
override
fun
onCreate
()
{
super
.
onCreate
()
super
.
onCreate
()
...
@@ -52,4 +57,8 @@ class RocketChatApplication : Application(), HasActivityInjector {
...
@@ -52,4 +57,8 @@ class RocketChatApplication : Application(), HasActivityInjector {
override
fun
activityInjector
():
AndroidInjector
<
Activity
>
{
override
fun
activityInjector
():
AndroidInjector
<
Activity
>
{
return
activityDispatchingAndroidInjector
return
activityDispatchingAndroidInjector
}
}
override
fun
serviceInjector
():
AndroidInjector
<
Service
>
{
return
serviceDispatchingAndroidInjector
}
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/authentication/login/presentation/LoginPresenter.kt
View file @
049de2ba
...
@@ -4,7 +4,6 @@ import chat.rocket.android.authentication.presentation.AuthenticationNavigator
...
@@ -4,7 +4,6 @@ import chat.rocket.android.authentication.presentation.AuthenticationNavigator
import
chat.rocket.android.core.lifecycle.CancelStrategy
import
chat.rocket.android.core.lifecycle.CancelStrategy
import
chat.rocket.android.helper.NetworkHelper
import
chat.rocket.android.helper.NetworkHelper
import
chat.rocket.android.infrastructure.LocalRepository
import
chat.rocket.android.infrastructure.LocalRepository
import
chat.rocket.android.infrastructure.SharedPreferencesRepository
import
chat.rocket.android.util.launchUI
import
chat.rocket.android.util.launchUI
import
chat.rocket.common.RocketChatException
import
chat.rocket.common.RocketChatException
import
chat.rocket.common.RocketChatTwoFactorException
import
chat.rocket.common.RocketChatTwoFactorException
...
@@ -16,7 +15,8 @@ import javax.inject.Inject
...
@@ -16,7 +15,8 @@ import javax.inject.Inject
class
LoginPresenter
@Inject
constructor
(
private
val
view
:
LoginView
,
class
LoginPresenter
@Inject
constructor
(
private
val
view
:
LoginView
,
private
val
strategy
:
CancelStrategy
,
private
val
strategy
:
CancelStrategy
,
private
val
navigator
:
AuthenticationNavigator
)
{
private
val
navigator
:
AuthenticationNavigator
,
private
val
localRepository
:
LocalRepository
)
{
@Inject
lateinit
var
client
:
RocketChatClient
@Inject
lateinit
var
client
:
RocketChatClient
fun
authenticate
(
usernameOrEmail
:
String
,
password
:
String
)
{
fun
authenticate
(
usernameOrEmail
:
String
,
password
:
String
)
{
...
@@ -63,9 +63,6 @@ class LoginPresenter @Inject constructor(private val view: LoginView,
...
@@ -63,9 +63,6 @@ class LoginPresenter @Inject constructor(private val view: LoginView,
}
}
private
suspend
fun
registerPushToken
()
{
private
suspend
fun
registerPushToken
()
{
// TODO: put it on constructor
val
localRepository
:
LocalRepository
=
SharedPreferencesRepository
(
navigator
.
activity
)
localRepository
.
get
(
LocalRepository
.
KEY_PUSH_TOKEN
)
?.
let
{
localRepository
.
get
(
LocalRepository
.
KEY_PUSH_TOKEN
)
?.
let
{
client
.
registerPushToken
(
it
)
client
.
registerPushToken
(
it
)
}
}
...
...
app/src/main/java/chat/rocket/android/authentication/signup/presentation/SignupPresenter.kt
View file @
049de2ba
...
@@ -3,16 +3,19 @@ package chat.rocket.android.authentication.signup.presentation
...
@@ -3,16 +3,19 @@ package chat.rocket.android.authentication.signup.presentation
import
chat.rocket.android.authentication.presentation.AuthenticationNavigator
import
chat.rocket.android.authentication.presentation.AuthenticationNavigator
import
chat.rocket.android.core.lifecycle.CancelStrategy
import
chat.rocket.android.core.lifecycle.CancelStrategy
import
chat.rocket.android.helper.NetworkHelper
import
chat.rocket.android.helper.NetworkHelper
import
chat.rocket.android.infrastructure.LocalRepository
import
chat.rocket.android.util.launchUI
import
chat.rocket.android.util.launchUI
import
chat.rocket.common.RocketChatException
import
chat.rocket.common.RocketChatException
import
chat.rocket.core.RocketChatClient
import
chat.rocket.core.RocketChatClient
import
chat.rocket.core.internal.rest.login
import
chat.rocket.core.internal.rest.login
import
chat.rocket.core.internal.rest.registerPushToken
import
chat.rocket.core.internal.rest.signup
import
chat.rocket.core.internal.rest.signup
import
javax.inject.Inject
import
javax.inject.Inject
class
SignupPresenter
@Inject
constructor
(
private
val
view
:
SignupView
,
class
SignupPresenter
@Inject
constructor
(
private
val
view
:
SignupView
,
private
val
strategy
:
CancelStrategy
,
private
val
strategy
:
CancelStrategy
,
private
val
navigator
:
AuthenticationNavigator
)
{
private
val
navigator
:
AuthenticationNavigator
,
private
val
localRepository
:
LocalRepository
)
{
@Inject
lateinit
var
client
:
RocketChatClient
@Inject
lateinit
var
client
:
RocketChatClient
fun
signup
(
name
:
String
,
username
:
String
,
password
:
String
,
email
:
String
)
{
fun
signup
(
name
:
String
,
username
:
String
,
password
:
String
,
email
:
String
)
{
...
@@ -37,6 +40,7 @@ class SignupPresenter @Inject constructor(private val view: SignupView,
...
@@ -37,6 +40,7 @@ class SignupPresenter @Inject constructor(private val view: SignupView,
try
{
try
{
client
.
signup
(
email
,
name
,
username
,
password
)
// TODO This function returns a user so should we save it?
client
.
signup
(
email
,
name
,
username
,
password
)
// TODO This function returns a user so should we save it?
client
.
login
(
username
,
password
)
// TODO This function returns a user token so should we save it?
client
.
login
(
username
,
password
)
// TODO This function returns a user token so should we save it?
registerPushToken
()
navigator
.
toChatList
()
navigator
.
toChatList
()
}
catch
(
exception
:
RocketChatException
)
{
}
catch
(
exception
:
RocketChatException
)
{
val
errorMessage
=
exception
.
message
val
errorMessage
=
exception
.
message
...
@@ -63,4 +67,11 @@ class SignupPresenter @Inject constructor(private val view: SignupView,
...
@@ -63,4 +67,11 @@ class SignupPresenter @Inject constructor(private val view: SignupView,
fun
privacyPolicy
()
{
fun
privacyPolicy
()
{
navigator
.
toPrivacyPolicy
()
navigator
.
toPrivacyPolicy
()
}
}
private
suspend
fun
registerPushToken
()
{
localRepository
.
get
(
LocalRepository
.
KEY_PUSH_TOKEN
)
?.
let
{
client
.
registerPushToken
(
it
)
}
// TODO: Schedule push token registering when it comes up null
}
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/authentication/twofactor/presentation/TwoFAPresenter.kt
View file @
049de2ba
...
@@ -4,7 +4,6 @@ import chat.rocket.android.authentication.presentation.AuthenticationNavigator
...
@@ -4,7 +4,6 @@ import chat.rocket.android.authentication.presentation.AuthenticationNavigator
import
chat.rocket.android.core.lifecycle.CancelStrategy
import
chat.rocket.android.core.lifecycle.CancelStrategy
import
chat.rocket.android.helper.NetworkHelper
import
chat.rocket.android.helper.NetworkHelper
import
chat.rocket.android.infrastructure.LocalRepository
import
chat.rocket.android.infrastructure.LocalRepository
import
chat.rocket.android.infrastructure.SharedPreferencesRepository
import
chat.rocket.android.util.launchUI
import
chat.rocket.android.util.launchUI
import
chat.rocket.common.RocketChatAuthException
import
chat.rocket.common.RocketChatAuthException
import
chat.rocket.common.RocketChatException
import
chat.rocket.common.RocketChatException
...
@@ -15,7 +14,8 @@ import javax.inject.Inject
...
@@ -15,7 +14,8 @@ import javax.inject.Inject
class
TwoFAPresenter
@Inject
constructor
(
private
val
view
:
TwoFAView
,
class
TwoFAPresenter
@Inject
constructor
(
private
val
view
:
TwoFAView
,
private
val
strategy
:
CancelStrategy
,
private
val
strategy
:
CancelStrategy
,
private
val
navigator
:
AuthenticationNavigator
)
{
private
val
navigator
:
AuthenticationNavigator
,
private
val
localRepository
:
LocalRepository
)
{
@Inject
lateinit
var
client
:
RocketChatClient
@Inject
lateinit
var
client
:
RocketChatClient
fun
authenticate
(
twoFactorAuthenticationCode
:
String
)
{
fun
authenticate
(
twoFactorAuthenticationCode
:
String
)
{
...
@@ -56,13 +56,9 @@ class TwoFAPresenter @Inject constructor(private val view: TwoFAView,
...
@@ -56,13 +56,9 @@ class TwoFAPresenter @Inject constructor(private val view: TwoFAView,
}
}
private
suspend
fun
registerPushToken
()
{
private
suspend
fun
registerPushToken
()
{
// TODO: put it on constructor
val
localRepository
:
LocalRepository
=
SharedPreferencesRepository
(
navigator
.
activity
)
localRepository
.
get
(
LocalRepository
.
KEY_PUSH_TOKEN
)
?.
let
{
localRepository
.
get
(
LocalRepository
.
KEY_PUSH_TOKEN
)
?.
let
{
client
.
registerPushToken
(
it
)
client
.
registerPushToken
(
it
)
}
}
// TODO: Schedule push token registering when it comes up null
// TODO: Schedule push token registering when it comes up null
}
}
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/dagger/AppComponent.kt
View file @
049de2ba
...
@@ -4,13 +4,15 @@ import android.app.Application
...
@@ -4,13 +4,15 @@ import android.app.Application
import
chat.rocket.android.app.RocketChatApplication
import
chat.rocket.android.app.RocketChatApplication
import
chat.rocket.android.dagger.module.ActivityBuilder
import
chat.rocket.android.dagger.module.ActivityBuilder
import
chat.rocket.android.dagger.module.AppModule
import
chat.rocket.android.dagger.module.AppModule
import
chat.rocket.android.dagger.module.ServiceBuilder
import
chat.rocket.android.push.FirebaseTokenService
import
dagger.BindsInstance
import
dagger.BindsInstance
import
dagger.Component
import
dagger.Component
import
dagger.android.support.AndroidSupportInjectionModule
import
dagger.android.support.AndroidSupportInjectionModule
import
javax.inject.Singleton
import
javax.inject.Singleton
@Singleton
@Singleton
@Component
(
modules
=
[
AndroidSupportInjectionModule
::
class
,
AppModule
::
class
,
ActivityBuilder
::
class
])
@Component
(
modules
=
[
AndroidSupportInjectionModule
::
class
,
AppModule
::
class
,
ActivityBuilder
::
class
,
ServiceBuilder
::
class
])
interface
AppComponent
{
interface
AppComponent
{
@Component
.
Builder
@Component
.
Builder
...
@@ -23,6 +25,8 @@ interface AppComponent {
...
@@ -23,6 +25,8 @@ interface AppComponent {
fun
inject
(
app
:
RocketChatApplication
)
fun
inject
(
app
:
RocketChatApplication
)
fun
inject
(
service
:
FirebaseTokenService
)
/*@Component.Builder
/*@Component.Builder
abstract class Builder : AndroidInjector.Builder<RocketChatApplication>()*/
abstract class Builder : AndroidInjector.Builder<RocketChatApplication>()*/
}
}
app/src/main/java/chat/rocket/android/dagger/module/AppModule.kt
View file @
049de2ba
...
@@ -3,16 +3,19 @@ package chat.rocket.android.dagger.module
...
@@ -3,16 +3,19 @@ package chat.rocket.android.dagger.module
import
android.app.Application
import
android.app.Application
import
android.arch.persistence.room.Room
import
android.arch.persistence.room.Room
import
android.content.Context
import
android.content.Context
import
android.content.SharedPreferences
import
chat.rocket.android.BuildConfig
import
chat.rocket.android.BuildConfig
import
chat.rocket.android.app.RocketChatApplication
import
chat.rocket.android.app.RocketChatDatabase
import
chat.rocket.android.app.RocketChatDatabase
import
chat.rocket.android.authentication.infraestructure.AuthTokenRepository
import
chat.rocket.android.authentication.infraestructure.AuthTokenRepository
import
chat.rocket.android.infrastructure.LocalRepository
import
chat.rocket.android.infrastructure.SharedPreferencesRepository
import
chat.rocket.android.server.infraestructure.ServerDao
import
chat.rocket.android.server.infraestructure.ServerDao
import
chat.rocket.android.util.TimberLogger
import
chat.rocket.android.util.TimberLogger
import
chat.rocket.common.util.PlatformLogger
import
chat.rocket.common.util.PlatformLogger
import
chat.rocket.core.RocketChatClient
import
chat.rocket.core.RocketChatClient
import
dagger.Module
import
dagger.Module
import
dagger.Provides
import
dagger.Provides
import
okhttp3.HttpUrl
import
okhttp3.OkHttpClient
import
okhttp3.OkHttpClient
import
okhttp3.logging.HttpLoggingInterceptor
import
okhttp3.logging.HttpLoggingInterceptor
import
javax.inject.Singleton
import
javax.inject.Singleton
...
@@ -84,4 +87,16 @@ class AppModule {
...
@@ -84,4 +87,16 @@ class AppModule {
fun
providePlatformLogger
():
PlatformLogger
{
fun
providePlatformLogger
():
PlatformLogger
{
return
TimberLogger
return
TimberLogger
}
}
@Provides
@Singleton
fun
provideSharedPreferences
(
context
:
Context
):
SharedPreferences
{
return
context
.
getSharedPreferences
(
"rocket.chat"
,
Context
.
MODE_PRIVATE
)
}
@Provides
@Singleton
fun
provideSharedPreferencesRepository
(
preferences
:
SharedPreferences
):
LocalRepository
{
return
SharedPreferencesRepository
(
preferences
)
}
}
}
app/src/main/java/chat/rocket/android/dagger/module/ServiceBuilder.kt
0 → 100644
View file @
049de2ba
package
chat.rocket.android.dagger.module
import
chat.rocket.android.push.FirebaseTokenService
import
chat.rocket.android.push.di.FirebaseTokenServiceProvider
import
dagger.Module
import
dagger.android.ContributesAndroidInjector
@Module
abstract
class
ServiceBuilder
{
@ContributesAndroidInjector
(
modules
=
[
FirebaseTokenServiceProvider
::
class
])
abstract
fun
bindFirebaseTokenService
():
FirebaseTokenService
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/infrastructure/SharedPreferencesRepository.kt
View file @
049de2ba
package
chat.rocket.android.infrastructure
package
chat.rocket.android.infrastructure
import
android.content.Context
import
android.content.SharedPreferences
import
android.content.SharedPreferences
class
SharedPreferencesRepository
(
context
:
Context
)
:
LocalRepository
{
class
SharedPreferencesRepository
(
private
val
preferences
:
SharedPreferences
)
:
LocalRepository
{
val
preferences
:
SharedPreferences
init
{
preferences
=
context
.
getSharedPreferences
(
"local.prefs"
,
Context
.
MODE_PRIVATE
)
}
override
fun
save
(
key
:
String
,
value
:
String
?)
{
override
fun
save
(
key
:
String
,
value
:
String
?)
{
preferences
.
edit
().
putString
(
key
,
value
).
apply
()
preferences
.
edit
().
putString
(
key
,
value
).
apply
()
...
...
app/src/main/java/chat/rocket/android/push/FirebaseTokenService.kt
View file @
049de2ba
...
@@ -2,14 +2,13 @@ package chat.rocket.android.push
...
@@ -2,14 +2,13 @@ package chat.rocket.android.push
import
chat.rocket.android.R
import
chat.rocket.android.R
import
chat.rocket.android.infrastructure.LocalRepository
import
chat.rocket.android.infrastructure.LocalRepository
import
chat.rocket.android.push.di.DaggerPushComponent
import
chat.rocket.android.push.di.PushModule
import
chat.rocket.common.RocketChatException
import
chat.rocket.common.RocketChatException
import
chat.rocket.core.RocketChatClient
import
chat.rocket.core.RocketChatClient
import
chat.rocket.core.internal.rest.registerPushToken
import
chat.rocket.core.internal.rest.registerPushToken
import
com.google.android.gms.gcm.GoogleCloudMessaging
import
com.google.android.gms.gcm.GoogleCloudMessaging
import
com.google.android.gms.iid.InstanceID
import
com.google.android.gms.iid.InstanceID
import
com.google.firebase.iid.FirebaseInstanceIdService
import
com.google.firebase.iid.FirebaseInstanceIdService
import
dagger.android.AndroidInjection
import
kotlinx.coroutines.experimental.launch
import
kotlinx.coroutines.experimental.launch
import
timber.log.Timber
import
timber.log.Timber
import
javax.inject.Inject
import
javax.inject.Inject
...
@@ -24,13 +23,9 @@ class FirebaseTokenService : FirebaseInstanceIdService() {
...
@@ -24,13 +23,9 @@ class FirebaseTokenService : FirebaseInstanceIdService() {
override
fun
onCreate
()
{
override
fun
onCreate
()
{
super
.
onCreate
()
super
.
onCreate
()
DaggerPushComponent
.
builder
()
AndroidInjection
.
inject
(
this
);
.
pushModule
(
PushModule
(
this
))
.
build
()
.
inject
(
this
)
}
}
override
fun
onTokenRefresh
()
{
override
fun
onTokenRefresh
()
{
//TODO: We need to use the Cordova Project gcm_sender_id since it's the one configured on RC
//TODO: We need to use the Cordova Project gcm_sender_id since it's the one configured on RC
// default push gateway. We should register this project's own project sender id into it.
// default push gateway. We should register this project's own project sender id into it.
...
...
app/src/main/java/chat/rocket/android/push/di/
PushComponent
.kt
→
app/src/main/java/chat/rocket/android/push/di/
FirebaseTokenServiceProvider
.kt
View file @
049de2ba
...
@@ -2,11 +2,10 @@ package chat.rocket.android.push.di
...
@@ -2,11 +2,10 @@ package chat.rocket.android.push.di
import
chat.rocket.android.dagger.module.AppModule
import
chat.rocket.android.dagger.module.AppModule
import
chat.rocket.android.push.FirebaseTokenService
import
chat.rocket.android.push.FirebaseTokenService
import
dagger.
Component
import
dagger.
Module
import
javax.inject.Singleton
import
dagger.android.ContributesAndroidInjector
@Singleton
@Module
abstract
class
FirebaseTokenServiceProvider
{
@Component
(
modules
=
[
PushModule
::
class
])
@ContributesAndroidInjector
(
modules
=
[
AppModule
::
class
])
interface
PushComponent
{
abstract
fun
provideFirebaseTokenService
():
FirebaseTokenService
fun
inject
(
service
:
FirebaseTokenService
)
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/push/di/PushModule.kt
deleted
100644 → 0
View file @
df96f8a7
package
chat.rocket.android.push.di
import
chat.rocket.android.BuildConfig
import
chat.rocket.android.authentication.infraestructure.AuthTokenRepository
import
chat.rocket.android.infrastructure.LocalRepository
import
chat.rocket.android.infrastructure.SharedPreferencesRepository
import
chat.rocket.android.push.FirebaseTokenService
import
chat.rocket.android.util.TimberLogger
import
chat.rocket.common.util.PlatformLogger
import
chat.rocket.core.RocketChatClient
import
chat.rocket.core.TokenRepository
import
dagger.Module
import
dagger.Provides
import
okhttp3.OkHttpClient
import
okhttp3.logging.HttpLoggingInterceptor
import
javax.inject.Singleton
@Module
@Singleton
class
PushModule
(
val
context
:
FirebaseTokenService
)
{
@Provides
fun
provideAuthTokenRepository
():
TokenRepository
=
AuthTokenRepository
()
@Provides
fun
provideLocalRepository
():
LocalRepository
=
SharedPreferencesRepository
(
context
)
@Provides
@Singleton
fun
providePlatformLogger
():
PlatformLogger
{
return
TimberLogger
}
@Provides
@Singleton
fun
provideHttpLoggingInterceptor
():
HttpLoggingInterceptor
{
val
interceptor
=
HttpLoggingInterceptor
()
if
(
BuildConfig
.
DEBUG
)
{
interceptor
.
level
=
HttpLoggingInterceptor
.
Level
.
BODY
}
else
{
interceptor
.
level
=
HttpLoggingInterceptor
.
Level
.
HEADERS
}
return
interceptor
}
@Provides
@Singleton
fun
provideOkHttpClient
(
logger
:
HttpLoggingInterceptor
):
OkHttpClient
{
return
OkHttpClient
.
Builder
().
apply
{
addInterceptor
(
logger
)
}.
build
()
}
@Provides
fun
provideRocketChatClient
(
okHttpClient
:
OkHttpClient
,
repository
:
TokenRepository
,
logger
:
PlatformLogger
):
RocketChatClient
{
return
RocketChatClient
.
create
{
httpClient
=
okHttpClient
restUrl
=
"https://open.rocket.chat"
tokenRepository
=
repository
platformLogger
=
logger
}
}
}
\ No newline at end of file
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