Skip to content

Commit 4553b2b

Browse files
committed
[REFACTOR/#210] 광고 배너 컴포넌트 core:ui 모듈로 이전
1 parent 1e33cc5 commit 4553b2b

File tree

6 files changed

+62
-54
lines changed

6 files changed

+62
-54
lines changed

core/ui/build.gradle.kts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import com.yapp.convention.setNamespace
2+
import java.util.Properties
23

34
plugins {
45
id("orbit.android.library")
@@ -7,6 +8,28 @@ plugins {
78

89
android {
910
setNamespace("core.ui")
11+
12+
buildTypes {
13+
val localProperties = Properties()
14+
localProperties.load(
15+
project.rootProject.file("local.properties").bufferedReader(),
16+
)
17+
18+
debug {
19+
resValue(
20+
"string",
21+
"admob_ad_unit_id",
22+
localProperties["admobAdUnitIdDebug"] as String,
23+
)
24+
}
25+
release {
26+
resValue(
27+
"string",
28+
"admob_ad_unit_id",
29+
localProperties["admobAdUnitIdRelease"] as String,
30+
)
31+
}
32+
}
1033
}
1134

1235
dependencies {
@@ -17,4 +40,5 @@ dependencies {
1740
implementation(libs.orbit.compose)
1841
implementation(libs.orbit.viewmodel)
1942
implementation(libs.lottie.compose)
43+
implementation(libs.play.services.ads)
2044
}
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
3-
2+
<manifest>
43
</manifest>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.yapp.ui.component.banner
2+
3+
import android.annotation.SuppressLint
4+
import androidx.compose.foundation.layout.fillMaxWidth
5+
import androidx.compose.runtime.Composable
6+
import androidx.compose.ui.Modifier
7+
import androidx.compose.ui.res.stringResource
8+
import androidx.compose.ui.viewinterop.AndroidView
9+
import com.google.android.gms.ads.AdRequest
10+
import com.google.android.gms.ads.AdSize
11+
import com.google.android.gms.ads.AdView
12+
import core.ui.R
13+
14+
@SuppressLint("MissingPermission")
15+
@Composable
16+
fun AdsBanner(
17+
modifier: Modifier = Modifier,
18+
) {
19+
val adUnitId = stringResource(id = R.string.admob_ad_unit_id)
20+
21+
AndroidView(
22+
modifier = modifier.fillMaxWidth(),
23+
factory = { context ->
24+
AdView(context).apply {
25+
setAdSize(AdSize.BANNER)
26+
this.adUnitId = adUnitId
27+
loadAd(AdRequest.Builder().build())
28+
}
29+
},
30+
update = { adView ->
31+
adView.loadAd(AdRequest.Builder().build())
32+
},
33+
)
34+
}

feature/alarm-interaction/build.gradle.kts

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,11 @@
11
import com.yapp.convention.setNamespace
2-
import java.util.Properties
32

43
plugins {
54
id("orbit.android.feature")
65
}
76

87
android {
98
setNamespace("feature.alarm.interaction")
10-
11-
buildTypes {
12-
val localProperties = Properties()
13-
localProperties.load(
14-
project.rootProject.file("local.properties").bufferedReader(),
15-
)
16-
17-
debug {
18-
resValue(
19-
"string",
20-
"admob_ad_unit_id",
21-
localProperties["admobAdUnitIdDebug"] as String,
22-
)
23-
}
24-
release {
25-
resValue(
26-
"string",
27-
"admob_ad_unit_id",
28-
localProperties["admobAdUnitIdRelease"] as String,
29-
)
30-
}
31-
}
329
}
3310

3411
dependencies {
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
3-
<uses-permission android:name="android.permission.INTERNET" />
2+
<manifest>
43
</manifest>

feature/alarm-interaction/src/main/java/com/yapp/alarm/interaction/action/AlarmActionScreen.kt

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import androidx.compose.foundation.layout.Column
77
import androidx.compose.foundation.layout.Row
88
import androidx.compose.foundation.layout.Spacer
99
import androidx.compose.foundation.layout.fillMaxSize
10-
import androidx.compose.foundation.layout.fillMaxWidth
1110
import androidx.compose.foundation.layout.height
1211
import androidx.compose.foundation.layout.padding
1312
import androidx.compose.foundation.layout.size
@@ -28,14 +27,11 @@ import androidx.compose.ui.res.painterResource
2827
import androidx.compose.ui.res.stringResource
2928
import androidx.compose.ui.tooling.preview.Preview
3029
import androidx.compose.ui.unit.dp
31-
import androidx.compose.ui.viewinterop.AndroidView
3230
import androidx.hilt.navigation.compose.hiltViewModel
3331
import androidx.lifecycle.compose.collectAsStateWithLifecycle
34-
import com.google.android.gms.ads.AdRequest
35-
import com.google.android.gms.ads.AdSize
36-
import com.google.android.gms.ads.AdView
3732
import com.yapp.common.navigation.OrbitNavigator
3833
import com.yapp.designsystem.theme.OrbitTheme
34+
import com.yapp.ui.component.banner.AdsBanner
3935
import com.yapp.ui.component.button.OrbitButton
4036
import com.yapp.ui.component.lottie.LottieAnimation
4137
import com.yapp.ui.utils.heightForScreenPercentage
@@ -185,7 +181,7 @@ private fun AlarmActionContent(
185181
)
186182
}
187183

188-
BannersAds()
184+
AdsBanner()
189185
}
190186
}
191187

@@ -291,27 +287,6 @@ private fun AlarmSnoozeButton(
291287
}
292288
}
293289

294-
@Composable
295-
private fun BannersAds(
296-
modifier: Modifier = Modifier,
297-
) {
298-
val adUnitId = stringResource(id = R.string.admob_ad_unit_id)
299-
300-
AndroidView(
301-
modifier = modifier.fillMaxWidth(),
302-
factory = { context ->
303-
AdView(context).apply {
304-
setAdSize(AdSize.BANNER)
305-
this.adUnitId = adUnitId
306-
loadAd(AdRequest.Builder().build())
307-
}
308-
},
309-
update = { adView ->
310-
adView.loadAd(AdRequest.Builder().build())
311-
},
312-
)
313-
}
314-
315290
@Preview
316291
@Composable
317292
internal fun AlarmActionScreenPreview() {

0 commit comments

Comments
 (0)