Skip to content

Commit 60507e0

Browse files
authored
Merge pull request #4388 from ajay020/fix/indexed-search-button-spacing
2 parents c64b2cc + c565f6c commit 60507e0

File tree

6 files changed

+176
-90
lines changed

6 files changed

+176
-90
lines changed

app/src/main/java/com/amaze/filemanager/ui/views/appbar/SearchView.java

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
import android.view.animation.AccelerateDecelerateInterpolator;
6767
import android.view.inputmethod.EditorInfo;
6868
import android.view.inputmethod.InputMethodManager;
69+
import android.widget.LinearLayout;
6970
import android.widget.Toast;
7071

7172
import androidx.appcompat.widget.AppCompatButton;
@@ -99,7 +100,8 @@ public class SearchView {
99100

100101
private final AppCompatTextView recentHintTV;
101102
private final AppCompatTextView searchResultsHintTV;
102-
private final AppCompatTextView deepSearchTV;
103+
private final AppCompatButton deepSearchButton;
104+
private final LinearLayout deepSearchContainer;
103105

104106
private final ChipGroup recentChipGroup;
105107
private final RecyclerView recyclerView;
@@ -143,7 +145,8 @@ public SearchView(final AppBar appbar, MainActivity mainActivity) {
143145
recentChipGroup = mainActivity.findViewById(R.id.searchRecentItemsChipGroup);
144146
recentHintTV = mainActivity.findViewById(R.id.searchRecentHintTV);
145147
searchResultsHintTV = mainActivity.findViewById(R.id.searchResultsHintTV);
146-
deepSearchTV = mainActivity.findViewById(R.id.searchDeepSearchTV);
148+
deepSearchButton = mainActivity.findViewById(R.id.tryDeepSearchButton);
149+
deepSearchContainer = mainActivity.findViewById(R.id.deepSearchContainer);
147150
recyclerView = mainActivity.findViewById(R.id.searchRecyclerView);
148151
searchResultsSortHintTV = mainActivity.findViewById(R.id.searchResultsSortHintTV);
149152
searchResultsSortButton = mainActivity.findViewById(R.id.searchResultsSortButton);
@@ -205,7 +208,7 @@ public void afterTextChanged(Editable s) {}
205208
return false;
206209
});
207210

208-
deepSearchTV.setOnClickListener(
211+
deepSearchButton.setOnClickListener(
209212
v -> {
210213
String s = getSearchTerm();
211214

@@ -225,10 +228,7 @@ public void afterTextChanged(Editable s) {}
225228

226229
searchMode = 2;
227230

228-
deepSearchTV.setText(
229-
getSpannableText(
230-
mainActivity.getString(R.string.not_finding_what_you_re_looking_for),
231-
mainActivity.getString(R.string.try_deep_search)));
231+
deepSearchButton.setText(mainActivity.getString(R.string.try_deep_search));
232232

233233
} else if (searchMode == 2) {
234234

@@ -240,7 +240,7 @@ public void afterTextChanged(Editable s) {}
240240
mainActivity.getCurrentMainFragment().getViewLifecycleOwner(),
241241
hybridFileParcelables -> updateResultList(hybridFileParcelables, s));
242242

243-
deepSearchTV.setVisibility(View.GONE);
243+
deepSearchContainer.setVisibility(View.GONE);
244244
}
245245
});
246246

@@ -272,12 +272,9 @@ private void basicSearch(String s) {
272272
searchResultsHintTV.setVisibility(View.VISIBLE);
273273
searchResultsSortButton.setVisibility(View.VISIBLE);
274274
searchResultsSortHintTV.setVisibility(View.VISIBLE);
275-
deepSearchTV.setVisibility(View.VISIBLE);
275+
deepSearchContainer.setVisibility(View.VISIBLE);
276276
searchMode = 1;
277-
deepSearchTV.setText(
278-
getSpannableText(
279-
mainActivity.getString(R.string.not_finding_what_you_re_looking_for),
280-
mainActivity.getString(R.string.try_indexed_search)));
277+
deepSearchButton.setText(mainActivity.getString(R.string.try_indexed_search));
281278

282279
mainActivity
283280
.getCurrentMainFragment()
@@ -356,11 +353,8 @@ private void initRecentSearches(Context context) {
356353

357354
private void resetSearchMode() {
358355
searchMode = 0;
359-
deepSearchTV.setText(
360-
getSpannableText(
361-
mainActivity.getString(R.string.not_finding_what_you_re_looking_for),
362-
mainActivity.getString(R.string.try_indexed_search)));
363-
deepSearchTV.setVisibility(View.GONE);
356+
deepSearchButton.setText(mainActivity.getString(R.string.try_indexed_search));
357+
deepSearchContainer.setVisibility(View.GONE);
364358
}
365359

366360
/**
@@ -616,7 +610,7 @@ private void initSearchViewColor(MainActivity a) {
616610
private void clearRecyclerView() {
617611
searchRecyclerViewAdapter.submitList(Collections.emptyList());
618612

619-
deepSearchTV.setVisibility(View.GONE);
613+
deepSearchContainer.setVisibility(View.GONE);
620614

621615
searchResultsHintTV.setVisibility(View.GONE);
622616
searchResultsSortHintTV.setVisibility(View.GONE);
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<shape xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:shape="rectangle">
4+
<solid android:color="@android:color/transparent" />
5+
<stroke
6+
android:width="1dp"
7+
android:color="@color/primary_pink" />
8+
<corners android:radius="24dp" />
9+
<padding
10+
android:bottom="4dp"
11+
android:left="2dp"
12+
android:right="2dp"
13+
android:top="4dp" />
14+
</shape>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:color="?attr/colorControlHighlight">
4+
5+
<!-- This item defines the ripple mask shape -->
6+
<item android:id="@android:id/mask">
7+
<shape android:shape="rectangle">
8+
<solid android:color="#FFFFFF" />
9+
<corners android:radius="24dp" />
10+
</shape>
11+
</item>
12+
13+
<item android:drawable="@drawable/button_background" />
14+
</ripple>

app/src/main/res/layout-v21/layout_search.xml

Lines changed: 44 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
android:paddingTop="8dp"
8686
android:paddingEnd="8dp"
8787
android:scrollbars="none"
88-
app:layout_constraintBottom_toTopOf="@id/searchDeepSearchTV"
88+
app:layout_constraintBottom_toTopOf="@+id/deepSearchContainer"
8989
app:layout_constraintEnd_toEndOf="parent"
9090
app:layout_constraintStart_toStartOf="parent"
9191
app:layout_constraintTop_toBottomOf="@id/searchRecentHintTV">
@@ -97,27 +97,48 @@
9797
android:layout_marginStart="8dp"
9898
android:layout_marginTop="4dp"
9999
android:layout_marginEnd="8dp"
100-
android:layout_marginBottom="8dp"
101100
app:chipSpacing="4dp"
102101
app:singleLine="true" />
103102

104103
</HorizontalScrollView>
105104

106-
<TextView
107-
android:id="@+id/searchDeepSearchTV"
108-
android:layout_width="wrap_content"
105+
<LinearLayout
106+
android:id="@+id/deepSearchContainer"
107+
android:layout_width="match_parent"
109108
android:layout_height="wrap_content"
110-
android:background="?attr/selectableItemBackground"
111-
android:clickable="true"
112-
android:focusable="true"
113-
android:padding="8dp"
114-
android:textSize="16sp"
109+
android:layout_marginStart="8dp"
110+
android:layout_marginTop="8dp"
111+
android:layout_marginEnd="8dp"
112+
android:layout_marginBottom="12dp"
113+
android:gravity="center_vertical"
114+
android:orientation="horizontal"
115+
android:paddingVertical="12dp"
115116
android:visibility="gone"
116-
app:layout_constraintBottom_toTopOf="@id/searchResultsHintTV"
117-
app:layout_constraintEnd_toEndOf="parent"
118-
app:layout_constraintHorizontal_bias="0"
119117
app:layout_constraintStart_toStartOf="parent"
120-
app:layout_constraintTop_toBottomOf="@id/searchRecentItemsScrollView" />
118+
app:layout_constraintTop_toBottomOf="@id/searchRecentItemsScrollView">
119+
120+
<TextView
121+
android:id="@+id/notFindingTextView"
122+
android:layout_width="0dp"
123+
android:layout_height="wrap_content"
124+
android:layout_weight="1.4"
125+
android:text="@string/not_finding_what_you_re_looking_for"
126+
android:textSize="15sp" />
127+
128+
<androidx.appcompat.widget.AppCompatButton
129+
android:id="@+id/tryDeepSearchButton"
130+
style="?android:attr/borderlessButtonStyle"
131+
android:layout_width="0dp"
132+
android:layout_height="wrap_content"
133+
android:layout_weight="0.6"
134+
android:padding="1dp"
135+
android:background="@drawable/ripple_button_background"
136+
android:text="@string/try_indexed_search"
137+
android:textAllCaps="false"
138+
android:textColor="@color/primary_pink"
139+
android:textSize="14sp" />
140+
141+
</LinearLayout>
121142

122143
<TextView
123144
android:id="@+id/searchResultsHintTV"
@@ -134,7 +155,7 @@
134155
app:layout_constraintEnd_toStartOf="@+id/searchResultsSortHintTV"
135156
app:layout_constraintHorizontal_bias="0"
136157
app:layout_constraintStart_toStartOf="parent"
137-
app:layout_constraintTop_toBottomOf="@id/searchDeepSearchTV" />
158+
app:layout_constraintTop_toBottomOf="@+id/deepSearchContainer" />
138159

139160
<TextView
140161
android:id="@+id/searchResultsSortHintTV"
@@ -148,27 +169,27 @@
148169
android:visibility="gone"
149170
app:layout_constraintBottom_toTopOf="@id/searchRecyclerView"
150171
app:layout_constraintEnd_toStartOf="@+id/searchResultsSortButton"
172+
app:layout_constraintHorizontal_bias="1"
151173
app:layout_constraintStart_toEndOf="@+id/searchResultsHintTV"
152-
app:layout_constraintTop_toBottomOf="@id/searchDeepSearchTV"
153-
app:layout_constraintHorizontal_bias="1" />
174+
app:layout_constraintTop_toBottomOf="@+id/deepSearchContainer" />
154175

155176
<Button
156177
android:id="@+id/searchResultsSortButton"
178+
style="@style/SearchSortButton"
157179
android:layout_width="wrap_content"
158180
android:layout_height="wrap_content"
159181
android:layout_marginStart="4dp"
160182
android:layout_marginEnd="4dp"
183+
android:minWidth="0dp"
184+
android:minHeight="0dp"
161185
android:textColor="@color/accent_material_light"
162186
android:textSize="12sp"
163187
android:visibility="gone"
164-
android:minHeight="0dp"
165-
android:minWidth="0dp"
166188
app:layout_constraintBottom_toTopOf="@+id/searchRecyclerView"
167189
app:layout_constraintEnd_toEndOf="parent"
168-
app:layout_constraintStart_toEndOf="@+id/searchResultsSortHintTV"
169-
app:layout_constraintTop_toBottomOf="@id/searchDeepSearchTV"
170190
app:layout_constraintHorizontal_bias="1"
171-
style="@style/SearchSortButton" />
191+
app:layout_constraintStart_toEndOf="@+id/searchResultsSortHintTV"
192+
app:layout_constraintTop_toBottomOf="@+id/deepSearchContainer" />
172193

173194
<androidx.recyclerview.widget.RecyclerView
174195
android:id="@+id/searchRecyclerView"
@@ -179,7 +200,7 @@
179200
app:layout_constraintBottom_toBottomOf="parent"
180201
app:layout_constraintEnd_toEndOf="parent"
181202
app:layout_constraintStart_toStartOf="parent"
182-
app:layout_constraintTop_toBottomOf="@id/searchResultsHintTV" />
203+
app:layout_constraintTop_toBottomOf="@+id/searchResultsHintTV" />
183204

184205
</androidx.constraintlayout.widget.ConstraintLayout>
185206
</androidx.core.widget.NestedScrollView>

app/src/main/res/layout-w720dp/layout_search.xml

Lines changed: 49 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
app:layout_constraintTop_toTopOf="@id/search_edit_text"
5858
app:srcCompat="@drawable/ic_close_black_24dp" />
5959

60-
<TextView
60+
<androidx.appcompat.widget.AppCompatTextView
6161
android:id="@+id/searchRecentHintTV"
6262
android:layout_width="wrap_content"
6363
android:layout_height="wrap_content"
@@ -83,7 +83,7 @@
8383
android:paddingTop="8dp"
8484
android:paddingEnd="8dp"
8585
android:scrollbars="none"
86-
app:layout_constraintBottom_toTopOf="@id/searchDeepSearchTV"
86+
app:layout_constraintBottom_toTopOf="@+id/deepSearchContainer"
8787
app:layout_constraintEnd_toEndOf="parent"
8888
app:layout_constraintStart_toStartOf="parent"
8989
app:layout_constraintTop_toBottomOf="@id/searchRecentHintTV">
@@ -101,23 +101,46 @@
101101

102102
</HorizontalScrollView>
103103

104-
<TextView
105-
android:id="@+id/searchDeepSearchTV"
106-
android:layout_width="wrap_content"
104+
<LinearLayout
105+
android:id="@+id/deepSearchContainer"
106+
android:layout_width="match_parent"
107107
android:layout_height="wrap_content"
108-
android:background="?attr/selectableItemBackground"
109-
android:clickable="true"
110-
android:focusable="true"
111-
android:padding="8dp"
112-
android:textSize="16sp"
108+
android:layout_marginStart="8dp"
109+
android:layout_marginTop="8dp"
110+
android:layout_marginBottom="8dp"
111+
android:layout_marginEnd="8dp"
112+
android:orientation="horizontal"
113+
android:gravity="center_vertical"
113114
android:visibility="gone"
114-
app:layout_constraintBottom_toTopOf="@id/searchResultsHintTV"
115-
app:layout_constraintEnd_toEndOf="parent"
116-
app:layout_constraintHorizontal_bias="0"
115+
android:paddingVertical="16dp"
116+
android:paddingHorizontal="12dp"
117117
app:layout_constraintStart_toStartOf="parent"
118-
app:layout_constraintTop_toBottomOf="@id/searchRecentItemsScrollView" />
118+
app:layout_constraintTop_toBottomOf="@id/searchRecentItemsScrollView">
119+
120+
<androidx.appcompat.widget.AppCompatTextView
121+
android:id="@+id/notFindingTextView"
122+
android:layout_width="0dp"
123+
android:layout_height="wrap_content"
124+
android:layout_weight="1"
125+
android:text="@string/not_finding_what_you_re_looking_for"
126+
android:textSize="18sp" />
119127

120-
<TextView
128+
<androidx.appcompat.widget.AppCompatButton
129+
android:id="@+id/tryDeepSearchButton"
130+
style="?android:attr/borderlessButtonStyle"
131+
android:layout_width="wrap_content"
132+
android:layout_height="wrap_content"
133+
android:textAllCaps="false"
134+
android:textSize="16sp"
135+
android:padding="8dp"
136+
android:background="@drawable/button_background"
137+
android:text="@string/try_indexed_search"
138+
android:textColor="@color/primary_pink" />
139+
140+
141+
</LinearLayout>
142+
143+
<androidx.appcompat.widget.AppCompatTextView
121144
android:id="@+id/searchResultsHintTV"
122145
android:layout_width="0dp"
123146
android:layout_height="wrap_content"
@@ -132,9 +155,9 @@
132155
app:layout_constraintEnd_toStartOf="@+id/searchResultsSortHintTV"
133156
app:layout_constraintHorizontal_bias="0"
134157
app:layout_constraintStart_toStartOf="parent"
135-
app:layout_constraintTop_toBottomOf="@id/searchDeepSearchTV" />
158+
app:layout_constraintTop_toBottomOf="@+id/deepSearchContainer" />
136159

137-
<TextView
160+
<androidx.appcompat.widget.AppCompatTextView
138161
android:id="@+id/searchResultsSortHintTV"
139162
android:layout_width="wrap_content"
140163
android:layout_height="wrap_content"
@@ -146,27 +169,27 @@
146169
android:visibility="gone"
147170
app:layout_constraintBottom_toTopOf="@id/searchRecyclerView"
148171
app:layout_constraintEnd_toStartOf="@+id/searchResultsSortButton"
172+
app:layout_constraintHorizontal_bias="1"
149173
app:layout_constraintStart_toEndOf="@+id/searchResultsHintTV"
150-
app:layout_constraintTop_toBottomOf="@id/searchDeepSearchTV"
151-
app:layout_constraintHorizontal_bias="1" />
174+
app:layout_constraintTop_toBottomOf="@+id/deepSearchContainer" />
152175

153-
<Button
176+
<androidx.appcompat.widget.AppCompatButton
154177
android:id="@+id/searchResultsSortButton"
178+
style="@style/SearchSortButton"
155179
android:layout_width="wrap_content"
156180
android:layout_height="wrap_content"
157181
android:layout_marginStart="4dp"
158182
android:layout_marginEnd="4dp"
183+
android:minWidth="0dp"
184+
android:minHeight="0dp"
159185
android:textColor="@color/accent_material_light"
160186
android:textSize="12sp"
161187
android:visibility="gone"
162-
android:minHeight="0dp"
163-
android:minWidth="0dp"
164188
app:layout_constraintBottom_toTopOf="@+id/searchRecyclerView"
165189
app:layout_constraintEnd_toEndOf="parent"
166-
app:layout_constraintStart_toEndOf="@+id/searchResultsSortHintTV"
167-
app:layout_constraintTop_toBottomOf="@id/searchDeepSearchTV"
168190
app:layout_constraintHorizontal_bias="1"
169-
style="@style/SearchSortButton" />
191+
app:layout_constraintStart_toEndOf="@+id/searchResultsSortHintTV"
192+
app:layout_constraintTop_toBottomOf="@+id/deepSearchContainer" />
170193

171194
<androidx.recyclerview.widget.RecyclerView
172195
android:id="@+id/searchRecyclerView"
@@ -176,7 +199,7 @@
176199
app:layout_constraintBottom_toBottomOf="parent"
177200
app:layout_constraintEnd_toEndOf="parent"
178201
app:layout_constraintStart_toStartOf="parent"
179-
app:layout_constraintTop_toBottomOf="@id/searchResultsHintTV" />
202+
app:layout_constraintTop_toBottomOf="@+id/searchResultsHintTV" />
180203

181204
</androidx.constraintlayout.widget.ConstraintLayout>
182205
</androidx.core.widget.NestedScrollView>

0 commit comments

Comments
 (0)