From ce18b47cbda93f1b5248a993ea39541d4ca68176 Mon Sep 17 00:00:00 2001 From: chindaronit Date: Fri, 20 Feb 2026 21:57:58 +0530 Subject: [PATCH] src: Added PRIVACY_POLICY.md and Guide.md fix: NoteScreen Layout fix in pinned and unpinned notes. --- PRIVACY_POLICY.md | 41 ++++ app/src/main/Guide.md | 185 ++++++++++++++++++ .../com/flux/ui/components/BottomSheets.kt | 3 +- .../com/flux/ui/screens/notes/NotesHome.kt | 6 +- .../com/flux/ui/screens/settings/About.kt | 23 +++ app/src/main/res/values/strings.xml | 9 +- 6 files changed, 262 insertions(+), 5 deletions(-) create mode 100644 PRIVACY_POLICY.md create mode 100644 app/src/main/Guide.md 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 | `![alt text](image.jpeg)` | + +# 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