1
0
Fork 0
mirror of https://github.com/KokaKiwi/BarInsta synced 2026-03-05 12:01:35 +00:00

Merge pull request #1077 from ammargitham/feature/search-history

Search history with separate search fragment
This commit is contained in:
Austin Huang 2021-04-26 17:53:20 -04:00 committed by GitHub
commit f88bc49c30
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
41 changed files with 2505 additions and 387 deletions

View file

@ -29,10 +29,32 @@
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorSurface"
android:background="?attr/toolbarColor"
app:layout_collapseMode="pin"
app:title="@string/app_name"
tools:menu="@menu/main_menu" />
tools:menu="@menu/main_menu">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/search_input_layout"
style="?searchInputStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
app:boxStrokeColor="@null"
app:boxStrokeWidth="0dp"
app:boxStrokeWidthFocused="0dp"
app:endIconContentDescription="@string/clear"
app:endIconDrawable="@drawable/ic_close_24"
app:endIconMode="custom"
app:hintEnabled="false"
tools:visibility="visible">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/search" />
</com.google.android.material.textfield.TextInputLayout>
</com.google.android.material.appbar.MaterialToolbar>
</com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>

View file

@ -4,4 +4,4 @@
android:id="@+id/favorite_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:listitem="@layout/item_suggestion" />
tools:listitem="@layout/item_search_result" />

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
style="@style/Widget.MaterialComponents.TabLayout.RegularCaps"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</androidx.appcompat.widget.LinearLayoutCompat>

View file

@ -13,7 +13,7 @@
android:paddingBottom="8dp">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/ivProfilePic"
android:id="@+id/profile_pic"
android:layout_width="40dp"
android:layout_height="40dp"
app:actualImageScaleType="centerCrop"
@ -23,46 +23,61 @@
tools:background="@mipmap/ic_launcher" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvUsername"
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:gravity="center_vertical"
android:maxLines="1"
android:paddingStart="16dp"
android:paddingEnd="4dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
app:layout_constraintBottom_toTopOf="@id/tvFullName"
app:layout_constraintEnd_toStartOf="@id/isVerified"
app:layout_constraintStart_toEndOf="@id/ivProfilePic"
app:layout_constraintBottom_toTopOf="@id/subtitle"
app:layout_constraintEnd_toStartOf="@id/verified"
app:layout_constraintStart_toEndOf="@id/profile_pic"
app:layout_constraintTop_toTopOf="parent"
tools:text="username" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvFullName"
android:id="@+id/subtitle"
android:layout_width="0dp"
android:layout_height="0dp"
android:gravity="center_vertical"
android:maxLines="1"
android:paddingStart="16dp"
android:paddingEnd="0dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body2"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/ivProfilePic"
app:layout_constraintTop_toBottomOf="@id/tvUsername"
app:layout_constraintEnd_toStartOf="@id/delete"
app:layout_constraintStart_toEndOf="@id/profile_pic"
app:layout_constraintTop_toBottomOf="@id/title"
tools:text="full name"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/isVerified"
android:id="@+id/verified"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="end"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:visibility="gone"
app:layout_constraintBaseline_toBaselineOf="@id/tvUsername"
app:layout_constraintBottom_toTopOf="@id/tvFullName"
app:layout_constraintStart_toEndOf="@id/tvUsername"
app:layout_constraintBaseline_toBaselineOf="@id/title"
app:layout_constraintBottom_toTopOf="@id/subtitle"
app:layout_constraintStart_toEndOf="@id/title"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/verified"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/delete"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:background="?selectableItemBackgroundBorderless"
android:padding="8dp"
android:src="@drawable/ic_close_24"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -1,25 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!--<item-->
<!-- android:id="@+id/favourites"-->
<!-- android:enabled="true"-->
<!-- android:icon="@drawable/ic_star_24"-->
<!-- android:title="@string/title_favorites"-->
<!-- app:showAsAction="ifRoom" />-->
<!--<item-->
<!-- android:id="@+id/direct_messages"-->
<!-- android:enabled="true"-->
<!-- android:icon="@drawable/ic_send_24"-->
<!-- android:title="@string/action_dms"-->
<!-- app:showAsAction="always" />-->
<item
android:id="@+id/search"
android:enabled="true"
android:icon="@drawable/ic_search_24"
android:title="@string/action_search"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="always|collapseActionView" />
android:title="@string/search"
app:showAsAction="always" />
</menu>

View file

@ -96,6 +96,10 @@
android:id="@+id/action_global_user_search"
app:destination="@id/user_search_nav_graph" />
<action
android:id="@+id/action_global_search"
app:destination="@id/searchFragment" />
<fragment
android:id="@+id/directMessagesInboxFragment"
android:name="awais.instagrabber.fragments.directmessages.DirectMessageInboxFragment"
@ -187,4 +191,10 @@
android:id="@+id/action_pending_inbox_to_thread"
app:destination="@id/directMessagesThreadFragment" />
</fragment>
<fragment
android:id="@+id/searchFragment"
android:name="awais.instagrabber.fragments.search.SearchFragment"
android:label="@string/search"
tools:layout="@layout/fragment_search" />
</navigation>

View file

@ -95,6 +95,10 @@
app:argType="long" />
</action>
<action
android:id="@+id/action_global_search"
app:destination="@id/searchFragment" />
<fragment
android:id="@+id/discoverFragment"
android:name="awais.instagrabber.fragments.main.DiscoverFragment"
@ -120,4 +124,9 @@
android:name="backgroundColor"
app:argType="integer" />
</fragment>
<fragment
android:id="@+id/searchFragment"
android:name="awais.instagrabber.fragments.search.SearchFragment"
android:label="@string/search"
tools:layout="@layout/fragment_search" />
</navigation>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation 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/favorites_nav_graph"
app:startDestination="@id/favoritesFragment">
@ -36,8 +37,18 @@
app:argType="long" />
</action>
<action
android:id="@+id/action_global_search"
app:destination="@id/searchFragment" />
<fragment
android:id="@+id/favoritesFragment"
android:name="awais.instagrabber.fragments.FavoritesFragment"
android:label="@string/title_favorites" />
android:label="@string/title_favorites"
tools:layout="@layout/fragment_favorites" />
<fragment
android:id="@+id/searchFragment"
android:name="awais.instagrabber.fragments.search.SearchFragment"
android:label="@string/search"
tools:layout="@layout/fragment_search" />
</navigation>

View file

@ -106,6 +106,10 @@
app:nullable="false" />
</action>
<action
android:id="@+id/action_global_search"
app:destination="@id/searchFragment" />
<fragment
android:id="@+id/feedFragment"
android:name="awais.instagrabber.fragments.main.FeedFragment"
@ -115,7 +119,6 @@
android:id="@+id/action_feedFragment_to_storyViewerFragment"
app:destination="@id/storyViewerFragment" />
</fragment>
<fragment
android:id="@+id/storyViewerFragment"
android:name="awais.instagrabber.fragments.StoryViewerFragment"
@ -125,4 +128,9 @@
android:name="options"
app:argType="awais.instagrabber.repositories.requests.StoryViewerOptions" />
</fragment>
<fragment
android:id="@+id/searchFragment"
android:name="awais.instagrabber.fragments.search.SearchFragment"
android:label="@string/search"
tools:layout="@layout/fragment_search" />
</navigation>

View file

@ -65,6 +65,10 @@
app:argType="long" />
</action>
<action
android:id="@+id/action_global_search"
app:destination="@id/searchFragment" />
<fragment
android:id="@+id/hashTagFragment"
android:name="awais.instagrabber.fragments.HashTagFragment"
@ -87,6 +91,11 @@
android:name="options"
app:argType="awais.instagrabber.repositories.requests.StoryViewerOptions" />
</fragment>
<fragment
android:id="@+id/searchFragment"
android:name="awais.instagrabber.fragments.search.SearchFragment"
android:label="@string/search"
tools:layout="@layout/fragment_search" />
<action
android:id="@+id/action_global_hashTagFragment"
app:destination="@id/hashTagFragment">

View file

@ -66,6 +66,10 @@
app:nullable="false" />
</action>
<action
android:id="@+id/action_global_search"
app:destination="@id/searchFragment" />
<fragment
android:id="@+id/locationFragment"
android:name="awais.instagrabber.fragments.LocationFragment"
@ -94,4 +98,9 @@
android:name="options"
app:argType="awais.instagrabber.repositories.requests.StoryViewerOptions" />
</fragment>
<fragment
android:id="@+id/searchFragment"
android:name="awais.instagrabber.fragments.search.SearchFragment"
android:label="@string/search"
tools:layout="@layout/fragment_search" />
</navigation>

View file

@ -112,6 +112,10 @@
app:argType="boolean" />
</action>
<action
android:id="@+id/action_global_search"
app:destination="@id/searchFragment" />
<fragment
android:id="@+id/profileFragment"
android:name="awais.instagrabber.fragments.main.ProfileFragment"
@ -188,32 +192,9 @@
android:name="options"
app:argType="awais.instagrabber.repositories.requests.StoryViewerOptions" />
</fragment>
<!--<fragment-->
<!-- android:id="@+id/directMessagesThreadFragment"-->
<!-- android:name="awais.instagrabber.fragments.directmessages.DirectMessageThreadFragment"-->
<!-- android:label="DirectMessagesThreadFragment"-->
<!-- tools:layout="@layout/fragment_direct_messages_thread">-->
<!-- <argument-->
<!-- android:name="threadId"-->
<!-- app:argType="string" />-->
<!-- <argument-->
<!-- android:name="title"-->
<!-- app:argType="string" />-->
<!-- <action-->
<!-- android:id="@+id/action_dMThreadFragment_to_dMSettingsFragment"-->
<!-- app:destination="@id/directMessagesSettingsFragment" />-->
<!--</fragment>-->
<!--<fragment-->
<!-- android:id="@+id/directMessagesSettingsFragment"-->
<!-- android:name="awais.instagrabber.fragments.directmessages.DirectMessageSettingsFragment"-->
<!-- android:label="@string/details"-->
<!-- tools:layout="@layout/fragment_direct_messages_settings">-->
<!-- <argument-->
<!-- android:name="threadId"-->
<!-- app:argType="string"-->
<!-- app:nullable="false"/>-->
<!-- <argument-->
<!-- android:name="title"-->
<!-- app:argType="string" />-->
<!--</fragment>-->
<fragment
android:id="@+id/searchFragment"
android:name="awais.instagrabber.fragments.search.SearchFragment"
android:label="@string/search"
tools:layout="@layout/fragment_search" />
</navigation>

View file

@ -20,6 +20,9 @@
<attr name="dmWaveformProgressColor" format="reference" />
<attr name="dmInputTextColor" format="reference" />
<attr name="toolbarColor" format="reference" />
<attr name="searchInputStyle" format="reference" />
<declare-styleable name="RecordView">
<attr name="slide_to_cancel_text" format="string" />
<attr name="slide_to_cancel_text_color" format="reference" />

View file

@ -495,4 +495,7 @@
<string name="dm_remove_warning">If saved, all DM related features will be disabled on next launch</string>
<string name="copy_caption">Copy caption</string>
<string name="copy_reply">Copy reply</string>
<string name="top">Top</string>
<string name="recent">Recent</string>
<string name="clear">Clear</string>
</resources>

View file

@ -225,4 +225,39 @@
<item name="android:paddingEnd">0dp</item>
<item name="iconPadding">0dp</item>
</style>
<style name="TextAppearance.Design.Tab.RegularCaps" parent="TextAppearance.Design.Tab">
<item name="textAllCaps">false</item>
<item name="android:textAllCaps">false</item>
</style>
<style name="Widget.MaterialComponents.TabLayout.RegularCaps" parent="Widget.MaterialComponents.TabLayout">
<item name="tabTextAppearance">@style/TextAppearance.Design.Tab.RegularCaps</item>
</style>
<style name="Widget.MaterialComponents.TabLayout.Light.White" parent="Widget.MaterialComponents.TabLayout">
<item name="materialThemeOverlay">@style/ThemeOverlay.App.TabLayout.Light.White</item>
</style>
<style name="ThemeOverlay.App.TabLayout.Light.White" parent="">
<item name="colorPrimary">@color/black</item>
</style>
<style name="Widget.MaterialComponents.TabLayout.Dark.Black" parent="Widget.MaterialComponents.TabLayout">
<item name="materialThemeOverlay">@style/ThemeOverlay.App.TabLayout.Dark.Black</item>
</style>
<style name="ThemeOverlay.App.TabLayout.Dark.Black" parent="">
<item name="colorPrimary">@color/white</item>
</style>
<style name="Widget.MaterialComponents.TextInputLayout.OutlinedBox.Light.Barinsta" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<item name="materialThemeOverlay">@style/ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox.Light.Barinsta</item>
<item name="colorPrimary">@color/black</item>
<item name="colorOnSurface">@color/black</item>
</style>
<style name="ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox.Light.Barinsta" parent="ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox">
<item name="colorPrimary">@color/white</item>
</style>
</resources>

View file

@ -23,6 +23,7 @@
<item name="dmIncomingBgColor">@color/grey_600</item>
<item name="dmOutgoingBgColor">@color/deep_purple_400</item>
<item name="dmDateHeaderBgColor">@color/deep_purple_600</item>
<item name="searchInputStyle">@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox</item>
</style>
<style name="AppTheme.Light.White" parent="AppTheme.Light">
@ -33,8 +34,11 @@
<item name="colorSecondaryVariant">@color/white</item>
<item name="colorOnSecondary">@color/black</item>
<item name="colorSurface">@color/white</item>
<item name="toolbarColor">?colorSurface</item>
<item name="colorOnSurface">@color/black</item>
<item name="colorAccent">@color/black</item>
<item name="colorControlActivated">@color/black</item>
<item name="android:colorControlActivated">@color/black</item>
<item name="editTextColor">@color/black</item>
<item name="android:editTextColor">@color/black</item>
<item name="android:textColorPrimary">@color/black</item>
@ -48,6 +52,7 @@
<item name="dmWaveformBgColor">@color/grey_600</item>
<item name="dmWaveformProgressColor">@color/blue_800</item>
<item name="dmInputTextColor">@color/black</item>
<item name="tabStyle">@style/Widget.MaterialComponents.TabLayout.Light.White</item>
</style>
<style name="AppTheme.Light.Barinsta" parent="AppTheme.Light">
@ -57,6 +62,7 @@
<item name="colorSecondary">@color/barinstaColorSecondary</item>
<item name="colorSecondaryVariant">@color/barinstaColorSecondaryDark</item>
<item name="colorSurface">@color/grey_200</item>
<item name="toolbarColor">?colorPrimary</item>
<item name="colorControlHighlight">@color/barinstaColorSecondaryDark</item>
<item name="colorAccent">@color/barinstaColorSecondaryDark</item>
<!--<item name="actionBarTheme">@style/ThemeOverlay.MaterialComponents.ActionBar</item>-->
@ -65,6 +71,7 @@
<item name="android:textColorPrimary">@color/barinstaPrimaryTextColor</item>
<item name="toolbarStyle">@style/Widget.MaterialComponents.Toolbar.Light.Barinsta</item>
<item name="dmInputTextColor">@color/black</item>
<item name="searchInputStyle">@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Light.Barinsta</item>
</style>
<style name="AppTheme.Light.Bibliogram" parent="AppTheme.Light">
@ -74,6 +81,7 @@
<item name="colorSecondary">@color/bibliogramColorSecondary</item>
<item name="colorSecondaryVariant">@color/bibliogramColorSecondaryDark</item>
<item name="colorSurface">@color/grey_200</item>
<item name="toolbarColor">?colorPrimary</item>
<item name="colorControlHighlight">@color/bibliogramColorSecondaryDark</item>
<item name="colorAccent">@color/bibliogramColorSecondaryDark</item>
<item name="android:windowBackground">?colorSurface</item>
@ -81,6 +89,7 @@
<item name="android:textColorPrimary">@color/bibliogramPrimaryTextColor</item>
<item name="toolbarStyle">@style/Widget.MaterialComponents.Toolbar.Light.Barinsta</item>
<item name="dmInputTextColor">@color/black</item>
<item name="searchInputStyle">@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Light.Barinsta</item>
</style>
@ -103,6 +112,7 @@
<item name="dmWaveformBgColor">@color/white</item>
<item name="dmWaveformProgressColor">@color/blue_800</item>
<item name="dmInputTextColor">@color/white</item>
<item name="searchInputStyle">@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox</item>
</style>
<style name="AppTheme.Dark.Black" parent="AppTheme.Dark">
@ -114,9 +124,12 @@
<item name="colorOnSecondary">@color/white</item>
<item name="colorSecondaryVariant">@color/black</item>
<item name="colorSurface">@color/black</item>
<item name="toolbarColor">?colorSurface</item>
<item name="colorOnSurface">@color/white</item>
<item name="colorAccent">@color/blue_A700</item>
<item name="colorControlHighlight">@color/grey_600</item>
<item name="colorControlActivated">@color/white</item>
<item name="android:colorControlActivated">@color/white</item>
<item name="android:textColorPrimary">@color/white</item>
<item name="android:textColorSecondary">@color/white</item>
<item name="android:textColorHint">@color/grey_500</item>
@ -132,6 +145,7 @@
<item name="dmIncomingBgColor">@color/grey_600</item>
<item name="dmOutgoingBgColor">@color/deep_purple_400</item>
<item name="dmDateHeaderBgColor">@color/deep_purple_600</item>
<item name="tabStyle">@style/Widget.MaterialComponents.TabLayout.Dark.Black</item>
</style>
<style name="AppTheme.Dark.MaterialDark" parent="AppTheme.Dark">
@ -142,6 +156,7 @@
<item name="android:windowBackground">@color/grey_900</item>
<item name="android:colorBackground">@color/grey_900</item>
<item name="colorSurface">@color/grey_900</item>
<item name="toolbarColor">?colorSurface</item>
<item name="colorError">@color/red_200</item>
<item name="colorOnPrimary">@color/black</item>
<item name="colorOnSecondary">@color/black</item>