diff --git a/PRIVACY_POLICY.md b/PRIVACY_POLICY.md
new file mode 100644
index 0000000..e04d7e4
--- /dev/null
+++ b/PRIVACY_POLICY.md
@@ -0,0 +1,41 @@
+## Privacy Policy of Open Note
+
+Flux is an open-source Android app developed by Ronit Chinda.
+The source code is available on GitHub under the GPL-3.0 license.
+
+### Data Collection
+
+Flux does not collect any personal or confidential information such as addresses, names, or email addresses.
+
+### Permissions Requested
+
+The app requires the following permissions, as listed in the `AndroidManifest.xml` file:
+
+https://github.com/chindaronit/Flux/blob/master/app/src/main/AndroidManifest.xml
+
+| Permission | Purpose |
+|---------------------------------|---------------------------------------------------------------------------------------------------------------|
+| `android.permission.USE_BIOMETRIC` | Enables biometric authentication to provide secure access to protected notes |
+| `android.permission.INTERNET` | Allows network connectivity for loading web content (images, videos, and other media) when rendering markdown |
+| `android.permission.RECEIVE_BOOT_COMPLETED` | Allows the app to receive the system broadcast after device boot, enabling it to restart scheduled tasks such as reminders, alarms, or background sync services |
+| `android.permission.POST_NOTIFICATIONS` | Grants permission to display notifications to the user (required on Android 13+), used for reminders, updates, or alerting about scheduled events |
+| `android.permission.SCHEDULE_EXACT_ALARM` | Allows the app to schedule precise alarms that trigger at exact times (e.g., note reminders, task deadlines), bypassing battery optimizations that delay inexact alarms |
+
+### Dependencies
+
+The app uses the following dependencies:
+
+- **Room**: For local database management.
+- **Hilt**: For dependency injection.
+- **Compose**: For building the UI.
+- **CommonMark**: For markdown rendering and parsing.
+
+### Data Sharing
+Flux does not share any personal or sensitive user data with third parties.
+
+### Data Deletion
+Usually all data is stored locally and can be cleared by the user at any time.
+
+---
+
+If you have any questions about this policy or personal information protection, please send your inquiries, opinions, or suggestions to: chindaronit04@gmail.com
\ No newline at end of file
diff --git a/app/src/main/Guide.md b/app/src/main/Guide.md
new file mode 100644
index 0000000..97d9b0c
--- /dev/null
+++ b/app/src/main/Guide.md
@@ -0,0 +1,185 @@
+# Index
+
+- [What is Markdown?](#what-is-markdown)
+- [What is CommonMark?](#what-is-commonmark)
+- [What is GitHub Flavored Markdown?](#what-is-github-flavored-markdown)
+- [What is LaTeX?](#what-is-latex)
+- [How to use LaTeX in Markdown?](#how-to-use-latex-in-markdown)
+- [What has Flux offered?](#what-has-flux-offered)
+- [Some Basic Markdown Syntax](#some-basic-markdown-syntax)
+- [Some Extended Markdown Syntax](#some-extended-markdown-syntax)
+- [LaTeX Math Syntax](#latex-math-syntax)
+- [Greek Letters](#greek-letters)
+- [References](#references)
+
+# What is Markdown?
+
+Markdown is a plain text format for writing structured documents, based on conventions for
+indicating formatting in email and usenet posts.
+It was developed by John Gruber (with help from Aaron Swartz) and released in 2004 in the form of a
+syntax description and a Perl script (Markdown.pl) for converting Markdown to HTML.
+
+In the next decade, dozens of implementations were developed in many languages.
+Some extended the original Markdown syntax with conventions for footnotes, tables, and other
+document elements.
+Some allowed Markdown documents to be rendered in formats other than HTML.
+
+Websites like Reddit, StackOverflow, and GitHub had millions of people using Markdown.
+And Markdown started to be used beyond the web, to author books, articles, slide shows, letters, and
+lecture notes.
+
+# What is CommonMark?
+
+CommonMark was developed to address inconsistencies and ambiguities in Markdown.
+
+The CommonMark specification defines rules for elements such as headings, lists, links, emphasis,
+and code blocks, among others.
+
+By adhering to the CommonMark standard, developers can ensure consistent rendering of Markdown
+content across different applications and platforms.
+
+# What is GitHub Flavored Markdown?
+
+GitHub Flavored Markdown, often shortened as GFM, is the dialect of Markdown that is currently
+supported for user content on GitHub.com and GitHub Enterprise.
+
+This formal specification, based on the CommonMark Spec, defines the syntax and semantics of this
+dialect.
+
+GFM is a strict superset of CommonMark. All the features which are supported in GitHub user content
+and that are not specified on the original CommonMark Spec are hence known as extensions, and
+highlighted as such.
+
+While GFM supports a wide range of inputs, it’s worth noting that GitHub.com and GitHub Enterprise
+perform additional post-processing and sanitization after GFM is converted to HTML to ensure
+security and consistency of the website.
+
+# What is LaTeX?
+
+LaTeX is a typesetting system commonly used for producing scientific and mathematical documents.
+
+LaTeX provides a powerful way to represent mathematical notation in documents, allowing users to
+create complex equations and formulas with ease.
+
+# How to use LaTeX in Markdown?
+
+Mathematical expressions are key to information sharing amongst engineers, scientists, data
+scientists, and mathematicians.
+
+You can use the $ and $$ delimiters in GFM to insert math expressions in TeX and LaTeX style syntax.
+
+# What has Flux offered?
+
+Flux supports CommonMark and GitHub Flavored Markdown (GFM) syntax, as well as LaTeX math
+syntax.
+
+This allows users to create richly formatted notes with support for headings, lists, links,
+emphasis, code blocks, tables, and mathematical expressions, and allows notes to be exported in
+various formats including TXT, MD (Markdown), and HTML.
+
+# Some Basic Markdown Syntax
+
+| Element | Syntax |
+|:--------------:|:----------------------------------:|
+| Heading | `# H1`
`## H2`
`### H3` |
+| Italic | `_italic_ or *italic*` |
+| Bold | `**bold** or __bold__` |
+| Blockquote | `> Blockquote` |
+| Link | `[title](https://www.example.com)` |
+| Code | `` `code` `` |
+| Ordered List | `1. List item 1 or 2) List item 2` |
+| Unordered List | `- Apple or + Banana or * Orange` |
+| Image | `` |
+
+# Some Extended Markdown Syntax
+
+| Element | Syntax |
+|:-------------:|:----------------------------------:|
+| Strikethrough | `~~Strikethrough~~` |
+| Underline | `++Underline++` |
+| Highlight | `==Marking==` |
+| Task List | `- [x] Task 1`
`- [ ] Task 2` |
+| Heading ID | `# Heading {#custom-id}` |
+
+# LaTeX Math Syntax
+
+| Element | Syntax |
+|:-----------:|:------------------:|
+| Inline | `$x^2$` |
+| Display | `$$x^2$$` |
+| newline | `\\ or \\\\` |
+| Whitespace | `\quad or \` |
+| Superscript | `x^2` |
+| Subscript | `y_1` |
+| Expression | `{x}` |
+| Overline | `\overline{x}` |
+| Underline | `\underline{x}` |
+| Fraction | `\frac{x}{y}` |
+| Left Paren | `\left(` |
+| Right Paren | `\right)` |
+| Parentheses | `\left(x+y\right)` |
+| Brackets | `\left[x+y\right]` |
+| Braces | `\left{x+y\right}` |
+| Root | `\sqrt[n]{x}` |
+| × | `\times` |
+| ÷ | `\div` |
+| ± | `\pm` |
+| ≠ | `\neq` |
+| ≈ | `\approx` |
+| ≤ | `\leq` |
+| ≥ | `\geq` |
+| ∞ | `\infty` |
+| ∑ | `\sum` |
+| ∏ | `\prod` |
+| ∫ | `\int` |
+| ∑ | `\sum` |
+| lim | `\lim` |
+| ∀ | `\forall` |
+| ∃ | `\exists` |
+| ∴ | `\therefore` |
+| ∵ | `\because` |
+| ⊂ | `\subset` |
+| ⊃ | `\supset` |
+| ⊆ | `\subseteq` |
+| ⊇ | `\supseteq` |
+| ∈ | `\in` |
+| ∉ | `\notin` |
+
+# Greek Letters
+
+| Uppercase | Syntax | Lowercase | Syntax |
+|:---------:|:----------:|:---------:|:----------:|
+| A | `A` | α | `\alpha` |
+| Β | `B` | β | `\beta` |
+| Γ | `\Gamma` | γ | `\gamma` |
+| Δ | `\Delta` | δ | `\delta` |
+| Ε | `E` | ε | `\epsilon` |
+| Ζ | `Z` | ζ | `\zeta` |
+| Η | `H` | η | `\eta` |
+| Θ | `\Theta` | θ | `\theta` |
+| Ι | `I` | ι | `\iota` |
+| Κ | `K` | κ | `\kappa` |
+| Λ | `\Lambda` | λ | `\lambda` |
+| Μ | `M` | μ | `\mu` |
+| Ν | `N` | ν | `\nu` |
+| Ξ | `\Xi` | ξ | `\xi` |
+| Ο | `O` | ο | `\omicron` |
+| Π | `\Pi` | π | `\pi` |
+| Ρ | `P` | ρ | `\rho` |
+| Σ | `\Sigma` | σ | `\sigma` |
+| Τ | `T` | τ | `\tau` |
+| Υ | `\Upsilon` | υ | `\upsilon` |
+| Φ | `\Phi` | φ | `\phi` |
+| Χ | `X` | χ | `\chi` |
+| Ψ | `\Psi` | ψ | `\psi` |
+| Ω | `\Omega` | ω | `\omega` |
+
+# References
+
+You can find more information about Markdown, CommonMark, GitHub Flavored Markdown, LaTeX Math, and
+Mermaid at the following links:
+
+- [CommonMark](https://commonmark.org/)
+- [GitHub Flavored Markdown](https://github.github.com/gfm/)
+- [LaTeX](https://www.latex-project.org/)
+- [Mermaid](https://mermaid.js.org/)
\ No newline at end of file
diff --git a/app/src/main/java/com/flux/ui/components/BottomSheets.kt b/app/src/main/java/com/flux/ui/components/BottomSheets.kt
index 77156f9..70c0f74 100644
--- a/app/src/main/java/com/flux/ui/components/BottomSheets.kt
+++ b/app/src/main/java/com/flux/ui/components/BottomSheets.kt
@@ -82,6 +82,7 @@ import com.flux.data.model.getSpacesList
import com.flux.other.HeaderNode
import com.flux.other.icons
import com.flux.other.workspaceIconList
+import com.flux.ui.screens.events.formatCustom
import com.flux.ui.screens.events.formatMonthly
import com.flux.ui.screens.events.formatOnce
import com.flux.ui.screens.events.formatYearly
@@ -479,7 +480,7 @@ fun RecurrenceBottomSheet(
value = rule.everyXDays.toString(),
onValueChange = { new -> new.toIntOrNull()?.let { tempRule = rule.copy(everyXDays = it) } },
modifier = Modifier.padding(start = 8.dp),
- label = { Text(stringResource(R.string.recurrence_every_x_days)) },
+ label = { Text(formatCustom(rule)) },
singleLine = true
)
}
diff --git a/app/src/main/java/com/flux/ui/screens/notes/NotesHome.kt b/app/src/main/java/com/flux/ui/screens/notes/NotesHome.kt
index b9c4a97..a394b67 100644
--- a/app/src/main/java/com/flux/ui/screens/notes/NotesHome.kt
+++ b/app/src/main/java/com/flux/ui/screens/notes/NotesHome.kt
@@ -4,6 +4,7 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.heightIn
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyListScope
import androidx.compose.foundation.lazy.staggeredgrid.LazyVerticalStaggeredGrid
@@ -65,13 +66,12 @@ fun LazyListScope.notesHomeItems(
item {
val columns = if (isGridView) 2 else 1
val rowCount = ceil(pinnedNotes.size / columns.toFloat()).toInt()
- val gridHeight =
- rowCount * 300.dp + if (pinnedNotes.isNotEmpty()) 200.dp else 0.dp
+ val gridHeight = rowCount * 300.dp + if (pinnedNotes.isNotEmpty() && unPinnedNotes.isEmpty()) 200.dp else 25.dp
Box(
Modifier
.fillMaxWidth()
- .height(gridHeight)
+ .heightIn(max=gridHeight)
) {
LazyVerticalStaggeredGrid(
columns = StaggeredGridCells.Fixed(columns),
diff --git a/app/src/main/java/com/flux/ui/screens/settings/About.kt b/app/src/main/java/com/flux/ui/screens/settings/About.kt
index fe481b2..f1f4302 100644
--- a/app/src/main/java/com/flux/ui/screens/settings/About.kt
+++ b/app/src/main/java/com/flux/ui/screens/settings/About.kt
@@ -11,6 +11,7 @@ import androidx.compose.material.icons.filled.Settings
import androidx.compose.material.icons.rounded.Code
import androidx.compose.material.icons.rounded.DeveloperMode
import androidx.compose.material.icons.rounded.Info
+import androidx.compose.material.icons.rounded.IosShare
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
@@ -110,6 +111,28 @@ fun About(navController: NavController, radius: Int) {
}
)
}
+
+ item {
+ Spacer(Modifier.height(24.dp))
+ SettingOption(
+ title = "Share",
+ description = "Share application to friends and family.",
+ icon = Icons.Rounded.IosShare,
+ radius = shapeManager(radius = radius, isBoth = true),
+ actionType = ActionType.LINK,
+ linkClicked = {
+ val sendIntent = Intent(Intent.ACTION_SEND)
+ sendIntent.setType("text/plain")
+ sendIntent.putExtra(
+ Intent.EXTRA_TITLE, context.getString(R.string.app_name)
+ )
+ sendIntent.putExtra(
+ Intent.EXTRA_TEXT, context.getString(R.string.shareContent)
+ )
+ context.startActivity(Intent.createChooser(sendIntent, null))
+ }
+ )
+ }
}
}
}
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e3518a2..d878fb0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -304,7 +304,6 @@
space
Edit-space
-
Editor
Default View • Default Editing Mode
@@ -333,4 +332,12 @@
Weekly
Monthly
+
+ Flux is a modern Android productivity app built entirely with Compose.\n
+ It allows you to create, edit, and delete workspace which has various templates such as Notes, Habits, Journal, To-Do, Events, etc. along with advanced functionalities such as find and replace, note templates, local image/video/audio import, Markdown, LaTeX math formulas, and Mermaid diagram support.\n
+ Download and try it now:\n
+ - [GitHub](https://github.com/YangDai2003/OpenNote-Compose/releases)\n
+ - [F-droid](https://f-droid.org/packages/com.flux/)
+
+
\ No newline at end of file