- Notifications
You must be signed in to change notification settings - Fork1
An open-source neuroscientific Android app based on the Hedonist philosophy, using which you will score your mood everyday in your desired calendar, you can also set an emoji for a day or a month and enter some notes.
fulcrum6378/fortuna
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
An open-source philosophical application based onthePleasure Principle andtheHedonist philosophy.
This app simply lets you record a mean amount of pleasure and pain you feel everyday in a scalebetween -3 up to +3 for each day in your desired calendar system (Gregorian or etc).
Alternatively you can estimate the score of a whole month using the fieldright next to the year field at the top of the page.Then you can see how much pleasure and pain you've sensed overall in your life or in a particularmonth.
You can also use this app as a diary and record your daily life eventsand also set emojis for days and months.This app is also equipped with advanced searching and navigating toolsso you'll know exactly when what happened.
Currently only two calendars are supported, but this app can be adapted to new calendars so easilyby adding new product flavours.
- In Gregorian calendar:Install from APK Pure
- In Iranian calendar:Contact me
- In any other calendar:Eithercontact meorimplement it yourself.
Vita meanslife in Latin. Fortuna reads and writes its data in*.vita plain text file format.It defines data separated by months and every month is separated using a line break;
At the beginning of each month, there is a "@" symbol and then year and month number; forexample:@2022.03
You can optionally enter a "~" symbol and define an estimated score for the whole monthwhich will apply only on days with no specific score; for example@2022.03~3
After a line break, there come scores for each date.By default, first line indicates day 1 in that month and line 2 indicates day 2; for example:0
Except if you want to skip some days and jump to another day,then you'll have to explicitly specify the number of that day; for example:5:0
Note that entering each day is optional, and you can even define a month with no days.
After each day and even the month itself you can optionally enter two more values:
- Anemoji for that day or month after a ";" symbol.
- Somedescriptions for that day or month after ANOTHER ";" symbol.
Here is a complete example:
@2021.09~-0.5;⛓;Spent the whole month in the military...8:-0.5;;The idea of a developing such an app came to my mind and I named it "Hedonometer" which I later called it "Fortuna".@2022.03~024:1.5;🧠;Started Fortuna Android project at 10:32:21!2221.522.52;🧠;FORTUNA IS READY!!! (it used JSON to store its data)@2022.083:1;;Invented VITA file format and then migrated Fortuna to it.
Fortuna.kt : the Application subclass
Main.kt :the main and only Activity instance in this app
Vita.kt :reads and writes Vita files and all related utilities
Grid.kt :controls the calendar table and the dialogues that might pop up while interacting with it
Nyx.kt :a BroadcastReceiver that performs a few tasks at 12 AM; including:
- Updating any available views according to the new date
- Reminding the user to score their day if they haven't yet
- Backing up Vita locally and in the cloud
If you don't use the Gregorian calendar, you can use Fortuna in your regional calendar system.Fortuna needs a subclass ofandroid.icu.util.Calendar to work based on it.Google has already developed implementations of some different calendars,if you don't find your calendar in theandroid.icu.utilpackage, you should develop it yourself. In Fortuna,build flavoursrepresent calendar systems, so all you need to do is to:
- Add a new build flavour for Gradle
- Create "app/src/res_CALENDAR" (e.g. res_indian) and inside it:
- drawable/today_widget_preview.png : a previewforTodayWidget
- values/strings.xml : month names as
- Attribute that build flavour to your Calendar class in Kit.kt.
android {//... productFlavors {//... create("indian") { applicationIdSuffix=".indian" } }//... sourceSets.getByName("indian") { res.setSrcDirs(listOf("src/res","src/res_indian")) }//...}
val calType=when (BuildConfig.FLAVOR) {//..."indian"-> android.icu.util.IndianCalendar::class.java//...}
<?xml version="1.0" encoding="utf-8"?><resources> <string-arrayname="luna"> <item>Chaitra</item> <item>Vaisakha</item> <item>Jyeshtha</item> <item>Ashadha</item> <item>Shravana</item> <item>Bhadra</item> <item>Ashvin</item> <item>Kartika</item> <item>Agrahayana</item> <item>Pausha</item> <item>Magha</item> <item>Phalguna</item> </string-array></resources>
⚠️ Do NOT implementLunisolarcalendars; their structure is so irregular inandroid.icu.utiland they also get problematic withVitastructure!
Copyright © Mahdi Parastesh - All Rights Reserved.
About
An open-source neuroscientific Android app based on the Hedonist philosophy, using which you will score your mood everyday in your desired calendar, you can also set an emoji for a day or a month and enter some notes.