Skip to content

Commit f67492a

Browse files
committed
[FEAT/#210] 알람 해제 화면 상단에 애드몹 배너 광고 추가
1 parent 9609fa6 commit f67492a

File tree

3 files changed

+82
-49
lines changed

3 files changed

+82
-49
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package com.yapp.orbit
22

33
import android.app.Application
4+
import com.google.android.gms.ads.MobileAds
45
import dagger.hilt.android.HiltAndroidApp
56

67
@HiltAndroidApp
78
class OrbitApplication : Application() {
89
override fun onCreate() {
910
super.onCreate()
11+
MobileAds.initialize(this)
1012
}
1113
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest>
3-
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
3+
<uses-permission android:name="android.permission.INTERNET" />
44
</manifest>

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

Lines changed: 78 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ 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
1011
import androidx.compose.foundation.layout.height
1112
import androidx.compose.foundation.layout.padding
1213
import androidx.compose.foundation.layout.size
14+
import androidx.compose.foundation.layout.statusBarsPadding
1315
import androidx.compose.foundation.layout.width
1416
import androidx.compose.foundation.shape.CircleShape
1517
import androidx.compose.material3.Icon
@@ -26,8 +28,12 @@ import androidx.compose.ui.res.painterResource
2628
import androidx.compose.ui.res.stringResource
2729
import androidx.compose.ui.tooling.preview.Preview
2830
import androidx.compose.ui.unit.dp
31+
import androidx.compose.ui.viewinterop.AndroidView
2932
import androidx.hilt.navigation.compose.hiltViewModel
3033
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
3137
import com.yapp.common.navigation.OrbitNavigator
3238
import com.yapp.designsystem.theme.OrbitTheme
3339
import com.yapp.ui.component.button.OrbitButton
@@ -121,61 +127,65 @@ private fun AlarmActionContent(
121127
onSnoozeClick: () -> Unit,
122128
onDismissClick: () -> Unit,
123129
) {
124-
Column(
125-
modifier = Modifier
126-
.fillMaxSize()
127-
.background(
128-
color = Color(0xFF496381),
129-
),
130-
horizontalAlignment = Alignment.CenterHorizontally,
131-
) {
132-
Spacer(
133-
modifier = Modifier.heightForScreenPercentage(
134-
0.17f,
135-
),
136-
)
130+
Box(modifier = Modifier.statusBarsPadding()) {
131+
Column(
132+
modifier = Modifier
133+
.fillMaxSize()
134+
.background(
135+
color = Color(0xFF496381),
136+
),
137+
horizontalAlignment = Alignment.CenterHorizontally,
138+
) {
139+
Spacer(
140+
modifier = Modifier.heightForScreenPercentage(
141+
0.17f,
142+
),
143+
)
137144

138-
AlarmTime(
139-
isAm = isAm,
140-
hour = hour,
141-
minute = minute,
142-
todayDate = todayDate,
143-
)
145+
AlarmTime(
146+
isAm = isAm,
147+
hour = hour,
148+
minute = minute,
149+
todayDate = todayDate,
150+
)
144151

145-
Spacer(modifier = Modifier.height(102.dp))
152+
Spacer(modifier = Modifier.height(102.dp))
146153

147-
Icon(
148-
painter = painterResource(id = core.designsystem.R.drawable.ic_alarm_action_character),
149-
tint = Color(0xFF07203E),
150-
contentDescription = "Alarm Action Character",
151-
)
154+
Icon(
155+
painter = painterResource(id = core.designsystem.R.drawable.ic_alarm_action_character),
156+
tint = Color(0xFF07203E),
157+
contentDescription = "Alarm Action Character",
158+
)
159+
160+
Spacer(modifier = Modifier.height(56.dp))
152161

153-
Spacer(modifier = Modifier.height(56.dp))
162+
if (snoozeEnabled && snoozeCount != 0) {
163+
AlarmSnoozeButton(
164+
snoozeInterval = snoozeInterval,
165+
snoozeCount = snoozeCount,
166+
onSnoozeClick = onSnoozeClick,
167+
)
168+
} else {
169+
Spacer(modifier = Modifier.height(54.dp))
170+
}
171+
172+
Spacer(modifier = Modifier.weight(1f))
154173

155-
if (snoozeEnabled && snoozeCount != 0) {
156-
AlarmSnoozeButton(
157-
snoozeInterval = snoozeInterval,
158-
snoozeCount = snoozeCount,
159-
onSnoozeClick = onSnoozeClick,
174+
OrbitButton(
175+
label = stringResource(id = R.string.alarm_off_btn),
176+
enabled = true,
177+
modifier = Modifier
178+
.padding(
179+
start = 40.dp,
180+
end = 40.dp,
181+
bottom = 48.dp,
182+
)
183+
.height(62.dp),
184+
onClick = onDismissClick,
160185
)
161-
} else {
162-
Spacer(modifier = Modifier.height(54.dp))
163186
}
164187

165-
Spacer(modifier = Modifier.weight(1f))
166-
167-
OrbitButton(
168-
label = stringResource(id = R.string.alarm_off_btn),
169-
enabled = true,
170-
modifier = Modifier
171-
.padding(
172-
start = 40.dp,
173-
end = 40.dp,
174-
bottom = 48.dp,
175-
)
176-
.height(62.dp),
177-
onClick = onDismissClick,
178-
)
188+
BannersAds()
179189
}
180190
}
181191

@@ -281,6 +291,27 @@ private fun AlarmSnoozeButton(
281291
}
282292
}
283293

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+
284315
@Preview
285316
@Composable
286317
internal fun AlarmActionScreenPreview() {

0 commit comments

Comments
 (0)