Skip to content

Commit fbdb807

Browse files
authored
Merge pull request #106 from NordicPlayground/permission-notification
Add Notification Permission Feature
2 parents 197e3b8 + 98266a2 commit fbdb807

File tree

20 files changed

+614
-21
lines changed

20 files changed

+614
-21
lines changed

app/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ dependencies {
4949
implementation(project(":permissions-nfc"))
5050
implementation(project(":permissions-wifi"))
5151
implementation(project(":permissions-internet"))
52+
implementation(project(":permissions-notification"))
5253

5354
implementation(libs.androidx.compose.material.iconsExtended)
5455

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444
<uses-permission
4545
android:name="android.permission.ACCESS_FINE_LOCATION"
4646
tools:node="replace" />
47+
<uses-permission
48+
android:name="android.permission.POST_NOTIFICATIONS" />
4749

4850
<application
4951
android:allowBackup="true"

app/src/main/java/no/nordicsemi/android/common/test/simple/Advanced.kt

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ import androidx.compose.ui.tooling.preview.Preview
4646
import androidx.compose.ui.unit.dp
4747
import no.nordicsemi.android.common.navigation.createSimpleDestination
4848
import no.nordicsemi.android.common.navigation.defineDestination
49+
import no.nordicsemi.android.common.permissions.notification.RequestNotificationPermission
4950
import no.nordicsemi.android.common.test.R
5051
import no.nordicsemi.android.common.theme.NordicTheme
5152

@@ -61,21 +62,23 @@ val AdvancedDestination = defineDestination(Advanced) {
6162
private fun AdvancedScreen(
6263
modifier: Modifier = Modifier,
6364
) {
64-
Column(
65-
modifier = modifier,
66-
) {
65+
RequestNotificationPermission { granted ->
6766
Column(
68-
modifier = Modifier.fillMaxSize(),
69-
verticalArrangement = Arrangement.spacedBy(16.dp, Alignment.CenterVertically),
70-
horizontalAlignment = Alignment.CenterHorizontally,
67+
modifier = modifier,
7168
) {
72-
Text(
73-
text = "This is a simple destination with some advanced settings.\nClicking Back button will navigate to the main destination.",
74-
textAlign = TextAlign.Center,
75-
)
69+
Column(
70+
modifier = Modifier.fillMaxSize(),
71+
verticalArrangement = Arrangement.spacedBy(16.dp, Alignment.CenterVertically),
72+
horizontalAlignment = Alignment.CenterHorizontally,
73+
) {
74+
Text(
75+
text = "This view requests notifications.\nCurrent state: $granted.\n\nClicking Back button will navigate to the main destination.",
76+
textAlign = TextAlign.Center,
77+
)
7678

77-
Button(onClick = { }) {
78-
Text(text = stringResource(id = R.string.action_no_op))
79+
Button(onClick = { }) {
80+
Text(text = stringResource(id = R.string.action_no_op))
81+
}
7982
}
8083
}
8184
}

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ plugins {
3232
alias(libs.plugins.android.library) apply false
3333
alias(libs.plugins.hilt) apply false
3434
alias(libs.plugins.kotlin.parcelize) apply false
35+
alias(libs.plugins.kotlin.dokka) apply false
3536
alias(libs.plugins.compose.compiler) apply false
3637

3738
// Nordic plugins are defined in https://github.com/NordicSemiconductor/Android-Gradle-Plugins

gradle/libs.versions.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
[versions]
2+
accompanist = "0.34.0"
23
androidDesugarJdkLibs = "2.1.2"
34
androidGradlePlugin = "8.6.0"
45
androidxActivity = "1.9.2"
@@ -39,7 +40,7 @@ publishPlugin = "1.2.2"
3940
markdown = "0.4.1"
4041
leakcanary = "2.14"
4142
mockk = "1.13.12"
42-
slf4j = "1.7.36" # don't update
43+
slf4j = "2.0.13"
4344
robolectric = "4.13"
4445
material3 = "1.3.0"
4546
material = "1.7.0"
@@ -51,6 +52,7 @@ googleServicesPlugins = "4.4.2"
5152
firebaseCrashlyticsPlugins = "3.0.2"
5253

5354
[libraries]
55+
accompanist-permissions = { group = "com.google.accompanist", name = "accompanist-permissions", version.ref = "accompanist" }
5456
android-desugarJdkLibs = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "androidDesugarJdkLibs" }
5557
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "androidxActivity" }
5658
androidx-annotation = { group = "androidx.annotation", name = "annotation", version.ref = "androidxAnnotation" }
@@ -123,6 +125,7 @@ kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-
123125
lint-api = { group = "com.android.tools.lint", name = "lint-api", version.ref = "lint" }
124126
markdown = { group = "com.github.jeziellago", name = "compose-markdown", version.ref = "markdown" }
125127
leakcanary = { group = "com.squareup.leakcanary", name = "leakcanary-android", version.ref = "leakcanary" }
128+
test-slf4j = { group = "org.slf4j", name = "slf4j-api", version.ref = "slf4j" }
126129
test-slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j" }
127130
test-mockk = { group = "io.mockk", name = "mockk", version.ref = "mockk" }
128131
test-robolectric = { group = "org.robolectric", name = "robolectric", version.ref = "robolectric" }

permissions-ble/build.gradle.kts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,7 @@ android {
5252
}
5353

5454
dependencies {
55-
implementation(project(":core"))
5655
implementation(project(":ui"))
57-
implementation(project(":navigation"))
5856

5957
implementation(libs.androidx.compose.material.iconsExtended)
6058
}

permissions-ble/src/main/java/no/nordicsemi/android/common/permissions/ble/view/LocationPermissionRequiredView.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ import androidx.compose.ui.res.stringResource
5757
import androidx.compose.ui.tooling.preview.Preview
5858
import androidx.core.content.ContextCompat
5959
import androidx.hilt.navigation.compose.hiltViewModel
60-
import no.nordicsemi.android.common.core.parseBold
6160
import no.nordicsemi.android.common.permissions.ble.R
6261
import no.nordicsemi.android.common.permissions.ble.viewmodel.PermissionViewModel
6362
import no.nordicsemi.android.common.ui.view.WarningView
@@ -97,7 +96,7 @@ internal fun LocationPermissionRequiredView(
9796
WarningView(
9897
imageVector = Icons.Default.LocationOff,
9998
title = stringResource(id = R.string.location_permission_title),
100-
hint = stringResource(id = R.string.location_permission_info).parseBold(),
99+
hint = stringResource(id = R.string.location_permission_info),
101100
modifier = Modifier
102101
.fillMaxSize()
103102
.verticalScroll(rememberScrollState())

permissions-internet/build.gradle.kts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,7 @@ android {
5252
}
5353

5454
dependencies {
55-
implementation(project(":core"))
5655
implementation(project(":ui"))
57-
implementation(project(":navigation"))
5856

5957
implementation(libs.androidx.compose.material.iconsExtended)
6058
}

permissions-nfc/build.gradle.kts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,5 @@ android {
5252
}
5353

5454
dependencies {
55-
implementation(project(":core"))
5655
implementation(project(":ui"))
57-
implementation(project(":navigation"))
5856
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
plugins {
2+
alias(libs.plugins.nordic.feature)
3+
alias(libs.plugins.nordic.nexus.android)
4+
}
5+
6+
group = "no.nordicsemi.android.common"
7+
8+
nordicNexusPublishing {
9+
POM_ARTIFACT_ID = "permissions-notification"
10+
POM_NAME = "Nordic library for checking Notification permission."
11+
12+
POM_DESCRIPTION = "Nordic Android Common Libraries"
13+
POM_URL = "https://github.com/NordicPlayground/Android-Common-Libraries"
14+
POM_SCM_URL = "https://github.com/NordicPlayground/Android-Common-Libraries"
15+
POM_SCM_CONNECTION = "scm:[email protected]:NordicPlayground/Android-Common-Libraries.git"
16+
POM_SCM_DEV_CONNECTION = "scm:[email protected]:NordicPlayground/Android-Common-Libraries.git"
17+
}
18+
19+
android {
20+
namespace = "no.nordicsemi.android.common.permissions.notification"
21+
}
22+
23+
dependencies {
24+
implementation(libs.accompanist.permissions)
25+
26+
implementation(libs.androidx.compose.material.iconsExtended)
27+
}

0 commit comments

Comments
 (0)