diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index c2fee4c..5e87546 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -14,10 +14,10 @@ android {
defaultConfig {
applicationId = "com.example.notimanager"
- minSdk = 28
+ minSdk = 26
targetSdk = 35
versionCode = 1
- versionName = "1.0"
+ versionName = "1.0.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
resValue("string", "admob_app_id", System.getenv("ADMOB_APP_ID") ?: "")
resValue("string", "admob_banner_id", System.getenv("ADMOB_BANNER_ID") ?: "")
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3145652..9d98232 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -19,7 +19,7 @@
tools:targetApi="35">
+ android:value="ca-app-pub-4472438519886520~1562656818"/>
- NotificationAppItemView(
- notification = notification,
- onClick = {
- navController.navigate("titleScreen/${notification.appName}")
- },
- viewModel = viewModel,
- priorityViewModel = priorityViewModel
- )
- }
- if (currentNotiPriority.isNotEmpty()) {
+ if(currentNotiPriority.isNotEmpty()){
+ items(currentNotiPriority) { notification ->
+ NotificationAppItemView(
+ notification = notification,
+ onClick = {
+ navController.navigate("titleScreen/${notification.appName}")
+ },
+ viewModel = viewModel,
+ priorityViewModel = priorityViewModel
+ )
+ }
item {
HorizontalDivider()
}
}
-
- items(currentNoti) { notification ->
- NotificationAppItemView(
- notification = notification,
- onClick = {
- navController.navigate("titleScreen/${notification.appName}")
- },
- viewModel = viewModel,
- priorityViewModel = priorityViewModel
- )
+ if (currentNoti.isNotEmpty()){
+ items(currentNoti) { notification ->
+ NotificationAppItemView(
+ notification = notification,
+ onClick = {
+ navController.navigate("titleScreen/${notification.appName}")
+ },
+ viewModel = viewModel,
+ priorityViewModel = priorityViewModel
+ )
+ }
}
}
diff --git a/app/src/main/java/com/example/notimanager/presentation/ui/component/list/NotificationTitleListView.kt b/app/src/main/java/com/example/notimanager/presentation/ui/component/list/NotificationTitleListView.kt
index eaf7074..5479714 100644
--- a/app/src/main/java/com/example/notimanager/presentation/ui/component/list/NotificationTitleListView.kt
+++ b/app/src/main/java/com/example/notimanager/presentation/ui/component/list/NotificationTitleListView.kt
@@ -33,7 +33,7 @@ import com.example.notimanager.presentation.ui.component.item.NotificationTitleI
fun NotificationTitleListView(
navController: NavController,
viewModel: NotificationTitleViewModel,
- priorityViewModel: NotificationTitlePriorityViewModel
+ priorityViewModel: NotificationTitlePriorityViewModel,
) {
val notificationTitleState by viewModel.notificationTitleState.observeAsState(
NotificationTitleState()
@@ -63,42 +63,44 @@ fun NotificationTitleListView(
LazyColumn(
modifier = Modifier.fillMaxSize().padding(bottom = 56.dp)
) {
- items(currentNotiPriority) { notification ->
- NotificationTitleItemView(notification = notification, onClick = {
- if (notification.subText == "") navController.navigate("notificationScreen/${viewModel.getAppName()}/${getEncodedString(notification.title)}/False")
- else navController.navigate("notificationScreen/${viewModel.getAppName()}/${getEncodedString(notification.subText)}/True")
- }, viewModel = viewModel, priorityViewModel = priorityViewModel)
- }
+ if(currentNotiPriority.isNotEmpty()){
+ items(currentNotiPriority) { notification ->
+ NotificationTitleItemView(notification = notification, onClick = {
+ if (notification.subText == "") navController.navigate("notificationScreen/${viewModel.getAppName()}/${getEncodedString(notification.title)}/False")
+ else navController.navigate("notificationScreen/${viewModel.getAppName()}/${getEncodedString(notification.subText)}/True")
+ }, viewModel = viewModel, priorityViewModel = priorityViewModel)
+ }
- if (currentNotiPriority.isNotEmpty()){
item {
HorizontalDivider()
}
}
-
- items(currentNoti) { notification ->
- NotificationTitleItemView(notification = notification, onClick = {
- if (notification.subText == "") {
- viewModel.updateAsRead(notification.title)
- navController.navigate(
- "notificationScreen/${viewModel.getAppName()}/${
- getEncodedString(
- notification.title
- )
- }/False"
- )
- }
- else {
- viewModel.updateAsSubText(notification.subText)
- navController.navigate(
- "notificationScreen/${viewModel.getAppName()}/${
- getEncodedString(
- notification.subText
- )
- }/True"
- )
- }}, viewModel = viewModel, priorityViewModel = priorityViewModel)
+ if(currentNoti.isNotEmpty()){
+ items(currentNoti) { notification ->
+ NotificationTitleItemView(notification = notification, onClick = {
+ if (notification.subText == "") {
+ viewModel.updateAsRead(notification.title)
+ navController.navigate(
+ "notificationScreen/${viewModel.getAppName()}/${
+ getEncodedString(
+ notification.title
+ )
+ }/False"
+ )
+ }
+ else {
+ viewModel.updateAsSubText(notification.subText)
+ navController.navigate(
+ "notificationScreen/${viewModel.getAppName()}/${
+ getEncodedString(
+ notification.subText
+ )
+ }/True"
+ )
+ }}, viewModel = viewModel, priorityViewModel = priorityViewModel)
+ }
}
+
}
AndroidView(
diff --git a/app/src/main/java/com/example/notimanager/presentation/ui/screen/DateFormatterScreen.kt b/app/src/main/java/com/example/notimanager/presentation/ui/screen/DateFormatterScreen.kt
index 11f8d55..b6eef7a 100644
--- a/app/src/main/java/com/example/notimanager/presentation/ui/screen/DateFormatterScreen.kt
+++ b/app/src/main/java/com/example/notimanager/presentation/ui/screen/DateFormatterScreen.kt
@@ -30,7 +30,9 @@ fun DateFormatterScreen(
CommonTopAppBar(title) {
if (!isClicked) {
isClicked = true
- navController.popBackStack()
+ if (navController.previousBackStackEntry != null) {
+ navController.popBackStack()
+ }
}
}
}
diff --git a/app/src/main/java/com/example/notimanager/presentation/ui/screen/FilteredListScreen.kt b/app/src/main/java/com/example/notimanager/presentation/ui/screen/FilteredListScreen.kt
index b9981be..f27c6c1 100644
--- a/app/src/main/java/com/example/notimanager/presentation/ui/screen/FilteredListScreen.kt
+++ b/app/src/main/java/com/example/notimanager/presentation/ui/screen/FilteredListScreen.kt
@@ -33,8 +33,9 @@ fun FilteredListScreen(
CommonTopAppBar(title = title, onBackClick = {
if (!isClicked){
isClicked = true
-
- navController.popBackStack()
+ if (navController.previousBackStackEntry != null) {
+ navController.popBackStack()
+ }
}
})
diff --git a/app/src/main/java/com/example/notimanager/presentation/ui/screen/NotificationScreen.kt b/app/src/main/java/com/example/notimanager/presentation/ui/screen/NotificationScreen.kt
index 453bb95..429ec70 100644
--- a/app/src/main/java/com/example/notimanager/presentation/ui/screen/NotificationScreen.kt
+++ b/app/src/main/java/com/example/notimanager/presentation/ui/screen/NotificationScreen.kt
@@ -51,7 +51,9 @@ fun NotificationScreen(navController: NavController, appName: String = "", title
CommonTopAppBar(title = title, onBackClick = {
if(!isClicked){
isClicked = true
- navController.popBackStack()
+ if (navController.previousBackStackEntry != null) {
+ navController.popBackStack()
+ }
} }
)
}
diff --git a/app/src/main/java/com/example/notimanager/presentation/ui/screen/NotificationSubScreen.kt b/app/src/main/java/com/example/notimanager/presentation/ui/screen/NotificationSubScreen.kt
index d4bb7ac..baecd1c 100644
--- a/app/src/main/java/com/example/notimanager/presentation/ui/screen/NotificationSubScreen.kt
+++ b/app/src/main/java/com/example/notimanager/presentation/ui/screen/NotificationSubScreen.kt
@@ -50,9 +50,10 @@ fun NotificationSubScreen(navController: NavController, appName: String = "", su
CommonTopAppBar(title = subText, onBackClick = {
if(!isClicked){
isClicked = true
- navController.popBackStack()
+ if (navController.previousBackStackEntry != null) {
+ navController.popBackStack()
+ }
}
-
})
}
) { innerPadding ->
diff --git a/app/src/main/java/com/example/notimanager/presentation/ui/screen/SettingScreen.kt b/app/src/main/java/com/example/notimanager/presentation/ui/screen/SettingScreen.kt
index 6e43bb9..8505036 100644
--- a/app/src/main/java/com/example/notimanager/presentation/ui/screen/SettingScreen.kt
+++ b/app/src/main/java/com/example/notimanager/presentation/ui/screen/SettingScreen.kt
@@ -30,7 +30,9 @@ fun SettingScreen(
CommonTopAppBar(title){
if (!isClicked){
isClicked = true
- navController.popBackStack()
+ if (navController.previousBackStackEntry != null) {
+ navController.popBackStack()
+ }
}
}
}
diff --git a/app/src/main/java/com/example/notimanager/presentation/ui/screen/TitleScreen.kt b/app/src/main/java/com/example/notimanager/presentation/ui/screen/TitleScreen.kt
index c1be346..1703451 100644
--- a/app/src/main/java/com/example/notimanager/presentation/ui/screen/TitleScreen.kt
+++ b/app/src/main/java/com/example/notimanager/presentation/ui/screen/TitleScreen.kt
@@ -1,5 +1,6 @@
package com.example.notimanager.presentation.ui.screen
+import android.util.Log
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.HorizontalDivider
@@ -35,6 +36,15 @@ fun TitleScreen(navController: NavController, appName: String = ""){
val coroutineScope = rememberCoroutineScope()
var isClicked by remember { mutableStateOf(false) }
+ val onRefresh: () -> Unit = {
+ isRefreshing = true
+ viewModel.loadNotificationTitles()
+ priorityViewModel.loadNotificationTitles()
+ coroutineScope.launch {
+ delay(500)
+ isRefreshing = false
+ }
+ }
LaunchedEffect(appName) {
viewModel.setArgs(appName)
@@ -51,9 +61,9 @@ fun TitleScreen(navController: NavController, appName: String = ""){
CommonTopAppBar(title = appName, onBackClick = {
if (!isClicked) {
isClicked = true
-
- navController.popBackStack()
-
+ if (navController.previousBackStackEntry != null) {
+ navController.popBackStack()
+ }
}
})
}
@@ -65,15 +75,7 @@ fun TitleScreen(navController: NavController, appName: String = ""){
PullToRefreshBox(
isRefreshing = isRefreshing,
- onRefresh = {
- isRefreshing = true
- viewModel.loadNotificationTitles()
- priorityViewModel.loadNotificationTitles()
- coroutineScope.launch {
- delay(500)
- isRefreshing = false
- }
- },
+ onRefresh = onRefresh,
modifier = Modifier.padding(innerPadding)
) {
NotificationTitleListView(navController, viewModel, priorityViewModel)
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 8d6a350..0fab5eb 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -40,6 +40,7 @@
NotiManager
모든 중요 알림을 확인했어요.
%1$s개의 읽지 않은 알림이 있어요.
+ 새로운 알림이 있어요.
방금
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d90d68f..d8c95f2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -40,6 +40,7 @@
NotiManager
You have checked all important notifications.
You have %1$s unread notifications.
+ You have a new notification.
Just now