Use view binding in SearchFragment.
This commit is contained in:
parent
6039484a02
commit
97672f06de
|
@ -37,6 +37,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||||
import org.schabi.newpipe.R;
|
import org.schabi.newpipe.R;
|
||||||
import org.schabi.newpipe.ReCaptchaActivity;
|
import org.schabi.newpipe.ReCaptchaActivity;
|
||||||
import org.schabi.newpipe.database.history.model.SearchHistoryEntry;
|
import org.schabi.newpipe.database.history.model.SearchHistoryEntry;
|
||||||
|
import org.schabi.newpipe.databinding.FragmentSearchBinding;
|
||||||
import org.schabi.newpipe.extractor.InfoItem;
|
import org.schabi.newpipe.extractor.InfoItem;
|
||||||
import org.schabi.newpipe.extractor.ListExtractor;
|
import org.schabi.newpipe.extractor.ListExtractor;
|
||||||
import org.schabi.newpipe.extractor.MetaInfo;
|
import org.schabi.newpipe.extractor.MetaInfo;
|
||||||
|
@ -155,6 +156,8 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
|
||||||
// Views
|
// Views
|
||||||
//////////////////////////////////////////////////////////////////////////*/
|
//////////////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
|
private FragmentSearchBinding searchBinding;
|
||||||
|
|
||||||
private View searchToolbarContainer;
|
private View searchToolbarContainer;
|
||||||
private EditText searchEditText;
|
private EditText searchEditText;
|
||||||
private View searchClear;
|
private View searchClear;
|
||||||
|
@ -165,7 +168,6 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
|
||||||
|
|
||||||
private View suggestionsPanel;
|
private View suggestionsPanel;
|
||||||
private boolean suggestionsPanelVisible = false;
|
private boolean suggestionsPanelVisible = false;
|
||||||
private RecyclerView suggestionsRecyclerView;
|
|
||||||
|
|
||||||
/*////////////////////////////////////////////////////////////////////////*/
|
/*////////////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
|
@ -301,6 +303,8 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
|
||||||
Log.d(TAG, "onDestroyView() called");
|
Log.d(TAG, "onDestroyView() called");
|
||||||
}
|
}
|
||||||
unsetSearchListeners();
|
unsetSearchListeners();
|
||||||
|
|
||||||
|
searchBinding = null;
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -337,9 +341,9 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
|
||||||
@Override
|
@Override
|
||||||
protected void initViews(final View rootView, final Bundle savedInstanceState) {
|
protected void initViews(final View rootView, final Bundle savedInstanceState) {
|
||||||
super.initViews(rootView, savedInstanceState);
|
super.initViews(rootView, savedInstanceState);
|
||||||
suggestionsPanel = rootView.findViewById(R.id.suggestions_panel);
|
searchBinding = FragmentSearchBinding.bind(rootView);
|
||||||
suggestionsRecyclerView = rootView.findViewById(R.id.suggestions_list);
|
|
||||||
suggestionsRecyclerView.setAdapter(suggestionListAdapter);
|
searchBinding.suggestionsList.setAdapter(suggestionListAdapter);
|
||||||
new ItemTouchHelper(new ItemTouchHelper.Callback() {
|
new ItemTouchHelper(new ItemTouchHelper.Callback() {
|
||||||
@Override
|
@Override
|
||||||
public int getMovementFlags(@NonNull final RecyclerView recyclerView,
|
public int getMovementFlags(@NonNull final RecyclerView recyclerView,
|
||||||
|
@ -358,7 +362,7 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
|
||||||
public void onSwiped(@NonNull final RecyclerView.ViewHolder viewHolder, final int i) {
|
public void onSwiped(@NonNull final RecyclerView.ViewHolder viewHolder, final int i) {
|
||||||
onSuggestionItemSwiped(viewHolder);
|
onSuggestionItemSwiped(viewHolder);
|
||||||
}
|
}
|
||||||
}).attachToRecyclerView(suggestionsRecyclerView);
|
}).attachToRecyclerView(searchBinding.suggestionsList);
|
||||||
|
|
||||||
searchToolbarContainer = activity.findViewById(R.id.toolbar_search_container);
|
searchToolbarContainer = activity.findViewById(R.id.toolbar_search_container);
|
||||||
searchEditText = searchToolbarContainer.findViewById(R.id.toolbar_search_edit_text);
|
searchEditText = searchToolbarContainer.findViewById(R.id.toolbar_search_edit_text);
|
||||||
|
@ -523,7 +527,7 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
correctSuggestion.setVisibility(View.GONE);
|
searchBinding.correctSuggestion.setVisibility(View.GONE);
|
||||||
|
|
||||||
searchEditText.setText("");
|
searchEditText.setText("");
|
||||||
suggestionListAdapter.setItems(new ArrayList<>());
|
suggestionListAdapter.setItems(new ArrayList<>());
|
||||||
|
@ -640,7 +644,8 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
|
||||||
Log.d(TAG, "showSuggestionsPanel() called");
|
Log.d(TAG, "showSuggestionsPanel() called");
|
||||||
}
|
}
|
||||||
suggestionsPanelVisible = true;
|
suggestionsPanelVisible = true;
|
||||||
animateView(suggestionsPanel, AnimationUtils.Type.LIGHT_SLIDE_AND_ALPHA, true, 200);
|
animateView(searchBinding.suggestionsPanel, AnimationUtils.Type.LIGHT_SLIDE_AND_ALPHA,
|
||||||
|
true, 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void hideSuggestionsPanel() {
|
private void hideSuggestionsPanel() {
|
||||||
|
@ -648,7 +653,8 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
|
||||||
Log.d(TAG, "hideSuggestionsPanel() called");
|
Log.d(TAG, "hideSuggestionsPanel() called");
|
||||||
}
|
}
|
||||||
suggestionsPanelVisible = false;
|
suggestionsPanelVisible = false;
|
||||||
animateView(suggestionsPanel, AnimationUtils.Type.LIGHT_SLIDE_AND_ALPHA, false, 200);
|
animateView(searchBinding.suggestionsPanel, AnimationUtils.Type.LIGHT_SLIDE_AND_ALPHA,
|
||||||
|
false, 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showKeyboardSearch() {
|
private void showKeyboardSearch() {
|
||||||
|
@ -936,8 +942,8 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "handleSuggestions() called with: suggestions = [" + suggestions + "]");
|
Log.d(TAG, "handleSuggestions() called with: suggestions = [" + suggestions + "]");
|
||||||
}
|
}
|
||||||
suggestionsRecyclerView.smoothScrollToPosition(0);
|
searchBinding.suggestionsList.smoothScrollToPosition(0);
|
||||||
suggestionsRecyclerView.post(() -> suggestionListAdapter.setItems(suggestions));
|
searchBinding.suggestionsList.post(() -> suggestionListAdapter.setItems(suggestions));
|
||||||
|
|
||||||
if (suggestionsPanelVisible && errorPanelRoot.getVisibility() == View.VISIBLE) {
|
if (suggestionsPanelVisible && errorPanelRoot.getVisibility() == View.VISIBLE) {
|
||||||
hideLoading();
|
hideLoading();
|
||||||
|
@ -1019,7 +1025,7 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
|
||||||
|
|
||||||
private void handleSearchSuggestion() {
|
private void handleSearchSuggestion() {
|
||||||
if (TextUtils.isEmpty(searchSuggestion)) {
|
if (TextUtils.isEmpty(searchSuggestion)) {
|
||||||
correctSuggestion.setVisibility(View.GONE);
|
searchBinding.correctSuggestion.setVisibility(View.GONE);
|
||||||
} else {
|
} else {
|
||||||
final String helperText = getString(isCorrectedSearch
|
final String helperText = getString(isCorrectedSearch
|
||||||
? R.string.search_showing_result_for
|
? R.string.search_showing_result_for
|
||||||
|
@ -1028,22 +1034,23 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
|
||||||
final String highlightedSearchSuggestion =
|
final String highlightedSearchSuggestion =
|
||||||
"<b><i>" + Html.escapeHtml(searchSuggestion) + "</i></b>";
|
"<b><i>" + Html.escapeHtml(searchSuggestion) + "</i></b>";
|
||||||
final String text = String.format(helperText, highlightedSearchSuggestion);
|
final String text = String.format(helperText, highlightedSearchSuggestion);
|
||||||
correctSuggestion.setText(HtmlCompat.fromHtml(text, HtmlCompat.FROM_HTML_MODE_LEGACY));
|
searchBinding.correctSuggestion.setText(HtmlCompat.fromHtml(text,
|
||||||
|
HtmlCompat.FROM_HTML_MODE_LEGACY));
|
||||||
|
|
||||||
correctSuggestion.setOnClickListener(v -> {
|
searchBinding.correctSuggestion.setOnClickListener(v -> {
|
||||||
correctSuggestion.setVisibility(View.GONE);
|
searchBinding.correctSuggestion.setVisibility(View.GONE);
|
||||||
search(searchSuggestion, contentFilter, sortFilter);
|
search(searchSuggestion, contentFilter, sortFilter);
|
||||||
searchEditText.setText(searchSuggestion);
|
searchEditText.setText(searchSuggestion);
|
||||||
});
|
});
|
||||||
|
|
||||||
correctSuggestion.setOnLongClickListener(v -> {
|
searchBinding.correctSuggestion.setOnLongClickListener(v -> {
|
||||||
searchEditText.setText(searchSuggestion);
|
searchEditText.setText(searchSuggestion);
|
||||||
searchEditText.setSelection(searchSuggestion.length());
|
searchEditText.setSelection(searchSuggestion.length());
|
||||||
showKeyboardSearch();
|
showKeyboardSearch();
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
correctSuggestion.setVisibility(View.VISIBLE);
|
searchBinding.correctSuggestion.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue