/OpenToday

Android application for the organization of life

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

OpenToday

Android application for the organization of life, pro notes and reminder

license

GitHub release (latest SemVer) IzzyOnDroid

Using

Your main friends are Items There are different types of items that you can add:

  • Text - use it for simple text notes
  • CheckBox - in connection with GroupItem, use it as a grocery list to the store or a to-do list for today
  • Group - there are no restrictions in depth! Create your own hierarchy of storing items
  • Filter Group - use it to indicate current birthdays, tasks for today, various schedules (for example, school) or something more, up to the second (very useful thing)

and others...

Items tree

Item - (minimal heigth, backgroud color)
|
| Text - (text, text color)
  |
  | LongText - (long text, long text color)
  | Group - (items)
  | FilterGroup - (items)
  | CycleList - (items)
  | Counter - (current value, step)
  | Checkbox - (is checked)
     |
     | DayRepeatableCheckbox - (start value for 'is checked' in Checkbox, latest regenerate date)

Add items

There is a toolbar at the bottom of the application, open the Items tab, click next to the desired one +

Move items

Swipe the desired item to the right, click the 'selected' checkbox, then open the desired location, open the 'selection' tab in the toolbar and select the desired action there

Import/Export

Share your items with your friends, to export you have to click on the corresponding button in the 'selection' toolbar menu. All selected items are exported to the clipboard

To import, use the received text in the File tab in the toolbar

Screenshots

Even more ideas for use can come to your mind after viewing the screenshots

1 1 About app Calendar
1 1

Explore app!

For developers

"/docs" folder

Todo/Ideas:

  • ItemsStorage for notification quick note
  • Items transform (Text -> Group; Checkbox -> CheckboxDayRepeatable and etc...)
  • Fix notifications in TickSession
  • Toolbar -> Selection -> SelectALL & DeselectALL
  • Settings -> minimize paddings (left, right, bottom, top)
  • Replace checkboxItem to text item & add 'modules' to item and add Module 'checkbox'

Make a pull request -> you will be added to contributors.json and also I will create the contributors screen in the application

Save

Data saved in item_data.json and item_data.gz

Saving in other Thread

Data loaded from .gz, if the error is from .json

Other files

  • color_history.json - color history for ColorPickerDialogs in ItemEditor
  • instanceId - ID of your application instance. Used for sending crash reports anonymously

Import/Export

Structure

--OPENTODAY-IMPORT-START--
<version>
<data>
--OPENTODAY-IMPORT-END--
  • Version 0: is a regular json converted to base64
  • Version 1: is a json converted to base64 but previously passed through GZip compression

Tree of code (not full)

com.fazziclay.opentoday
|
| app - app logic
  | App - main application class (used by AndroidManifest.xml)
  |
  | items
  | |
  | | item - (items)
  | | |
  | | | ItemsRegistry - contain all items (Item.class, "Item", EmportExportTool, howToCreateEmpty, howToCopy, R.string.itemDisplayName)
  | | | Item - the father of all aitems (see items tree in README.md)
  | | | TextItem
  | | | CheckboxItem
  | | | DayRepeatableCheckboxItem
  | | | CounterItem
  | | | GroupItem
  | | | FilterGroupItem
  | | | CycleList
  | | | DebugTickCounterItem - item contain (int: counter) and add +1 every tick
  | | | ItemController - controller on item (set when attach to itemsStorage)
  | |
  | | callback - (callbacks)
  | | |
  | |
  | | notification - (item notifications)
  | | |
  | |
  | | tab - (tabs)
  | | |
  | |
  | | ItemManager - manager of items
  | | ItemsUtils - utils for item managment
  | | CurrentItemStorage - item storage for one item (CycleListItem...)
  | | ItemsStorage - items storage interface
  | | SimpleItemsStorage - simple implementation of ItemsStorage
  | | Selection - selection of item (contain item and item itemsStorage)
  | | ImportWrapper - for import/export
  | 
  | datafixer
  | | DataFixer - it is launched at the very beginning of the app to correct the data of the old version (if the application has been updated)
  |             used 'version' file in '.../Android/data/<...>/files/'
  | settings
  | | SettingsManager - manager of application settings (use in ui...SettingsFragment)
  |             used 'settings.json' file
  | updatechecker
  | | UpdateChecker - checking for app updates
                use api in 'https://fazziclay.github.io/api/project_3/...'
                cached result if update not-available for '...cache/latest_update_check' (file contain unix MILLISeconds)
| ui - ui logic
  | activity
  | |
  | | MainActivity - (see UI tree in README.md)
  |
  | UI - ui utils
  |
  |
| (the rest is for convenience and it doesn't matter)

UI Tree

| MainActivity - mainActivity (current date of top, notfications)
| |
| | MainRootFragment - container of fragments, ItemsTabIncludeFragment by default
| | |
| | | ItemsTabIncludeFragment - (contain Toolbar, Tabs+ViewPager2: ItemsEditorRootFragment)
| | | |
| | | | ItemsEditorRootFragment - Root for ItemsStorage tree
| | | | |
| | | | | ItemsEditorFragment - Contain ItemsStorage drawer
| | |
| | | AboutFragment - about this app
| | | SettingsFragment - settings of app (see app.settings.SettingsManager)
| | | ImportFragment - import from text
| | | DeleteItemsFragment - delete items (calls delete() for all provided items)