diff --git a/.idea/misc.xml b/.idea/misc.xml index 320b3df..9d1e235 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,6 +5,41 @@ + + + + diff --git a/app/release/app.aab b/app/release/app.aab deleted file mode 100644 index cf9d08e..0000000 Binary files a/app/release/app.aab and /dev/null differ diff --git a/app/src/main/java/com/afollestad/nocknock/ui/addsite/AddSiteViewModel.kt b/app/src/main/java/com/afollestad/nocknock/ui/addsite/AddSiteViewModel.kt index 32119af..02b3eec 100644 --- a/app/src/main/java/com/afollestad/nocknock/ui/addsite/AddSiteViewModel.kt +++ b/app/src/main/java/com/afollestad/nocknock/ui/addsite/AddSiteViewModel.kt @@ -189,7 +189,8 @@ class AddSiteViewModel( } // Validate timeout - if (timeout.value.isNullOrLessThan(1)) { + val timeout = timeout.value ?: 10_000 + if (timeout < 0) { timeoutError.value = R.string.please_enter_networkTimeout errorCount++ } else { @@ -232,7 +233,7 @@ class AddSiteViewModel( validationIntervalMs = getCheckIntervalMs(), validationMode = validationMode.value!!, validationArgs = getValidationArgs(), - networkTimeout = timeout.value!!, + networkTimeout = timeout, disabled = false ) diff --git a/app/src/main/java/com/afollestad/nocknock/ui/main/MainViewModel.kt b/app/src/main/java/com/afollestad/nocknock/ui/main/MainViewModel.kt index b0ee2f1..d6c3e90 100644 --- a/app/src/main/java/com/afollestad/nocknock/ui/main/MainViewModel.kt +++ b/app/src/main/java/com/afollestad/nocknock/ui/main/MainViewModel.kt @@ -108,8 +108,17 @@ class MainViewModel( emptyTextVisibility.value = false isLoading.value = true - val result = withContext(ioDispatcher) { - database.allSites(forTags) + val unfiltered = withContext(ioDispatcher) { + database.allSites() + } + var result = unfiltered + + if (forTags.isNotEmpty()) { + result = result.filter { site -> + val itemTags = site.tags.toLowerCase() + .split(",") + itemTags.any { tag -> forTags.contains(tag) } + } } sites.value = result @@ -117,11 +126,9 @@ class MainViewModel( isLoading.value = false emptyTextVisibility.value = result.isEmpty() - if (forTags.isEmpty()) { - val tagsValues = pullOutTags(result) - tags.value = tagsValues - tagsListVisibility.value = tagsValues.isNotEmpty() - } + val tagsValues = pullOutTags(unfiltered) + tags.value = tagsValues + tagsListVisibility.value = tagsValues.isNotEmpty() } } diff --git a/app/src/main/java/com/afollestad/nocknock/ui/viewsite/ViewSiteViewModel.kt b/app/src/main/java/com/afollestad/nocknock/ui/viewsite/ViewSiteViewModel.kt index 4c74670..0e19c2d 100644 --- a/app/src/main/java/com/afollestad/nocknock/ui/viewsite/ViewSiteViewModel.kt +++ b/app/src/main/java/com/afollestad/nocknock/ui/viewsite/ViewSiteViewModel.kt @@ -269,7 +269,8 @@ class ViewSiteViewModel( } // Validate timeout - if (timeout.value.isNullOrLessThan(1)) { + val timeout = timeout.value ?: 10_000 + if (timeout < 0) { timeoutError.value = R.string.please_enter_networkTimeout errorCount++ } else { @@ -312,7 +313,7 @@ class ViewSiteViewModel( validationIntervalMs = getCheckIntervalMs(), validationMode = validationMode.value!!, validationArgs = getValidationArgs(), - networkTimeout = timeout.value!!, + networkTimeout = timeout, disabled = false ) diff --git a/app/src/main/res/layout/activity_addsite.xml b/app/src/main/res/layout/activity_addsite.xml index b6b6162..b300916 100644 --- a/app/src/main/res/layout/activity_addsite.xml +++ b/app/src/main/res/layout/activity_addsite.xml @@ -27,6 +27,7 @@ android:paddingBottom="@dimen/content_inset" android:paddingLeft="@dimen/content_inset" android:paddingRight="@dimen/content_inset" + android:paddingTop="@dimen/content_inset_half" > - - - - - - @@ -77,6 +58,7 @@ android:layout_marginLeft="-4dp" android:layout_marginRight="-4dp" android:layout_marginTop="@dimen/content_inset_half" + android:nextFocusDown="@+id/tagsTiLayout" > @@ -100,6 +83,31 @@ style="@style/NockText.Footnote" /> + + + + + + + + - - + + @@ -198,6 +201,13 @@ style="@style/NockText.Body.Light" /> + + = emptyList()): List { - var all = siteDao().all() - if (tags.isNotEmpty()) { - all = all.filter { site -> - val itemTags = site.tags.toLowerCase() - .split(",") - return@filter itemTags.any { tag -> tags.contains(tag) } - } - } - return all.map { - val settings = siteSettingsDao().forSite(it.id) - .single() - val lastResult = validationResultsDao().forSite(it.id) - .singleOrNull() - val retryPolicy = retryPolicyDao().forSite(it.id) - .singleOrNull() - return@map it.copy( - settings = settings, - lastResult = lastResult, - retryPolicy = retryPolicy - ) - } +fun AppDatabase.allSites(): List { + return siteDao().all() + .map { + val settings = siteSettingsDao().forSite(it.id) + .single() + val lastResult = validationResultsDao().forSite(it.id) + .singleOrNull() + val retryPolicy = retryPolicyDao().forSite(it.id) + .singleOrNull() + return@map it.copy( + settings = settings, + lastResult = lastResult, + retryPolicy = retryPolicy + ) + } } /** diff --git a/dependencies.gradle b/dependencies.gradle index 9432a8e..433cb7b 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -3,8 +3,8 @@ ext.versions = [ minSdk : 21, compileSdk : 28, buildTools : '28.0.3', - publishVersion : '0.8.2b', - publishVersionCode : 33, + publishVersion : '0.8.3', + publishVersionCode : 35, // Plugins gradlePlugin : '3.2.1',