ramack / activitydiary Goto Github PK
View Code? Open in Web Editor NEWAndroid diary for any kind of activities
License: GNU General Public License v3.0
Android diary for any kind of activities
License: GNU General Public License v3.0
add in
Some activities you might want to put into your Diary are not exclusive, but are some form of "states" that are in parallel to other activities. Normal DiaryActivities in our sense are exclusive and when you start an activity implicitly the current Activity is stopped.
A Background-Activity is one that can be active in parallel to the ordinary one.
For the implementation I see two options:
At the moment I do not see big differences (the only one is the "exclusivity") so it seems better to go for solution 1.
Or even allow to store "observations"? e. g. phenological observations like "cherry blossom" with a start and end date?
Allow the change of the color for activities by showing a color picker on tapping the color.
On many backgrounds the current font color is not good.
Generalize the algorithm in the activity managers and adjust colors in
DirayActivities shall be stored locally and read during app start.
As we finally want to provide custom search in the activities and also be able to sync the data to a cloud storage (#3) we need a ContentProvider. See https://developer.android.com/guide/topics/providers/content-provider-creating.html#DataStorage
and maybe https://developer.android.com/training/basics/data-storage/databases.html
for using ROOM https://codelabs.developers.google.com/codelabs/android-persistence/ the time seems not yet ripe
Shall we add multi-user support?
Incl. user communication? -> if yes adjust setting in gplay
Incl. sharing of location with others? -> if yes adjust setting in gplay
Some activities might be global to a group, such that all members get reminded and if one of the members did it, this instances get archived.
#3 for sure is a precondition for reasonable multi-user support.
leaving the "Edit Activity" with the up action after changing it, rejects the changes without further notice. Better ask if you want to safe or reject the changes.
Or even just save the data and replace the "check" by a cross to cancel the edit.
to help narrowing crashes down...
In case an activity is created but the name already exists, the app crashed instead of rejecting the name.
(should also check the other database constraints)
Each DiaryActivity could have a picture attached to easily identify it.
there could be two images... one icon and one "background image". I think the icon would be more useful, background could be shifted to another ticket... @Tobaloidee would be willing to provide some icons for the default activities, maybe we can also include the material design icons for activities and additionally allow the used to add own symbols from files.
Each DiaryActivity could have a picture attached to easily identify it.
Consider:
Main Fragment to be shown on startup for selecting the current activity.
A RecyclerView with a StaggeredGridLayoutManager seems the best choice, while the more likely next activities can be shown bigger.
Add a sorting to the activities in the RecylerView for the "current activity selector" to have:
Allow configuration of "actions", which are executed when an activity starts. E. g. switch to silent mode when selecting activity "Sleeping". Possible actions include
Add a view to show statistics. Maybe globally
how did I spent my time? / how was the distribution of the activities
the detail area of the main view shall be some tabbed panel with
stats per activity
Add. See openhab/openhab-android@9b641aa
Create nice looking set of icons and pictures.
Precondition: have some useful amount of functions implemented, to have a clear view of what is necessary.
Create a fragment to do configure basic settings like
Improve activities to support landscape orientation of phones and also tables.
Activities should have colors to make them easier to identify
add a fragment for the about screen.
Show:
Even though there is an activity in the Diary without an end date -> which indicates it is running, it is not shown as current activity at startup.
Add conditions to sort activities and switch the active activity automatically.
For auto switching, conditions shall be be selectable manually as required conditions or "probable" conditions. -->> Remark: do we really need that?
Due to sorting we also have a "Alphabetical"Condition, likelihood for autoswitching should not really be influenced by this, but it might be sufficient to keep the weight small for it.
It seems reasonable to require a certain "distance" of the most likely to the second activity, that only if one is outstanding more likely it is auto selected. This distance will solve the sort-only conditions like alphabetical.
do not forget to adjust the wiki after implementing this.
in
It might be a good idea to show the diary history in a calendar with day week and month views.
After attaching a picture it should be possible to delete images again. (in the main view)
ask whether to delete the file or not
After changes in and activity (e. g. color) the Activity Manager view is updated, while the recyclerview in main view not.
Store current activity persistently in the diary including start and end time.
add feature to attach images to the activity diary
maybe even with a setting, that ALL photos taken are automatically linked to the activity?
add support for templates (create database table, populate, suggest from templates on creation of new activities)
add an Fragment to create, edit and delete activities
Improve the note editor and open it from the history, to change the note also of old entries.
...
and automate publishing on gplay with
https://github.com/Triple-T/gradle-play-publisher
Log the current position (if enabled in settings) in configurable intervals or distances.
might want to look at
https://stackoverflow.com/questions/3695224/sqlite-getting-nearest-locations-with-latitude-and-longitude
https://stackoverflow.com/questions/3126830/query-to-get-records-based-on-radius-in-sqlite
Add travis configuration to run continuous integration tests.
A seach button should open a TextEdit in the action bar and filter (or only reorder?) the list of activities in the RecyclerView of the MainActivity.
Might be
On DiaryActivities:
On Diary
maybe this could help:
Allow inserting activities in the history view.
do so by adding a new activity to edit a diary entry
for navigation to
I am just wondering whether the view to edit the activities (the list of all activities) is useful. Maybe would be better to just allow the editing of activity properties directly from the main view where the current activity can be selected.
Any comments?
The app shall support different devices and therefore (optionally) store the data on a server in the cloud. Choose a server model to support that or implement an own server to synchronize with.
The best seems to be to provide a RESTful server in PHP storing data in a MySQL database. Maybe use https://github.com/mevdschee/php-crud-api or the tutorial in https://www.codeofaninja.com/2017/02/create-simple-rest-api-in-php.html
Important: the app shall be fully usable without network and sync on mobile or WLAN (to be configurable) and also completely without cloud connection.
An alternative idea was suggested by Michael to use a standard format like ical where then existing server implementations using caldav could be used for synching to multiple devices etc. Challenge here is to support additional things like
Clicking an entry in the history shall open a popup and show the details of that entry, including attached notes, images, position, etc.
Showing the current DiaryActivity and some details (like since when is this activity ongoing?)
What do we need to store internally?
Define on Data-Model and implement
Great (quick) job, this!
Status
It is not yet doing anything useful, but feel free to contribute code, ideas and issues on https://github.com/ramack/ActivityDiary
Stay tuned.
Status update on the way? :)
If F-Droid supports Beta testing, or if you'd consider making it available as Beta on Play store, I'd be happy to test it and supply issues and maybe something more.
to be fixed
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.