diff --git a/.github/repo_photos/banner.png b/.github/repo_photos/banner.png new file mode 100644 index 0000000..9095115 Binary files /dev/null and b/.github/repo_photos/banner.png differ diff --git a/.github/repo_photos/bmc_qr.png b/.github/repo_photos/bmc_qr.png new file mode 100644 index 0000000..c5f4614 Binary files /dev/null and b/.github/repo_photos/bmc_qr.png differ diff --git a/.github/repo_photos/sponsors.png b/.github/repo_photos/sponsors.png new file mode 100644 index 0000000..e06561a Binary files /dev/null and b/.github/repo_photos/sponsors.png differ diff --git a/README.md b/README.md index d341f28..74a9493 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,20 @@ -![Feature graphic](fastlane/metadata/android/en-US/images/featureGraphic.png) +![Feature graphic](.github/repo_photos/banner.png) -### 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

@@ -15,4 +23,26 @@ Tomato is a minimalist Pomodoro timer for Android based on Material 3 Expressive -

\ No newline at end of file +

+ +## 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): + + + + + + + + +## 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 \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 0425b1d..0c8f47f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -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" } diff --git a/app/schemas/org.nsh07.pomodoro.data.AppDatabase/1.json b/app/schemas/org.nsh07.pomodoro.data.AppDatabase/1.json new file mode 100644 index 0000000..1dffd57 --- /dev/null +++ b/app/schemas/org.nsh07.pomodoro.data.AppDatabase/1.json @@ -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')" + ] + } +} \ No newline at end of file diff --git a/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/ProductivityGraph.kt b/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/ProductivityGraph.kt index f209e33..f10402f 100644 --- a/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/ProductivityGraph.kt +++ b/app/src/main/java/org/nsh07/pomodoro/ui/statsScreen/ProductivityGraph.kt @@ -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, diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png index fe1e1ac..a296647 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png index e960980..cd76715 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png index 34f0f93..0d34bd3 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png index a31175b..83c6065 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png index 45b2bdf..3ffb9e5 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png index 780260b..2d18d2a 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png differ