Skip to content

Commit

Permalink
#30, #35, #38, #40: Quick conversion screen, User preferences screen (#…
Browse files Browse the repository at this point in the history
…37)

* Quick conversion screen

* Calc attraction for quick items

* typo fix

* Use tag cloud in quick screen

* Disable tag cloud gesture on press

* tag cloud handle click only if press is less than some time

* tag cloud handle click only if move distance is less than touch slop

* bump tag cloud

* Preferences screen (#38), Display modes for Quick screen (#40)

* Search currencies by names(#29); crash report, round rate prefs

* minor

* minor

* start from quick screen if there are assets

* search screen: single line edit text

* move show as tag cloud pref to quick screen

* Quick screen: list view, remember used time, sort by dialog

* restructure

* manage convert to currencies in quick screen

* remove summary from bottom navigation

* bottom nav animated content

* minor fix

* minor fix

* Rename quickConvertToCurrency to quickBaseCurrency
  • Loading branch information
mdrlzy authored Sep 12, 2023
1 parent 2f3c9b1 commit b82810b
Show file tree
Hide file tree
Showing 55 changed files with 2,803 additions and 139 deletions.
8 changes: 6 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,16 @@ plugins {
id 'kotlin-kapt'
id 'org.jetbrains.kotlin.android'
id 'com.google.devtools.ksp' version "1.8.21-1.0.11"
id 'kotlin-parcelize'
}

android {
compileSdk 33
compileSdk 34

defaultConfig {
applicationId "dev.arkbuilders.rate"
minSdk 23
targetSdk 33
targetSdk 34
versionCode 1
versionName "1.0"
setProperty("archivesBaseName", "ark-rate")
Expand Down Expand Up @@ -97,9 +98,12 @@ dependencies {
implementation "androidx.room:room-ktx:2.5.1"
kapt "androidx.room:room-compiler:2.5.1"

implementation "androidx.datastore:datastore-preferences:1.0.0"

implementation 'com.jakewharton.timber:timber:5.0.1'

implementation "androidx.work:work-runtime-ktx:2.8.1"
implementation 'io.github.oleksandrbalan:tagcloud:1.0.1'

implementation 'io.github.raamcosta.compose-destinations:core:1.7.41-beta'
ksp 'io.github.raamcosta.compose-destinations:ksp:1.7.41-beta'
Expand Down
174 changes: 174 additions & 0 deletions app/schemas/dev.arkbuilders.rate.data.db.Database/4.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
{
"formatVersion": 1,
"database": {
"version": 4,
"identityHash": "8d453c8a7668458d4c2ef645d290b752",
"entities": [
{
"tableName": "RoomCurrencyAmount",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `code` TEXT NOT NULL, `amount` REAL NOT NULL)",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "code",
"columnName": "code",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "amount",
"columnName": "amount",
"affinity": "REAL",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": true,
"columnNames": [
"id"
]
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "RoomCurrencyRate",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`code` TEXT NOT NULL, `currencyType` TEXT NOT NULL, `rate` REAL NOT NULL, PRIMARY KEY(`code`))",
"fields": [
{
"fieldPath": "code",
"columnName": "code",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "currencyType",
"columnName": "currencyType",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "rate",
"columnName": "rate",
"affinity": "REAL",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"code"
]
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "RoomFetchTimestamp",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`currencyType` TEXT NOT NULL, `timestamp` INTEGER NOT NULL, PRIMARY KEY(`currencyType`))",
"fields": [
{
"fieldPath": "currencyType",
"columnName": "currencyType",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "timestamp",
"columnName": "timestamp",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"currencyType"
]
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "RoomPairAlertCondition",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `numeratorCode` TEXT NOT NULL, `denominatorCode` TEXT NOT NULL, `ratio` REAL NOT NULL, `moreNotLess` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "numeratorCode",
"columnName": "numeratorCode",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "denominatorCode",
"columnName": "denominatorCode",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "ratio",
"columnName": "ratio",
"affinity": "REAL",
"notNull": true
},
{
"fieldPath": "moreNotLess",
"columnName": "moreNotLess",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": true,
"columnNames": [
"id"
]
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "RoomQuickCurrency",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`code` TEXT NOT NULL, `usedCount` INTEGER NOT NULL, PRIMARY KEY(`code`))",
"fields": [
{
"fieldPath": "code",
"columnName": "code",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "usedCount",
"columnName": "usedCount",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"code"
]
},
"indices": [],
"foreignKeys": []
}
],
"views": [],
"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, '8d453c8a7668458d4c2ef645d290b752')"
]
}
}
180 changes: 180 additions & 0 deletions app/schemas/dev.arkbuilders.rate.data.db.Database/5.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
{
"formatVersion": 1,
"database": {
"version": 5,
"identityHash": "dad9301e29863b229a8b4484aeacf421",
"entities": [
{
"tableName": "RoomCurrencyAmount",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `code` TEXT NOT NULL, `amount` REAL NOT NULL)",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "code",
"columnName": "code",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "amount",
"columnName": "amount",
"affinity": "REAL",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": true,
"columnNames": [
"id"
]
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "RoomCurrencyRate",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`code` TEXT NOT NULL, `currencyType` TEXT NOT NULL, `rate` REAL NOT NULL, PRIMARY KEY(`code`))",
"fields": [
{
"fieldPath": "code",
"columnName": "code",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "currencyType",
"columnName": "currencyType",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "rate",
"columnName": "rate",
"affinity": "REAL",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"code"
]
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "RoomFetchTimestamp",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`currencyType` TEXT NOT NULL, `timestamp` INTEGER NOT NULL, PRIMARY KEY(`currencyType`))",
"fields": [
{
"fieldPath": "currencyType",
"columnName": "currencyType",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "timestamp",
"columnName": "timestamp",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"currencyType"
]
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "RoomPairAlertCondition",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `numeratorCode` TEXT NOT NULL, `denominatorCode` TEXT NOT NULL, `ratio` REAL NOT NULL, `moreNotLess` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "numeratorCode",
"columnName": "numeratorCode",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "denominatorCode",
"columnName": "denominatorCode",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "ratio",
"columnName": "ratio",
"affinity": "REAL",
"notNull": true
},
{
"fieldPath": "moreNotLess",
"columnName": "moreNotLess",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": true,
"columnNames": [
"id"
]
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "RoomQuickCurrency",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`code` TEXT NOT NULL, `usedCount` INTEGER NOT NULL, `usedTime` INTEGER NOT NULL, PRIMARY KEY(`code`))",
"fields": [
{
"fieldPath": "code",
"columnName": "code",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "usedCount",
"columnName": "usedCount",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "usedTime",
"columnName": "usedTime",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"autoGenerate": false,
"columnNames": [
"code"
]
},
"indices": [],
"foreignKeys": []
}
],
"views": [],
"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, 'dad9301e29863b229a8b4484aeacf421')"
]
}
}
Loading

0 comments on commit b82810b

Please sign in to comment.