Skip to content

general TO DO list #387

@CampelloManuel

Description

@CampelloManuel

This list tracks all important tasks related to this project. This helps @CampelloManuel schedule work.
Bigger, more complex tasks, mainly those that require collaboration, will get their own github issue.
There is another list for less important tasks in #480

For each release:

  • on the weblate project: check comments, approve suggestions, sync data with the github repo
  • test the app as much as possible
  • run ./release.sh. this creates a tag
  • in a few days the new release will appear automatically on f-droid and the play store

For the next version:

  • work on the issues in this view starting from the newest
  • work on the items of the list below

Important ideas:

  • list of reminders: make a view, maybe accessible through the overflow menu on the main activity, where a list of reminders is sorted by date, possibly also with the text of the note they belong to. This is to quickly see what kind of reminders are set and what is scheduled next. I think many users care more about reminders than the due date they set on the notes
  • I don't like the look of the time picker. Try different libraries and styles for the TimePickerDialog, and try MaterialTimePickerDialog of the google library, see which is better. Try also the date picker dialog, but that one is fine I think
  • https://github.com/SimpleMobileTools/Simple-Calendar integrates dynamic material colors. see how they do it and replicate
  • update the theme.xml to use the new material design, "material YOU". It's easy: <style name="Example" parent="Theme.Material3.DynamicColors.Dark"></style> is enough. but you have to remove the colorPrimary. So maybe adding it as a new theme choice is a good idea. try using daynight as a base. this site generates themes https://m3.material.io/theme-builder#/custom and this link https://codelabs.developers.google.com/codelabs/apply-dynamic-color#5 explains how to use them, but these don't use the dynamic colors, which is what I'm trying to do
  • remove the "androidannotations" library. It is obsolete, abandoned and gradle updates keep breaking it

New functionality & less important changes:

  • https://github.com/SimpleMobileTools/Simple-Calendar has a splash screen that shows black instead of white. see how they do and replicate
  • the backup and restore functions use an hardcoded filename. Instead, the backup function should let the user pick a directory, and save a .json file there, with the date on the filename, thus also allowing for multiple files. The restore function should open a filepicker to let the user choose a .json file to restore. The code to pick a predefined folder is a bad design choice and should be deleted. How to restore? #510 shows that the backup and restore functionality is not clear to users.
  • test the app on RTL (right-to-left) layouts (such as arab locale on emulator) and fix the UI bugs
  • edit the widget settings as requested in Bigger Text and better description for the Widget #497 , change the label to something like "Rows of notes to display. Move slider to max to show 99 rows". Then: Raise the widget note font size by 150 percent. But is there a way you could have the widget font match up with the font sizes we choose in the app? Useful when you set the font size to large in the appearance settings of the app.
  • add support for android Wear OS for smart watches. Test with the emulator available in the SDK.
  • reorganize namespaces to exploit the package-private feature. Take a big java file ( > 600 lines ) and create a package for it. then split it and keep only 1 class public. if a class has inner classes, split them into their own file and keep them as package private, with only the "main" class as visible. do it at least for activitymain and the task*fragment(s)
  • make a "widgets" namespace. move the shortcut class there. make a sub-namespace for the list widget, move all list widget classes there. make a new sub-namespace for the third widget of a third widget: "favorite note" #482 and add new code there
  • refactor all classes so that no file has more than, say, 500 lines of code. This means moving some methods out of ActivityMain and TaskDetailFragment on some static methods into their own helper classes
  • if the user tries to make a backup with password-locked notes, ask for the password before showing the backup dialog. do this both for creating and restoring the backup
  • the light & dark themes are not tied to the system's theme settings: we should have a default theme option that follows the day/night theme setting of the OS
  • remove all the commented out code and unused functions, classes, xml layouts, files and libraries
  • Use AndroidStudio's analyze feature (code analysis, default IDE profile) to get some ideas on what to refactor. Like use of deprecated classes, and so on. will be VERY long
  • remove org.androidannotations:androidannotations:4.8.0, which is deprecated. See Refactor package structure and remove AA #369 difficult, and not really worth it: the last version supports androidx just fine. and it's from 2020, so it's still usable. TEST CAREFULLY, especially the navigation from widgets. See Drop android annotations, use view bindings instead #465 a failed attempt
  • the code is full of TODOs, some are related to the issues in this list. Check and solve them
  • the animations files in app/src/main/res/anim are useless. consider deleting them
  • change the locale configuration: instead of a list in arrays.xml, do it like this https://gitlab.com/spacecowboy/Feeder/-/blob/master/app/src/main/res/xml/locales_config.xml
  • replace, when possibile, Toast with Snackbar, possibly with undo actions. especially in the backup preferences page this should be possible
  • the "shortcut" widget simply shows the app icon. It would be cool if it showed something different, like a custom "add note" icon. See ShortcutConfig.onOK()
  • use our custom NnnLogger instead of Log.d() and Log.e() in all calls in the codebase
  • check the commits on the OpenTracks repo in 2019, there could be some good changes to copy
  • find all references of R.string.feature_is_WIP and work on those features
  • big widget: more color options. the only options right now are between "light" and "dark", and they don't even affect the widget header. try to use the material YOU colors in android 13
  • run gradlew lint and fix the reported warnings. See TODO in build.gradle
  • Replace all images with vector graphics: since we target a minimum SDK > 22, there should be no png icons, they can all be vectors (except the "main" app icon)
  • add a setting to hide the "Next 5 days" page on the left. as of now the user can replace it with something else in the drawer
  • update featureGraphic, promographic and icon for fastlane
  • use as much as you can the "compat" features as opposed to the non-androidx classes
  • check and remove all .py files, which should be useless
  • version 6.0.0 had a button on the actionbar to quickly change the list ordering. In our version, the user has to long-click the list name in the drawer, which may be counter intuitive. maybe we should add a gear next to the list name so that it's clearer how the list settings are edited. as of now there is a folder icon. put a gear there ?
  • to reduce the apk size, we may delete the following useless folders: drawable-mdpi, drawable-xhdpi, assuming that we are only going to use XML drawables
  • attach photos to notes. If it's too hard, limit it to 1 photo per note. how should they be saved on the database: the entire photo or just its filepath ? alternative: try to fetch and show a photo if its uri or file path is in the note text. alternative: add an import button to TaskDetailFragment to add the file's path to the note as text, and retain the permissions to open the file.
  • add new espresso tests, if possibile
  • make better app icon(s). See https://icon.kitchen/
  • i found this https://developer.android.com/studio/debug/apk-analyzer so you should build a release APK, then check the "final" manifest and the proguard mappings
  • the SwipeRefreshLayout is useless: remove all references in the code
  • Shortcutconfig: use a + icon for "create note" and a "list" icon for "open list" actions
  • methods like Cursor.getContentResolver().query() are being used outside the designated com.nononsenseapps.notepad.database namespace. You should make an Helper class that calls these methods, closes the cursor and returns java objects. This way, Cursor and the database logic are enclosed in that namespace only
  • take a look at the google dev. console. Does the data suggest something ? In particular see which versions/devices crash more

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions