mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
Work on PDF notes
This commit is contained in:
parent
465e88ca88
commit
707245562e
4 changed files with 36 additions and 152 deletions
|
|
@ -17,8 +17,8 @@ android {
|
|||
applicationId "app.omnivore.omnivore"
|
||||
minSdk 26
|
||||
targetSdk 33
|
||||
versionCode 80
|
||||
versionName "0.0.80"
|
||||
versionCode 82
|
||||
versionName "0.0.82"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables {
|
||||
|
|
|
|||
|
|
@ -184,7 +184,6 @@ fun EditNoteModal(initialValue: String?, onDismiss: (save: Boolean, text: String
|
|||
colors = TextFieldDefaults.textFieldColors(
|
||||
textColor = Color.White
|
||||
)
|
||||
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -381,7 +380,7 @@ fun BottomSheetUI(content: @Composable () -> Unit) {
|
|||
.wrapContentHeight()
|
||||
.fillMaxWidth()
|
||||
.clip(RoundedCornerShape(topEnd = 20.dp, topStart = 20.dp))
|
||||
.background(Color.White)
|
||||
.background(Color.Transparent)
|
||||
.statusBarsPadding()
|
||||
) {
|
||||
Scaffold(
|
||||
|
|
|
|||
|
|
@ -1,41 +1,30 @@
|
|||
package app.omnivore.omnivore.ui.reader
|
||||
|
||||
import android.content.ClipData
|
||||
import android.R
|
||||
import android.content.DialogInterface
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.compose.foundation.background
|
||||
import android.view.WindowManager
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.ArrowBack
|
||||
import androidx.compose.material.icons.filled.MoreVert
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.focus.FocusRequester
|
||||
import androidx.compose.ui.focus.focusRequester
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.ComposeView
|
||||
import androidx.compose.ui.platform.ViewCompositionStrategy
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import app.omnivore.omnivore.ui.notebook.ArticleNotes
|
||||
import app.omnivore.omnivore.ui.notebook.HighlightsList
|
||||
import app.omnivore.omnivore.ui.notebook.notebookMD
|
||||
import app.omnivore.omnivore.ui.notebook.EditNoteModal
|
||||
import app.omnivore.omnivore.ui.theme.OmnivoreTheme
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class AnnotationEditFragment : BottomSheetDialogFragment() {
|
||||
|
||||
class AnnotationEditFragment : DialogFragment() {
|
||||
private var onSave: (String) -> Unit = {}
|
||||
private var onCancel: () -> Unit = {}
|
||||
private var initialAnnotation: String = ""
|
||||
|
|
@ -50,24 +39,38 @@ class AnnotationEditFragment : BottomSheetDialogFragment() {
|
|||
this.onCancel = onCancel
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
|
||||
return ComposeView(requireContext()).apply {
|
||||
// Dispose of the Composition when the view's LifecycleOwner
|
||||
// is destroyed
|
||||
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
|
||||
|
||||
(dialog as? BottomSheetDialog)?.let {
|
||||
it.behavior.skipCollapsed = true
|
||||
it.behavior.state = STATE_EXPANDED
|
||||
}
|
||||
|
||||
dialog?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)
|
||||
|
||||
|
||||
|
||||
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
|
||||
setContent {
|
||||
OmnivoreTheme {
|
||||
AnnotationEditView(
|
||||
initialAnnotation,
|
||||
onSave,
|
||||
onCancel,
|
||||
// dismissAction = { dismiss() }
|
||||
)
|
||||
}
|
||||
val annotation = remember { mutableStateOf(initialAnnotation ?: "") }
|
||||
|
||||
OmnivoreTheme {
|
||||
EditNoteModal(initialValue = initialAnnotation, onDismiss = { save, text ->
|
||||
if (save) {
|
||||
onSave(text ?: "")
|
||||
} else {
|
||||
onCancel()
|
||||
}
|
||||
dismissNow()
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -77,121 +80,3 @@ class AnnotationEditFragment : BottomSheetDialogFragment() {
|
|||
super.onDismiss(dialog)
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun AnnotationEditView(
|
||||
initialAnnotation: String,
|
||||
onSave: (String) -> Unit,
|
||||
onCancel: () -> Unit,
|
||||
) {
|
||||
val annotation = remember { mutableStateOf(initialAnnotation) }
|
||||
val focusRequester = FocusRequester()
|
||||
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
title = { Text("Notebook") },
|
||||
colors = TopAppBarDefaults.topAppBarColors(
|
||||
containerColor = MaterialTheme.colorScheme.background
|
||||
),
|
||||
navigationIcon = {
|
||||
IconButton(onClick = {
|
||||
onCancel()
|
||||
}) {
|
||||
Icon(
|
||||
imageVector = Icons.Filled.ArrowBack,
|
||||
modifier = Modifier,
|
||||
contentDescription = "Back",
|
||||
)
|
||||
}
|
||||
},
|
||||
actions = {
|
||||
TextButton(
|
||||
onClick = {
|
||||
onSave(annotation.value)
|
||||
}
|
||||
) {
|
||||
Text("Save")
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
) { paddingValues ->
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.padding(paddingValues)
|
||||
.fillMaxSize()
|
||||
) {
|
||||
TextField(
|
||||
value = annotation.value,
|
||||
onValueChange = { annotation.value = it },
|
||||
colors = TextFieldDefaults.textFieldColors(
|
||||
textColor = Color.White,
|
||||
containerColor = Color.Green,
|
||||
),
|
||||
modifier = Modifier
|
||||
.focusRequester(focusRequester)
|
||||
.fillMaxSize()
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
// Column(
|
||||
// modifier = Modifier.padding(16.dp),
|
||||
// horizontalAlignment = Alignment.CenterHorizontally,
|
||||
// ) {
|
||||
// Row {
|
||||
// TextButton(
|
||||
// onClick = {
|
||||
// onCancel()
|
||||
// dismissAction()
|
||||
// }
|
||||
// ) {
|
||||
// Text("Cancel")
|
||||
// }
|
||||
//
|
||||
// Spacer(modifier = Modifier.weight(1.0F))
|
||||
//
|
||||
// Text(text = "Note")
|
||||
//
|
||||
// Spacer(modifier = Modifier.weight(1.0F))
|
||||
//
|
||||
// TextButton(
|
||||
// onClick = {
|
||||
// onSave(annotation.value)
|
||||
// dismissAction()
|
||||
// }
|
||||
// ) {
|
||||
// Text("Save")
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// Spacer(modifier = Modifier.height(8.dp))
|
||||
//
|
||||
//
|
||||
//
|
||||
// Spacer(modifier = Modifier.height(16.dp))
|
||||
|
||||
//
|
||||
// LaunchedEffect(Unit) {
|
||||
// focusRequester.requestFocus()
|
||||
// }
|
||||
|
||||
// Row {
|
||||
// Spacer(modifier = Modifier.weight(0.1F))
|
||||
// TextField(
|
||||
// value = annotation.value,
|
||||
// onValueChange = { annotation.value = it },
|
||||
// modifier = Modifier
|
||||
// .width(IntrinsicSize.Max)
|
||||
// .height(IntrinsicSize.Max)
|
||||
// .weight(1.0F)
|
||||
// )
|
||||
// Spacer(modifier = Modifier.weight(0.1F))
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // }
|
||||
//}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<FrameLayout
|
||||
android:id="@+id/fragmentContainer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<com.pspdfkit.ui.PdfThumbnailBar
|
||||
android:id="@+id/thumbnailBar"
|
||||
|
|
|
|||
Loading…
Reference in a new issue