- Migrating File/Path to URI to support SAF for android
- Do it slowly with maybe a custom string/uri handler
- Receive text sharing intent from other apps and create a new "untitled" note with contents being the received text
- Import/Export for individual files with a "Export All" button in settings that lets user download a
.zipwith everything (useful more for ios users) - Wait on files to be created before opening screen to avoid "Error loading file" on certain devices
- Add "Find in File" feature
- Will probably need to clone [TocController] to accept any node and limit to searching only in markdown preview mode, more work will be needed to make it work in edit mode
- Maybe a toggle to disable markdown rendering from Grid/List view
- Add more markdown syntax: footnotes
- Current footnote that came from library
markdown_widgetis somewhat broken
- Current footnote that came from library
- Add spell checker that has multi-platform support
- Needs offline support to not rely on apis
- Fixed issue with note editor text selection extending across full width instead of only around text
- Added toggle in settings to allow 3-button navigation bar to always be visible on android
- Added function to go into edit mode and focus on textfield for newly created notes
- Moved
_buildItemin GridListView into a separate file as a StatelessWidget it which seems to fix the tile not updating preview text - Upgraded flutter version from
3.38.5to3.41.7 - Refactored some of the handlers to remove
loadItemsto use provider instead and changed messages on dialog and snackbar messages
- Upgrading libraries to work on flutter version 3.41.2 and fixed changes to FontAwesomeIcons and FilePicker
- Fixed issues with empty notes showing "..." in preview due to text preview trimming logic not checking if text was empty
- Added pure black mode to dynamic color mode.
- Removed drag from right side to open table of contents, interfered with back gesture on gesture navigation for android
- Moved PDF search bar into separate widget
- Updated README.md to remove quote about quillpad
- On Android, bottom navigation bar now will auto hide to not cover UI due to forced edge-to-edge view
- Bumped flutter version from
3.35.1to3.38.5
- Added menu item to settings on where to report issues
- Fixed tag markdown... again, drawer wasn't seeming most of the tags and I don't understand regex that well
- Fixed recently opened files list trying to show deleted files
- Changed home screen showing folder path like a breadcrumb rather than only folder name
- Note content from grid/list screen that is trimmed now ends with ellipsis
- Removed toolbar url maker automatically adding
http://if none in url - Added option to open notes automatically in edit mode in editor config page
- Notes without names can be created and will be titled "untitled"
- Fixed file name duplication appending additional (num) to existing (num) or (num)(num)
- Changed note title from selectable text to regular text
- Note title overflows with ellipsis (...) and file extension is now hidden
Forgive me for I have sinned, I have tried an IDE AI using local LLM, and it just added working checkboxes in 3 short prompts. I will resist the urge to always use it, but I want to at least mention it every time I use it and keep commits of purely ai work separate from my changes to make sure it doesn't ruin anything. I'll add tag here to list item and "AICode" to commit to help differentiate it.
- Added working checkboxes that save file from preview mode #AICode
- Fixed custom settings not being loaded on startup
- Provider optimizations and code cleaning
- Finished recent opened notes feature
- Fixed tags incorrectly shown in tag menu inside drawer
- Removed
package_info_plusdue to issues with RB (Reproducible Builds)
- Fixed 'All Notes' button on drawer rail for desktop
- Changed how drawer tag list works to not have issues with real folders that start with #
- Added 'Recent' tab, still needs logic to save last opened files
- Refreshed desktop images in README
- Automated the fetching of app version number
- Changed [StorageSystem.listFolderContents] to use uri instead of path string
- Automated library/package usage details with
dart_pubspec_licenseslibrary
- Changed tag regex to only work if the tag is on a new line without any text in front
- Added Superscript and Subscript markdown syntax
- Needed to add strikethrough due to it being
~strike~instead of~~strike~~
- Needed to add strikethrough due to it being
- Added extra whitespace at the bottom to note editor
- Refactored some code like making [SettingsProvider]
loadItemsfunction into more of a provider like function (it was from old days before I used provider) - Fixed bug I made in current release with new files not opening when created (just added a 50 milliseconds delay)
- Possibly fixed the "Error loading file" error but it might need a longer delay if device is really slow
- Changed look of fake splash screen
- Made [NavigationProviders]
initRouteHistoryonly trigger on launch rather every time [NoteDisplay] rebuilt - Fixed preview length not reflecting changes in [StorageSystem]
- Migrated more stuff into using [Uri] instead of [File]
- That includes the Note editor
- Moved loading of SharedPreference to main on startup rather than each time it is checked or set
- Redesigned Settings screens and About screen
- Moved toolbar_config to a separate json file
- Minor changes and some clean up
- Added Share and Export options to sketch pad
- Updated pdfrx to newest version to have it not include Build IDs
- Edited build process as pdfrx now bundles WASM modules that are not needed for application and only add extra megabytes to compiled apps
- Fixed open file location on notes
- Changed PDF, Image viewer, and Sketch pad to use [Uri] instead of [File]
- Changed docker WORKDIR to not be a root path
- Added Dynamic Color settings (aka Material You on android)
- Fixed sketch pad not following theme very well
- Clean up and reorganization
- Version bump
- Fixed the icons on the sketch pad bottom bar
- Fixed look of the sketch pad from grid/list/tree modes
- Added sketch pad with the use of
BSONfiles usingsketch_flowlibrary
- Fixed archive screen navigation breaking
- Merged the code for trash and archive screens (didn't change visually)
- File duplication now increments with a number (ex.
Note(1).md,Note(2).md) instead of adding_copyto it every time (ex.Note_copy.md,Note_copy_copy.md) - Fixed screen rebuilding every time item is selected/deselected in select file mode
- Added a share button to Note Editor (to share text) and to PDF and Image viewers (to share file)
- Increased flutter version
- Expanded img file support to
bmpandgif - Added ability to open pdf, images and text files (in read only mode) from file manager on android
- Returned ToC and kept scroll position synced between edit and preview mode in note editor
- WikiLink header reference now scrolls to header
- Redesigned custom themes page
- WikiLinks now display header links so
[[note#topic]]render asnote > topic, but doesn't scroll to header yet
- Added tag list in drawer
- Fixed 'All Notes' button in drawer again
- Made dropdown list of note background images become subtitle if screen small to not crowd text
Working on adding a list of tags in drawer
- Added popup with a list of users background images for app where they can delete them
- Added error handling for if image that is being used by apps background gets deleted outside of app
Been working on new styling options and forgot to write changelog
- Removed Table of Contents in favor of scroll position remembered between edit and preview mode (might rework it back in later)
- In settings, removed layout section and moved to styling and the new "More Options" page
- In More Design Options page, added:
- Home Screen settings:
- Background image
- Bg Image opacity, fit, and repeat
- Note Tile Opacity
- Note Text Preview Amount
- Background image
- Grid/List View Specific settings:
- Note Tile Shape (round or square border)
- Note Tile Text Padding (spacing between border and text)
- Note Tile Spacing (space between each tile)
- Note Editor settings:
- Note Editor Padding (space between edge and text)
- Home Screen settings:
- Fixed certain things not reloading page due to the optimization changes
- Merged url handlers
- Fixed pdf search bar
- Optimized general searching
- Changed StorageSystem.listFolderContents into a Future which in theory should improve performance
- Changed StorageSystem.getFilePreview into a Future
- Migrates withOpacity to withValues()
- App version bump
- Moved markdown_widget library in house to have better control over it for future updates
- Added ability to link to files with WikiLinks and regular links
- Forgot to mention that I bumped flutter version from
3.32.2to3.32.5due to some bugs with that version - Added option to hide title bar on linux and windows
- On desktop, title bars (aka AppBar) in the app can now be used to grab the window around
- Improved local image relative path logic further
- Changed logic for referencing local images to allow relative path
- Added internet usage info page to IntroScreen to clear confusion regarding internet access
- Upgraded project from flutter version
3.29.2to3.32.2- As well as upgraded pub dependencies/libraries
- Added ability to parse CSV files into markdown tables for previewing
- Fixed error when having unsupported file types in app (broke it when adding frontmatter support)
- Redesigned drawer into a rail of icons for larger screens
- Fixed exiting without editing note updates last modified date
- Added sorting option called folder priority, or show folders above or below files or none aka don't separate
- Added sort order to settings screen as well
- Added markdown table maker to toolbar
- Removed the added empty lines above and below horizontal rule from the toolbar shortcut
- Fixed image and pdf not rendering when frontmatter enabled
-
Added Frontmatter support for tags: (Note: colors can only be hex values in quotation marks ex. '#cbff90')
- title -> Displays set title rather then file name
- description -> Overrides preview of file content with set description
- color -> Changes the color of the text
- background -> Changes the color of the background
-
Added button in drawer to github wiki
- Added ability to display local images inside markdown notes
- Made file titles selectable on long press
- Fixed Markdown syntax for tags, highlights, and underlines reverting to default font size when in a list
- Added way to open pdf files on android from file manager (aka Receiving Media Intent)
- Updated to latest flutter version
3.29.2 - Switched to using double space for indentation as tab (
\t) breaks indents for lines underneath - Added option to make dark mode background pure black for builtin themes
- Added option to switch between different codeblock themes
- Added underline markdown syntax (ex.
__text__) as html syntax wasn't working (my bad for not testing) - Note editor now check for external changes to file
- Notes are no longer saved on immediate change but every 3 seconds instead
- Upgraded to flutter version
3.29.0. - Fixed archive and trash paths not updating when changing notes location.
- Added popup for delete config button in settings
- Fixed minor error with deleteJsonConfigFile not loading new config in time
- Fixed drawer "All Notes" button not redirecting user to homepage/main folder
- Notes preview will reflect changes when you exit note editor
- Fixed permanent delete was trashing instead of deleting
- Changed when notes are created, if extension is added by user, will not add
.mdon top of it - Added Refresh on pull up for Grid/List view for mobile
- Expanded access to allow all file extension types, will instead show error message if reading file is not possible
- Renamed a lot of things from "note" to "file"
- Moved toolbarConfig from
SharedPreferenceinto themain_config.jsonfile - Made small modifications to custom color list tiles
- Added option to delete and generate new config file from settings screen
- Added Editor Configuration page to the 'more' button in note editor
- Modify font size of markdown text
- Rearrange toolbar items
- Show/hide toolbar items
- Fixed files not displaying when the main selected folder is a hidden folder (aka starts with '.')
- Route history resets when changing notes folder now
- Fixed navigation history when you enter into trash or archive while not on main home screen
- Moved
ItemNavigationintoNavigationProviderand unified route history for notes, trash, and archive screens as well as expanded to include files as well - Fixed search throwing user to main folder even when in a different folder and not updating route history
- Fixed file/folder creation not happening in current folder and not reloading page
- Added check on launch if app hasn't lost
externalStoragePermissionson android if not new user - Disabled drawer when searching
- Changed link in about screen from liberapay.com to buymeacoffee.com
v0.9.13
jumped the gun
Note: This only applies to grid and list views as tree view requires a different approach
- Added option to select many notes and perform bulk actions like
- moving
- deleting
Changes:
- Added
SelectingProviderto deal with selected items more easily. - Fixed speed dial as accidentally put
.watch()instead of.read()on a onTap. - Fixed tree view using hardcoded backslash instead of platform path separator.
- Made dialog for selecting where to move items say main folder path location as I found it confusing being unsure where I was at first glance.
Disabled sort options for tree view as they didn't work either way.Fixed (02/06/2025)- Changed wording in item delete handler for soft delete from 'delete' to 'trash' to not confuse users.
Done something I should have done in the very beginning, using Provider for settings state management, changes should be imperceptible, but it will help keep code clean and make my life simpler with adding feature to perform bulk actions by selecting.
Need to completely remove SettingsLoader once I move out loadItems(), want to save work while it seems to all still be working normally.
Work in Progress
Working on adding a item selection feature to perform bulk actions on notes like moving or deleting all selected items.
Will be part of 0.9.13, also version 0.9.12 doesn't have a release outside of iOS due to needing to fix permissions issue and how you can't release app with same version number even if build number is different on apple app store.
Started working on releasing app to the Apple App Store but due to insufficient testing outside of iOS emulator, ended up learning more about how permissions are handled for iOS. To make the app work for ios, I hid the folder selection buttons and instead made the Apps documents directory visible in the Files app.
- Added PDF Viewer to the app (I didn't have one on my phones, so I decided, why not add to my notes app)
- Added button home screen floating action button to open external images and PDF files from storage
Tried publishing app to Google Play Store, got passed closed testing, but when trying to release to production I got rejected multiple times for using MANAGE_EXTERNAL_STORAGE permission on android, they didn't like any of my reasons. I might need to figure out how to use ACTION_OPEN_DOCUMENT_TREE or something like it without breaking or rewriting the entire app. Couldn't find a good library that wasn't outdated or was too complex, so I might actually need to learn some Kotlin for this.
- Fixed search and removed hidden folders from results
- Made Snackbars prettier
- Fixed minor bugs and visual discrepancies, config file for custom themes is now looks readable with indentation instead of all being on one line.
Added info pop up for notes like amount of characters, words, the file size, file mod date, and file path/location. Fixed issue with expandableBackground not set on toolbar which would default to white, so in dark mode made it impossible to see icons in most cases.
Made table of contents into a end drawer (drawer that opens from right side instead) and made content center on large screens for note editor, image viewer, settings, about, and custom colors screen, debating if other screens also need it.
Removed all files related to syncing, will keep them on dev branch instead.
Search can now find tags if you click on filter icon to toggle advanced search and type "tags:" and then enter the name of the tag you want to find. Changed how tags look like as they can me a bit too light or dark depending on theme, still not the best fix, but is better. Changed available images to reflect the changes
Added advanced search for searching the contents of notes. Moved "sort by" button into the 3 dot "more" popup menu, as well as made "change layout" into a popup menu as well
Moved Grid/List views into a separate file, fixed up some functions in storage_system.dart to remove a few duplicate code, and changed some text like "Note" to "File" as app now supports images as well. Still need to fix archiving and soft deletion for images.
Added way to preview images from home screen and from a basic image viewer, this is in preparation to allow linking images in storage from inside notes.
Added third layout view "tree view", option from home screen just cycles through them, while in settings you specifically choose which one you want.
Happy Halloween, not so happy day, sync enthusiasts, I am hiding the Sync option on the drawer and will be working on 1 way (upload only) sync in the mean time. I didn't realize how hard 2 way (bi-directional) syncing is, but I have been doing research and I have decided to still add it, it will just be a package I will try to make myself to later add to the app.
To explain why bi-directional sync is hard is that it would require creating a database that will log all changes of files and folders like creating, renaming, deleting, moving. A database is needed to prevent deleted files from infinity being added back to server by other devices, also, there is no good way to give files unique identifiers without adding something like '_UniqueIdOfFile.md' to every file and removing it when displaying it on app to prevent the act of renaming a note creating duplicates on server or other connected devices.
Syncthing for android is being discontinued - read here, which is what I personally use.
I am starting a 'dev' branch while I work a bit more on syncing (been putting it off cuz it drains all my motivation), currently trying to implement FTP as there is a package for it, so I hope it will be easier then messing with Nextcloud webdav. I will probably need to add file encryption when syncing, but that is a thought for a later date.
Removed manual saving of notes, decided it wasn't worth it as these are simple notes meaning saving on change is fine, this means that the shortcut ctrl+s on desktop is also removed. Changed drawer icon to logo as well. If people want it, I can make a toggle is settings to enable and disable auto saving, returning the keyboard shortcuts and save buttons.
Made save button on mobile into FAB at the bottom of the screen (hides behind keyboard as well) as it is harder to reach the save button on large phones, still in the same position on desktop. Desktop got a button to hide side ToC panel, open by default. Also, some other minor changes.
Added a slider in settings to adjust how many characters are show for notes preview with option to do zero which will only display the title. Also, made the reload button on the scaffold of the note_display screen give user feedback by actually appearing to reload.
Adding custom themes page that allows user to import a json string of a theme you get from printnotes_theme_maker (will be a website to make your own themes, its to avoid bloating app, plus easier to use on pc), and add a name to it to be saved into a list in a hidden json file called .printnotes_config.json.
All themes will be displayed on that screen split into light and dark, so user could pick one of each to be used when switching between brightness modes. If a selected color theme gets deleted, app uses the default for that brightness mode.
- Added custom ==highlighting== text syntax as well as #Tags, search by tag not implemented yet
- Made text on home screen a little bit smaller and added last modified ascending and descending to sort list
- If a file that is not a markdown or txt file is attempted to be opened, message will pop up saying not supported
- Removed future builder for note preview as it cause stuttering effect when scrolling up as items got unloaded and loaded, note preview is now readAsStringSync
- Moved user preferences all into a single file, including: layout, theme/color, and sort order (now latex support too)
- Added option in settings to toggle latex support for those that need it.
- Moved android 'allow external storage access' popup check to when selecting folder instead of when listing folder contents
- You can now change file name from editor screen
- Creating new note immediately opens the note
- Added Table of Content for headers, on small display windows its a floating action button in the bottom right corner, on large displays its a side menu on the right if the note contains '# ' anywhere
- Removed soft delete and bin expiration time and made permanent delete default option
- Made some styling changes to drawer
- Moved folder navigation from SettingsLoader to ItemNavHandler, this was meant to always happen, I just like quick and dirty implementations
- Replaced flutter_markdown with markdown_widget for better experience
- Code blocks are now colored if you specify language by adding it after the first three backticks, example
```Dart - App now supports LaTeX math notations
- Desktop version support saving using ctrl-s and switching editor preview/edit modes with ctrl-shift-v
- Code blocks are now colored if you specify language by adding it after the first three backticks, example
- On home page where all notes are displayed, the markdown images and links are now absorbed to only open note
- Changed Snackbar a custom one that has a floating behavior instead of fixed
- Changed out the screenshot to better reflect new look
Added undo/redo buttons to text editor and on notes display screen made folder icon a little bit smaller with name maxlines extended from 1 to 2.
Added app icons to different devices but I still need to check if they all work. Fixed the search and sort order buttons not updating screen when pressed, which happened when I was restructuring everything and forgot to check them.
-
Added popup when you try to close app with back button.
-
Added Sync screen in drawer.
-
Added Secure Storage library for sync service credentials (meaning more dependencies required to install 😓).
-
Added a way to upload files and folders to your Nextcloud (actual auto syncing, will add in the future, hopefully soon).
-
Shows the last time you uploaded notes.
-
TODO: Made option to switch WiFi only or WiFi+Cellular upload condition but commented it out as I will add it when I figure out notes comparing and merging with sync service.
(need to figure out how to version app cuz I never done this before ┐( ̄ヘ ̄)┌)