diff --git a/app/src/main/java/com/example/notimanager/data/service/NotiListenerService.kt b/app/src/main/java/com/example/notimanager/data/service/NotiListenerService.kt index fa3e036..df49b25 100644 --- a/app/src/main/java/com/example/notimanager/data/service/NotiListenerService.kt +++ b/app/src/main/java/com/example/notimanager/data/service/NotiListenerService.kt @@ -40,7 +40,7 @@ class NotiListenerService: NotificationListenerService() { CoroutineScope(Dispatchers.IO).launch { mutex.withLock { val id = insertNotification(appName, title, content, postTime) - insertNotificationMeta(id, notification.contentIntent.creatorPackage) + insertNotificationMeta(id, it.packageName) insertNotificationIcon(id, notification.getLargeIcon()) insertAppIcon(appName, notification.smallIcon, notification.color) } diff --git a/app/src/main/java/com/example/notimanager/data/source/local/dao/NotificationDao.kt b/app/src/main/java/com/example/notimanager/data/source/local/dao/NotificationDao.kt index 9f973e6..9a161a4 100644 --- a/app/src/main/java/com/example/notimanager/data/source/local/dao/NotificationDao.kt +++ b/app/src/main/java/com/example/notimanager/data/source/local/dao/NotificationDao.kt @@ -25,7 +25,7 @@ interface NotificationDao { FROM notification AS n2 WHERE n1.appName = n2.appName ) - ORDER BY ai.priority ASC + ORDER BY timestamp DESC """ ) suspend fun getNotificationAppPriorityList(): List @@ -43,7 +43,7 @@ interface NotificationDao { FROM notification AS n2 WHERE n1.appName = n2.appName AND n1.title = n2.title ) - ORDER BY ni.priority ASC + ORDER BY timestamp DESC """ ) suspend fun getNotificationTitlePriorityList(appName: String, title: String): List diff --git a/app/src/main/java/com/example/notimanager/presentation/ui/component/NotificationAppListView.kt b/app/src/main/java/com/example/notimanager/presentation/ui/component/NotificationAppListView.kt index 0f036ac..1f16ac3 100644 --- a/app/src/main/java/com/example/notimanager/presentation/ui/component/NotificationAppListView.kt +++ b/app/src/main/java/com/example/notimanager/presentation/ui/component/NotificationAppListView.kt @@ -13,6 +13,7 @@ import androidx.compose.foundation.lazy.items import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.MoreVert import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -57,12 +58,8 @@ fun NotificationAppListView( } else if (notificationAppState.error != null) { } else { - val combinedList = mutableListOf() - combinedList.addAll(priorityState.notificationAppList) - combinedList.addAll(notificationAppState.notificationAppList) - // TODO: 드래그로 우선순위 변경 가능하게 수정 LazyColumn { - items(combinedList) { notification -> + items(priorityState.notificationAppList) { notification -> NotificationAppItemView( notification = notification, onClick = { @@ -74,6 +71,23 @@ fun NotificationAppListView( priorityViewModel = priorityViewModel ) } + + item { + HorizontalDivider() + } + + items(notificationAppState.notificationAppList) { notification -> + NotificationAppItemView( + notification = notification, + onClick = { + navController + .navigate("titleScreen/${notification.appName}/${notification.title}" + ) + }, + viewModel = viewModel, + priorityViewModel = priorityViewModel + ) + } } } } diff --git a/app/src/main/java/com/example/notimanager/presentation/ui/component/NotificationTitleListView.kt b/app/src/main/java/com/example/notimanager/presentation/ui/component/NotificationTitleListView.kt index 531e5d1..cce4e19 100644 --- a/app/src/main/java/com/example/notimanager/presentation/ui/component/NotificationTitleListView.kt +++ b/app/src/main/java/com/example/notimanager/presentation/ui/component/NotificationTitleListView.kt @@ -13,6 +13,7 @@ import androidx.compose.foundation.lazy.items import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.MoreVert import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -58,19 +59,25 @@ fun NotificationTitleListView( } else if (notificationTitleState.error != null) { } else { - val combinedList = mutableListOf() - combinedList.addAll(priorityState.notificationTitleList) - combinedList.addAll(notificationTitleState.notificationTitleList) - // TODO: 드래그로 우선순위 변경 가능하게 수정 LazyColumn { - items(combinedList) { notification -> - NotificationTitleItemView (notification = notification, onClick = { + items(priorityState.notificationTitleList) { notification -> + NotificationTitleItemView(notification = notification, onClick = { navController.navigate( "notificationScreen/${viewModel.getAppName()}/${notification.title}" - )}, - viewModel = viewModel, - priorityViewModel = priorityViewModel - ) + ) + }, viewModel = viewModel, priorityViewModel = priorityViewModel) + } + + item { + HorizontalDivider() + } + + items(notificationTitleState.notificationTitleList) { notification -> + NotificationTitleItemView(notification = notification, onClick = { + navController.navigate( + "notificationScreen/${viewModel.getAppName()}/${notification.title}" + ) + }, viewModel = viewModel, priorityViewModel = priorityViewModel) } } } diff --git a/app/src/main/java/com/example/notimanager/presentation/ui/screen/MainScreen.kt b/app/src/main/java/com/example/notimanager/presentation/ui/screen/MainScreen.kt index 00f9c4c..f6cf750 100644 --- a/app/src/main/java/com/example/notimanager/presentation/ui/screen/MainScreen.kt +++ b/app/src/main/java/com/example/notimanager/presentation/ui/screen/MainScreen.kt @@ -1,7 +1,11 @@ package com.example.notimanager.presentation.ui.screen +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp import androidx.navigation.NavController import com.example.notimanager.presentation.ui.component.MainTopAppBar import com.example.notimanager.presentation.ui.component.NotificationAppListView @@ -14,6 +18,10 @@ fun MainScreen(navController: NavController){ MainTopAppBar() } ) { innerPadding -> + HorizontalDivider( + modifier = Modifier.padding(innerPadding), + thickness = 0.2.dp + ) NotificationAppListView(navController, innerPadding) } PermissionCheck() 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 3777763..4101f3a 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 @@ -1,8 +1,12 @@ package com.example.notimanager.presentation.ui.screen +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.navigation.NavController import com.example.notimanager.presentation.stateholder.viewmodel.NotificationViewModel @@ -21,6 +25,10 @@ fun NotificationScreen(navController: NavController, appName: String = "", title NotificationTopAppBar(title = title, onBackClick = { navController.popBackStack() }) } ) { innerPadding -> + HorizontalDivider( + modifier = Modifier.padding(innerPadding), + thickness = 0.2.dp + ) NotificationListView(innerPadding, viewModel) } } \ No newline at end of file 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 a2a2a15..9d6091b 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,8 +1,12 @@ package com.example.notimanager.presentation.ui.screen +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.navigation.NavController import com.example.notimanager.presentation.stateholder.viewmodel.NotificationTitlePriorityViewModel @@ -24,6 +28,10 @@ fun TitleScreen(navController: NavController, appName: String = "", title:String TitleTopAppBar(title = title, onBackClick = { navController.popBackStack() }) } ) { innerPadding -> + HorizontalDivider( + modifier = Modifier.padding(innerPadding), + thickness = 0.2.dp + ) NotificationTitleListView(navController, innerPadding, viewModel, priorityViewModel) } } \ No newline at end of file