mirror of
https://github.com/mihonapp/mihon.git
synced 2025-10-29 05:17:56 +01:00
* Adding class stubs for settings search, UI elements. * - implement searchable settings - `SettingsController.setupPreferenceScreen` must return a PreferenceScreen * Remove unneeded SettingsControllerFactory. * Set query hint, clean up code smell. * Add search button to MoreController, stop infinite recursion. * - initialize SearchResultCollection once in Activity.onCreate * - implement prefernce highlighting after settings search * - Ensure all Preferences have a key set or else the highlighting effect will have no effect on it. - remove ExtensionFilterController and SourceFilterController from settingControllersList in SettingsSearchHelper, since those are related to Extensions and not Settings * Limiting search to settings menu only, localized breadcrumb string, and code cleanup after code review. * - moved call to SettingsSearchHelper.initPreferenceSearchResultCollection() into SettingsSearchController * Code review cleanup and refactoring. * Inlined non-reused key strings. * Adding more UI polish, add comments for future enhancements. * - retain search query when navigating *away* from SettingsSearchController - keep `searchItem` in `expandActionView` state until user goes back (fixes the empty view in `SettingsSearchSearchController` issue) Co-authored-by: mpm11011 <markuscicero5@gmail.com> Co-authored-by: lmj0011 <9396189+lmj0011@users.noreply.github.com>
This commit is contained in:
36
app/src/main/res/layout/settings_search_controller.xml
Normal file
36
app/src/main/res/layout/settings_search_controller.xml
Normal file
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clipToPadding="false"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
tools:listitem="@layout/settings_search_controller_card" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/progress"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:visibility="gone">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/colorSurface"
|
||||
android:alpha="0.75" />
|
||||
|
||||
<ProgressBar
|
||||
style="?android:attr/progressBarStyleLarge"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</FrameLayout>
|
||||
45
app/src/main/res/layout/settings_search_controller_card.xml
Normal file
45
app/src/main/res/layout/settings_search_controller_card.xml
Normal file
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/title_wrapper"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="48dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:background="?attr/selectableItemBackground">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/search_result_pref_title"
|
||||
style="@style/TextAppearance.Regular.SubHeading"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="Title" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/search_result_pref_summary"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/search_result_pref_title"
|
||||
tools:text="Summary" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/search_result_pref_breadcrumb"
|
||||
style="@style/TextAppearance.Regular.Caption"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/search_result_pref_summary"
|
||||
tools:text="Location" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
12
app/src/main/res/menu/settings_main.xml
Normal file
12
app/src/main/res/menu/settings_main.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<item
|
||||
android:id="@+id/action_search"
|
||||
android:icon="@drawable/ic_search_24dp"
|
||||
android:title="@string/action_search"
|
||||
app:actionViewClass="androidx.appcompat.widget.SearchView"
|
||||
app:iconTint="?attr/colorOnPrimary"
|
||||
app:showAsAction="collapseActionView|ifRoom" />
|
||||
|
||||
</menu>
|
||||
@@ -44,6 +44,7 @@
|
||||
<string name="action_sort_latest_chapter">Latest chapter</string>
|
||||
<string name="action_sort_date_added">Date added</string>
|
||||
<string name="action_search">Search</string>
|
||||
<string name="action_search_settings">Search settings</string>
|
||||
<string name="action_global_search">Global search</string>
|
||||
<string name="action_select_all">Select all</string>
|
||||
<string name="action_select_inverse">Select inverse</string>
|
||||
@@ -411,6 +412,7 @@
|
||||
<string name="licenses">Open source licenses</string>
|
||||
<string name="check_for_updates">Check for updates</string>
|
||||
<string name="updated_version">Updated to v%1$s</string>
|
||||
<string name="about_resources">Resources</string>
|
||||
|
||||
<!-- ACRA -->
|
||||
<string name="pref_enable_acra">Send crash reports</string>
|
||||
|
||||
Reference in New Issue
Block a user