Support source filter editing
The API for filter is undocumented on the Selfoss API reference, but does exist. We can now allow users setting and modifying filters inside the application.
This commit is contained in:
parent
ceba58e98f
commit
b1259fdc92
@ -65,6 +65,7 @@ class UpsertSourceActivity :
|
|||||||
private fun initFields(items: Map<String, SelfossModel.Spout>) {
|
private fun initFields(items: Map<String, SelfossModel.Spout>) {
|
||||||
binding.nameInput.setText(existingSource!!.title)
|
binding.nameInput.setText(existingSource!!.title)
|
||||||
binding.tags.setText(existingSource!!.tags?.joinToString(", "))
|
binding.tags.setText(existingSource!!.tags?.joinToString(", "))
|
||||||
|
binding.filter.setText(existingSource!!.filter)
|
||||||
binding.sourceUri.setText(existingSource!!.params?.url)
|
binding.sourceUri.setText(existingSource!!.params?.url)
|
||||||
binding.spoutsSpinner.setSelection(items.keys.indexOf(existingSource!!.spout))
|
binding.spoutsSpinner.setSelection(items.keys.indexOf(existingSource!!.spout))
|
||||||
binding.progress.visibility = View.GONE
|
binding.progress.visibility = View.GONE
|
||||||
@ -169,6 +170,7 @@ class UpsertSourceActivity :
|
|||||||
url,
|
url,
|
||||||
mSpoutsValue!!,
|
mSpoutsValue!!,
|
||||||
binding.tags.text.toString(),
|
binding.tags.text.toString(),
|
||||||
|
binding.filter.text.toString(),
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
repository.createSource(
|
repository.createSource(
|
||||||
@ -176,6 +178,7 @@ class UpsertSourceActivity :
|
|||||||
url,
|
url,
|
||||||
mSpoutsValue!!,
|
mSpoutsValue!!,
|
||||||
binding.tags.text.toString(),
|
binding.tags.text.toString(),
|
||||||
|
binding.filter.text.toString(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if (successfullyAddedSource) {
|
if (successfullyAddedSource) {
|
||||||
|
@ -64,15 +64,28 @@
|
|||||||
android:id="@+id/tags"
|
android:id="@+id/tags"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:minHeight="48dp"
|
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:autofillHints="false"
|
android:autofillHints="false"
|
||||||
android:hint="@string/add_source_hint_tags"
|
android:hint="@string/add_source_hint_tags"
|
||||||
android:inputType="text"
|
android:inputType="text"
|
||||||
|
android:minHeight="48dp"
|
||||||
android:textColorHint="?android:textColorPrimary"
|
android:textColorHint="?android:textColorPrimary"
|
||||||
app:layout_constraintLeft_toLeftOf="parent"
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/sourceUri" />
|
app:layout_constraintTop_toBottomOf="@+id/sourceUri" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/filter"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:autofillHints="false"
|
||||||
|
android:hint="@string/add_source_hint_filter"
|
||||||
|
android:inputType="text"
|
||||||
|
android:minHeight="48dp"
|
||||||
|
android:textColorHint="?android:textColorPrimary"
|
||||||
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/tags" />
|
||||||
|
|
||||||
<Spinner
|
<Spinner
|
||||||
android:id="@+id/spoutsSpinner"
|
android:id="@+id/spoutsSpinner"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@ -80,7 +93,7 @@
|
|||||||
android:minHeight="48dp"
|
android:minHeight="48dp"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
app:layout_constraintLeft_toLeftOf="parent"
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tags" />
|
app:layout_constraintTop_toBottomOf="@+id/filter" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/saveBtn"
|
android:id="@+id/saveBtn"
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
<string name="add_source_hint_tags">"Tag1, Tag2, Tag3"</string>
|
<string name="add_source_hint_tags">"Tag1, Tag2, Tag3"</string>
|
||||||
<string name="add_source_hint_url">"Link"</string>
|
<string name="add_source_hint_url">"Link"</string>
|
||||||
<string name="add_source_hint_name">"Name"</string>
|
<string name="add_source_hint_name">"Name"</string>
|
||||||
|
<string name="add_source_hint_filter">/Filter/</string>
|
||||||
<string name="add_source">"Add a source"</string>
|
<string name="add_source">"Add a source"</string>
|
||||||
<string name="add_source_save">"Save"</string>
|
<string name="add_source_save">"Save"</string>
|
||||||
<string name="wrong_infos">"Check your details again."</string>
|
<string name="wrong_infos">"Check your details again."</string>
|
||||||
|
@ -102,6 +102,7 @@ class SelfossModel {
|
|||||||
override var error: String? = null,
|
override var error: String? = null,
|
||||||
override var icon: String? = null,
|
override var icon: String? = null,
|
||||||
var params: SourceParams? = null,
|
var params: SourceParams? = null,
|
||||||
|
var filter: String? = null,
|
||||||
) : Source
|
) : Source
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
|
@ -368,6 +368,7 @@ class Repository(
|
|||||||
url: String,
|
url: String,
|
||||||
spout: String,
|
spout: String,
|
||||||
tags: String,
|
tags: String,
|
||||||
|
filter: String,
|
||||||
): Boolean {
|
): Boolean {
|
||||||
var response = false
|
var response = false
|
||||||
if (connectivityService.isNetworkAvailable()) {
|
if (connectivityService.isNetworkAvailable()) {
|
||||||
@ -377,6 +378,7 @@ class Repository(
|
|||||||
url,
|
url,
|
||||||
spout,
|
spout,
|
||||||
tags,
|
tags,
|
||||||
|
filter,
|
||||||
).isSuccess == true
|
).isSuccess == true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -389,10 +391,11 @@ class Repository(
|
|||||||
url: String,
|
url: String,
|
||||||
spout: String,
|
spout: String,
|
||||||
tags: String,
|
tags: String,
|
||||||
|
filter: String,
|
||||||
): Boolean {
|
): Boolean {
|
||||||
var response = false
|
var response = false
|
||||||
if (connectivityService.isNetworkAvailable()) {
|
if (connectivityService.isNetworkAvailable()) {
|
||||||
response = api.updateSourceForVersion(id, title, url, spout, tags).isSuccess == true
|
response = api.updateSourceForVersion(id, title, url, spout, tags, filter).isSuccess == true
|
||||||
}
|
}
|
||||||
|
|
||||||
return response
|
return response
|
||||||
|
@ -638,12 +638,13 @@ class SelfossApi(
|
|||||||
url: String,
|
url: String,
|
||||||
spout: String,
|
spout: String,
|
||||||
tags: String,
|
tags: String,
|
||||||
|
filter: String,
|
||||||
): SuccessResponse =
|
): SuccessResponse =
|
||||||
maybeResponse(
|
maybeResponse(
|
||||||
if (appSettingsService.getApiVersion() > 1) {
|
if (appSettingsService.getApiVersion() > 1) {
|
||||||
createSource("tags[]", title, url, spout, tags)
|
createSource("tags[]", title, url, spout, tags, filter)
|
||||||
} else {
|
} else {
|
||||||
createSource("tags", title, url, spout, tags)
|
createSource("tags", title, url, spout, tags, filter)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -653,6 +654,7 @@ class SelfossApi(
|
|||||||
url: String,
|
url: String,
|
||||||
spout: String,
|
spout: String,
|
||||||
tags: String,
|
tags: String,
|
||||||
|
filter: String,
|
||||||
): HttpResponse? =
|
): HttpResponse? =
|
||||||
client.tryToSubmitForm(
|
client.tryToSubmitForm(
|
||||||
url = url("/source"),
|
url = url("/source"),
|
||||||
@ -665,6 +667,7 @@ class SelfossApi(
|
|||||||
append("title", title)
|
append("title", title)
|
||||||
append("url", url)
|
append("url", url)
|
||||||
append("spout", spout)
|
append("spout", spout)
|
||||||
|
append("filter", filter)
|
||||||
append(tagsParamName, tags)
|
append(tagsParamName, tags)
|
||||||
},
|
},
|
||||||
block = {
|
block = {
|
||||||
@ -694,12 +697,13 @@ class SelfossApi(
|
|||||||
url: String,
|
url: String,
|
||||||
spout: String,
|
spout: String,
|
||||||
tags: String,
|
tags: String,
|
||||||
|
filter: String,
|
||||||
): SuccessResponse =
|
): SuccessResponse =
|
||||||
maybeResponse(
|
maybeResponse(
|
||||||
if (appSettingsService.getApiVersion() > 1) {
|
if (appSettingsService.getApiVersion() > 1) {
|
||||||
updateSource(id, "tags[]", title, url, spout, tags)
|
updateSource(id, "tags[]", title, url, spout, tags, filter)
|
||||||
} else {
|
} else {
|
||||||
updateSource(id, "tags", title, url, spout, tags)
|
updateSource(id, "tags", title, url, spout, tags, filter)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -710,6 +714,7 @@ class SelfossApi(
|
|||||||
url: String,
|
url: String,
|
||||||
spout: String,
|
spout: String,
|
||||||
tags: String,
|
tags: String,
|
||||||
|
filter: String,
|
||||||
): HttpResponse? =
|
): HttpResponse? =
|
||||||
client.tryToSubmitForm(
|
client.tryToSubmitForm(
|
||||||
url = url("/source/$id"),
|
url = url("/source/$id"),
|
||||||
@ -723,6 +728,7 @@ class SelfossApi(
|
|||||||
append("url", url)
|
append("url", url)
|
||||||
append("spout", spout)
|
append("spout", spout)
|
||||||
append(tagsParamName, tags)
|
append(tagsParamName, tags)
|
||||||
|
append("filter", filter)
|
||||||
},
|
},
|
||||||
block = {
|
block = {
|
||||||
if (appSettingsService
|
if (appSettingsService
|
||||||
|
Loading…
x
Reference in New Issue
Block a user