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',