Skip to content

Commit a7d05fc

Browse files
committed
Merge remote-tracking branch 'origin/develop' into 19-feature-alarm-database
# Conflicts: # data/build.gradle # data/src/main/java/com/stop/data/di/RepositoryModule.kt # domain/src/main/java/com/stop/domain/di/UseCaseModule.kt # domain/src/main/java/com/stop/domain/usecase/route/GetRouteUseCaseImpl.kt # presentation/build.gradle # presentation/src/main/java/com/stop/ui/route/RouteFragment.kt # presentation/src/main/res/navigation/nav_graph.xml # presentation/src/main/res/values/strings.xml
2 parents 4e75774 + be4a6b0 commit a7d05fc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+210
-5639
lines changed

build.gradle

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
buildscript {
22
repositories {
33
google()
4-
mavenCentral()
54
}
65
dependencies {
76
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.5.3"
8-
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.44'
97
}
108
}
119

data/build.gradle

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
plugins {
22
id 'com.android.library'
33
id 'org.jetbrains.kotlin.android'
4-
id 'kotlin-kapt'
54
id 'com.google.dagger.hilt.android'
6-
id 'kotlin-android-extensions'
5+
id 'kotlin-kapt'
76
}
87

98
Properties properties = new Properties()
@@ -20,8 +19,12 @@ android {
2019
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
2120
consumerProguardFiles "consumer-rules.pro"
2221

23-
buildConfigField "String", "TMAP_URL", properties['t_map_url']
24-
buildConfigField("String", "TMAP_APP_KEY", properties['t_map_app_key'])
22+
23+
buildConfigField "String", "T_MAP_URL", properties['t_map_url']
24+
buildConfigField "String", "WS_BUS_URL", properties['ws_bus_url']
25+
buildConfigField "String", "APIS_URL", properties['apis_url']
26+
buildConfigField "String", "OPEN_API_SEOUL_URL", properties['open_api_seoul_url']
27+
buildConfigField "String", "T_MAP_APP_KEY", properties['t_map_app_key']
2528
buildConfigField "String", "SUBWAY_KEY", properties['subway_key']
2629
buildConfigField "String", "BUS_KEY", properties['bus_key']
2730
}
@@ -61,24 +64,15 @@ dependencies {
6164
implementation 'com.squareup.okhttp3:logging-interceptor:4.10.0'
6265

6366
// Moshi
64-
implementation 'com.squareup.moshi:moshi-kotlin:1.13.0'
65-
implementation 'com.squareup.moshi:moshi:1.13.0'
66-
kapt 'com.squareup.moshi:moshi-kotlin-codegen:1.13.0'
67-
68-
// Network
69-
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
70-
implementation 'com.squareup.okhttp3:okhttp:4.10.0'
71-
implementation 'com.squareup.retrofit2:converter-moshi:2.9.0'
7267
implementation 'com.squareup.moshi:moshi-kotlin:1.14.0'
73-
implementation 'com.squareup.okhttp3:logging-interceptor:4.10.0'
74-
implementation 'com.squareup.retrofit2:converter-jaxb:2.9.0'
75-
implementation 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.0'
76-
implementation 'com.sun.xml.bind:jaxb-impl:4.0.0'
68+
implementation 'com.squareup.moshi:moshi:1.14.0'
69+
kapt 'com.squareup.moshi:moshi-kotlin-codegen:1.14.0'
7770

78-
// Room
79-
implementation "androidx.room:room-runtime:2.4.3"
80-
annotationProcessor "androidx.room:room-compiler:2.4.3"
81-
kapt "androidx.room:room-compiler:2.4.3"
71+
// xml parser
72+
implementation 'com.tickaroo.tikxml:annotation:0.8.13'
73+
implementation 'com.tickaroo.tikxml:core:0.8.13'
74+
implementation 'com.tickaroo.tikxml:retrofit-converter:0.8.13'
75+
kapt 'com.tickaroo.tikxml:processor:0.8.13'
8276
}
8377

8478
kapt {

data/src/main/java/com/stop/data/di/ApiModule.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ internal object ApiModule {
4545

4646
@Provides
4747
@Singleton
48-
fun providePlaceApiService(@Named("place") retrofit: Retrofit): NearPlaceApiService {
48+
fun providePlaceApiService(@Named("Tmap") retrofit: Retrofit): NearPlaceApiService {
4949
return retrofit.create(NearPlaceApiService::class.java)
5050
}
51-
}
51+
}

data/src/main/java/com/stop/data/di/NetworkModule.kt

Lines changed: 22 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package com.stop.data.di
33
import com.squareup.moshi.Moshi
44
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
55
import com.stop.data.BuildConfig
6-
import com.stop.data.remote.adapter.route.ResultCallAdapter
6+
import com.stop.data.remote.ResultCallAdapter
7+
import com.tickaroo.tikxml.TikXml
8+
import com.tickaroo.tikxml.retrofit.TikXmlConverterFactory
79
import dagger.Module
810
import dagger.Provides
911
import dagger.hilt.InstallIn
@@ -16,9 +18,7 @@ import okhttp3.Response
1618
import okhttp3.ResponseBody.Companion.toResponseBody
1719
import okhttp3.logging.HttpLoggingInterceptor
1820
import retrofit2.Retrofit
19-
import retrofit2.converter.jaxb.JaxbConverterFactory
2021
import retrofit2.converter.moshi.MoshiConverterFactory
21-
import java.io.IOException
2222
import javax.inject.Named
2323
import javax.inject.Singleton
2424

@@ -27,23 +27,19 @@ import javax.inject.Singleton
2727
internal object NetworkModule {
2828

2929
private const val T_MAP_APP_KEY_NAME = "appKey"
30-
private const val T_MAP_APP_KEY_VALUE = BuildConfig.TMAP_APP_KEY
31-
private const val T_MAP_URL = "https://apis.openapi.sk.com/"
32-
33-
private const val OPEN_API_SEOUL_URL = "http://openapi.seoul.go.kr:8088/"
3430
private const val OPEN_API_SEOUL_KEY_NAME = "KEY"
35-
private const val BUS_KEY = BuildConfig.BUS_KEY
36-
37-
private const val APIS_URL = "http://apis.data.go.kr/6410000/"
3831
private const val APIS_KEY_NAME = "ServiceKey"
39-
40-
private const val WS_BUS_URL = "http://ws.bus.go.kr/api/rest/"
4132
private const val WS_KEY_NAME = "ServiceKey"
4233

4334
private const val T_MAP_ROUTE_URL = "transit/routes"
35+
36+
/**
37+
* resources에 fake 데이터가 담긴 파일을 넣어줘야 Fake TMap이 정상적으로 동작합니다.
38+
*/
4439
private const val FAKE_JSON_URI = "response.json"
4540

4641
@Provides
42+
@Singleton
4743
fun provideOkHttpClient(
4844
customInterceptor: CustomInterceptor,
4945
loggingInterceptor: HttpLoggingInterceptor,
@@ -54,24 +50,19 @@ internal object NetworkModule {
5450
.build()
5551
}
5652

53+
5754
@Provides
5855
@Singleton
5956
fun provideMoshi(): Moshi {
60-
return Moshi.Builder()
57+
return Moshi.Builder()
6158
.addLast(KotlinJsonAdapterFactory())
6259
.build()
6360
}
6461

6562
@Provides
6663
@Singleton
67-
fun provideJaxbConverterFactory(): JaxbConverterFactory {
68-
return JaxbConverterFactory.create()
69-
}
70-
71-
@Provides
72-
@Singleton
73-
fun provideTmapInterceptor(): TmapInterceptor {
74-
return TmapInterceptor()
64+
fun provideTikXmlConverterFactory(): TikXmlConverterFactory {
65+
return TikXmlConverterFactory.create(TikXml.Builder().exceptionOnUnreadXml(false).build())
7566
}
7667

7768
@Provides
@@ -89,21 +80,6 @@ internal object NetworkModule {
8980
return ResultCallAdapter.Factory()
9081
}
9182

92-
@Named("place")
93-
@Provides
94-
fun provideRetrofitInstance(
95-
okHttpClient: OkHttpClient,
96-
moshi: Moshi,
97-
resultCallAdapter: ResultCallAdapter.Factory,
98-
): Retrofit {
99-
return Retrofit.Builder()
100-
.baseUrl(T_MAP_URL)
101-
.client(okHttpClient)
102-
.addCallAdapterFactory(resultCallAdapter)
103-
.addConverterFactory(MoshiConverterFactory.create(moshi))
104-
.build()
105-
}
106-
10783
@Provides
10884
@Named("Tmap")
10985
fun provideTmapRetrofitInstance(
@@ -112,7 +88,7 @@ internal object NetworkModule {
11288
resultCallAdapter: ResultCallAdapter.Factory,
11389
): Retrofit {
11490
return Retrofit.Builder()
115-
.baseUrl(T_MAP_URL)
91+
.baseUrl(BuildConfig.T_MAP_URL)
11692
.client(okHttpClient)
11793
.addCallAdapterFactory(resultCallAdapter)
11894
.addConverterFactory(MoshiConverterFactory.create(moshi))
@@ -127,7 +103,7 @@ internal object NetworkModule {
127103
resultCallAdapter: ResultCallAdapter.Factory,
128104
): Retrofit {
129105
return Retrofit.Builder()
130-
.baseUrl(OPEN_API_SEOUL_URL)
106+
.baseUrl(BuildConfig.OPEN_API_SEOUL_URL)
131107
.client(okHttpClient)
132108
.addCallAdapterFactory(resultCallAdapter)
133109
.addConverterFactory(MoshiConverterFactory.create(moshi))
@@ -142,39 +118,28 @@ internal object NetworkModule {
142118
resultCallAdapter: ResultCallAdapter.Factory,
143119
): Retrofit {
144120
return Retrofit.Builder()
145-
.baseUrl(WS_BUS_URL)
121+
.baseUrl(BuildConfig.WS_BUS_URL)
146122
.client(okHttpClient)
147123
.addCallAdapterFactory(resultCallAdapter)
148124
.addConverterFactory(MoshiConverterFactory.create(moshi))
149125
.build()
150126
}
151127

152-
153128
@Provides
154129
@Named("ApisData")
155130
fun provideApisDataRetrofitInstance(
156131
okHttpClient: OkHttpClient,
132+
tikXmlConverterFactory: TikXmlConverterFactory,
157133
resultCallAdapter: ResultCallAdapter.Factory,
158134
): Retrofit {
159135
return Retrofit.Builder()
160-
.baseUrl(APIS_URL)
136+
.baseUrl(BuildConfig.APIS_URL)
161137
.client(okHttpClient)
162138
.addCallAdapterFactory(resultCallAdapter)
139+
.addConverterFactory(tikXmlConverterFactory)
163140
.build()
164141
}
165142

166-
class TmapInterceptor : Interceptor {
167-
@Throws(IOException::class)
168-
override fun intercept(chain: Interceptor.Chain): Response {
169-
return with(chain) {
170-
val newRequest = request().newBuilder()
171-
.addHeader(T_MAP_APP_KEY_NAME, T_MAP_APP_KEY_VALUE)
172-
.build()
173-
proceed(newRequest)
174-
}
175-
}
176-
}
177-
178143
class CustomInterceptor : Interceptor {
179144
override fun intercept(chain: Interceptor.Chain): Response {
180145
val url = chain.request().url.toUri().toString()
@@ -194,10 +159,10 @@ internal object NetworkModule {
194159
}
195160

196161
val (name: String, key: String) = when {
197-
url.contains(OPEN_API_SEOUL_URL) -> Pair(OPEN_API_SEOUL_KEY_NAME, BUS_KEY)
198-
url.contains(T_MAP_URL) -> Pair(T_MAP_APP_KEY_NAME, T_MAP_APP_KEY_VALUE)
199-
url.contains(APIS_URL) -> Pair(APIS_KEY_NAME, BUS_KEY)
200-
url.contains(WS_BUS_URL) -> Pair(WS_KEY_NAME, BUS_KEY)
162+
url.contains(BuildConfig.OPEN_API_SEOUL_URL) -> Pair(OPEN_API_SEOUL_KEY_NAME, BuildConfig.BUS_KEY)
163+
url.contains(BuildConfig.T_MAP_URL) -> Pair(T_MAP_APP_KEY_NAME, BuildConfig.T_MAP_APP_KEY)
164+
url.contains(BuildConfig.APIS_URL) -> Pair(APIS_KEY_NAME, BuildConfig.BUS_KEY)
165+
url.contains(BuildConfig.WS_BUS_URL) -> Pair(WS_KEY_NAME, BuildConfig.BUS_KEY)
201166
else -> {
202167
return chain.proceed(chain.request())
203168
}

data/src/main/java/com/stop/data/di/RepositoryModule.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,4 @@ internal interface RepositoryModule {
2929
@Binds
3030
@Singleton
3131
fun provideAlarmRepository(alarmRepositoryImpl: AlarmRepositoryImpl): AlarmRepository
32-
3332
}

data/src/main/java/com/stop/data/remote/JsonXmlConverterFactory.kt

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

data/src/main/java/com/stop/data/remote/ResponseAdapter.kt

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

data/src/main/java/com/stop/data/remote/ResponseAdapterFactory.kt

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

0 commit comments

Comments
 (0)