Skip to content

Commit 1c47138

Browse files
committed
Merge branch 'dev'
2 parents f3a2ae8 + 8cf6c73 commit 1c47138

File tree

12 files changed

+102
-92
lines changed

12 files changed

+102
-92
lines changed

app/build.gradle

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,18 +49,24 @@ dependencies {
4949
androidTestImplementation 'androidx.test:runner:1.1.1'
5050
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
5151

52+
// room
53+
def room_version = "2.1.0-alpha04"
54+
implementation "androidx.room:room-coroutines:$room_version"
55+
implementation "androidx.room:room-runtime:$room_version"
56+
kapt "androidx.room:room-compiler:$room_version"
57+
5258
// dagger2
53-
implementation 'com.google.dagger:dagger:2.21'
54-
implementation 'com.google.dagger:dagger-android:2.21'
55-
implementation 'com.google.dagger:dagger-android-support:2.21'
56-
kapt 'com.google.dagger:dagger-android-processor:2.21'
57-
kapt 'com.google.dagger:dagger-compiler:2.21'
59+
def dagger2_version = "2.21"
60+
implementation "com.google.dagger:dagger:$dagger2_version"
61+
implementation "com.google.dagger:dagger-android:$dagger2_version"
62+
implementation "com.google.dagger:dagger-android-support:$dagger2_version"
63+
kapt "com.google.dagger:dagger-android-processor:$dagger2_version"
64+
kapt "com.google.dagger:dagger-compiler:$dagger2_version"
5865

5966
// retrofit2
6067
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
6168
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
6269
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0'
63-
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.5.0'
6470
implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2'
6571

6672
// gson
@@ -71,9 +77,4 @@ dependencies {
7177

7278
// dataBinding kotlin option
7379
kapt "androidx.databinding:databinding-compiler:3.3.0"
74-
75-
// reactive x
76-
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
77-
implementation 'io.reactivex.rxjava2:rxkotlin:2.3.0'
78-
implementation 'com.jakewharton.rxbinding3:rxbinding:3.0.0-alpha2'
7980
}

app/src/main/java/com/ddd/attendance/check/data/login/LoginRepository.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@ package com.ddd.attendance.check.data.login
33
import com.ddd.attendance.check.data.Repository
44
import com.ddd.attendance.check.data.login.source.LoginLocalDataSource
55
import com.ddd.attendance.check.data.login.source.LoginRemoteDataSource
6+
import com.ddd.attendance.check.db.entity.User
67
import com.ddd.attendance.check.model.LoginResponse
78
import retrofit2.Response
89
import javax.inject.Inject
910

1011
class LoginRepository @Inject constructor(private val loginLocalDataSource: LoginLocalDataSource,
1112
private val remoteDataSource: LoginRemoteDataSource) : Repository {
12-
fun saveToken(token: String) {
13-
loginLocalDataSource.saveToken(token)
13+
suspend fun saveUsers(user: User) {
14+
loginLocalDataSource.saveUser(user)
1415
}
1516

1617
suspend fun login(id: String, password: String): Response<LoginResponse> {
Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
package com.ddd.attendance.check.data.login.source
22

3-
import android.app.Application
4-
import android.content.Context
5-
import com.ddd.attendance.check.extension.SharedPreferHelper
6-
import com.ddd.attendance.check.extension.put
3+
import com.ddd.attendance.check.db.DDDDataBase
4+
import com.ddd.attendance.check.db.entity.User
75
import javax.inject.Inject
86

9-
class LoginLocalDataSource @Inject constructor(val application: Application) {
7+
class LoginLocalDataSource @Inject constructor(private val dddDataBase: DDDDataBase) {
108

11-
fun saveToken(token: String) {
12-
application.getSharedPreferences(SharedPreferHelper.DATA_PREFER, Context.MODE_PRIVATE).put(SharedPreferHelper.TOKEN_KEY, token)
9+
suspend fun saveUser(user: User) {
10+
dddDataBase.userDao().addUser(user)
1311
}
1412
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.ddd.attendance.check.db
2+
3+
import androidx.room.Database
4+
import androidx.room.RoomDatabase
5+
import com.ddd.attendance.check.db.dao.UserDao
6+
import com.ddd.attendance.check.db.entity.User
7+
8+
@Database(version = 1, entities = [User::class], exportSchema = false)
9+
10+
abstract class DDDDataBase : RoomDatabase() {
11+
abstract fun userDao(): UserDao
12+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.ddd.attendance.check.db.dao
2+
3+
import androidx.room.Dao
4+
import androidx.room.Insert
5+
import androidx.room.Query
6+
import com.ddd.attendance.check.db.entity.User
7+
8+
@Dao
9+
interface UserDao {
10+
@Query("SELECT * FROM USER")
11+
fun getUsers(): List<User>
12+
13+
@Insert
14+
suspend fun addUser(user: User)
15+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.ddd.attendance.check.db.entity
2+
3+
import androidx.room.ColumnInfo
4+
import androidx.room.Entity
5+
import androidx.room.PrimaryKey
6+
7+
@Entity(tableName = "user")
8+
class User(
9+
@PrimaryKey val id: Int,
10+
@ColumnInfo(name = "name") val name: String,
11+
@ColumnInfo(name = "account") val account: String,
12+
@ColumnInfo(name = "accessToken") val accessToken: String,
13+
@ColumnInfo(name = "refreshToken") val refreshToken: String
14+
)

app/src/main/java/com/ddd/attendance/check/di/module/AppModule.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package com.ddd.attendance.check.di.module
22

33
import android.content.Context
4+
import android.util.Log
5+
import androidx.room.Room
46
import com.ddd.attendance.check.DDDApplication
7+
import com.ddd.attendance.check.db.DDDDataBase
58
import com.ddd.attendance.check.di.qualifier.ForApplication
69
import dagger.Module
710
import dagger.Provides
@@ -15,4 +18,10 @@ class AppModule {
1518
fun provideApplicationContext(application: DDDApplication): Context {
1619
return application.applicationContext
1720
}
21+
22+
@Provides
23+
@Singleton
24+
fun provideDataBase(application: DDDApplication): DDDDataBase {
25+
return Room.databaseBuilder(application, DDDDataBase::class.java, "DDDDataBase").build()
26+
}
1827
}

app/src/main/java/com/ddd/attendance/check/di/module/DataSource.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.ddd.attendance.check.di.module
22

3-
import com.ddd.attendance.check.DDDApplication
43
import com.ddd.attendance.check.api.ApiService
54
import com.ddd.attendance.check.data.login.source.LoginLocalDataSource
65
import com.ddd.attendance.check.data.login.source.LoginRemoteDataSource
6+
import com.ddd.attendance.check.db.DDDDataBase
77
import dagger.Module
88
import dagger.Provides
99
import javax.inject.Singleton
@@ -13,8 +13,8 @@ class DataSource {
1313

1414
@Provides
1515
@Singleton
16-
fun loginLocalDataSource(application: DDDApplication): LoginLocalDataSource {
17-
return LoginLocalDataSource(application)
16+
fun loginLocalDataSource(dddDataBase: DDDDataBase): LoginLocalDataSource {
17+
return LoginLocalDataSource(dddDataBase)
1818
}
1919

2020
@Provides

app/src/main/java/com/ddd/attendance/check/di/module/NetworkModule.kt

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,35 @@
11
package com.ddd.attendance.check.di.module
22

3-
import android.content.Context
43
import com.ddd.attendance.check.BuildConfig
5-
import com.ddd.attendance.check.DDDApplication
64
import com.ddd.attendance.check.api.ApiService
7-
import com.ddd.attendance.check.extension.SharedPreferHelper
8-
import com.ddd.attendance.check.extension.SharedPreferHelper.DATA_PREFER
9-
import com.ddd.attendance.check.extension.get
5+
import com.ddd.attendance.check.db.DDDDataBase
106
import com.google.gson.Gson
117
import com.google.gson.GsonBuilder
128
import com.jakewharton.retrofit2.adapter.kotlin.coroutines.CoroutineCallAdapterFactory
139
import dagger.Module
1410
import dagger.Provides
15-
import kotlinx.coroutines.timeunit.TimeUnit
1611
import okhttp3.Credentials
1712
import okhttp3.Interceptor
1813
import okhttp3.OkHttpClient
1914
import okhttp3.logging.HttpLoggingInterceptor
2015
import retrofit2.Retrofit
2116
import retrofit2.converter.gson.GsonConverterFactory
17+
import java.util.concurrent.TimeUnit
2218

2319

2420
@Module
2521
class NetworkModule {
2622

2723
@Provides
28-
fun provideInterceptor(application: DDDApplication): Interceptor {
24+
fun provideInterceptor(dddDataBase: DDDDataBase): Interceptor {
2925
return Interceptor { chain ->
3026
val request = chain.request()
31-
val token = application.getSharedPreferences(DATA_PREFER, Context.MODE_PRIVATE).get(SharedPreferHelper.TOKEN_KEY, "")
27+
val users = dddDataBase.userDao().getUsers()
3228
val headers = request.headers().newBuilder()
3329
.add(HEADER_AUTH_PARAM,
34-
if (token.isNotEmpty()) token
35-
else Credentials.basic(BuildConfig.BASIC_AUTH_USER_NAME, BuildConfig.BASIC_AUTH_USER_PASSWORD))
36-
.build()
30+
if (!users.isNullOrEmpty()) users[0].accessToken
31+
else Credentials.basic(BuildConfig.BASIC_AUTH_USER_NAME, BuildConfig.BASIC_AUTH_USER_PASSWORD)
32+
).build()
3733
chain.proceed(request.newBuilder().headers(headers).build())
3834
}
3935
}

app/src/main/java/com/ddd/attendance/check/extension/SharedPreferencesExtension.kt

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)