├── .circleci
└── config.yml
├── .github
└── workflows
│ └── ci.yml
├── .gitignore
├── .settings
└── org.eclipse.buildship.core.prefs
├── .vscode
└── tasks.json
├── CONTRIBUTE.md
├── LICENSE.txt
├── Makefile.sample
├── README.md
├── app
├── build.gradle
├── proguard.txt
└── src
│ ├── cloudless
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── nl
│ │ │ └── mpcjanssen
│ │ │ └── simpletask
│ │ │ └── remote
│ │ │ ├── FileStore.kt
│ │ │ └── LoginScreen.kt
│ └── res
│ │ ├── layout
│ │ └── login.xml
│ │ ├── values-de
│ │ └── strings.xml
│ │ ├── values-pl
│ │ └── strings.xml
│ │ ├── values
│ │ └── strings.xml
│ │ └── xml
│ │ └── preference_headers.xml
│ ├── debug
│ └── res
│ │ ├── drawable-hdpi
│ │ └── ic_launcher.png
│ │ ├── drawable-mdpi
│ │ └── ic_launcher.png
│ │ ├── drawable-xhdpi
│ │ └── ic_launcher.png
│ │ ├── drawable-xxhdpi
│ │ └── ic_launcher.png
│ │ └── drawable-xxxhdpi
│ │ └── ic_launcher.png
│ ├── dokuwiki
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── nl
│ │ │ └── mpcjanssen
│ │ │ └── simpletask
│ │ │ ├── FlavourPrefFragment.kt
│ │ │ └── remote
│ │ │ ├── ConnectivityReceiver.kt
│ │ │ ├── FileStore.kt
│ │ │ └── LoginScreen.kt
│ └── res
│ │ ├── layout
│ │ └── login.xml
│ │ ├── values
│ │ └── strings.xml
│ │ └── xml
│ │ ├── authenticator.xml
│ │ ├── flavourpreferences.xml
│ │ └── preference_headers.xml
│ ├── dropbox
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── nl
│ │ │ └── mpcjanssen
│ │ │ └── simpletask
│ │ │ ├── FlavourPrefFragment.kt
│ │ │ └── remote
│ │ │ ├── ConnectivityReceiver.kt
│ │ │ ├── FileStore.kt
│ │ │ └── LoginScreen.kt
│ └── res
│ │ ├── layout
│ │ └── login.xml
│ │ ├── values
│ │ ├── sample-dropbox-folder.xml
│ │ ├── sample-dropbox.xml
│ │ └── strings.xml
│ │ └── xml
│ │ ├── flavourpreferences.xml
│ │ └── preference_headers.xml
│ ├── encrypted
│ ├── AndroidManifest.xml
│ ├── java
│ │ ├── nl
│ │ │ └── mpcjanssen
│ │ │ │ └── simpletask
│ │ │ │ ├── FlavourPrefFragment.kt
│ │ │ │ └── remote
│ │ │ │ ├── FileStore.kt
│ │ │ │ └── LoginScreen.kt
│ │ └── other
│ │ │ ├── de
│ │ │ └── stanetz
│ │ │ │ └── jpencconverter
│ │ │ │ ├── JavaPasswordbasedCryption.java
│ │ │ │ └── PasswordStore.java
│ │ │ └── net
│ │ │ └── gsantner
│ │ │ └── opoc
│ │ │ └── util
│ │ │ └── MFileUtils.java
│ └── res
│ │ ├── layout
│ │ └── login.xml
│ │ ├── values-de
│ │ └── strings.xml
│ │ ├── values-pl
│ │ └── strings.xml
│ │ ├── values
│ │ └── strings.xml
│ │ └── xml
│ │ ├── flavourpreferences.xml
│ │ └── preference_headers.xml
│ ├── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ ├── MYN.de.md
│ │ ├── MYN.en.md
│ │ ├── MYN.es.md
│ │ ├── addtask.de.md
│ │ ├── addtask.en.md
│ │ ├── addtask.es.md
│ │ ├── changelog.en.md
│ │ ├── css
│ │ │ ├── base.css
│ │ │ ├── black.css
│ │ │ ├── dark.css
│ │ │ └── light.css
│ │ ├── defertasks.en.md
│ │ ├── defertasks.es.md
│ │ ├── design.en.md
│ │ ├── design.es.md
│ │ ├── extensions.de.md
│ │ ├── extensions.en.md
│ │ ├── extensions.es.md
│ │ ├── gradle.en.md
│ │ ├── gradle.es.md
│ │ ├── images
│ │ │ ├── MYN_sort.es.png
│ │ │ ├── MYN_sort.png
│ │ │ └── gitter.png
│ │ ├── index.de.md
│ │ ├── index.en.md
│ │ ├── index.es.md
│ │ ├── intents.de.md
│ │ ├── intents.en.md
│ │ ├── intents.es.md
│ │ ├── listsandtags.de.md
│ │ ├── listsandtags.en.md
│ │ ├── listsandtags.es.md
│ │ ├── lua
│ │ │ └── todolib.lua
│ │ ├── script.de.md
│ │ ├── script.en.md
│ │ ├── script.es.md
│ │ ├── ui.de.md
│ │ ├── ui.en.md
│ │ ├── ui.es.md
│ │ ├── versions.en.md
│ │ ├── versions.es.md
│ │ └── versions.hu.md
│ ├── java
│ │ ├── com
│ │ │ ├── buildware
│ │ │ │ └── widget
│ │ │ │ │ └── indeterm
│ │ │ │ │ ├── IndeterminateCheckBox.java
│ │ │ │ │ ├── IndeterminateCheckable.java
│ │ │ │ │ ├── IndeterminateRadioButton.java
│ │ │ │ │ └── Utils.java
│ │ │ ├── mobeta
│ │ │ │ └── android
│ │ │ │ │ └── dslv
│ │ │ │ │ ├── DragSortController.java
│ │ │ │ │ ├── DragSortCursorAdapter.java
│ │ │ │ │ ├── DragSortItemView.java
│ │ │ │ │ ├── DragSortItemViewCheckable.java
│ │ │ │ │ ├── DragSortListView.java
│ │ │ │ │ ├── ResourceDragSortCursorAdapter.java
│ │ │ │ │ ├── SimpleDragSortCursorAdapter.java
│ │ │ │ │ └── SimpleFloatViewManager.java
│ │ │ └── robobunny
│ │ │ │ └── SeekBarPreference.kt
│ │ └── nl
│ │ │ └── mpcjanssen
│ │ │ └── simpletask
│ │ │ ├── AbstractInterpreter.kt
│ │ │ ├── AddLinkBackground.kt
│ │ │ ├── AddTask.kt
│ │ │ ├── AddTaskBackground.kt
│ │ │ ├── AddTaskShortcut.kt
│ │ │ ├── AlarmReceiver.kt
│ │ │ ├── AppCompatPreferenceActivity.java
│ │ │ ├── AppWidgetService.kt
│ │ │ ├── CachedFileProvider.kt
│ │ │ ├── CalendarSync.kt
│ │ │ ├── Constants.kt
│ │ │ ├── DebugInfoScreen.kt
│ │ │ ├── FilterActivity.kt
│ │ │ ├── FilterListFragment.kt
│ │ │ ├── FilterOtherFragment.java
│ │ │ ├── FilterScriptFragment.kt
│ │ │ ├── FilterSortFragment.kt
│ │ │ ├── HelpScreen.kt
│ │ │ ├── HistoryScreen.kt
│ │ │ ├── Interpreter.kt
│ │ │ ├── LogCat.kt
│ │ │ ├── MarkTaskDone.kt
│ │ │ ├── MultiComparator.kt
│ │ │ ├── MyAppWidgetProvider.java
│ │ │ ├── Preferences.kt
│ │ │ ├── Query.kt
│ │ │ ├── QueryStore.kt
│ │ │ ├── ScriptConfigScreen.kt
│ │ │ ├── Simpletask.kt
│ │ │ ├── ThemedActivities.kt
│ │ │ ├── TimePreference.kt
│ │ │ ├── TodoApplication.kt
│ │ │ ├── TodoException.kt
│ │ │ ├── VisibleLine.kt
│ │ │ ├── adapters
│ │ │ ├── DrawerAdapter.kt
│ │ │ └── ItemDialogAdapter.kt
│ │ │ ├── dao
│ │ │ └── Daos.kt
│ │ │ ├── remote
│ │ │ ├── BackupInterface.kt
│ │ │ ├── FileDialog.kt
│ │ │ └── IFileStore.kt
│ │ │ ├── task
│ │ │ ├── ByContextFilter.kt
│ │ │ ├── ByPriorityFilter.kt
│ │ │ ├── ByProjectFilter.kt
│ │ │ ├── ByTextFilter.kt
│ │ │ ├── DragTasksCallback.kt
│ │ │ ├── Priority.kt
│ │ │ ├── Task.kt
│ │ │ ├── TaskAdapter.kt
│ │ │ ├── TaskFilter.kt
│ │ │ └── TodoList.kt
│ │ │ └── util
│ │ │ ├── ActionQueues.kt
│ │ │ ├── Config.kt
│ │ │ ├── FontManager.java
│ │ │ ├── FontPreference.java
│ │ │ ├── ListenerList.kt
│ │ │ ├── TaskIo.kt
│ │ │ └── Util.kt
│ └── res
│ │ ├── anim
│ │ ├── ic_checkbox_animation_interpolator_0.xml
│ │ ├── ic_checkbox_animation_interpolator_1.xml
│ │ ├── ic_checkbox_to_checked_box_inner_merged_animation.xml
│ │ ├── ic_checkbox_to_checked_box_outer_merged_animation.xml
│ │ ├── ic_checkbox_to_checked_icon_null_animation.xml
│ │ ├── ic_checkbox_to_unchecked_box_inner_merged_animation.xml
│ │ ├── ic_checkbox_to_unchecked_check_path_merged_animation.xml
│ │ └── ic_checkbox_to_unchecked_icon_null_animation.xml
│ │ ├── color
│ │ └── control_checkable_material.xml
│ │ ├── drawable-hdpi
│ │ ├── ic_action_sort_down.png
│ │ ├── ic_action_sort_down_dark.png
│ │ ├── ic_action_todotxt_lists.png
│ │ ├── ic_action_todotxt_tags.png
│ │ ├── ic_add_white_24dp.png
│ │ ├── ic_archive_white_24dp.png
│ │ ├── ic_check_box_outline_blank_white_24dp.png
│ │ ├── ic_check_box_white_24dp.png
│ │ ├── ic_clock_start_white_24dp.png
│ │ ├── ic_close_white_24dp.png
│ │ ├── ic_delete_white_24dp.png
│ │ ├── ic_done_white_24dp.png
│ │ ├── ic_edit_white_24dp.png
│ │ ├── ic_filter_list_white_24dp.png
│ │ ├── ic_help_white_24dp.png
│ │ ├── ic_import_export_white_24dp.png
│ │ ├── ic_indeterminate_check_box_white_24dp.png
│ │ ├── ic_insert_invitation_white_24dp.png
│ │ ├── ic_label_outline_white_24dp.png
│ │ ├── ic_launcher.png
│ │ ├── ic_list_white_24dp.png
│ │ ├── ic_more_vert_white_24dp.png
│ │ ├── ic_play_arrow_white_24dp.png
│ │ ├── ic_push_pin_white_24dp.png
│ │ ├── ic_save_white_24dp.png
│ │ ├── ic_schedule_white_24dp.png
│ │ ├── ic_search_white_24dp.png
│ │ ├── ic_select_all_white_24dp.png
│ │ ├── ic_settings_white_24dp.png
│ │ ├── ic_share_white_24dp.png
│ │ └── ic_star_border_white_24dp.png
│ │ ├── drawable-mdpi
│ │ ├── cancel_light.png
│ │ ├── ic_action_sort_down.png
│ │ ├── ic_action_sort_down_dark.png
│ │ ├── ic_action_todotxt_lists.png
│ │ ├── ic_action_todotxt_tags.png
│ │ ├── ic_add_white_24dp.png
│ │ ├── ic_archive_white_24dp.png
│ │ ├── ic_check_box_outline_blank_white_24dp.png
│ │ ├── ic_check_box_white_24dp.png
│ │ ├── ic_clock_start_white_24dp.png
│ │ ├── ic_close_white_24dp.png
│ │ ├── ic_delete_white_24dp.png
│ │ ├── ic_done_white_24dp.png
│ │ ├── ic_edit_white_24dp.png
│ │ ├── ic_filter_list_white_24dp.png
│ │ ├── ic_help_white_24dp.png
│ │ ├── ic_import_export_white_24dp.png
│ │ ├── ic_indeterminate_check_box_white_24dp.png
│ │ ├── ic_insert_invitation_white_24dp.png
│ │ ├── ic_label_outline_white_24dp.png
│ │ ├── ic_launcher.png
│ │ ├── ic_list_white_24dp.png
│ │ ├── ic_more_vert_white_24dp.png
│ │ ├── ic_play_arrow_white_24dp.png
│ │ ├── ic_push_pin_white_24dp.png
│ │ ├── ic_save_white_24dp.png
│ │ ├── ic_schedule_white_24dp.png
│ │ ├── ic_search_white_24dp.png
│ │ ├── ic_select_all_white_24dp.png
│ │ ├── ic_settings_white_24dp.png
│ │ ├── ic_share_white_24dp.png
│ │ └── ic_star_border_white_24dp.png
│ │ ├── drawable-nodpi
│ │ ├── appwidget_preview.png
│ │ ├── ic_action_sort_up.xml
│ │ └── ic_action_sort_up_dark.xml
│ │ ├── drawable-xhdpi
│ │ ├── ic_action_sort_down.png
│ │ ├── ic_action_sort_down_dark.png
│ │ ├── ic_action_todotxt_lists.png
│ │ ├── ic_action_todotxt_tags.png
│ │ ├── ic_add_white_24dp.png
│ │ ├── ic_archive_white_24dp.png
│ │ ├── ic_check_box_outline_blank_white_24dp.png
│ │ ├── ic_check_box_white_24dp.png
│ │ ├── ic_clock_start_white_24dp.png
│ │ ├── ic_close_white_24dp.png
│ │ ├── ic_delete_white_24dp.png
│ │ ├── ic_done_white_24dp.png
│ │ ├── ic_edit_white_24dp.png
│ │ ├── ic_filter_list_white_24dp.png
│ │ ├── ic_help_white_24dp.png
│ │ ├── ic_import_export_white_24dp.png
│ │ ├── ic_indeterminate_check_box_white_24dp.png
│ │ ├── ic_insert_invitation_white_24dp.png
│ │ ├── ic_label_outline_white_24dp.png
│ │ ├── ic_launcher.png
│ │ ├── ic_list_white_24dp.png
│ │ ├── ic_more_vert_white_24dp.png
│ │ ├── ic_play_arrow_white_24dp.png
│ │ ├── ic_push_pin_white_24dp.png
│ │ ├── ic_save_white_24dp.png
│ │ ├── ic_schedule_white_24dp.png
│ │ ├── ic_search_white_24dp.png
│ │ ├── ic_select_all_white_24dp.png
│ │ ├── ic_settings_white_24dp.png
│ │ ├── ic_share_white_24dp.png
│ │ └── ic_star_border_white_24dp.png
│ │ ├── drawable-xxhdpi
│ │ ├── ic_action_sort_down_dark.png
│ │ ├── ic_action_todotxt_lists.png
│ │ ├── ic_action_todotxt_tags.png
│ │ ├── ic_add_white_24dp.png
│ │ ├── ic_archive_white_24dp.png
│ │ ├── ic_check_box_outline_blank_white_24dp.png
│ │ ├── ic_check_box_white_24dp.png
│ │ ├── ic_clock_start_white_24dp.png
│ │ ├── ic_close_white_24dp.png
│ │ ├── ic_delete_white_24dp.png
│ │ ├── ic_done_white_24dp.png
│ │ ├── ic_edit_white_24dp.png
│ │ ├── ic_filter_list_white_24dp.png
│ │ ├── ic_help_white_24dp.png
│ │ ├── ic_import_export_white_24dp.png
│ │ ├── ic_indeterminate_check_box_white_24dp.png
│ │ ├── ic_insert_invitation_white_24dp.png
│ │ ├── ic_label_outline_white_24dp.png
│ │ ├── ic_launcher.png
│ │ ├── ic_list_white_24dp.png
│ │ ├── ic_more_vert_white_24dp.png
│ │ ├── ic_play_arrow_white_24dp.png
│ │ ├── ic_push_pin_white_24dp.png
│ │ ├── ic_save_white_24dp.png
│ │ ├── ic_schedule_white_24dp.png
│ │ ├── ic_search_white_24dp.png
│ │ ├── ic_select_all_white_24dp.png
│ │ ├── ic_settings_white_24dp.png
│ │ ├── ic_share_white_24dp.png
│ │ └── ic_star_border_white_24dp.png
│ │ ├── drawable-xxxhdpi
│ │ ├── btn_radio_to_off_mtrl_000.png
│ │ ├── btn_radio_to_on_mtrl_000.png
│ │ ├── ic_action_todotxt_lists.png
│ │ ├── ic_action_todotxt_tags.png
│ │ ├── ic_add_white_24dp.png
│ │ ├── ic_archive_white_24dp.png
│ │ ├── ic_check_box_outline_blank_white_24dp.png
│ │ ├── ic_check_box_white_24dp.png
│ │ ├── ic_clock_start_white_24dp.png
│ │ ├── ic_close_white_24dp.png
│ │ ├── ic_delete_white_24dp.png
│ │ ├── ic_done_white_24dp.png
│ │ ├── ic_edit_white_24dp.png
│ │ ├── ic_filter_list_white_24dp.png
│ │ ├── ic_help_white_24dp.png
│ │ ├── ic_import_export_white_24dp.png
│ │ ├── ic_indeterminate_check_box_white_24dp.png
│ │ ├── ic_insert_invitation_white_24dp.png
│ │ ├── ic_label_outline_white_24dp.png
│ │ ├── ic_launcher.png
│ │ ├── ic_list_white_24dp.png
│ │ ├── ic_more_vert_white_24dp.png
│ │ ├── ic_play_arrow_white_24dp.png
│ │ ├── ic_push_pin_white_24dp.png
│ │ ├── ic_radio_indeterminate.png
│ │ ├── ic_save_white_24dp.png
│ │ ├── ic_schedule_white_24dp.png
│ │ ├── ic_search_white_24dp.png
│ │ ├── ic_select_all_white_24dp.png
│ │ ├── ic_settings_white_24dp.png
│ │ ├── ic_share_white_24dp.png
│ │ └── ic_star_border_white_24dp.png
│ │ ├── drawable
│ │ ├── btn_checkmark.xml
│ │ ├── btn_radio.xml
│ │ ├── ic_checkbox_checked.xml
│ │ ├── ic_checkbox_checked_to_unchecked_animation.xml
│ │ ├── ic_checkbox_indeterminate.xml
│ │ ├── ic_checkbox_unchecked.xml
│ │ └── ic_checkbox_unchecked_to_checked_animation.xml
│ │ ├── layout
│ │ ├── add_task.xml
│ │ ├── appwidget.xml
│ │ ├── appwidget_dark.xml
│ │ ├── drawer_list_header.xml
│ │ ├── drawer_list_header_uppercase.xml
│ │ ├── drawer_list_item.xml
│ │ ├── drawer_list_item_checked.xml
│ │ ├── empty_list_item.xml
│ │ ├── filter.xml
│ │ ├── help.xml
│ │ ├── history.xml
│ │ ├── keep_dialog_item.xml
│ │ ├── list_header.xml
│ │ ├── list_item.xml
│ │ ├── loading.xml
│ │ ├── log.xml
│ │ ├── log_item.xml
│ │ ├── lua_config.xml
│ │ ├── main.xml
│ │ ├── multi_filter.xml
│ │ ├── other_filter.xml
│ │ ├── script_filter.xml
│ │ ├── seek_bar_preference.xml
│ │ ├── simple_list_item_multiple_choice.xml
│ │ ├── simple_list_item_single_choice.xml
│ │ ├── single_filter.xml
│ │ ├── single_task_tag_dialog.xml
│ │ ├── sort_list_item.xml
│ │ ├── spinner_item.xml
│ │ ├── update_items_dialog.xml
│ │ ├── widget_list_item.xml
│ │ └── widget_simple_list_item.xml
│ │ ├── menu-w350dp
│ │ └── task_context.xml
│ │ ├── menu
│ │ ├── add_task.xml
│ │ ├── completion_popup.xml
│ │ ├── filter.xml
│ │ ├── filter_drawer.xml
│ │ ├── help.xml
│ │ ├── history_menu.xml
│ │ ├── log_menu.xml
│ │ ├── lua_config.xml
│ │ ├── main.xml
│ │ ├── nav_drawer.xml
│ │ ├── saved_filter.xml
│ │ ├── task_context.xml
│ │ └── task_context_actionbar.xml
│ │ ├── values-cs
│ │ └── strings.xml
│ │ ├── values-de
│ │ └── strings.xml
│ │ ├── values-es-rAR
│ │ └── strings.xml
│ │ ├── values-es
│ │ └── strings.xml
│ │ ├── values-fr
│ │ └── strings.xml
│ │ ├── values-hu
│ │ └── strings.xml
│ │ ├── values-it
│ │ └── strings.xml
│ │ ├── values-ja
│ │ └── strings.xml
│ │ ├── values-ko
│ │ └── strings.xml
│ │ ├── values-lt
│ │ └── strings.xml
│ │ ├── values-nb-rNO
│ │ └── strings.xml
│ │ ├── values-nl
│ │ └── strings.xml
│ │ ├── values-pl
│ │ └── strings.xml
│ │ ├── values-pt-rBR
│ │ └── strings.xml
│ │ ├── values-pt
│ │ └── strings.xml
│ │ ├── values-ru
│ │ └── strings.xml
│ │ ├── values-sk
│ │ └── strings.xml
│ │ ├── values-sr
│ │ └── strings.xml
│ │ ├── values-tr
│ │ └── strings.xml
│ │ ├── values-uk
│ │ └── strings.xml
│ │ ├── values-w820dp
│ │ └── dimens.xml
│ │ ├── values-zh-rCN
│ │ └── strings.xml
│ │ ├── values
│ │ ├── attrs.xml
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── donottranslate.xml
│ │ ├── ids.xml
│ │ ├── strings.xml
│ │ ├── styles.xml
│ │ ├── themes.xml
│ │ └── values.xml
│ │ └── xml
│ │ ├── appearance_preferences.xml
│ │ ├── appwidget_info.xml
│ │ ├── calendar_preferences.xml
│ │ ├── configuration_preferences.xml
│ │ ├── interface_preferences.xml
│ │ ├── other_preferences.xml
│ │ ├── provider_paths.xml
│ │ ├── searchable.xml
│ │ └── widget_preferences.xml
│ ├── nextcloud
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── nl
│ │ │ └── mpcjanssen
│ │ │ └── simpletask
│ │ │ ├── FlavourPrefFragment.kt
│ │ │ └── remote
│ │ │ ├── ConnectivityReceiver.kt
│ │ │ ├── FileStore.kt
│ │ │ └── LoginScreen.kt
│ └── res
│ │ ├── layout
│ │ └── login.xml
│ │ ├── values
│ │ └── strings.xml
│ │ └── xml
│ │ ├── authenticator.xml
│ │ ├── flavourpreferences.xml
│ │ └── preference_headers.xml
│ ├── test
│ └── java
│ │ └── nl
│ │ └── mpcjanssen
│ │ └── simpletask
│ │ ├── lua
│ │ └── LuaTest.kt
│ │ ├── task
│ │ ├── BugsTest.kt
│ │ ├── TTaskTest.kt
│ │ └── TaskTestOld.java
│ │ └── util
│ │ └── UtilTest.kt
│ └── webdav
│ ├── AndroidManifest.xml
│ ├── java
│ └── nl
│ │ └── mpcjanssen
│ │ └── simpletask
│ │ ├── FlavourPrefFragment.kt
│ │ └── remote
│ │ ├── ConnectivityReceiver.kt
│ │ ├── FileStore.kt
│ │ └── LoginScreen.kt
│ └── res
│ ├── layout
│ └── login.xml
│ ├── values
│ └── strings.xml
│ └── xml
│ ├── authenticator.xml
│ ├── flavourpreferences.xml
│ ├── network_security_config.xml
│ └── preference_headers.xml
├── build.gradle
├── defaulttasks.txt
├── extras
├── dropbox-icon.png
├── dropbox
│ ├── ST256.png
│ └── ST64.png
└── licenses
│ ├── CHECKBOX_LICENSE
│ ├── DATE4J_LICENSE_BSD.txt
│ ├── DSLV-NOTICE.txt
│ ├── SARDINE_LICENSE.txt
│ ├── SHARE_LICENSE.txt
│ └── TODOTXT_COPYING
├── gradle.properties
├── gradle.properties.sample
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── local.properties.sample
├── secrets
├── dropbox-folder.xml.enc
└── dropbox.xml.enc
└── settings.gradle
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 |
3 | on: [push]
4 |
5 | jobs:
6 | build:
7 |
8 | runs-on: ubuntu-latest
9 |
10 | steps:
11 | - name: "Checkout"
12 | uses: actions/checkout@v1
13 | - name: "Run build"
14 | run: ./gradlew assembleEncryptedDebug
15 | # run: ./gradlew assembleCloudlessDebug
16 | - name: "Save output artifacts"
17 | uses: actions/upload-artifact@v1
18 | with:
19 | name: apks
20 | path: app/build/outputs/apk
21 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | dropbox.xml*
2 | toodledo.xml
3 | dropbox-folder.xml*
4 | build/
5 | google-key
6 | local.properties
7 | gradle.properties
8 | .gradle/
9 | tags
10 | .repo
11 | .fossil
12 | .fslckout
13 | _FOSSIL_
14 | \#*
15 | *~
16 | *.pyc
17 | .idea/
18 | *.iml
19 | apk/
20 | Thumbs.db
21 | *.swp
22 | captures/
23 | .DS_Store
24 | Makefile
25 |
--------------------------------------------------------------------------------
/.settings/org.eclipse.buildship.core.prefs:
--------------------------------------------------------------------------------
1 | arguments=
2 | auto.sync=false
3 | build.scans.enabled=false
4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
5 | connection.project.dir=
6 | eclipse.preferences.version=1
7 | gradle.user.home=
8 | java.home=/opt/homebrew/Cellar/openjdk@11/11.0.16/libexec/openjdk.jdk/Contents/Home
9 | jvm.arguments=
10 | offline.mode=false
11 | override.workspace.settings=true
12 | show.console.view=true
13 | show.executions.view=true
14 |
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | // See https://go.microsoft.com/fwlink/?LinkId=733558
3 | // for the documentation about the tasks.json format
4 | "version": "0.1.0",
5 | "command": "gradlew",
6 | "isShellCommand": true,
7 | "args": [],
8 | "showOutput": "always",
9 | "tasks": [
10 | {
11 | "taskName": "clean",
12 | "args": [
13 | "clean", "assembleEncryptedDebug"
14 | ],
15 | "isBuildCommand": true,
16 | "isWatching": false,
17 | "problemMatcher": {
18 | "owner": "cpp",
19 | "fileLocation": [
20 | "absolute"
21 | ],
22 | "pattern": {
23 | "regexp": "^([a-z]): ([A-Z]:[^:]+): \\((\\d+), (\\d+)\\): (.*)$",
24 | "file": 2,
25 | "line": 3,
26 | "column": 4,
27 | "severity": 1,
28 | "message": 5
29 | }
30 | }
31 | }
32 | ]
33 | }
--------------------------------------------------------------------------------
/CONTRIBUTE.md:
--------------------------------------------------------------------------------
1 | Contributions to Simpletask are appreciated. However to set the expectations:
2 |
3 | - There is **NO** guarantee that a PR will be merged.
4 | - There is **NO** guarantee that a PR will be reviewed.
5 |
6 | _Making a donation doesn't change the points above._
7 |
8 | Simpletask is a hobby for me and as such I cannot commit to any amount of time invested.
9 | I also have strong opinions on what I think Simpletask should look like and where it should move to.
10 |
11 | To prevent wasting a lot of your own time, **DO**:
12 |
13 | - Discuss changes you would like to make in a enhancement issue.
14 | - Look into open issues to see if there is something which has already been discussed and you could implement
15 | - Join the gitter channel to discuss any plans you have.
16 |
17 | Or if you find the above nonsense:
18 |
19 | - Keep your own fork of Simpletask and merge anything you like :) .
20 |
--------------------------------------------------------------------------------
/Makefile.sample:
--------------------------------------------------------------------------------
1 | .PHONY: artifacts assemble upload publish version
2 |
3 | GRADLE:=gradlew
4 | GITNAME=$(shell ${GRADLE} app:androidGitVersionName --quiet)
5 | artifacts: assemble upload
6 |
7 | assemble:
8 | ${GRADLE} clean assembleNextcloud assembleDokuwiki assembleCloudless assembleEncrypted assembleDropbox assembleWebdav
9 |
10 | version:
11 | ${GRADLE} androidGitVersion
12 |
13 | upload: version
14 | (cd app/build/outputs && scp -r apk ssh.mpcjanssen.nl:/var/www/html/artifacts/${GITNAME})
15 |
16 |
17 | publish:
18 | ${GRADLE} clean publishDropboxRelease publishCloudlessRelease publishEncryptedRelease publishDropboxRelease publishNextcloudRelease
19 |
--------------------------------------------------------------------------------
/app/proguard.txt:
--------------------------------------------------------------------------------
1 | # Workaround for conflict with certain OEM-modified versions of the Android appcompat
2 | # support libs, especially Samsung + Android 4.2.2
3 | # See this thread for more info:
4 | # https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars&groupby=&sort=&id=78377
5 | -keepattributes **
6 | # Keep all classes except the ones indicated by the patterns preceded by an exclamation mark
7 | -keep class !android.support.v7.view.menu.**,!android.support.design.internal.NavigationMenu,!android.support.design.internal.NavigationMenuPresenter,!android.support.design.internal.NavigationSubMenu,** {*;}
8 | # Skip preverification
9 | -dontpreverify
10 | # Specifies not to optimize the input class files
11 | -dontoptimize
12 | # Specifies not to shrink the input class files
13 | -dontshrink
14 | # Specifies not to warn about unresolved references and other important problems at all
15 | -dontwarn **
16 | # Specifies not to print notes about potential mistakes or omissions in the configuration, such as
17 | # typos in class names or missing options that might be useful
18 | -dontnote **
--------------------------------------------------------------------------------
/app/src/cloudless/res/layout/login.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
12 |
24 |
25 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/app/src/cloudless/res/values-de/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
25 |
26 |
27 |
28 | Simpletask Cloudless
29 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/cloudless/res/values-pl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
25 |
26 |
27 |
28 | Simpletask Cloudless
29 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/cloudless/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Simpletask
6 | Cloudless
7 | Simpletask Cloudless needs access to your storage to be able to save the todo file.
8 | Press OK to give access.
9 |
10 | Reload
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/cloudless/res/xml/preference_headers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
12 |
16 |
20 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/app/src/debug/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/debug/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/debug/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/debug/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/debug/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/debug/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/debug/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/debug/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/debug/res/drawable-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/debug/res/drawable-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/dokuwiki/java/nl/mpcjanssen/simpletask/FlavourPrefFragment.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask
2 |
3 | import android.content.DialogInterface
4 | import android.content.Intent
5 | import android.os.Bundle
6 | import android.preference.PreferenceFragment
7 | import android.util.Log
8 | import androidx.localbroadcastmanager.content.LocalBroadcastManager
9 | import nl.mpcjanssen.simpletask.remote.FileStore
10 | import nl.mpcjanssen.simpletask.util.showConfirmationDialog
11 |
12 | class FlavourPrefFragment : PreferenceFragment() {
13 | private val TAG = "FlavourPrefFragment"
14 | private lateinit var app: TodoApplication
15 | override fun onCreate(savedInstanceState: Bundle?) {
16 | app = activity.application as TodoApplication
17 | super.onCreate(savedInstanceState)
18 | addPreferencesFromResource(R.xml.flavourpreferences)
19 |
20 | val nextcloudPref = findPreference("logout")
21 | nextcloudPref.setOnPreferenceClickListener {
22 | Log.i(TAG, "Logging out from Dokuwiki")
23 | showConfirmationDialog(activity, R.string.logout_message,
24 | DialogInterface.OnClickListener { dialogInterface, i ->
25 | FileStore.logout()
26 | activity.finish()
27 | LocalBroadcastManager.getInstance(activity).sendBroadcast(Intent(Constants.BROADCAST_ACTION_LOGOUT))
28 | }, R.string.logout_pref_title)
29 | true
30 | }
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/app/src/dokuwiki/java/nl/mpcjanssen/simpletask/remote/ConnectivityReceiver.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask.remote
2 |
3 | import android.content.BroadcastReceiver
4 | import android.content.Context
5 | import android.content.Intent
6 | import android.util.Log
7 | import nl.mpcjanssen.simpletask.TodoApplication
8 | import nl.mpcjanssen.simpletask.util.broadcastFileSync
9 | import nl.mpcjanssen.simpletask.util.broadcastUpdateStateIndicator
10 |
11 | class ConnectivityReceiver : BroadcastReceiver() {
12 |
13 | override fun onReceive(context: Context, intent: Intent) {
14 | Log.d(TAG, "Connectivity changed {}" + intent)
15 | broadcastUpdateStateIndicator(TodoApplication.app.localBroadCastManager)
16 | if (FileStore.isOnline) {
17 | Log.i(TAG, "Device went online")
18 | broadcastFileSync(TodoApplication.app.localBroadCastManager)
19 | } else {
20 | Log.i(TAG, "Device no longer online")
21 | }
22 | }
23 |
24 | companion object {
25 | private val TAG = "ConnectivityReceiver"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/app/src/dokuwiki/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Dokutask
4 | Nextcloud
5 | nl.mpcjanssen.simpletask.nextcloud
6 | Login unsuccessfull
7 | Unexpected result
8 | Log in to Dokuwiki
9 | View log
10 | Server URL
11 | Username
12 | Password
13 | Please make sure you have synced all changes with Dokuwiki or
14 | shared your complete task list if not connected to Dokuwiki.\n
15 | Any changes that have not been synced will be lost after logging out.
16 | Log out of Dokuwiki.
17 | Log out
18 |
19 |
20 |
--------------------------------------------------------------------------------
/app/src/dokuwiki/res/xml/authenticator.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/dokuwiki/res/xml/flavourpreferences.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/dokuwiki/res/xml/preference_headers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
12 |
16 |
20 |
24 |
28 |
29 |
--------------------------------------------------------------------------------
/app/src/dropbox/java/nl/mpcjanssen/simpletask/FlavourPrefFragment.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask
2 |
3 | import android.content.DialogInterface
4 | import android.content.Intent
5 | import android.os.Bundle
6 | import android.preference.PreferenceFragment
7 |
8 | import android.util.Log
9 | import androidx.localbroadcastmanager.content.LocalBroadcastManager
10 | import nl.mpcjanssen.simpletask.remote.FileStore
11 | import nl.mpcjanssen.simpletask.util.showConfirmationDialog
12 |
13 | class FlavourPrefFragment : PreferenceFragment() {
14 | private val TAG = "FlavourPrefFragment"
15 | private lateinit var app: TodoApplication
16 | override fun onCreate(savedInstanceState: Bundle?) {
17 | app = activity.application as TodoApplication
18 | super.onCreate(savedInstanceState)
19 | addPreferencesFromResource(R.xml.flavourpreferences)
20 |
21 | val dropboxPref = findPreference("logout_dropbox")
22 | dropboxPref.setOnPreferenceClickListener {
23 | Log.i(TAG, "Logging out from Dropbox")
24 | showConfirmationDialog(activity, R.string.logout_message,
25 | { _, _ ->
26 | activity.finish()
27 | LocalBroadcastManager.getInstance(activity).sendBroadcast(Intent(Constants.BROADCAST_ACTION_LOGOUT))
28 | }, R.string.dropbox_logout_pref_title)
29 | true
30 | }
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/app/src/dropbox/java/nl/mpcjanssen/simpletask/remote/ConnectivityReceiver.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask.remote
2 |
3 | import android.content.BroadcastReceiver
4 | import android.content.Context
5 | import android.content.Intent
6 | import android.util.Log
7 | import androidx.localbroadcastmanager.content.LocalBroadcastManager
8 | import nl.mpcjanssen.simpletask.util.broadcastFileSync
9 | import nl.mpcjanssen.simpletask.util.broadcastUpdateStateIndicator
10 |
11 | class ConnectivityReceiver : BroadcastReceiver() {
12 |
13 | override fun onReceive(context: Context, intent: Intent) {
14 | val lbm = LocalBroadcastManager.getInstance(context)
15 | Log.d(TAG, "Connectivity changed {}" + intent)
16 | broadcastUpdateStateIndicator(lbm)
17 | if (FileStore.isOnline) {
18 | Log.i(TAG, "Device went online")
19 | broadcastFileSync(lbm)
20 | } else {
21 | Log.i(TAG, "Device no longer online")
22 | }
23 | }
24 |
25 | companion object {
26 |
27 | private val TAG = "ConnectivityReceiver"
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/dropbox/res/values/sample-dropbox-folder.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
25 |
26 |
27 |
32 |
33 |
--------------------------------------------------------------------------------
/app/src/dropbox/res/values/sample-dropbox.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
25 |
26 |
27 |
32 |
33 |
--------------------------------------------------------------------------------
/app/src/dropbox/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Simpletask
4 | Dropbox
5 |
6 |
--------------------------------------------------------------------------------
/app/src/dropbox/res/xml/flavourpreferences.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/dropbox/res/xml/preference_headers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
12 |
16 |
20 |
24 |
28 |
29 |
--------------------------------------------------------------------------------
/app/src/encrypted/java/nl/mpcjanssen/simpletask/FlavourPrefFragment.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask
2 |
3 | import android.content.DialogInterface
4 | import android.content.Intent
5 | import android.os.Build
6 | import android.os.Bundle
7 | import android.preference.EditTextPreference
8 | import android.preference.PreferenceFragment
9 |
10 | import android.util.Log
11 | import androidx.annotation.RequiresApi
12 | import androidx.localbroadcastmanager.content.LocalBroadcastManager
13 | import nl.mpcjanssen.simpletask.remote.FileStore
14 | import nl.mpcjanssen.simpletask.util.showConfirmationDialog
15 |
16 | class FlavourPrefFragment : PreferenceFragment() {
17 | private val TAG = "FlavourPrefFragment"
18 | private lateinit var app: TodoApplication
19 | @RequiresApi(Build.VERSION_CODES.M)
20 | override fun onCreate(savedInstanceState: Bundle?) {
21 | app = activity.application as TodoApplication
22 | super.onCreate(savedInstanceState)
23 | addPreferencesFromResource(R.xml.flavourpreferences)
24 |
25 | val pwPref = findPreference(getString(R.string.pref_key__set_encryption_password)) as EditTextPreference
26 | if (FileStore.isDefaultPasswordSet()) pwPref.valueInSummary(getString(R.string.password_already_set_summary))
27 | else pwPref.valueInSummary()
28 | pwPref.setOnPreferenceChangeListener { preference, any ->
29 | val password = any.toString()
30 | FileStore.setDefaultPassword(password)
31 | if (FileStore.isDefaultPasswordSet()) preference.valueInSummary(getString(R.string.password_already_set_summary))
32 | else preference.valueInSummary()
33 | true
34 | }
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/encrypted/res/layout/login.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
12 |
24 |
25 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/app/src/encrypted/res/values-de/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
25 |
26 |
27 |
28 | Simpletask Cloudless
29 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/encrypted/res/values-pl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
25 |
26 |
27 |
28 | Simpletask Cloudless
29 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/encrypted/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Simpletask
6 | Cloudless
7 | Simpletask Cloudless needs access to your storage to be able to save the todo file.
8 | Press OK to give access.
9 |
10 | Reload
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/encrypted/res/xml/flavourpreferences.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/encrypted/res/xml/preference_headers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
12 |
16 |
20 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/assets/addtask.de.md:
--------------------------------------------------------------------------------
1 | Aufgaben hinzufügen oder bearbeiten
2 | --------
3 |
4 | In diesem Fenster können Sie neue Aufgaben hinzufügen oder bestehende bearbeiten. Es gibt zwei Optionen:
5 |
6 | * Zeilenumbruch: zeigt Aufgaben, die länger sind als die Fensterbreite in mehreren Zeilen an.
7 | * Vorausfüllen: übernimmt bei einem Zeilenwechsel Tags und Listen aus der vorhergehenden Zeile. So können sehr einfach mehrere Aufgaben mit den selben Kategorien und Listen hinzugefügt werden.
8 |
9 | Links
10 | -----
11 | - [Todo.txt Erweiterungen](./extensions.de.md)
12 | - [Inhalt der Hilfe](./index.de.md)
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/assets/addtask.en.md:
--------------------------------------------------------------------------------
1 | This screen allows you to add new tasks or updateCache existing ones. Every line in the text box will become one task. There are two checkboxes:
2 |
3 | * Word wrap: Should long lines be wrapped or run off to the right.
4 | * Pre-fill next: When checked, pressing next (or enter) on the keyboard will prefill the next line with the
5 | tags and lists of the previous line. This makes it very easy quickly add multiple tasks with the same lists and tags.
6 |
7 | Links
8 | -----
9 | - [Todo.txt extensions](./extensions.en.md)
10 | - [Help index](./index.en.md)
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/assets/addtask.es.md:
--------------------------------------------------------------------------------
1 | Esta pantalla le permite añadir tareas nuevas o actualizar las que ya existen. Cada línea en la caja de texto se convertirá en una tarea. Hay dos opciones disponibles:
2 |
3 | * Salto de línea automático: Si las líneas largas deberían ser escritas en varias líneas o escapar por la derecha.
4 | * Rellenar la próxima: Cuando está marcada, pulsando Siguiente (o Entrar) en el teclado, rellenará la línea próxima con las
5 | etiquetas y listas de la línea anterior. Esto hace muy fácil añadir rápidamente múltiples tareas con las mismas listas y etiquetas.
6 |
7 | Enlaces
8 | ------
9 |
10 | - [Índice de ayuda](./index.es.md)
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/assets/css/black.css:
--------------------------------------------------------------------------------
1 | /* Colors for Black theme */
2 | body { background-color: black; color: white; }
3 | a { color: #84aaf8; }
4 | h1, h2, h3, h4, h5, h6 { color: #ddd; }
5 | code, tt { background: #eee; color: #333; }
6 | td, th { color: black; }
7 |
--------------------------------------------------------------------------------
/app/src/main/assets/css/dark.css:
--------------------------------------------------------------------------------
1 | /* Colors for Dark theme */
2 | body { background-color: dark-gray; color: white; }
3 | a { color: #84aaf8; }
4 | h1, h2, h3, h4, h5, h6 { color: #ddd; }
5 | code, tt { background: #eee; color: #333; }
6 | td, th { color: black; }
7 |
--------------------------------------------------------------------------------
/app/src/main/assets/css/light.css:
--------------------------------------------------------------------------------
1 | /* Colors for Light theme */
2 | body { }
3 | a { color: #234764; }
4 | h1, h2, h3, h4, h5, h6 { color: #222; }
5 | code, tt { background: #eee; }
6 | td, th { }
7 |
--------------------------------------------------------------------------------
/app/src/main/assets/defertasks.en.md:
--------------------------------------------------------------------------------
1 | DeferTasks
2 | ==========
3 |
4 | NOTE: In newer versions you can defer both due date and threshold date and this discussion is moot.
5 |
6 | The deferring functionality in Simpletask is the [MYN](http://www.michaellinenberger.com/1MTDvsMYN.html) defer to do/review deferring.
7 |
8 | It does not intend to be a due date. It is just meant to get low priority tasks out of the way for now and have them reappear at a certain time in the future (1 week, 2 weeks or 1 month). To achieve this I filter task with threshold date in future. When the deferred start date arrives, the tasks will automatically come back into active view (with the right sorts)
9 |
10 | You could also use this with a more GTD style tasklist. It's a quick way to get a next action out of the way, without moving it to Someday/Maybe. If you skip reviewing future tasks in your daily or weekly review you will not have to review tasks you'll know you will not do any time soon.
11 |
12 | So why not use due:date for this? There are several reasons:
13 |
14 | > - Due dates are generally in the future so it is not very usable for the MYN/1MTD concept of date in future -\> out of view.
15 | > - Defer-able due dates lead to undone and often postponed tasks. A task should only have a due date if it absolutely needs to be done before that day or something bad happens. It should not be a "I wish it to be done on that date" indicator. Both GTD and MYN agree this doesn't work.
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/assets/defertasks.es.md:
--------------------------------------------------------------------------------
1 | Diferir Tareas
2 | ==============
3 |
4 | NOTA: En versiones recientes puedes diferir ambas, fecha de vencimiento y fecha de umbral y esta discusión está obsoleta.
5 |
6 | La funcionalidad de diferir en Simpletask es el diferir descrito en [MYN](http://www.michaellinenberger.com/1MTDvsMYN.html) para diferir la ejecución/revisión.
7 |
8 | No pretende ser una fecha de vencimiento. Solo trata de retirar las tareas de prioridad baja fuera de la vista por ahora y hacerlas reaparecer en un tiempo prefijado en el futuro (1 semana, 2 semanas o 1 mes). Para conseguir esto filtro las tareas con fecha de umbral situada en futuro. Cuándo la fecha de inicio diferido llega, las tareas automáticamente vuelven a vista activa (con la ordenación correcta)
9 |
10 | También podría utilizar esto con una lista de tareas más al estilo GTD (Get Things Done). Es una manera rápida de conseguir que una acción futura no se interponga en el camino, sin moverla a Algún día/Quizás. Si se salta la revisión de tareas futuras en la revisión diaria o semanal no tendrá que ver tareas que sabe que no tendrá que hacer pronto.
11 |
12 | Entonces, por qué no utilizar la fecha de vencimiento para esto? Hay varias razones:
13 |
14 | > - Las fechas de vencimiento son generalmente en el futuro por lo que no es muy utilizable para el concepto MYN/1MTD de fecha en el futuro -\> fuera de la vista.
15 | > - Fechas de vencimiento diferibles llevan a tareas no hechas y a menudo pospuestas. Una tarea sólo tendría que tener una fecha de vencimiento si necesita hacerse indefectiblemente antes de dicho día o algo malo pasaría. No debería ser un indicador de "deseo que sea hecho en esa fecha". Ambos GTD y MYN estan de acuerdo eso no funciona.
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/assets/design.en.md:
--------------------------------------------------------------------------------
1 | Design considerations
2 | =====================
3 |
4 | General design considerations
5 | -----------------------------
6 |
7 | - Simple
8 | - UI following Android UI guidelines
9 | - Enough functionallity to do GTD
10 | - Seperate lists
11 | - Ability to tag
12 | - Documented storage format
13 | - todo.txt format with special handling of (.....)
14 | - Applicable for multiple usage scenarios
15 | - Should be usable without dropbox
16 |
17 | File format
18 | -----------
19 |
20 | ### Lists (Contexts in todo.txt)
21 |
22 | ### Tags (Projects in todo.txt)
23 |
24 | ### Notes (No equivalent in todo.txt)
25 |
26 | Other considerations
27 | --------------------
28 |
29 | - Simpletask is written in such a way that the same documentation is used on Github and in the app. This requires some additional dependencies for the app (a Markdown and a HTML parser), but it makes keeping all the docs in sync much easier.
30 |
31 |
--------------------------------------------------------------------------------
/app/src/main/assets/design.es.md:
--------------------------------------------------------------------------------
1 | Consideraciones de diseño
2 | =========================
3 |
4 | Consideraciones de diseño general
5 | ---------------------------------
6 |
7 | - Sencillo
8 | - La interfaz de usuario sigue las directrices Android
9 | - Suficiente funcionalidad para hacer GTD
10 | - Listas separadas
11 | - Habilidad para etiquetar
12 | - Formato de almacenamiento documentado
13 | - Formato todo.txt con manejo especial de (.....)
14 | - Aplicable para escenarios de uso múltiple
15 | - Tendría que ser utilizable sin Dropbox
16 |
17 | Formato de archivo
18 | ------------------
19 |
20 | ### Listas (Contextos en todo.txt)
21 |
22 | ### Etiquetas (Proyectos en todo.txt)
23 |
24 | ### Notas (Ningún equivalente en todo.txt)
25 |
26 | Otras consideraciones
27 | ---------------------
28 |
29 | - Simpletask está escrito de tal manera que la misma documentación se utiliza en Github y en la aplicación. Esto requiere algunas dependencias adicionales para la aplicación (un lector-analizador para Markdown y uno para HTML), pero permite que sea mucho más fácil mantener sincronizados todos los documentos .
30 |
31 |
--------------------------------------------------------------------------------
/app/src/main/assets/extensions.de.md:
--------------------------------------------------------------------------------
1 | Todo.txt Erweiterungen
2 | ----------------------
3 |
4 | Simpletask unterstützt die folgenden Erweiterungen des todo.txt-Formates:
5 |
6 | - Fälligkeitsdatum mit `due:YYYY-MM-DD`
7 | - Anfangsdatum mit `t:YYYY-MM-DD`
8 |
9 | - Wiederholung mit `rec:\+?[0-9]+[dwmyb]` wie [hier](https://github.com/bram85/topydo/wiki/Recurrence) beschrieben, aber mit einer Ergänzung:
10 |
11 | - Standardmäßig verwendet Simpletask das Fertigstellungsdatum für die Wiederholung, wie im Link beschrieben. Schreibt man jedoch vor die Zahl ein Plus (z. B. `rec:+2w`), wird das neue Datum vom ursprünglichen Anfangs- oder Fälligkeitsdatum aus berechnet.
12 | - `rec:1b` bewirkt die Wiederholung nach 1 Werktag (Abkürzung für `b`usiness-day).
13 | - Das Format wird durch einen regulären Ausdruck beschrieben. In Worten ist die Syntax `rec:` optional gefolgt von einem `+` dann einer Zahl und am Ende ein `d`ay, `w`eek, `m`onth oder `y`ear. Eine Aufgabe mit "rec: 12d" wird zum Beispiel nach 12 Tagen wiederholt.
14 | - Versteckte Aufgaben mit dem definierten Tag `h:1` dienen dazu, Listen oder Tags vorzudefinieren und permanent zu machen. Die vordefinierten Tags und Listen bleiben auch dann noch erhalten, wenn alle anderen Aufgaben mit diesen Tags oder Listen aus der `todo.txt`-Datei entfernt wurden. Standardmäßig werden diese Aufgaben nicht angezeigt, bei Bedarf können sie jedoch in den Einstellungen eingeblendet werden.
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/assets/extensions.en.md:
--------------------------------------------------------------------------------
1 | Todo.txt Extensions
2 | -------------------
3 |
4 | Simpletask supports the following todo.txt extensions:
5 |
6 | - Due date as `due:YYYY-MM-DD`
7 | - Start/threshold date as `t:YYYY-MM-DD`
8 | - Recurrence with `rec:\+?[0-9]+[dwmyb]` as described [here](https://github.com/bram85/topydo/wiki/Recurrence) but with a twist.
9 | - By default Simpletask will use the date of completion for recurring as described in the link. However if the rec includes a plus (e.g. `rec:+2w`), the date is determined from the original due or threshold date..
10 | - `rec:1b` will recur after 1 weekday (mnemonic *b*usiness-day).
11 | - The format is described by a regular expression, so in words the syntax is `rec:` followed by an optional `+` then 1 or more numbers and then followed by one of `d`ay, `w`eek, `m`onth or `y`ear. For example `rec:12d` sets up a 12 day recurring task.
12 | - Hidden tasks with the specified tag `h:1`, this allows dummy tasks with predefined lists and tags so that lists and tags will be available even if the last task with the tag/list is removed from `todo.txt`. These tasks will not be shown by default. You can temporarily display them from the Settings.
13 |
--------------------------------------------------------------------------------
/app/src/main/assets/extensions.es.md:
--------------------------------------------------------------------------------
1 | Extensiones todo.txt
2 | --------------------------
3 |
4 | Simpletask soporta las siguientes extensiones todo.txt:
5 |
6 | - Fecha de vencimiento: `due:YYYY-MM-DD`
7 |
8 | - Fecha de inicio/límite: `t:YYYY-MM-DD`
9 |
10 | - Repetición: `rec:\+?[0-9]+[dwmyb]` tal como se describe [aquí](https://github.com/bram85/topydo/wiki/Recurrence) pero con una salvedad:
11 |
12 | - Por defecto, Simpletask utilizará la fecha de completado para la repetición de la tarea, como se describe en el enlace. Sin embargo, si `rec` se acompaña de un signo `+` (por ejemplo `rec:+2w`), la fecha se calcula a partir de las fecha originales de vencimiento o inicio.
13 | - `rec:1b`: se repetirá luego de un día laborable (mnemotécnica **b**usiness-day).
14 | - El formato se describe como una expresión regular, por lo tanto en palabras, la sintáxis es `rec` seguido de un `+` opcional, luego uno o más números seguidos luego por `d`ay (día) o `w`eek (semana) o `m`onth o `y`ear (año). Por ejemplo, `rec:12d` significa que la tarea se repetirá cada 12 días.
15 |
16 | - Tareas ocultas con la etiqueta `h:1`, lo que permite definir tareas ficticias con listas y etiquetas predefinidas para que las listas y las etiquetas estén disponibles incluso si la última tarea con la etiqueta / lista se elimina de `todo.txt`. Estas tareas no son visibles por defecto. Se pueden visualizar temporalmente desde la configuración.
--------------------------------------------------------------------------------
/app/src/main/assets/gradle.en.md:
--------------------------------------------------------------------------------
1 | Using the new Gradle build system
2 | =================================
3 |
4 | The build system has been moved from ant/Eclipse/Idea to gradle for two main reasons:
5 |
6 | 1. Gradle makes it very easy to have different flavors of your app with the same code (e.g. a free and a donate one)
7 | 2. Gradle is the new official Android build system so the change needs to happen anyway.
8 |
9 | Build task
10 | ----------
11 |
12 | Use `gradle(w) tasks` to get a full list, useful defined ones are:
13 |
14 | - `assembleReleaseFree`: build the free apk for google play
15 | - `assembleReleaseDonate`: build the donate apk
16 | - `installDevDebug`: build a version from current sources which can be installed in parallel with a google play version.
17 | - `connectedInstrumentTestUnitDebug`: As special flavor for unit testing. I don't want to use the Dev version for this as it will be uninstalled after the test run.
18 | - `check`: Depends on `connectedInstrumentTestUnitDebug` so it will run the test suite.
19 | - `build`: Builds all flavors of the app in one go, also depends on `check` so will run the test suite
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/assets/gradle.es.md:
--------------------------------------------------------------------------------
1 | Utilizando el nuevo sistema de compilación Gradle
2 | =================================================
3 |
4 | El sistema de compilación ha sido cambiado de ant/Eclipse/Idea a gradle por dos razones principales:
5 |
6 | 1. Gradle hace muy fácil tener diferentes variantes de su aplicación con el mismo código (p. ej. una libre y una de donación)
7 | 2. Gradle es el nuevo sistema de compilación oficial de Android así que el cambio tenia que pasar en todo caso.
8 |
9 | Descripción del proceso de compilación
10 | --------------------------------------
11 |
12 | Use `gradle(w) tasks` para conseguir una lista completa, la tareas útiles ya definidas son:
13 |
14 | - `assembleReleaseFree`: compilación de la apk libre para la Tienda de Google
15 | - `assembleReleaseDonate`: compilación de la apk de donación
16 | - `installDevDebug`: compilación de una versión del código fuente actual que pueden ser instalada en paralelo con la versión de la Tienda de Google.
17 | - `connectedInstrumentTestUnitDebug`: Una variante especial para testeo unitario. No quiero utilizar la versión Dev para esto porque se desinstala después de la ejecución de prueba.
18 | - `check`: Depende de `connectedInstrumentTestUnitDebug` de modo que ejecuta la batería de pruebas.
19 | - `build`: Compila todas las variantes de la aplicación de golpe, también depende de `check` de modo que correrá la batería de pruebas
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/assets/images/MYN_sort.es.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/assets/images/MYN_sort.es.png
--------------------------------------------------------------------------------
/app/src/main/assets/images/MYN_sort.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/assets/images/MYN_sort.png
--------------------------------------------------------------------------------
/app/src/main/assets/images/gitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/assets/images/gitter.png
--------------------------------------------------------------------------------
/app/src/main/assets/listsandtags.de.md:
--------------------------------------------------------------------------------
1 | # Listen und Tags
2 |
3 | Warum verwendet Simpletask Listen und Tags?
4 |
5 | ## Kontexte vs Listen
6 |
7 | Statt der Kontexte und Projekte in todo.txt wird in Simpletask `@irgendwas` als Liste und `+irgendwas` als Tag bezeichnet. Wie kam es zu dieser Entscheidung? Dreht sich bei GTD nicht alles um Kontexte?
8 |
9 | Na ja, eigentlich nicht. Auch wenn dies im ursprünglichen Buch "Getting Things Done" deutlicher hätte formuliert werden können, ist in GTD das wichtigste Organisationsmittel die Liste. Einige Listen enthalten die nächsten Aktionen für einen bestimmten Kontext (z.B. `@computer`) andere jedoch nicht (z. B. `Projekte` oder `Warten auf`).
10 |
11 | Obwohl viele der Listen in GTD nächste Aktionen für einen bestimmten Kontext enthalten, ist der Kontext nicht das wichtigste Organisationsmittel (z. B. ist `Warten auf` kein Kontext).
12 |
13 | ## Projekte vs Tags
14 |
15 | Projekte werden in Simpletask Tags genannt, weil Tags ein allgemeineres Konzept ist. Ein Tag kann alles sein, von einem Projekt bis hin zum Namen einer Person. Dies ermöglicht die Verwendung von Aufgaben wie:
16 |
17 | `+DavidAllen @anrufen bezüglich +GTD`
18 |
19 | In diesem Fall sind keine der Tags Projekte.
--------------------------------------------------------------------------------
/app/src/main/assets/listsandtags.en.md:
--------------------------------------------------------------------------------
1 | # Lists and Tags
2 |
3 | Why does Simpletask use Lists and Tags?
4 |
5 | ## Contexts vs Lists
6 |
7 | Instead of the contexts and projects in todo.txt, simpletask calls `@something`
8 | a list and `+something` a tag. Why was this chosen, isn't GTD all about
9 | contexts?
10 |
11 | Well no actually. Even though this is not as clearly articulated in the original
12 | Getting Things Done book as it could be, in GTD the main organizing element is
13 | the list. Some of these lists contain next actions for a certain context (e.g.
14 | @computer) but some don't (e.g. Projects or Waiting For).
15 |
16 | So even though a lot of the lists in GTD will contain next actions for
17 | a certain context, this doesn't imply that context is the main organizing
18 | element (e.g. Waiting For is not a context)
19 |
20 | ## Projects vs Tags
21 |
22 | Projects are renamed to tags because tags is a more general concept. A tag can
23 | be anything from a project to a person's name. This allows using tasks like:
24 |
25 | `@Call +DavidAllen regarding +GTD`
26 |
27 | In this case neither of the tags are projects.
28 |
--------------------------------------------------------------------------------
/app/src/main/assets/listsandtags.es.md:
--------------------------------------------------------------------------------
1 | # Listas y Etiquetas
2 |
3 | Por qué usa Simpletask Listas y Etiquetas?
4 |
5 | ## Contextos vs Listas
6 |
7 | En vez de los contextos y proyectos en todo.txt, Simpletask llama a `@algo` una lista y a `+algo` una etiqueta. ¿Por qué se decidió esto? ¿No va GTD totalmente sobre contextos?
8 |
9 | Bueno, realmente no. Aunque esto no está tan claramente establecido en el libro original Getting Things Done (*Resolviendo las cosas*) como podría estarlo, en GTD el principal elemento organizador es la lista. Algunas de estas listas contienen acciones futuras para un cierto contexto (p. ej. @ordenador) pero otras no (p. ej. Proyectos o En Espera).
10 |
11 | Por tanto, incluso aunque muchas listas en GTD contendrán acciones futuras para un cierto contexto, esto no implica que el contexto es el principal elemento organizador (p. ej. En Espera no es un contexto)
12 |
13 | ## Proyectos vs Etiquetas
14 |
15 | Los proyectos están renombrados a etiquetas porque etiquetas es un concepto más general. Una etiqueta puede ser cualquier cosa desde un proyecto al nombre de una persona. Esto permite utilizar tareas como:
16 |
17 | `@Llamar +DavidAllen con respecto a +GTD`
18 |
19 | En este caso ninguna de las etiquetas son proyectos.
20 |
--------------------------------------------------------------------------------
/app/src/main/assets/ui.de.md:
--------------------------------------------------------------------------------
1 | Benutzeroberfläche
2 | ==================
3 |
4 | Diese Seite ist zur Zeit in Arbeit und wird noch ergänzt.
5 |
6 | ## Filtern von Aufgaben
7 |
8 | ### Filter umkehren
9 |
10 | Mit der Option `Filter umkehren` werden die markierten Elemente ausgeblendet. Das folgende Beispiel zeigt, warum dies sinnvoll sein kann.
11 |
12 | Stellen Sie sich vor, dass Sie folgende Listen definiert haben:
13 |
14 | - `@arbeit`
15 | - `@privat`
16 | - `Projekt`
17 | - `Irgendwann`
18 |
19 | Zwei dieser Listen enthalten nächste Aktionen (`@arbeit` und `@privat`), die beiden anderen nicht. Wenn Sie nun einen Filter erstellen möchten, der nur nächste Aktionen zeigt, gibt es zwei Möglichkeiten.
20 |
21 | #### Der 'falsche' Weg
22 |
23 | Wenn Sie einen Filter erstellen, in dem die Listen `@arbeit` und `@privat` markiert sind, wird dies Anfangs ohne Probleme funktionieren. Wenn Sie nun eine neue Aufgabe mit der Liste `@einkauf` erstellen und diese ebenfalls eine nächste Aktion ist, wird sie jedoch erst angezeigt, wenn Sie den Filter auf die Liste `@einkauf` erweitern. Dadurch besteht die Gefahr, dass neue Aufgaben übersehen werden.
24 |
25 | #### Der 'richtige' Weg
26 |
27 | Erstellen Sie einen Filter, in welchem die Listen `Projekt` und `Irgendwann` sowie die Option `Filter umkehren` markiert sind. Nun werden alle Aufgaben angezeigt, die nicht auf den Listen `Projekt` oder `Irgendwann` stehen. Wenn Sie nun eine neue Aufgabe mit der Liste `@einkauf` hinzufügen, wird diese ebenfalls in den Ergebnissen enthalten sein.
28 |
29 | Natürlich zeigt der Filter nun jede neu erstellte Liste an, auch wenn sie keine nächsten Aktionen enthält. Um sie auszublenden, muss der Filter ebenfalls aktualisiert werden.
30 | Der Vorteil dieser Methode ist, dass eher zu viele als zu wenig Informationen angezeigt werden.
31 |
--------------------------------------------------------------------------------
/app/src/main/assets/ui.en.md:
--------------------------------------------------------------------------------
1 | User Interface
2 | ==============
3 |
4 | This page explains the user interface. At the moment this is a work in
5 | progress so it doesn't cover all items yet.
6 |
7 |
8 | ## Filter Activity
9 |
10 | ### Invert filter
11 |
12 | The invert option is to use the negative of the selected items. To
13 | give an example of why this is useful.
14 |
15 | Imagine you have the following lists defined:
16 |
17 | - `@work`
18 | - `@home`
19 | - `Project`
20 | - `Someday`
21 |
22 | Two of those lists contain next actions (`@work` and `@home`) the two
23 | others don't. Now if you want to create a filter to only show next
24 | actions there are two ways to do this. One wrong way and one right
25 | way.
26 |
27 | ### The 'wrong' way
28 |
29 | Create a filter with the `@work` and `@home` items checked. Initially this
30 | will work. However when you create an item with list `@shop` which is also
31 | a next action, you will have to updateCache the next action filter. So it
32 | is easy to miss next actions like this.
33 |
34 | ### The 'right' way
35 |
36 | Create a filter with the `Project` and `Someday` items checked and
37 | also check `Invert filter`. Now all items which are not on the
38 | `Project` and `Someday` list will be shown after filtering. This means
39 | that if you add an item `@shop` this will also be included in the
40 | results.
41 |
42 | Of course if you add a new list which doesn't contain next actions
43 | (e.g. `@PrivateProject`) this will also be shown and the filter still
44 | needs to be changed. The big difference with the 'wrong' way is that
45 | you might get too much information instead of too little, which is preferable.
46 |
--------------------------------------------------------------------------------
/app/src/main/assets/ui.es.md:
--------------------------------------------------------------------------------
1 | Interfaz de usuario
2 | ===================
3 |
4 | Esta página explica la interfaz de usuario. De momento esto es un trabajo en marcha por lo que no cubre todos los elementos todavía.
5 |
6 |
7 | ## Actividad de Filtrado
8 |
9 | ### Invertir filtro
10 |
11 | La opción invertir es para utilizar el negativo de los elementos seleccionados. Para dar un ejemplo de por qué esto es útil.
12 |
13 | Imagine que tiene las siguientes listas definidas:
14 |
15 | - `@trabajo`
16 | - `@casa`
17 | - `Proyecto`
18 | - `AlgúnDía`
19 |
20 | Dos de estas listas contienen acciones próximas (`@trabajo` y `@casa`) las otras dos no. Ahora si quiere crear un filtro para mostrar únicamente las acciones próximas hay dos maneras para hacerlo. Una manera incorrecta y una manera correcta.
21 |
22 | ### La manera 'incorrecta'
23 |
24 | Crear un filtro con las opciones `@trabajo` y `@casa` marcadas. Inicialmente esto funcionará. Sin embargo, cuando cree un elemento con la lista `@compras` que también sea una acción próxima, tendrá que actualizar el filtro para acciones próximas. Así que es fácil que acciones próximas pasen inadvertidas.
25 |
26 | ### La manera 'correcta'
27 |
28 | Crear un filtro con las opciones `Proyecto` y `AlgúnDía` marcadas y también marcar `Invertir filtro`. Ahora todos los elementos que no estén en las listas `Proyecto` y `AlgúnDía` se mostrarán después de filtrar. Esto significa que si añade una tarea a `@compras` ésta también será incluida en los resultados.
29 |
30 | Naturalmente, si añade un nuevo listado que no contiene acciones próximas (p. ej. `@ProyectoPrivado`) éstas también se mostrarán y se deberá editar el filtro. La gran diferencia con la manera 'incorrecta' es que este camino podría mostrar demasiada información en lugar de demasiado poca, lo cual es preferible.
31 |
--------------------------------------------------------------------------------
/app/src/main/assets/versions.en.md:
--------------------------------------------------------------------------------
1 | Versions
2 | ========
3 |
4 | Simpletask comes in two different versions on the Play Store. Simpletask and Simpletask Cloudless. Below you can find an overview of the differences between these versions and which one should be for you.
5 |
6 | I intend to maintain both versions. Simpletask because that has the userbase. Simpletask Cloudless because that's what I use.
7 |
8 | Simpletask
9 | ----------
10 |
11 | - Version with built in support for Dropbox syncing.
12 | - Todo files are stored in application storage so cleaned up on uninstall
13 | - Use if you already have a Dropbox account and want a no hassle install which quickly works.
14 |
15 | Simpletask Cloudless
16 | --------------------
17 |
18 | - No built in sync support. Depends on other offerings (such as Dropsync or Foldersync) to sync to a large number of cloud options.
19 | - Doesn't require INTERNET permission so is acceptable for stringent export laws.
20 | - Todo files are stored on sdcard (by default in \`data/nl.mpcjanssen.simpletask\`) so can also be used in offline mode.
21 | - Will reloadLuaConfig the tasklist if an external program changes the todo file.
22 | - Use this if you want to sync to other cloud options than Dropbox or if you want to use it in offline mode.
23 |
24 | Donate versions
25 | ---------------
26 |
27 | There used to be donate versions in the playstore as well, but because they are exactly the same as the free version, they were becoming a hassle to maintain. If you want to donate, you can find a donation link in help.
28 |
29 |
--------------------------------------------------------------------------------
/app/src/main/assets/versions.es.md:
--------------------------------------------------------------------------------
1 | Versiones
2 | =========
3 |
4 | Simpletask existe en dos versiones diferentes en la Tienda de Google. Simpletask y Simpletask Cloudless. Abajo puede encontrar una visión general de las diferencias entre estas versiones y cuál sería adecuada para usted.
5 |
6 | Pretendo mantener ambas versiones. Simpletask porque tiene un colectivo de usuarios. Simpletask Cloudless porque es la que utilizo.
7 |
8 | Simpletask
9 | ----------
10 |
11 | - Versión con soporte para sincronización con Dropbox.
12 | - Los archivos ParaHacer (Todo) están almacenados dentro del almacenamiento de la aplicación y son borrados al desinstalar
13 | - Utilize ésta si ya tiene una cuenta Dropbox y quiere disponer de una instalación libre de complicaciones que funciona rápidamente.
14 |
15 | Simpletask Cloudless
16 | --------------------
17 |
18 | - No tiene soporte de sincronización integrado. Depende de otros sistemas (como Dropsync o Foldersync) para sincronizar con un gran número de opciones en la nube.
19 | - No requiere permiso de INTERNET así que es aceptable para leyes de exportación exigentes.
20 | - Todo los archivos están almacenados en la tarjeta SD (de forma predeterminada en \`data/nl.mpcjanssen.simpletask\`) así que también puede ser utilizado en modo off-line.
21 | - Vuelve a recargar la lista de tareas si un programa externo cambia el archivo ParaHacer (Todo).
22 | - Utilize ésta si quiere sincronizar con otras opciones de la nube que no sean Dropbox o si quiere utilizarla en modo off-line.
23 |
24 | Versiones de donación
25 | ---------------------
26 |
27 | Solía haber versiones de donación en la Tienda de Google también, pero puesto que son exactamente iguales a las versiones libres, se estaban convirtiendo en un engorro el mantenerlas. Si quiere donar, puede encontrar un enlace de donación en los ajustes.
28 |
29 |
--------------------------------------------------------------------------------
/app/src/main/assets/versions.hu.md:
--------------------------------------------------------------------------------
1 | Verziók
2 | ========
3 |
4 | A Simpletask két verzióban érhető el a Play Áruházban: Simpletask és Simpletask Cloudless. Az alábbiakban áttekintést kaphatsz a kettő közti különbségekről, illetve hogy melyiket érdemes használnod.
5 |
6 | Mindkét verziót szeretném fejleszteni. A Simpletasket, mert ezt használják többen. A Simpletask Cloudlesst pedig azért, mert én ezt használom.
7 |
8 | Simpletask
9 | ----------
10 |
11 | - Ez a verzió támogatja a Dropbox szinkronizációt.
12 | - A feladatlista az alkalmazásfájlok között van, az alkalmazás törlésekor az is törlődik.
13 | - Válaszd ezt, ha van Dropbox fiókod és nem szeretnél ennek a beállításával bajlódni.
14 |
15 | Simpletask Cloudless
16 | --------------------
17 |
18 | - Nincs beépítve szinkronizálási lehetőség. Más szolgáltatások (mint Dropsync vagy Foldersync) segítségével számos felhőmegoldással lehet szinkronizálni.
19 | - Nem igényel INTERNET hozzáférést, így kompatibilis szigorú adattörvényekkel is.
20 | - A feladatlisták az SD kártyára kerülnek (alapértelmezetten ide: \`data/nl.mpcjanssen.simpletask\`) így internetkapcsolat nélkül is használhatóak.
21 | - A LuaConfig újratölti a feladatlistát, ha egy külső program megváltozatja a fájlt.
22 | - Használd ezt, ha nem Dropboxszal szeretnéd szinkronizálni vagy ha csak offline módban használnád.
23 |
24 | Támogatói verzió
25 | ---------------
26 |
27 | Elérhető volt az áruházban támogatói verzió is, de mivel teljesen ugyanaz volt, mint az ingyenes verzió, macerás volt fenntartani. Ha szeretnél adományozni, a beállításokban találsz linket hozzá.
28 |
--------------------------------------------------------------------------------
/app/src/main/java/com/buildware/widget/indeterm/IndeterminateCheckable.java:
--------------------------------------------------------------------------------
1 | package com.buildware.widget.indeterm;
2 |
3 | import android.widget.Checkable;
4 |
5 | /**
6 | * Extension to Checkable interface with addition "indeterminate" state
7 | * represented by getState()
. Value meanings:
8 | * null = indeterminate state
9 | * true = checked state
10 | * false = unchecked state
11 | */
12 | public interface IndeterminateCheckable extends Checkable {
13 | void setIndeterminateUsed(Boolean bool);
14 | void setState(Boolean state);
15 | Boolean getState();
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/mobeta/android/dslv/DragSortItemViewCheckable.java:
--------------------------------------------------------------------------------
1 | package com.mobeta.android.dslv;
2 |
3 | import android.content.Context;
4 | import android.view.View;
5 | import android.widget.Checkable;
6 |
7 | /**
8 | * Lightweight ViewGroup that wraps list items obtained from user's
9 | * ListAdapter. ItemView expects a single child that has a definite
10 | * height (i.e. the child's layout height is not MATCH_PARENT).
11 | * The width of
12 | * ItemView will always match the width of its child (that is,
13 | * the width MeasureSpec given to ItemView is passed directly
14 | * to the child, and the ItemView measured width is set to the
15 | * child's measured width). The height of ItemView can be anything;
16 | * the
17 | *
18 | *
19 | * The purpose of this class is to optimize slide
20 | * shuffle animations.
21 | */
22 | public class DragSortItemViewCheckable extends DragSortItemView implements Checkable {
23 |
24 | public DragSortItemViewCheckable(Context context) {
25 | super(context);
26 | }
27 |
28 | @Override
29 | public boolean isChecked() {
30 | View child = getChildAt(0);
31 | return child instanceof Checkable && ((Checkable) child).isChecked();
32 | }
33 |
34 | @Override
35 | public void setChecked(boolean checked) {
36 | View child = getChildAt(0);
37 | if (child instanceof Checkable)
38 | ((Checkable) child).setChecked(checked);
39 | }
40 |
41 | @Override
42 | public void toggle() {
43 | View child = getChildAt(0);
44 | if (child instanceof Checkable)
45 | ((Checkable) child).toggle();
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/app/src/main/java/nl/mpcjanssen/simpletask/AbstractInterpreter.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask
2 |
3 | import nl.mpcjanssen.simpletask.task.Task
4 |
5 | abstract class AbstractInterpreter {
6 | val ON_DISPLAY_NAME = "onDisplay"
7 | val ON_ADD_NAME = "onAdd"
8 | val ON_FILTER_NAME = "onFilter"
9 | val ON_GROUP_NAME = "onGroup"
10 | val ON_TEXTSEARCH_NAME = "onTextSearch"
11 | val ON_SORT_NAME = "onSort"
12 | val CONFIG_THEME = "theme"
13 | val CONFIG_TASKLIST_TEXT_SIZE_SP = "tasklistTextSize"
14 | abstract fun tasklistTextSize(): Float?
15 | // Callback to determine the theme. Return true for datk.
16 | abstract fun configTheme(): String?
17 |
18 | abstract fun onFilterCallback(moduleName: String, t: Task): Pair
19 | abstract fun hasFilterCallback(moduleName: String): Boolean
20 | abstract fun hasOnSortCallback(moduleName: String): Boolean
21 | abstract fun hasOnGroupCallback(moduleName: String): Boolean
22 | abstract fun onSortCallback(moduleName: String, t: Task): String
23 | abstract fun onGroupCallback(moduleName: String, t: Task): String?
24 | abstract fun onDisplayCallback(moduleName: String, t: Task): String?
25 | abstract fun onAddCallback(t: Task): Task?
26 | abstract fun onTextSearchCallback(moduleName: String, input: String, search: String, caseSensitive: Boolean): Boolean?
27 | abstract fun evalScript(moduleName: String?, script: String?): AbstractInterpreter
28 | abstract fun clearOnFilter(moduleName: String)
29 | }
--------------------------------------------------------------------------------
/app/src/main/java/nl/mpcjanssen/simpletask/AlarmReceiver.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask
2 |
3 | import android.content.BroadcastReceiver
4 | import android.content.Context
5 | import android.content.Intent
6 | import androidx.localbroadcastmanager.content.LocalBroadcastManager
7 | import android.util.Log
8 | import nl.mpcjanssen.simpletask.task.TodoList
9 | import nl.mpcjanssen.simpletask.util.broadcastFileSync
10 |
11 | class AlarmReceiver : BroadcastReceiver() {
12 |
13 | override fun onReceive(context: Context, intent: Intent) {
14 | val lbm = LocalBroadcastManager.getInstance(context)
15 | Log.i(TAG, "Executing Alarm callback")
16 | if (Constants.ALARM_RELOAD == intent.getStringExtra(Constants.ALARM_REASON_EXTRA)) {
17 | broadcastFileSync( lbm )
18 | } else {
19 | TodoApplication.todoList.reload("Alarm")
20 | }
21 |
22 | }
23 |
24 | companion object {
25 | private val TAG = AlarmReceiver::class.java.simpleName
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/app/src/main/java/nl/mpcjanssen/simpletask/LogCat.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask
2 |
3 | import java.io.BufferedReader
4 | import java.io.IOException
5 | import java.io.InputStreamReader
6 |
7 |
8 | object LogCat {
9 | fun getLog() : List {
10 | return try {
11 | val process = Runtime.getRuntime().exec("logcat -d")
12 | val bufferedReader = BufferedReader(
13 | InputStreamReader(process.inputStream))
14 |
15 | val log = bufferedReader.readLines()
16 | bufferedReader.close()
17 | process.destroy()
18 | log
19 | } catch (e: IOException) {
20 | e.stackTrace.map {it.toString()}
21 | }
22 |
23 | }
24 | }
--------------------------------------------------------------------------------
/app/src/main/java/nl/mpcjanssen/simpletask/ThemedActivities.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask
2 |
3 | import android.os.Bundle
4 | import androidx.appcompat.app.AppCompatActivity
5 | import nl.mpcjanssen.simpletask.util.Config
6 | import java.util.*
7 |
8 | abstract class ThemedNoActionBarActivity : AppCompatActivity() {
9 |
10 | override fun onCreate(savedInstanceState: Bundle?) {
11 | setTheme(TodoApplication.config.activeTheme)
12 | if (TodoApplication.config.forceEnglish) {
13 | val conf = resources.configuration
14 | conf.locale = Locale.ENGLISH
15 | resources.updateConfiguration(conf, resources.displayMetrics)
16 | }
17 | super.onCreate(savedInstanceState)
18 | }
19 | }
20 |
21 | abstract class ThemedActionBarActivity : AppCompatActivity() {
22 |
23 | override fun onCreate(savedInstanceState: Bundle?) {
24 | setTheme(TodoApplication.config.activeActionBarTheme)
25 | if (TodoApplication.config.forceEnglish) {
26 | val conf = resources.configuration
27 | conf.locale = Locale.ENGLISH
28 | resources.updateConfiguration(conf, resources.displayMetrics)
29 | }
30 | super.onCreate(savedInstanceState)
31 | }
32 | }
33 |
34 | abstract class ThemedPreferenceActivity : AppCompatPreferenceActivity() {
35 |
36 | override fun onCreate(savedInstanceState: Bundle?) {
37 | setTheme(TodoApplication.config.activeActionBarTheme)
38 | if (TodoApplication.config.forceEnglish) {
39 | val conf = resources.configuration
40 | conf.locale = Locale.ENGLISH
41 | resources.updateConfiguration(conf, resources.displayMetrics)
42 | }
43 | super.onCreate(savedInstanceState)
44 | }
45 | }
46 |
47 |
--------------------------------------------------------------------------------
/app/src/main/java/nl/mpcjanssen/simpletask/TodoException.kt:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of Todo.txt Touch, an Android app for managing your todo.txt file (http://todotxt.com).
3 |
4 | * Copyright (c) 2009-2012 Todo.txt contributors (http://todotxt.com)
5 |
6 | * LICENSE:
7 |
8 | * Todo.txt Touch is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
9 | * License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any
10 | * later version.
11 |
12 | * Todo.txt Touch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
13 | * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14 | * details.
15 |
16 | * You should have received a copy of the GNU General Public License along with Todo.txt Touch. If not, see
17 | * //www.gnu.org/licenses/>.
18 |
19 | * @author Todo.txt contributors @yahoogroups.com>
20 | * *
21 | * @license http://www.gnu.org/licenses/gpl.html
22 | * *
23 | * @copyright 2009-2012 Todo.txt contributors (http://todotxt.com)
24 | */
25 | package nl.mpcjanssen.simpletask
26 |
27 | class TodoException : RuntimeException {
28 |
29 | constructor(msg: String) : super(msg)
30 |
31 | constructor(msg: String, t: Throwable) : super(msg, t)
32 |
33 | companion object {
34 |
35 | private val serialVersionUID = 2160630991596963352L
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/app/src/main/java/nl/mpcjanssen/simpletask/VisibleLine.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask
2 |
3 | import nl.mpcjanssen.simpletask.task.Task
4 |
5 | interface VisibleLine {
6 | val header: Boolean
7 | val task : Task?
8 | val title: String?
9 | }
10 |
11 | data class TaskLine(override val task: Task) : VisibleLine {
12 | override val title: String?
13 | get() = null
14 | override val header = false
15 |
16 | }
17 |
18 | data class HeaderLine(override var title: String) : VisibleLine {
19 | override val task: Task?
20 | get() = null
21 | override val header = true
22 | }
--------------------------------------------------------------------------------
/app/src/main/java/nl/mpcjanssen/simpletask/dao/Daos.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask.dao
2 |
3 | import android.content.Context
4 | import androidx.room.*
5 |
6 | const val SCHEMA_VERSION=1013
7 | const val DB_FILE="TodoFiles_v1.db"
8 |
9 | @Entity
10 | data class TodoFile(
11 | @PrimaryKey var contents: String,
12 | @ColumnInfo var name: String,
13 | @ColumnInfo var date: Long
14 | )
15 |
16 | @Dao
17 | interface TodoFileDao {
18 | @Query("SELECT * FROM TodoFile")
19 | fun getAll(): List
20 |
21 |
22 | @Insert(onConflict = OnConflictStrategy.IGNORE)
23 | fun insert(contents: TodoFile) : Long
24 |
25 | @Update(onConflict = OnConflictStrategy.IGNORE)
26 | fun update(contents: TodoFile)
27 |
28 | @Query ("DELETE from TodoFile where date < :timestamp")
29 | fun removeBefore(timestamp: Long)
30 |
31 | @Query ("DELETE from TodoFile")
32 | fun deleteAll()
33 |
34 |
35 | }
36 |
37 | @Database(entities = arrayOf(TodoFile::class), version = SCHEMA_VERSION, exportSchema = false)
38 | abstract class AppDatabase : RoomDatabase() {
39 | abstract fun todoFileDao(): TodoFileDao
40 | }
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/java/nl/mpcjanssen/simpletask/remote/BackupInterface.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask.remote
2 |
3 | import java.io.File
4 |
5 | interface BackupInterface {
6 | fun backup(file: File, lines: List)
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/java/nl/mpcjanssen/simpletask/task/ByContextFilter.kt:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of Todo.txt Touch, an Android app for managing your todo.txt file (http://todotxt.com).
3 |
4 | * Copyright (c) 2009-2012 Todo.txt contributors (http://todotxt.com)
5 |
6 | * LICENSE:
7 |
8 | * Todo.txt Touch is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
9 | * License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any
10 | * later version.
11 |
12 | * Todo.txt Touch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
13 | * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14 | * details.
15 |
16 | * You should have received a copy of the GNU General Public License along with Todo.txt Touch. If not, see
17 | * //www.gnu.org/licenses/>.
18 |
19 | * @author Todo.txt contributors @yahoogroups.com>
20 | * *
21 | * @license http://www.gnu.org/licenses/gpl.html
22 | * *
23 | * @copyright 2009-2012 Todo.txt contributors (http://todotxt.com)
24 | */
25 | package nl.mpcjanssen.simpletask.task
26 |
27 | /**
28 | * A applyFilter that matches Tasks containing the specified contexts
29 | */
30 | class ByContextFilter(
31 | private val contexts: List,
32 | private val not: Boolean
33 | ) : TaskFilter {
34 |
35 | override fun apply(task: Task): Boolean {
36 | return if (not) !filter(task) else filter(task)
37 | }
38 |
39 | private fun filter(input: Task): Boolean {
40 | val match = input.lists?.any { contexts.contains(it) } ?: false
41 | /*
42 | * Match tasks without context if applyFilter contains "-"
43 | */
44 | return match || input.lists == null && contexts.contains("-")
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/app/src/main/java/nl/mpcjanssen/simpletask/task/ByPriorityFilter.kt:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of Todo.txt Touch, an Android app for managing your todo.txt file (http://todotxt.com).
3 |
4 | * Copyright (c) 2009-2012 Todo.txt contributors (http://todotxt.com)
5 |
6 | * LICENSE:
7 |
8 | * Todo.txt Touch is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
9 | * License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any
10 | * later version.
11 |
12 | * Todo.txt Touch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
13 | * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14 | * details.
15 |
16 | * You should have received a copy of the GNU General Public License along with Todo.txt Touch. If not, see
17 | * //www.gnu.org/licenses/>.
18 |
19 | * @author Todo.txt contributors @yahoogroups.com>
20 | * *
21 | * @license http://www.gnu.org/licenses/gpl.html
22 | * *
23 | * @copyright 2009-2012 Todo.txt contributors (http://todotxt.com)
24 | */
25 | package nl.mpcjanssen.simpletask.task
26 |
27 | import java.util.ArrayList
28 |
29 | /**
30 | * A applyFilter that matches Tasks containing the specified priorities
31 |
32 | * @author Tim Barlotta
33 | */
34 | class ByPriorityFilter(
35 | private val priorities: List,
36 | private val not: Boolean
37 | ) : TaskFilter {
38 | /* FOR TESTING ONLY, DO NOT USE IN APPLICATION */
39 |
40 | override fun apply(task: Task): Boolean {
41 | return if (not) !filter(task) else filter(task)
42 | }
43 |
44 | fun filter(input: Task): Boolean {
45 | return priorities.isEmpty() || priorities.contains(input.priority)
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/app/src/main/java/nl/mpcjanssen/simpletask/task/ByTextFilter.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask.task
2 |
3 | import nl.mpcjanssen.simpletask.Interpreter
4 | import java.util.*
5 |
6 | /**
7 | * A applyFilter that matches Tasks containing the specified text
8 | */
9 | class ByTextFilter(val moduleName : String, searchText: String?, internal val isCaseSensitive: Boolean) : TaskFilter {
10 | val text = searchText ?: ""
11 |
12 | private val parts: List
13 | get() = cased(text).split("\\s".toRegex()).dropLastWhile { it.isEmpty() }
14 |
15 | override fun apply(task: Task): Boolean {
16 | return scriptResult(task)?.let { luaval ->
17 | luaval
18 | } ?: cased(task.text).let { taskText ->
19 | !parts.any { it.isNotEmpty() && !taskText.contains(it) }
20 | }
21 | }
22 |
23 | private fun scriptResult(task: Task): Boolean? {
24 | return Interpreter.onTextSearchCallback(moduleName, task.text, text, isCaseSensitive)
25 | }
26 |
27 |
28 | private fun cased(t: String): String {
29 | return if (isCaseSensitive) t else t.toUpperCase(Locale.getDefault())
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/src/main/java/nl/mpcjanssen/simpletask/task/TaskFilter.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask.task
2 |
3 | interface TaskFilter {
4 | fun apply(task: Task): Boolean
5 | }
6 |
--------------------------------------------------------------------------------
/app/src/main/java/nl/mpcjanssen/simpletask/util/ActionQueues.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask.util
2 |
3 | import android.os.Handler
4 | import android.os.Looper
5 | import android.util.Log
6 | import org.jetbrains.anko.doAsync
7 |
8 |
9 | open class ActionQueue(val qName: String) : Thread() {
10 |
11 |
12 | fun add(description: String, r: () -> Unit) {
13 | Log.i(qName, "-> $description")
14 | doAsync {
15 | Log.i(qName, "<- $description")
16 | r.invoke()
17 | }
18 | }
19 | }
20 |
21 | object FileStoreActionQueue : ActionQueue("FSQ")
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/java/nl/mpcjanssen/simpletask/util/ListenerList.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask.util
2 |
3 | import java.util.*
4 |
5 | class ListenerList {
6 | private val listenerList = ArrayList()
7 |
8 | interface FireHandler {
9 | fun fireEvent(listener: L)
10 | }
11 |
12 | fun add(listener: L) {
13 | listenerList.add(listener)
14 | }
15 |
16 | fun fireEvent(fireHandler: FireHandler) {
17 | val copy = ArrayList(listenerList)
18 | for (l in copy) {
19 | fireHandler.fireEvent(l)
20 | }
21 | }
22 |
23 | fun remove(listener: L) {
24 | listenerList.remove(listener)
25 | }
26 |
27 | fun getListenerList(): List {
28 | return listenerList
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/app/src/main/java/nl/mpcjanssen/simpletask/util/TaskIo.kt:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of Todo.txt Touch, an Android app for managing your todo.txt file (http://todotxt.com).
3 | *
4 | *
5 | * Copyright (c) 2009-2012 Todo.txt contributors (http://todotxt.com)
6 | *
7 | *
8 | * LICENSE:
9 | *
10 | *
11 | * Todo.txt Touch is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
12 | * License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any
13 | * later version.
14 | *
15 | *
16 | * Todo.txt Touch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
17 | * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
18 | * details.
19 | *
20 | *
21 | * You should have received a copy of the GNU General Public License along with Todo.txt Touch. If not, see
22 | * //www.gnu.org/licenses/>.
23 |
24 | * @author Todo.txt contributors @yahoogroups.com>
25 | * *
26 | * @license http://www.gnu.org/licenses/gpl.html
27 | * *
28 | * @copyright 2009-2012 Todo.txt contributors (http://todotxt.com)
29 | */
30 | @file:JvmName("TaskIo")
31 | package nl.mpcjanssen.simpletask.util
32 |
33 | import android.util.Log
34 | import java.io.*
35 | import java.lang.Exception
36 |
37 | @Throws(IOException::class)
38 | fun writeToFile(bytes: ByteArray, file: File) {
39 | try {
40 | if (!file.exists()) {
41 | file.createNewFile()
42 | }
43 | val fos = FileOutputStream(file)
44 | fos.write(bytes)
45 | fos.close()
46 | } catch (e: Exception) {
47 | Log.e(TAG, e.message!!)
48 | }
49 | }
50 |
51 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/ic_checkbox_animation_interpolator_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/ic_checkbox_animation_interpolator_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/color/control_checkable_material.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
21 |
26 |
30 |
34 |
37 |
38 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_action_sort_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_action_sort_down.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_action_sort_down_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_action_sort_down_dark.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_action_todotxt_lists.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_action_todotxt_lists.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_action_todotxt_tags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_action_todotxt_tags.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_add_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_add_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_archive_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_archive_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_check_box_outline_blank_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_check_box_outline_blank_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_check_box_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_check_box_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_clock_start_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_clock_start_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_close_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_close_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_delete_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_delete_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_done_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_done_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_edit_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_edit_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_filter_list_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_filter_list_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_help_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_help_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_import_export_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_import_export_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_indeterminate_check_box_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_indeterminate_check_box_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_insert_invitation_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_insert_invitation_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_label_outline_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_label_outline_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_list_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_list_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_more_vert_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_more_vert_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_play_arrow_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_play_arrow_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_push_pin_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_push_pin_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_save_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_save_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_schedule_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_schedule_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_search_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_search_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_select_all_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_select_all_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_settings_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_settings_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_share_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_share_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_star_border_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-hdpi/ic_star_border_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/cancel_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/cancel_light.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_action_sort_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_action_sort_down.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_action_sort_down_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_action_sort_down_dark.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_action_todotxt_lists.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_action_todotxt_lists.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_action_todotxt_tags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_action_todotxt_tags.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_add_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_add_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_archive_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_archive_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_check_box_outline_blank_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_check_box_outline_blank_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_check_box_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_check_box_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_clock_start_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_clock_start_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_close_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_close_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_delete_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_delete_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_done_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_done_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_edit_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_edit_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_filter_list_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_filter_list_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_help_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_help_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_import_export_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_import_export_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_indeterminate_check_box_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_indeterminate_check_box_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_insert_invitation_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_insert_invitation_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_label_outline_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_label_outline_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_list_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_list_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_more_vert_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_more_vert_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_play_arrow_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_play_arrow_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_push_pin_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_push_pin_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_save_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_save_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_schedule_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_schedule_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_search_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_search_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_select_all_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_select_all_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_settings_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_settings_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_share_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_share_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_star_border_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-mdpi/ic_star_border_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-nodpi/appwidget_preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-nodpi/appwidget_preview.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-nodpi/ic_action_sort_up.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-nodpi/ic_action_sort_up_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_action_sort_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_action_sort_down.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_action_sort_down_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_action_sort_down_dark.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_action_todotxt_lists.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_action_todotxt_lists.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_action_todotxt_tags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_action_todotxt_tags.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_add_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_add_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_archive_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_archive_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_check_box_outline_blank_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_check_box_outline_blank_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_check_box_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_check_box_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_clock_start_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_clock_start_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_close_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_close_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_delete_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_delete_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_done_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_done_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_edit_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_edit_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_filter_list_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_filter_list_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_help_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_help_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_import_export_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_import_export_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_indeterminate_check_box_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_indeterminate_check_box_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_insert_invitation_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_insert_invitation_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_label_outline_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_label_outline_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_list_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_list_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_more_vert_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_more_vert_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_play_arrow_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_play_arrow_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_push_pin_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_push_pin_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_save_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_save_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_schedule_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_schedule_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_search_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_search_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_select_all_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_select_all_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_settings_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_settings_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_share_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_share_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_star_border_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xhdpi/ic_star_border_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_action_sort_down_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_action_sort_down_dark.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_action_todotxt_lists.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_action_todotxt_lists.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_action_todotxt_tags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_action_todotxt_tags.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_archive_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_archive_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_check_box_outline_blank_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_check_box_outline_blank_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_check_box_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_check_box_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_clock_start_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_clock_start_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_close_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_close_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_delete_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_delete_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_done_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_done_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_edit_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_edit_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_filter_list_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_filter_list_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_help_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_help_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_import_export_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_import_export_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_indeterminate_check_box_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_indeterminate_check_box_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_insert_invitation_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_insert_invitation_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_label_outline_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_label_outline_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_list_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_list_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_more_vert_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_more_vert_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_play_arrow_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_play_arrow_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_push_pin_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_push_pin_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_save_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_save_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_schedule_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_schedule_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_search_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_search_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_select_all_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_select_all_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_settings_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_settings_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_share_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_share_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_star_border_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxhdpi/ic_star_border_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/btn_radio_to_off_mtrl_000.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/btn_radio_to_off_mtrl_000.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/btn_radio_to_on_mtrl_000.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/btn_radio_to_on_mtrl_000.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_action_todotxt_lists.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_action_todotxt_lists.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_action_todotxt_tags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_action_todotxt_tags.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_archive_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_archive_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_check_box_outline_blank_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_check_box_outline_blank_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_check_box_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_check_box_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_clock_start_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_clock_start_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_close_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_close_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_delete_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_delete_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_done_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_done_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_edit_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_edit_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_filter_list_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_filter_list_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_help_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_help_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_import_export_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_import_export_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_indeterminate_check_box_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_indeterminate_check_box_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_insert_invitation_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_insert_invitation_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_label_outline_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_label_outline_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_list_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_list_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_more_vert_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_more_vert_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_play_arrow_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_play_arrow_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_push_pin_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_push_pin_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_radio_indeterminate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_radio_indeterminate.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_save_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_save_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_schedule_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_schedule_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_search_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_search_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_select_all_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_select_all_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_settings_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_settings_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_share_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_share_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_star_border_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/app/src/main/res/drawable-xxxhdpi/ic_star_border_white_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/btn_radio.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
11 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_checkbox_checked_to_unchecked_animation.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
21 |
25 |
29 |
33 |
34 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_checkbox_unchecked_to_checked_animation.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
21 |
25 |
29 |
33 |
34 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/drawer_list_header.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
30 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/drawer_list_header_uppercase.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
30 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/drawer_list_item.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/drawer_list_item_checked.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/empty_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
25 |
26 |
27 |
34 |
35 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/filter.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
18 |
27 |
33 |
34 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/help.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/keep_dialog_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/list_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/loading.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/log.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
14 |
19 |
26 |
33 |
34 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/log_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
25 |
26 |
36 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/lua_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
14 |
23 |
35 |
36 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/multi_filter.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
19 |
24 |
29 |
30 |
31 |
37 |
38 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/simple_list_item_multiple_choice.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
25 |
26 |
27 |
37 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/simple_list_item_single_choice.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
25 |
26 |
27 |
37 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/single_filter.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
26 |
32 |
33 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/single_task_tag_dialog.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
16 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sort_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
20 |
29 |
30 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/spinner_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/update_items_dialog.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
15 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/widget_simple_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
25 |
26 |
27 |
34 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/add_task.xml:
--------------------------------------------------------------------------------
1 |
2 |
25 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/completion_popup.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/filter.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/filter_drawer.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/help.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
56 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/history_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
37 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/log_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/lua_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
43 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/nav_drawer.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
14 | -
20 |
21 |
27 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/saved_filter.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
13 |
19 |
25 |
31 |
32 |
--------------------------------------------------------------------------------
/app/src/main/res/values-es-rAR/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Nombre de lista no válido
4 |
--------------------------------------------------------------------------------
/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 | #ff1b98c1
3 | #ff157a9b
4 |
5 | #5520b6e8
6 | #8820b6e8
7 |
8 | #ff00b1ed
9 | #ff0099cc
10 |
11 | #ffffffff
12 | #ff000000
13 | #ff111111
14 | #ff212121
15 | #ff303030
16 | #ff424242
17 | #ffaaaaaa
18 |
19 | #ff0099cc
20 | #ff33b5e5
21 | #ff99cc00
22 | #ff669900
23 | #ffffbb33
24 | #ffff8800
25 | #ffff4444
26 | #ffcc0000
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
18 |
19 |
22 |
23 |
26 |
27 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/main/res/values/values.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | - 0.30
5 | ifRoom
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/appwidget_info.xml:
--------------------------------------------------------------------------------
1 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/calendar_preferences.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
17 |
27 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/configuration_preferences.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/provider_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/searchable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
25 |
26 |
27 |
32 |
33 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/widget_preferences.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
18 |
28 |
38 |
39 |
--------------------------------------------------------------------------------
/app/src/nextcloud/java/nl/mpcjanssen/simpletask/FlavourPrefFragment.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask
2 |
3 | import android.content.DialogInterface
4 | import android.content.Intent
5 | import android.os.Bundle
6 | import android.preference.PreferenceFragment
7 | import android.util.Log
8 | import androidx.localbroadcastmanager.content.LocalBroadcastManager
9 | import nl.mpcjanssen.simpletask.remote.FileStore
10 | import nl.mpcjanssen.simpletask.util.showConfirmationDialog
11 |
12 | class FlavourPrefFragment : PreferenceFragment() {
13 | private val TAG = "FlavourPrefFragment"
14 | private lateinit var app: TodoApplication
15 | override fun onCreate(savedInstanceState: Bundle?) {
16 | app = activity.application as TodoApplication
17 | super.onCreate(savedInstanceState)
18 | addPreferencesFromResource(R.xml.flavourpreferences)
19 |
20 | val nextcloudPref = findPreference("logout_nextcloud")
21 | nextcloudPref.setOnPreferenceClickListener {
22 | Log.i(TAG, "Logging out from Nextcloud")
23 | showConfirmationDialog(activity, R.string.nextcloud_logout_message,
24 | DialogInterface.OnClickListener { dialogInterface, i ->
25 | FileStore.logout()
26 | activity.finish()
27 | LocalBroadcastManager.getInstance(activity).sendBroadcast(Intent(Constants.BROADCAST_ACTION_LOGOUT))
28 | }, R.string.nextcloud_logout_pref_title)
29 | true
30 | }
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/app/src/nextcloud/java/nl/mpcjanssen/simpletask/remote/ConnectivityReceiver.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask.remote
2 |
3 | import android.content.BroadcastReceiver
4 | import android.content.Context
5 | import android.content.Intent
6 | import android.util.Log
7 | import nl.mpcjanssen.simpletask.TodoApplication
8 | import nl.mpcjanssen.simpletask.util.broadcastFileSync
9 | import nl.mpcjanssen.simpletask.util.broadcastUpdateStateIndicator
10 |
11 | class ConnectivityReceiver : BroadcastReceiver() {
12 |
13 | override fun onReceive(context: Context, intent: Intent) {
14 | Log.d(TAG, "Connectivity changed {}" + intent)
15 | broadcastUpdateStateIndicator(TodoApplication.app.localBroadCastManager)
16 | if (FileStore.isOnline) {
17 | Log.i(TAG, "Device went online")
18 | broadcastFileSync(TodoApplication.app.localBroadCastManager)
19 | } else {
20 | Log.i(TAG, "Device no longer online")
21 | }
22 | }
23 |
24 | companion object {
25 | private val TAG = "ConnectivityReceiver"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/app/src/nextcloud/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Simpletask Nextcloud
4 | Nextcloud
5 | nl.mpcjanssen.simpletask.nextcloud
6 | Login unsuccessfull
7 | Unexpected result
8 | Log in to Nextcloud
9 | View log
10 | Server URL
11 | Username
12 | Password
13 | Please make sure you have synced all changes with Nextcloud or
14 | shared your complete task list if not connected to Nextcloud.\n
15 | Any changes that have not been synced will be lost after logging out.
16 | Log out of Nextcloud.
17 | Log out
18 | Mozilla/5.0 (Android) ownCloud-android/%1$s
19 | Mozilla/5.0 (Android) Nextcloud-android/%1$s
20 | off
21 |
22 |
--------------------------------------------------------------------------------
/app/src/nextcloud/res/xml/authenticator.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/nextcloud/res/xml/flavourpreferences.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/nextcloud/res/xml/preference_headers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
12 |
16 |
20 |
24 |
28 |
29 |
--------------------------------------------------------------------------------
/app/src/test/java/nl/mpcjanssen/simpletask/lua/LuaTest.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask.lua
2 |
3 | import org.junit.Assert
4 | import junit.framework.TestCase
5 | import org.luaj.vm2.LuaError
6 | import org.luaj.vm2.LuaTable
7 | import org.luaj.vm2.LuaValue
8 | import org.luaj.vm2.lib.jse.JsePlatform
9 |
10 | class TableTest : TestCase() {
11 | fun testGlobalFunctionCall() {
12 | val globals = JsePlatform.standardGlobals()!!
13 | globals.load("function test() ; return true ; end").call()
14 | val res = globals.get("test").call()
15 | Assert.assertTrue(res.toboolean())
16 | val moduleTable = LuaTable.tableOf()
17 | var error = false
18 | try {
19 | globals.load("test()", "module", moduleTable).call()
20 | } catch (e: LuaError) {
21 | error = true
22 | }
23 | assertTrue(error)
24 | val metatable = LuaValue.tableOf()
25 | metatable.set("__index", globals)
26 | moduleTable.setmetatable(metatable)
27 | globals.load("function onCallBack () ; test () ; return true ; end", "module", moduleTable).call()
28 | val callBack = moduleTable.get("onCallBack")
29 | Assert.assertNotSame(callBack, LuaValue.NIL)
30 | assertTrue(moduleTable.get("onCallBack").call().toboolean())
31 | globals.load("function onCallBack () ; test () ; return os.time() ; end", "module", moduleTable).call()
32 | Assert.assertNotSame(moduleTable.get("onCallBack").call().tolong(), 0L)
33 | }
34 | }
--------------------------------------------------------------------------------
/app/src/test/java/nl/mpcjanssen/simpletask/util/UtilTest.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask.util
2 |
3 | import junit.framework.TestCase
4 |
5 | import nl.mpcjanssen.simpletask.task.Task
6 | import java.util.*
7 |
8 | class UtilTest : TestCase() {
9 | fun testAddHeaderLines() {
10 | val tasks = ArrayList()
11 | tasks.add(Task("@Home h:1"))
12 | tasks.add(Task("@Work h:1"))
13 | tasks.add(Task("@College h:1"))
14 | val headers = addHeaderLines(tasks, ArrayList(listOf("by_context")) , "none", false, null)
15 | assertEquals(6, headers.size)
16 | }
17 |
18 | fun testAddHeaderLinesSort() {
19 | val tasks = ArrayList()
20 | tasks.add(Task("@a @b"))
21 | tasks.add(Task("@b @a"))
22 | val headers = addHeaderLines(tasks, ArrayList(listOf("by_context")) , "none", false, null)
23 | assertEquals(3, headers.size)
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/webdav/java/nl/mpcjanssen/simpletask/FlavourPrefFragment.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask
2 |
3 | import android.content.DialogInterface
4 | import android.content.Intent
5 | import android.os.Bundle
6 | import android.preference.PreferenceFragment
7 | import android.util.Log
8 | import androidx.localbroadcastmanager.content.LocalBroadcastManager
9 | import nl.mpcjanssen.simpletask.remote.FileStore
10 | import nl.mpcjanssen.simpletask.util.showConfirmationDialog
11 |
12 | class FlavourPrefFragment : PreferenceFragment() {
13 | private val TAG = "FlavourPrefFragment"
14 | private lateinit var app: TodoApplication
15 | override fun onCreate(savedInstanceState: Bundle?) {
16 | app = activity.application as TodoApplication
17 | super.onCreate(savedInstanceState)
18 | addPreferencesFromResource(R.xml.flavourpreferences)
19 |
20 | val nextcloudPref = findPreference("logout_nextcloud")
21 | nextcloudPref.setOnPreferenceClickListener {
22 | Log.i(TAG, "Logging out from Nextcloud")
23 | showConfirmationDialog(activity, R.string.webdav_logout_message,
24 | DialogInterface.OnClickListener { dialogInterface, i ->
25 | FileStore.logout()
26 | TodoApplication.app.clearTodoFile()
27 | activity.finish()
28 | LocalBroadcastManager.getInstance(activity).sendBroadcast(Intent(Constants.BROADCAST_ACTION_LOGOUT))
29 | }, R.string.webdav_logout_pref_title)
30 | true
31 | }
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/app/src/webdav/java/nl/mpcjanssen/simpletask/remote/ConnectivityReceiver.kt:
--------------------------------------------------------------------------------
1 | package nl.mpcjanssen.simpletask.remote
2 |
3 | import android.content.BroadcastReceiver
4 | import android.content.Context
5 | import android.content.Intent
6 | import android.util.Log
7 | import nl.mpcjanssen.simpletask.TodoApplication
8 | import nl.mpcjanssen.simpletask.util.broadcastFileSync
9 | import nl.mpcjanssen.simpletask.util.broadcastUpdateStateIndicator
10 |
11 | class ConnectivityReceiver : BroadcastReceiver() {
12 |
13 | override fun onReceive(context: Context, intent: Intent) {
14 | Log.d(TAG, "Connectivity changed {}" + intent)
15 | broadcastUpdateStateIndicator(TodoApplication.app.localBroadCastManager)
16 | if (FileStore.isOnline) {
17 | Log.i(TAG, "Device went online")
18 | broadcastFileSync(TodoApplication.app.localBroadCastManager)
19 | } else {
20 | Log.i(TAG, "Device no longer online")
21 | }
22 | }
23 |
24 | companion object {
25 | private val TAG = "ConnectivityReceiver"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/app/src/webdav/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Simpletask WebDAV
4 | Webdav
5 | nl.mpcjanssen.simpletask.webdav
6 | Login unsuccessfull
7 | Unexpected result
8 | Log in to Webdav
9 | View log
10 | Webdav URL
11 | Username
12 | Password
13 | Please make sure you have synced all changes with the server or
14 | shared your complete task list if not connected to the server.\n
15 | Any changes that have not been synced will be lost after logging out.
16 | Log out.
17 | Log out
18 |
19 |
--------------------------------------------------------------------------------
/app/src/webdav/res/xml/authenticator.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/webdav/res/xml/flavourpreferences.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/webdav/res/xml/network_security_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/webdav/res/xml/preference_headers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
12 |
16 |
20 |
24 |
28 |
29 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.4.32'
3 | repositories {
4 | google()
5 | mavenCentral()
6 | jcenter()
7 | maven {
8 | url "https://oss.sonatype.org/content/repositories/snapshots"
9 | }
10 | maven {
11 | url "https://plugins.gradle.org/m2/"
12 | }
13 | }
14 | dependencies {
15 | classpath 'com.android.tools.build:gradle:7.2.1'
16 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
17 | }
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/extras/dropbox-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/extras/dropbox-icon.png
--------------------------------------------------------------------------------
/extras/dropbox/ST256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/extras/dropbox/ST256.png
--------------------------------------------------------------------------------
/extras/dropbox/ST64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/extras/dropbox/ST64.png
--------------------------------------------------------------------------------
/extras/licenses/DATE4J_LICENSE_BSD.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2010-2013 Hirondelle Systems
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | * Redistributions of source code must retain the above copyright
8 | notice, this list of conditions and the following disclaimer.
9 | * Redistributions in binary form must reproduce the above copyright
10 | notice, this list of conditions and the following disclaimer in the
11 | documentation and/or other materials provided with the distribution.
12 | * Neither the name of Hirondelle Systems nor the
13 | names of its contributors may be used to endorse or promote products
14 | derived from this software without specific prior written permission.
15 |
16 | THIS SOFTWARE IS PROVIDED BY HIRONDELLE SYSTEMS ''AS IS'' AND ANY
17 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 | DISCLAIMED. IN NO EVENT SHALL HIRONDELLE SYSTEMS BE LIABLE FOR ANY
20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 |
--------------------------------------------------------------------------------
/extras/licenses/DSLV-NOTICE.txt:
--------------------------------------------------------------------------------
1 | A subclass of the Android ListView component that enables drag
2 | and drop re-ordering of list items.
3 |
4 | Copyright 2012 Carl Bauer
5 |
6 | Licensed under the Apache License, Version 2.0 (the "License");
7 | you may not use this file except in compliance with the License.
8 | You may obtain a copy of the License at
9 |
10 | http://www.apache.org/licenses/LICENSE-2.0
11 |
12 | Unless required by applicable law or agreed to in writing, software
13 | distributed under the License is distributed on an "AS IS" BASIS,
14 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | See the License for the specific language governing permissions and
16 | limitations under the License.
17 |
--------------------------------------------------------------------------------
/extras/licenses/SHARE_LICENSE.txt:
--------------------------------------------------------------------------------
1 | Content Provider used for sharing the task list is based on code from https://github.com/stephendnicholas.
2 |
3 | Copyright (c) 2012 Stephen Nicholas
4 | Permission is hereby granted, free of charge, to any person obtaining a copy
5 | of this software and associated documentation files (the "Software"), to deal
6 | in the Software without restriction, including without limitation the rights
7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the Software is
9 | furnished to do so, subject to the following conditions:
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
18 | THE SOFTWARE.
19 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | android.useAndroidX=true
2 | android.enableJetifier=true
--------------------------------------------------------------------------------
/gradle.properties.sample:
--------------------------------------------------------------------------------
1 | org.gradle.daemon=true
2 | storeFile = /path/to/google/key/file
3 | storeP12File = /path/to/store/api/file
4 | storeServiceAccount = service_acount@domain
5 | org.gradle.jvmargs=-Xmx2048M
6 |
7 | # put the storefile passwords in ~/.gradle/gradle.properties
8 | # ensure this is not version controlled
9 | # storePassword = password_of_store
10 | # keyPassword = password_of_key
11 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Jan 23 15:19:12 CET 2019
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip
7 |
--------------------------------------------------------------------------------
/local.properties.sample:
--------------------------------------------------------------------------------
1 | # This file is automatically generated by Android Tools.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file must *NOT* be checked into Version Control Systems,
5 | # as it contains information specific to your local configuration.
6 |
7 | sdk.dir=C\:/Users/name/Documents/Android/adt-bundle/sdk
8 |
--------------------------------------------------------------------------------
/secrets/dropbox-folder.xml.enc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/secrets/dropbox-folder.xml.enc
--------------------------------------------------------------------------------
/secrets/dropbox.xml.enc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpcjanssen/simpletask-android/da7c84bd171c63523010b0909f9373123f7c1572/secrets/dropbox.xml.enc
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------