mirror of
https://github.com/gitnex-org/gitnex.git
synced 2026-07-22 05:04:55 -05:00
Remote search issues, pr API does not have q param yet.
This commit is contained in:
@@ -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<List<Issue>> call = RetrofitClient.getApiInterface(context).issueListIssues(repoOwner, repoName, issueState, null, null, requestType,
|
||||
Call<List<Issue>> call = RetrofitClient.getApiInterface(context).issueListIssues(repoOwner, repoName, issueState, null, query, requestType,
|
||||
filterByMilestone, null, null, null, null, null, 1, resultLimit);
|
||||
|
||||
call.enqueue(new Callback<List<Issue>>() {
|
||||
call.enqueue(new Callback<>() {
|
||||
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<List<Issue>> call, @NonNull Response<List<Issue>> 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<List<Issue>> 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<List<Issue>> call = RetrofitClient.getApiInterface(context).issueListIssues(repoOwner, repoName, issueState, null, null, requestType,
|
||||
filterByMilestone, null, null, null, null, null, page, resultLimit);
|
||||
call.enqueue(new Callback<List<Issue>>() {
|
||||
call.enqueue(new Callback<>() {
|
||||
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<List<Issue>> call, @NonNull Response<List<Issue>> response) {
|
||||
|
||||
if(response.code() == 200) {
|
||||
List<Issue> 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<List<Issue>> 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<Issue> 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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user