chore: Update screenshots, update README, bump version string
BIN
.github/repo_photos/banner.png
vendored
Normal file
|
After Width: | Height: | Size: 163 KiB |
BIN
.github/repo_photos/bmc_qr.png
vendored
Normal file
|
After Width: | Height: | Size: 90 KiB |
BIN
.github/repo_photos/sponsors.png
vendored
Normal file
|
After Width: | Height: | Size: 88 KiB |
42
README.md
@@ -1,12 +1,20 @@
|
||||

|
||||

|
||||
|
||||
### THIS PROJECT IS IN A VERY EARLY DEVELOPMENT STAGE. MOST FEATURES ARE NOT YET READY
|
||||
## About
|
||||
|
||||
### About
|
||||
Tomato is a minimalist Pomodoro timer for Android based on Material 3 Expressive.
|
||||
|
||||
Tomato is a minimalist Pomodoro timer for Android based on Material 3 Expressive
|
||||
### Features
|
||||
|
||||
### Screenshots
|
||||
- Simple, minimalist UI based on the latest Material 3 Expressive guidelines
|
||||
- Detailed statistics of work/study times in an easy to understand manner
|
||||
- Stats for the current day visible at a glance
|
||||
- Stats for the last week and last month shown in an easy to read, clean graph
|
||||
- Additional stats for last week and month showing at what time of the day you're the most
|
||||
productive
|
||||
- Customizable timer parameters
|
||||
|
||||
## Screenshots
|
||||
|
||||
<p align="center" width="100%">
|
||||
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/1.png" width="30%">
|
||||
@@ -15,4 +23,26 @@ Tomato is a minimalist Pomodoro timer for Android based on Material 3 Expressive
|
||||
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/4.png" width="30%">
|
||||
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/5.png" width="30%">
|
||||
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/6.png" width="30%">
|
||||
</p>
|
||||
</p>
|
||||
|
||||
## Donate
|
||||
|
||||
You can support Tomato's development
|
||||
through [my GitHub Sponsors page](https://github.com/sponsors/nsh07)
|
||||
or [my BuyMeACoffee page](https://coff.ee/nsh07):
|
||||
|
||||
<a href="https://github.com/sponsors/nsh07">
|
||||
<img src=".github/repo_photos/sponsors.png" width="128px">
|
||||
</a>
|
||||
<a href="https://coff.ee/nsh07">
|
||||
<img src=".github/repo_photos/bmc_qr.png" width="128px">
|
||||
</a>
|
||||
|
||||
## Special Thanks
|
||||
|
||||
This app was made possible by the following libraries:
|
||||
|
||||
- [Jetpack Navigation 3](https://developer.android.com/jetpack/androidx/releases/navigation3) -
|
||||
Navigation
|
||||
- [Room](https://developer.android.com/jetpack/androidx/releases/room) - SQLite Database
|
||||
- [Vico](https://github.com/patrykandpatrick/vico) - Graphs and charts
|
||||
@@ -23,8 +23,8 @@ android {
|
||||
applicationId = "org.nsh07.pomodoro"
|
||||
minSdk = 26
|
||||
targetSdk = 36
|
||||
versionCode = 1
|
||||
versionName = "1.0.0-01-alpha"
|
||||
versionCode = 2
|
||||
versionName = "1.0.0"
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
85
app/schemas/org.nsh07.pomodoro.data.AppDatabase/1.json
Normal file
@@ -0,0 +1,85 @@
|
||||
{
|
||||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 1,
|
||||
"identityHash": "d9da72c9ea3c225d6c0025a98ad32a4a",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "int_preference",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`key` TEXT NOT NULL, `value` INTEGER NOT NULL, PRIMARY KEY(`key`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "key",
|
||||
"columnName": "key",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "value",
|
||||
"columnName": "value",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"key"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "stat",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`date` TEXT NOT NULL, `focusTimeQ1` INTEGER NOT NULL, `focusTimeQ2` INTEGER NOT NULL, `focusTimeQ3` INTEGER NOT NULL, `focusTimeQ4` INTEGER NOT NULL, `breakTime` INTEGER NOT NULL, PRIMARY KEY(`date`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "date",
|
||||
"columnName": "date",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "focusTimeQ1",
|
||||
"columnName": "focusTimeQ1",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "focusTimeQ2",
|
||||
"columnName": "focusTimeQ2",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "focusTimeQ3",
|
||||
"columnName": "focusTimeQ3",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "focusTimeQ4",
|
||||
"columnName": "focusTimeQ4",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "breakTime",
|
||||
"columnName": "breakTime",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"date"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'd9da72c9ea3c225d6c0025a98ad32a4a')"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,7 @@ fun ColumnScope.ProductivityGraph(
|
||||
AnimatedVisibility(expanded) {
|
||||
Column(modifier = modifier) {
|
||||
Text(label, style = typography.titleMedium)
|
||||
Text("Time of day versus focus duration", style = typography.bodySmall)
|
||||
Text("Focus durations at different times of the day", style = typography.bodySmall)
|
||||
Spacer(Modifier.height(8.dp))
|
||||
TimeColumnChart(
|
||||
modelProducer,
|
||||
|
||||
|
Before Width: | Height: | Size: 320 KiB After Width: | Height: | Size: 322 KiB |
|
Before Width: | Height: | Size: 328 KiB After Width: | Height: | Size: 316 KiB |
|
Before Width: | Height: | Size: 301 KiB After Width: | Height: | Size: 329 KiB |
|
Before Width: | Height: | Size: 314 KiB After Width: | Height: | Size: 352 KiB |
|
Before Width: | Height: | Size: 317 KiB After Width: | Height: | Size: 372 KiB |
|
Before Width: | Height: | Size: 314 KiB After Width: | Height: | Size: 303 KiB |