Support setting filter expirations (#2667)
* Show filter expiration in list * Add support for setting and updating the duration of a filter * Add tests for duration conversion math * Refactor network wrapper code * Mark updated mastodon api functions as suspend * Avoid creating unnecessary Date objects * Apply suggestions to filter dialog layout
This commit is contained in:
parent
9beea540de
commit
c47d9ef6ac
7 changed files with 197 additions and 100 deletions
|
|
@ -4,32 +4,34 @@
|
|||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingTop="16dp">
|
||||
android:padding="24dp">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/phraseEditText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingEnd="24dp"
|
||||
android:paddingStart="24dp"
|
||||
android:hint="@string/filter_add_description"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
/>
|
||||
<Spinner
|
||||
android:id="@+id/filterDurationSpinner"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toBottomOf="@id/phraseEditText"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
/>
|
||||
<CheckBox
|
||||
android:id="@+id/phraseWholeWord"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingEnd="24dp"
|
||||
android:paddingStart="24dp"
|
||||
android:text="@string/filter_dialog_whole_word"
|
||||
app:layout_constraintTop_toBottomOf="@id/phraseEditText"
|
||||
app:layout_constraintTop_toBottomOf="@id/filterDurationSpinner"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
/>
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingStart="8dp"
|
||||
android:lineSpacingMultiplier="1.1"
|
||||
app:layout_constraintTop_toBottomOf="@id/phraseWholeWord"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
android:text="@string/filter_dialog_whole_word_description"
|
||||
|
|
|
|||
|
|
@ -190,6 +190,8 @@
|
|||
<item>31536000</item>
|
||||
</integer-array>
|
||||
|
||||
<string name="poll_percent_format"><!-- 15% --> <b>%1$d%%</b></string>
|
||||
|
||||
<string-array name="mute_duration_names">
|
||||
<item>@string/duration_indefinite</item>
|
||||
<item>@string/duration_5_min</item>
|
||||
|
|
@ -212,5 +214,25 @@
|
|||
<item>604800</item>
|
||||
</integer-array>
|
||||
|
||||
<string name="poll_percent_format"><!-- 15% --> <b>%1$d%%</b></string>
|
||||
<string-array name="filter_duration_names">
|
||||
<item>@string/duration_indefinite</item>
|
||||
<item>@string/duration_5_min</item>
|
||||
<item>@string/duration_30_min</item>
|
||||
<item>@string/duration_1_hour</item>
|
||||
<item>@string/duration_6_hours</item>
|
||||
<item>@string/duration_1_day</item>
|
||||
<item>@string/duration_3_days</item>
|
||||
<item>@string/duration_7_days</item>
|
||||
</string-array>
|
||||
|
||||
<integer-array name="filter_duration_values"> <!-- values in seconds, corresponding to mute_duration_names -->
|
||||
<item>0</item>
|
||||
<item>300</item>
|
||||
<item>1800</item>
|
||||
<item>3600</item>
|
||||
<item>21600</item>
|
||||
<item>86400</item>
|
||||
<item>259200</item>
|
||||
<item>604800</item>
|
||||
</integer-array>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -383,6 +383,7 @@
|
|||
<string name="filter_dialog_whole_word">Whole word</string>
|
||||
<string name="filter_dialog_whole_word_description">When the keyword or phrase is alphanumeric only, it will only be applied if it matches the whole word</string>
|
||||
<string name="filter_add_description">Phrase to filter</string>
|
||||
<string name="filter_expiration_format">%s (%s)</string>
|
||||
|
||||
<string name="add_account_name">Add Account</string>
|
||||
<string name="add_account_description">Add new Mastodon Account</string>
|
||||
|
|
@ -602,6 +603,7 @@
|
|||
<string name="duration_90_days">90 days</string>
|
||||
<string name="duration_180_days">180 days</string>
|
||||
<string name="duration_365_days">365 days</string>
|
||||
<string name="duration_no_change">(No change)</string>
|
||||
<string name="add_poll_choice">Add choice</string>
|
||||
<string name="poll_allow_multiple_choices">Multiple choices</string>
|
||||
<string name="poll_new_choice_hint">Choice %d</string>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue