Skip to content

Commit a486d03

Browse files
committed
Gate ProgressStyle sample on SDK 36+
1 parent 8933a6d commit a486d03

File tree

4 files changed

+17
-30
lines changed

4 files changed

+17
-30
lines changed

app/src/main/java/com/example/platform/app/SampleDemo.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ import com.example.platform.ui.haptics.Resist
111111
import com.example.platform.ui.haptics.Wobble
112112
import com.example.platform.ui.insets.ImmersiveMode
113113
import com.example.platform.ui.insets.WindowInsetsAnimationActivity
114-
import com.example.platform.ui.live_updates.LiveUpdateActivity
114+
import com.example.platform.ui.live_updates.LiveUpdateSample
115115
import com.example.platform.ui.predictiveback.PBHostingActivity
116116
import com.example.platform.ui.quicksettings.QuickSettings
117117
import com.example.platform.ui.share.receiver.ShareReceiverActivity
@@ -994,13 +994,19 @@ val SAMPLE_DEMOS by lazy {
994994
tags = listOf("Haptics"),
995995
content = { Wobble() }
996996
),
997-
ActivitySampleDemo(
997+
ComposableSampleDemo(
998998
id = "live-updates",
999999
name = "Live Updates - ProgressStyle implementation",
10001000
description = "Usage of ProgressStyle with Live update treatment",
10011001
documentation = "https://developer.android.com/about/versions/16/features/progress-centric-notifications",
1002+
minSdk = Build.VERSION_CODES.BAKLAVA,
10021003
apiSurface = UserInterfaceLiveUpdatesApiSurface,
1003-
content = LiveUpdateActivity::class.java
1004+
content = {
1005+
MinSdkBox(minSdk = Build.VERSION_CODES.BAKLAVA) {
1006+
//noinspection NewApi
1007+
LiveUpdateSample()
1008+
}
1009+
},
10041010
),
10051011
ActivitySampleDemo(
10061012
id = "picture-in-picture-video-playback",

samples/user-interface/live-updates/src/main/AndroidManifest.xml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,4 @@
1919

2020
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
2121

22-
<application>
23-
<activity
24-
android:name=".LiveUpdateActivity"
25-
android:exported="true">
26-
</activity>
27-
</application>
28-
2922
</manifest>
Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@ package com.example.platform.ui.live_updates
33
import android.annotation.SuppressLint
44
import android.app.NotificationManager
55
import android.content.Context
6-
import android.os.Bundle
7-
import androidx.activity.enableEdgeToEdge
8-
import androidx.activity.ComponentActivity
9-
import androidx.activity.compose.setContent
106
import androidx.compose.foundation.layout.Box
117
import androidx.compose.foundation.layout.Column
128
import androidx.compose.foundation.layout.Spacer
@@ -25,6 +21,7 @@ import androidx.compose.runtime.remember
2521
import androidx.compose.runtime.rememberCoroutineScope
2622
import androidx.compose.ui.Alignment
2723
import androidx.compose.ui.Modifier
24+
import androidx.compose.ui.platform.LocalContext
2825
import androidx.compose.ui.res.stringResource
2926
import androidx.compose.ui.unit.dp
3027
import com.google.accompanist.permissions.ExperimentalPermissionsApi
@@ -33,21 +30,11 @@ import com.google.accompanist.permissions.rememberPermissionState
3330
import com.google.accompanist.permissions.shouldShowRationale
3431
import kotlinx.coroutines.launch
3532

36-
class LiveUpdateActivity : ComponentActivity() {
37-
override fun onCreate(savedInstanceState: Bundle?) {
38-
super.onCreate(savedInstanceState)
39-
enableEdgeToEdge()
40-
val notificationManager =
41-
this.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
42-
SnackbarNotificationManager.initialize(this, notificationManager)
43-
setContent {
44-
Initialize()
45-
}
46-
}
47-
}
48-
4933
@Composable
50-
fun Initialize() {
34+
fun LiveUpdateSample() {
35+
val notificationManager =
36+
LocalContext.current.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
37+
SnackbarNotificationManager.initialize(LocalContext.current.applicationContext, notificationManager)
5138
val scope = rememberCoroutineScope()
5239
val snackbarHostState = remember { SnackbarHostState() }
5340
Scaffold(

samples/user-interface/live-updates/src/main/java/com/example/platform/ui/live_updates/SnackbarNotificationManager.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import android.os.Handler
2828
import android.os.Looper
2929
import androidx.annotation.RequiresApi
3030
import androidx.core.graphics.drawable.IconCompat
31-
import com.example.platform.ui.live_updates.R
3231

3332
object SnackbarNotificationManager {
3433
private lateinit var notificationManager: NotificationManager
@@ -38,11 +37,12 @@ object SnackbarNotificationManager {
3837
private const val NOTIFICATION_ID = 1234
3938

4039

40+
@RequiresApi(Build.VERSION_CODES.O)
4141
fun initialize(context: Context, notifManager: NotificationManager) {
4242
notificationManager = notifManager
4343
val channel = NotificationChannel(CHANNEL_ID, CHANNEL_NAME, IMPORTANCE_DEFAULT)
4444
appContext = context
45-
notificationManager?.createNotificationChannel(channel)
45+
notificationManager.createNotificationChannel(channel)
4646
}
4747

4848
private enum class OrderState(val delay: Long) {
@@ -186,6 +186,7 @@ object SnackbarNotificationManager {
186186
return progressStyle
187187
}
188188

189+
@RequiresApi(Build.VERSION_CODES.O)
189190
fun buildBaseNotification(appContext: Context, orderState: OrderState): Notification.Builder {
190191
var notificationBuilder = Notification.Builder(appContext, CHANNEL_ID)
191192
.setSmallIcon(R.drawable.ic_launcher_foreground)

0 commit comments

Comments
 (0)