From e5ec6f443173dc6ded83417b1ea4a20976882d69 Mon Sep 17 00:00:00 2001 From: M M Arif Date: Tue, 19 Apr 2022 17:49:24 +0500 Subject: [PATCH] Remote search issues, pr API does not have q param yet. --- .../mian/gitnex/fragments/IssuesFragment.java | 53 +++++++------------ 1 file changed, 20 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/org/mian/gitnex/fragments/IssuesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/IssuesFragment.java index fdfafa5a..3b6cdcbd 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/IssuesFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/IssuesFragment.java @@ -4,7 +4,6 @@ import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.os.Looper; -import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -25,6 +24,7 @@ import org.mian.gitnex.clients.RetrofitClient; import org.mian.gitnex.databinding.FragmentIssuesBinding; import org.mian.gitnex.helpers.Constants; import org.mian.gitnex.helpers.SnackBar; +import org.mian.gitnex.helpers.Toasty; import org.mian.gitnex.helpers.contexts.RepositoryContext; import java.util.ArrayList; import java.util.List; @@ -33,7 +33,7 @@ import retrofit2.Callback; import retrofit2.Response; /** - * Author M M Arif + * @author M M Arif */ public class IssuesFragment extends Fragment { @@ -48,7 +48,6 @@ public class IssuesFragment extends Fragment { private IssuesAdapter adapter; private int pageSize = Constants.issuesPageInit; - private final String TAG = Constants.tagIssuesList; private int resultLimit; private final String requestType = Constants.issuesRequestType; @@ -76,7 +75,7 @@ public class IssuesFragment extends Fragment { fragmentIssuesBinding.pullToRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> { fragmentIssuesBinding.pullToRefresh.setRefreshing(false); - loadInitial(repository.getOwner(), repository.getName(), resultLimit, requestType, repository.getIssueState().toString(), repository.getIssueMilestoneFilterName()); + loadInitial(repository.getOwner(), repository.getName(), resultLimit, requestType, repository.getIssueState().toString(), repository.getIssueMilestoneFilterName(), null); adapter.notifyDataChanged(); }, 200)); @@ -117,7 +116,7 @@ public class IssuesFragment extends Fragment { fragmentIssuesBinding.progressBar.setVisibility(View.VISIBLE); fragmentIssuesBinding.noDataIssues.setVisibility(View.GONE); - loadInitial(repository.getOwner(), repository.getName(), resultLimit, requestType, issueState, repository.getIssueMilestoneFilterName()); + loadInitial(repository.getOwner(), repository.getName(), resultLimit, requestType, issueState, repository.getIssueMilestoneFilterName(), null); fragmentIssuesBinding.recyclerView.setAdapter(adapter); }); @@ -137,11 +136,11 @@ public class IssuesFragment extends Fragment { fragmentIssuesBinding.progressBar.setVisibility(View.VISIBLE); fragmentIssuesBinding.noDataIssues.setVisibility(View.GONE); - loadInitial(repository.getOwner(), repository.getName(), resultLimit, requestType, repository.getIssueState().toString(), filterIssueByMilestone); + loadInitial(repository.getOwner(), repository.getName(), resultLimit, requestType, repository.getIssueState().toString(), filterIssueByMilestone, null); fragmentIssuesBinding.recyclerView.setAdapter(adapter); }); - loadInitial(repository.getOwner(), repository.getName(), resultLimit, requestType, repository.getIssueState().toString(), repository.getIssueMilestoneFilterName()); + loadInitial(repository.getOwner(), repository.getName(), resultLimit, requestType, repository.getIssueState().toString(), repository.getIssueMilestoneFilterName(), null); return fragmentIssuesBinding.getRoot(); } @@ -150,17 +149,18 @@ public class IssuesFragment extends Fragment { public void onResume() { super.onResume(); if(resumeIssues) { - loadInitial(repository.getOwner(), repository.getName(), resultLimit, requestType, repository.getIssueState().toString(), repository.getIssueMilestoneFilterName()); + loadInitial(repository.getOwner(), repository.getName(), resultLimit, requestType, repository.getIssueState().toString(), repository.getIssueMilestoneFilterName(), null); resumeIssues = false; } } - private void loadInitial(String repoOwner, String repoName, int resultLimit, String requestType, String issueState, String filterByMilestone) { + private void loadInitial(String repoOwner, String repoName, int resultLimit, String requestType, String issueState, String filterByMilestone, String query) { - Call> call = RetrofitClient.getApiInterface(context).issueListIssues(repoOwner, repoName, issueState, null, null, requestType, + Call> call = RetrofitClient.getApiInterface(context).issueListIssues(repoOwner, repoName, issueState, null, query, requestType, filterByMilestone, null, null, null, null, null, 1, resultLimit); - call.enqueue(new Callback>() { + call.enqueue(new Callback<>() { + @Override public void onResponse(@NonNull Call> call, @NonNull Response> response) { @@ -184,13 +184,13 @@ public class IssuesFragment extends Fragment { fragmentIssuesBinding.progressBar.setVisibility(View.GONE); } else { - Log.e(TAG, String.valueOf(response.code())); + Toasty.error(context, getString(R.string.genericError)); } } @Override public void onFailure(@NonNull Call> call, @NonNull Throwable t) { - Log.e(TAG, t.toString()); + Toasty.error(context, getString(R.string.genericServerResponseError)); } }); } @@ -201,10 +201,11 @@ public class IssuesFragment extends Fragment { Call> call = RetrofitClient.getApiInterface(context).issueListIssues(repoOwner, repoName, issueState, null, null, requestType, filterByMilestone, null, null, null, null, null, page, resultLimit); - call.enqueue(new Callback>() { + call.enqueue(new Callback<>() { @Override public void onResponse(@NonNull Call> call, @NonNull Response> response) { + if(response.code() == 200) { List result = response.body(); assert result != null; @@ -220,13 +221,13 @@ public class IssuesFragment extends Fragment { fragmentIssuesBinding.progressBar.setVisibility(View.GONE); } else { - Log.e(TAG, String.valueOf(response.code())); + Toasty.error(context, getString(R.string.genericError)); } } @Override public void onFailure(@NonNull Call> call, @NonNull Throwable t) { - Log.e(TAG, t.toString()); + Toasty.error(context, getString(R.string.genericServerResponseError)); } }); } @@ -254,30 +255,16 @@ public class IssuesFragment extends Fragment { @Override public boolean onQueryTextSubmit(String query) { + loadInitial(repository.getOwner(), repository.getName(), resultLimit, requestType, repository.getIssueState().toString(), repository.getIssueMilestoneFilterName(), query); + searchView.setQuery(null, false); + searchItem.collapseActionView(); return false; } @Override public boolean onQueryTextChange(String newText) { - filter(newText); return false; } }); } - - private void filter(String text) { - - List arr = new ArrayList<>(); - - for(Issue d : issuesList) { - if(d == null || d.getTitle() == null || d.getBody() == null) { - continue; - } - if(d.getTitle().toLowerCase().contains(text) || d.getBody().toLowerCase().contains(text) || String.valueOf(d.getNumber()).startsWith(text)) { - arr.add(d); - } - } - - adapter.updateList(arr); - } }