Skip to content

Commit e7b7464

Browse files
#5 - configurando inicialmente parte um com mock
1 parent 587c5fd commit e7b7464

File tree

23 files changed

+149
-104
lines changed

23 files changed

+149
-104
lines changed

app/src/main/java/com/codandotv/streamplayerapp/CustomApplication.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class CustomApplication : Application() {
1111
super.onCreate()
1212
startKoin{
1313
androidContext(this@CustomApplication.applicationContext)
14-
modules(AppModule.module)
14+
modules(AppModule.list)
1515
}
1616
}
1717
}

app/src/main/java/com/codandotv/streamplayerapp/di/AppModule.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.codandotv.streamplayerapp.di
22

33
import android.content.res.Resources
4+
import com.codandotv.streamplayerapp.core_networking.di.NetworkModule
45
import org.koin.android.ext.koin.androidContext
56
import org.koin.dsl.module
67

@@ -9,4 +10,7 @@ object AppModule {
910
val module = module {
1011
single<Resources> { androidContext().resources }
1112
}
13+
14+
15+
val list = module + NetworkModule.module
1216
}

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ buildscript {
1010
classpath(Dependencies.Gradle.kotlinGradlePlugin)
1111
classpath(Dependencies.Gradle.androidTools)
1212
classpath(kotlin(Dependencies.Gradle.gradlePlugin, Versions.kotlin_version))
13+
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0")
1314
}
1415
}
1516

buildSrc/src/main/java/Config.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,10 @@ object Config {
66
const val targetSdkVersion = 33
77
const val versionName = "1.0"
88
const val versionCode = 1
9+
const val packageName = "com.codandotv.streamplayerapp."
10+
11+
object BuildField {
12+
const val host_debug = "\"https://demo5700495.mockable.io/\""
13+
const val host_release = "\"https://demo5700495.mockable.io/\""
14+
}
915
}

buildSrc/src/main/java/Dependencies.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,6 @@ object Dependencies {
5959
const val runner = "androidx.test:runner:${Versions.test_core_version}"
6060
const val espresso =
6161
"androidx.test.espresso:espresso-core:${Versions.test_espresso_version}"
62-
const val espressoContrib =
63-
"com.android.support.test.espresso:espresso-contrib:${Versions.test_espresso_version}"
6462
const val rules = "androidx.test:rules:${Versions.test_rules_version}"
6563
const val hamcrest = "org.hamcrest:hamcrest-library:${Versions.test_hamcrest}"
6664
const val uiautomator = "androidx.test.uiautomator:uiautomator:${Versions.test_uiautomator}"
@@ -76,7 +74,6 @@ object Dependencies {
7674
AndroidTest.rules,
7775
AndroidTest.uiautomator,
7876
AndroidTest.runner,
79-
AndroidTest.espressoContrib,
8077
AndroidTest.mockWebServer,
8178
AndroidTest.ext,
8279
AndroidTest.intent

buildSrc/src/main/java/Versions.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,5 @@ object Versions {
2525
const val mockWebServer = "4.10.0"
2626
const val koin = "3.4.0"
2727
const val compose_version = "1.4.2"
28+
const val retrofit = "2.9.0"
2829
}

core-networking/build.gradle.kts

Lines changed: 13 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,19 @@
1-
plugins {
2-
id("com.android.library")
3-
id("org.jetbrains.kotlin.android")
4-
}
5-
6-
android {
7-
namespace = "com.codandotv.streamplayerapp.corenetworking"
8-
compileSdk = 33
9-
10-
defaultConfig {
11-
minSdk = 24
12-
targetSdk = 33
13-
14-
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
15-
consumerProguardFiles("consumer-rules.pro")
16-
}
1+
android{
2+
namespace = "${Config.packageName}core_networking"
173

18-
buildTypes {
19-
release {
20-
isMinifyEnabled = false
21-
proguardFiles(
22-
getDefaultProguardFile("proguard-android-optimize.txt"),
23-
"proguard-rules.pro"
24-
)
4+
buildTypes{
5+
getByName("debug"){
6+
buildConfigField("String","HOST",Config.BuildField.host_debug)
7+
}
8+
getByName("release"){
9+
buildConfigField("String","HOST",Config.BuildField.host_release)
2510
}
26-
}
27-
compileOptions {
28-
sourceCompatibility = JavaVersion.VERSION_1_8
29-
targetCompatibility = JavaVersion.VERSION_1_8
30-
}
31-
kotlinOptions {
32-
jvmTarget = "1.8"
3311
}
3412
}
35-
3613
dependencies {
37-
38-
implementation("androidx.core:core-ktx:1.7.0")
39-
implementation("androidx.appcompat:appcompat:1.6.1")
40-
implementation("com.google.android.material:material:1.8.0")
41-
testImplementation("junit:junit:4.13.2")
42-
androidTestImplementation("androidx.test.ext:junit:1.1.5")
43-
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
14+
implementation(Dependencies.Koin.koin)
15+
Dependencies.Retrofit.list.forEach { implementation(it) }
16+
Dependencies.Kotlin.list.forEach { implementation(it) }
17+
Dependencies.UnitTest.list.forEach { testImplementation(it) }
18+
Dependencies.AndroidTest.list.forEach { androidTestImplementation(it) }
4419
}

core-networking/src/androidTest/java/com/codandotv/streamplayerapp/corenetworking/ExampleInstrumentedTest.kt

Lines changed: 0 additions & 24 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
3-
3+
<uses-permission android:name="android.permission.INTERNET" />
44
</manifest>
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package com.codandotv.streamplayerapp.core_networking.di
2+
3+
import com.codandotv.streamplayerapp.core_networking.BuildConfig
4+
import com.squareup.moshi.Moshi
5+
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
6+
import okhttp3.Interceptor
7+
import okhttp3.OkHttpClient
8+
import okhttp3.logging.HttpLoggingInterceptor
9+
import org.koin.dsl.module
10+
import retrofit2.Retrofit
11+
import retrofit2.converter.moshi.MoshiConverterFactory
12+
import java.util.concurrent.TimeUnit
13+
14+
object NetworkModule {
15+
val module = module {
16+
single(QualifierHost) {
17+
BuildConfig.HOST
18+
}
19+
20+
single {
21+
Moshi.Builder()
22+
.add(KotlinJsonAdapterFactory())
23+
.build()
24+
}
25+
26+
single<Interceptor> {
27+
HttpLoggingInterceptor().apply {
28+
level = if (BuildConfig.DEBUG) {
29+
HttpLoggingInterceptor.Level.BODY
30+
} else {
31+
HttpLoggingInterceptor.Level.NONE
32+
}
33+
}
34+
}
35+
single {
36+
provideRetrofit(
37+
okHttpClient = get(),
38+
moshi = get(),
39+
baseUrl = get(QualifierHost)
40+
)
41+
}
42+
43+
single {
44+
provideOkhttp(
45+
interceptor = get()
46+
)
47+
}
48+
}
49+
50+
private fun provideOkhttp(
51+
interceptor: Interceptor
52+
): OkHttpClient {
53+
val okHttpClientBuilder = OkHttpClient.Builder()
54+
okHttpClientBuilder.addInterceptor(interceptor)
55+
56+
return okHttpClientBuilder
57+
.connectTimeout(15, TimeUnit.SECONDS)
58+
.build()
59+
}
60+
61+
private fun provideRetrofit(
62+
okHttpClient: OkHttpClient,
63+
moshi: Moshi,
64+
baseUrl: String
65+
): Retrofit =
66+
Retrofit.Builder()
67+
.baseUrl(baseUrl)
68+
.client(okHttpClient)
69+
.addConverterFactory(MoshiConverterFactory.create(moshi))
70+
.build()
71+
}

0 commit comments

Comments
 (0)