@@ -2,7 +2,6 @@ package app.omnivore.omnivore.ui.library
2
2
3
3
import android.content.Intent
4
4
import android.util.Log
5
- import androidx.activity.compose.BackHandler
6
5
import androidx.compose.foundation.background
7
6
import androidx.compose.foundation.layout.*
8
7
import androidx.compose.foundation.lazy.LazyColumn
@@ -11,36 +10,30 @@ import androidx.compose.foundation.lazy.items
11
10
import androidx.compose.foundation.lazy.rememberLazyListState
12
11
import androidx.compose.foundation.shape.RoundedCornerShape
13
12
import androidx.compose.material.*
14
- import androidx.compose.material.DrawerValue
15
- import androidx.compose.material.icons.Icons
16
- import androidx.compose.material.icons.filled.MoreVert
17
- import androidx.compose.material.icons.outlined.Delete
18
13
import androidx.compose.material.pullrefresh.PullRefreshIndicator
19
14
import androidx.compose.material.pullrefresh.pullRefresh
20
15
import androidx.compose.material.pullrefresh.rememberPullRefreshState
21
16
import androidx.compose.material3.*
22
17
import androidx.compose.material3.MaterialTheme
23
- import androidx.compose.material3.Scaffold
24
- import androidx.compose.material3.SnackbarHost
25
18
import androidx.compose.runtime.*
26
19
import androidx.compose.runtime.livedata.observeAsState
27
20
import androidx.compose.ui.Alignment
28
21
import androidx.compose.ui.Modifier
29
22
import androidx.compose.ui.draw.clip
30
23
import androidx.compose.ui.graphics.Color
31
24
import androidx.compose.ui.platform.LocalContext
32
- import androidx.compose.ui.res.painterResource
33
25
import androidx.compose.ui.unit.dp
34
26
import androidx.navigation.NavHostController
35
- import app.omnivore.omnivore.R
36
27
import app.omnivore.omnivore.Routes
37
28
import app.omnivore.omnivore.persistence.entities.SavedItemLabel
38
29
import app.omnivore.omnivore.persistence.entities.SavedItemWithLabelsAndHighlights
30
+ import app.omnivore.omnivore.ui.components.AddLinkSheetContent
39
31
import app.omnivore.omnivore.ui.components.LabelsSelectionSheetContent
40
32
import app.omnivore.omnivore.ui.components.LabelsViewModel
41
33
import app.omnivore.omnivore.ui.savedItemViews.SavedItemCard
42
34
import app.omnivore.omnivore.ui.reader.PDFReaderActivity
43
35
import app.omnivore.omnivore.ui.reader.WebReaderLoadingContainerActivity
36
+ import app.omnivore.omnivore.ui.save.SaveViewModel
44
37
import kotlinx.coroutines.flow.distinctUntilChanged
45
38
import kotlinx.coroutines.launch
46
39
@@ -50,18 +43,20 @@ import kotlinx.coroutines.launch
50
43
fun LibraryView (
51
44
libraryViewModel : LibraryViewModel ,
52
45
labelsViewModel : LabelsViewModel ,
46
+ saveViewModel : SaveViewModel ,
53
47
navController : NavHostController
54
48
) {
55
49
val scaffoldState: ScaffoldState = rememberScaffoldState()
56
50
val showLabelsSelectionSheet: Boolean by libraryViewModel.showLabelsSelectionSheetLiveData.observeAsState(false )
51
+ val showAddLinkSheet: Boolean by libraryViewModel.showAddLinkSheetLiveData.observeAsState(false )
57
52
58
53
val coroutineScope = rememberCoroutineScope()
59
54
val modalBottomSheetState = rememberModalBottomSheetState(
60
55
ModalBottomSheetValue .Hidden ,
61
56
confirmStateChange = { it != ModalBottomSheetValue .Hidden }
62
57
)
63
58
64
- if (showLabelsSelectionSheet) {
59
+ if (showLabelsSelectionSheet || showAddLinkSheet ) {
65
60
coroutineScope.launch {
66
61
modalBottomSheetState.show()
67
62
}
@@ -82,7 +77,7 @@ fun LibraryView(
82
77
sheetBackgroundColor = Color .Transparent ,
83
78
sheetState = modalBottomSheetState,
84
79
sheetContent = {
85
- BottomSheetContent (libraryViewModel, labelsViewModel)
80
+ BottomSheetContent (libraryViewModel, labelsViewModel, saveViewModel )
86
81
Spacer (modifier = Modifier .weight(1.0F ))
87
82
}
88
83
) {
@@ -92,6 +87,7 @@ fun LibraryView(
92
87
LibraryNavigationBar (
93
88
savedItemViewModel = libraryViewModel,
94
89
onSearchClicked = { navController.navigate(Routes .Search .route) },
90
+ onAddLinkClicked = { libraryViewModel.showAddLinkSheetLiveData.value = true },
95
91
onSettingsIconClick = { navController.navigate(Routes .Settings .route) }
96
92
)
97
93
},
@@ -106,8 +102,9 @@ fun LibraryView(
106
102
}
107
103
108
104
@Composable
109
- fun BottomSheetContent (libraryViewModel : LibraryViewModel , labelsViewModel : LabelsViewModel ) {
105
+ fun BottomSheetContent (libraryViewModel : LibraryViewModel , labelsViewModel : LabelsViewModel , saveViewModel : SaveViewModel ) {
110
106
val showLabelsSelectionSheet: Boolean by libraryViewModel.showLabelsSelectionSheetLiveData.observeAsState(false )
107
+ val showAddLinkSheet: Boolean by libraryViewModel.showAddLinkSheetLiveData.observeAsState(false )
111
108
val currentSavedItemData = libraryViewModel.currentSavedItemUnderEdit()
112
109
val labels: List <SavedItemLabel > by libraryViewModel.savedItemLabelsLiveData.observeAsState(listOf ())
113
110
@@ -155,6 +152,14 @@ fun BottomSheetContent(libraryViewModel: LibraryViewModel, labelsViewModel: Labe
155
152
)
156
153
}
157
154
}
155
+ } else if (showAddLinkSheet) {
156
+ BottomSheetUI {
157
+ AddLinkSheetContent (
158
+ saveViewModel = saveViewModel,
159
+ onCancel = { libraryViewModel.showAddLinkSheetLiveData.value = false },
160
+ onLinkAdded = { libraryViewModel.showAddLinkSheetLiveData.value = false }
161
+ )
162
+ }
158
163
}
159
164
}
160
165
0 commit comments