diff --git a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java index d9e1fd40..d5dcb2b7 100644 --- a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java @@ -520,6 +520,11 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig getFragmentRefreshListener().onRefresh("closed"); } break; + case "assignedToMe": + if(getFragmentRefreshListener() != null) { + getFragmentRefreshListener().onRefresh("assignedToMe"); + } + break; } } @@ -630,7 +635,7 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig private void giteaVersion() { Call callVersion = RetrofitClient.getApiInterface(ctx).getVersion(); - callVersion.enqueue(new Callback() { + callVersion.enqueue(new Callback<>() { @Override public void onResponse(@NonNull final Call callVersion, @NonNull retrofit2.Response responseVersion) { @@ -645,7 +650,6 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig @Override public void onFailure(@NonNull Call callVersion, @NonNull Throwable t) { - Log.e("onFailure-version", t.toString()); } }); } @@ -653,7 +657,7 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig private void loadUserInfo() { Call call = RetrofitClient.getApiInterface(ctx).userGetCurrent(); - call.enqueue(new Callback() { + call.enqueue(new Callback<>() { @Override public void onResponse(@NonNull Call call, @NonNull retrofit2.Response response) { @@ -671,16 +675,18 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig if(!getAccount().getAccount().getUserName().equals(userDetails.getLogin())) { // user changed it's name -> update database int accountId = getAccount().getAccount().getAccountId(); - BaseApi.getInstance(MainActivity.this, UserAccountsApi.class).updateUsername(accountId, - userDetails.getLogin()); + BaseApi.getInstance(MainActivity.this, UserAccountsApi.class).updateUsername(accountId, userDetails.getLogin()); getAccount().setAccount(BaseApi.getInstance(MainActivity.this, UserAccountsApi.class).getAccountById(accountId)); } - if(profileInitListener != null) profileInitListener.onButtonClicked(null); + if(profileInitListener != null) { + profileInitListener.onButtonClicked(null); + } } } else if(response.code() == 401) { - AlertDialogs.authorizationTokenRevokedDialog(ctx, getResources().getString(R.string.alertDialogTokenRevokedTitle), getResources().getString(R.string.alertDialogTokenRevokedMessage), getResources().getString(R.string.cancelButton), getResources().getString(R.string.navLogout)); + AlertDialogs.authorizationTokenRevokedDialog(ctx, getResources().getString(R.string.alertDialogTokenRevokedTitle), getResources().getString(R.string.alertDialogTokenRevokedMessage), getResources().getString(R.string.cancelButton), + getResources().getString(R.string.navLogout)); } else { @@ -691,8 +697,6 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig @Override public void onFailure(@NonNull Call call, @NonNull Throwable t) { - - Log.e("onFailure", t.toString()); } }); @@ -719,8 +723,6 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig @Override public void onFailure(@NonNull Call call, @NonNull Throwable t) { - - Log.e("onFailure-notification", t.toString()); } }); } @@ -730,7 +732,7 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig this.profileInitListener = profileInitListener; } - // My issues-open-close interface + // My issues interface public FragmentRefreshListener getFragmentRefreshListener() { return fragmentRefreshListenerMyIssues; } public void setFragmentRefreshListenerMyIssues(FragmentRefreshListener fragmentRefreshListener) { this.fragmentRefreshListenerMyIssues = fragmentRefreshListener; } } diff --git a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetMyIssuesFilterFragment.java b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetMyIssuesFilterFragment.java index 69d0e75d..6bbcd271 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetMyIssuesFilterFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetMyIssuesFilterFragment.java @@ -35,6 +35,11 @@ public class BottomSheetMyIssuesFilterFragment extends BottomSheetDialogFragment dismiss(); }); + bottomSheetIssuesFilterBinding.assignedToMe.setOnClickListener(v12 -> { + bmListener.onButtonClicked("assignedToMe"); + dismiss(); + }); + return bottomSheetIssuesFilterBinding.getRoot(); } diff --git a/app/src/main/java/org/mian/gitnex/fragments/ExploreIssuesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/ExploreIssuesFragment.java index ea3e7862..b04713c3 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/ExploreIssuesFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/ExploreIssuesFragment.java @@ -57,7 +57,7 @@ public class ExploreIssuesFragment extends Fragment { IssuesViewModel issuesModel = new ViewModelProvider(this).get(IssuesViewModel.class); - issuesModel.getIssuesList(searchKeyword, "issues", null, "open", getContext()).observe(getViewLifecycleOwner(), issuesListMain -> { + issuesModel.getIssuesList(searchKeyword, "issues", null, "open", null, getContext()).observe(getViewLifecycleOwner(), issuesListMain -> { adapter = new ExploreIssuesAdapter(issuesListMain, getContext()); adapter.setLoadMoreListener(new ExploreIssuesAdapter.OnLoadMoreListener() { @@ -66,7 +66,7 @@ public class ExploreIssuesFragment extends Fragment { public void onLoadMore() { page += 1; - IssuesViewModel.loadMoreIssues(searchKeyword, "issues", null, "open", page, getContext(), adapter); + IssuesViewModel.loadMoreIssues(searchKeyword, "issues", null, "open", page, null, getContext(), adapter); viewBinding.progressBar.setVisibility(View.VISIBLE); } diff --git a/app/src/main/java/org/mian/gitnex/fragments/MyIssuesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/MyIssuesFragment.java index 86e99d9a..4a47554b 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/MyIssuesFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/MyIssuesFragment.java @@ -32,6 +32,7 @@ public class MyIssuesFragment extends Fragment { private int page = 1; private Menu menu; public String state = "open"; + public boolean assignedToMe = false; @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -45,40 +46,42 @@ public class MyIssuesFragment extends Fragment { DividerItemDecoration.VERTICAL); fragmentIssuesBinding.recyclerView.addItemDecoration(dividerItemDecoration); - ((MainActivity) requireActivity()).setFragmentRefreshListenerMyIssues(myIssuesState -> { + ((MainActivity) requireActivity()).setFragmentRefreshListenerMyIssues(myIssues -> { - state = myIssuesState; - if(myIssuesState.equals("open")) { - menu.getItem(1).setIcon(R.drawable.ic_filter); - } - else { + state = myIssues; + if(state.equals("closed")) { menu.getItem(1).setIcon(R.drawable.ic_filter_closed); } + else { + menu.getItem(1).setIcon(R.drawable.ic_filter); + } + + assignedToMe = state.equals("assignedToMe"); fragmentIssuesBinding.progressBar.setVisibility(View.VISIBLE); fragmentIssuesBinding.noDataIssues.setVisibility(View.GONE); - fetchDataAsync(null, myIssuesState); + fetchDataAsync(null, state, assignedToMe); }); fragmentIssuesBinding.pullToRefresh.setOnRefreshListener(() -> new Handler(Looper.getMainLooper()).postDelayed(() -> { page = 1; fragmentIssuesBinding.pullToRefresh.setRefreshing(false); - IssuesViewModel.loadIssuesList(null, "issues", true, state, getContext()); + IssuesViewModel.loadIssuesList(null, "issues", true, state, assignedToMe, getContext()); fragmentIssuesBinding.progressBar.setVisibility(View.VISIBLE); }, 50)); - fetchDataAsync(null, state); + fetchDataAsync(null, state, assignedToMe); return fragmentIssuesBinding.getRoot(); }; - private void fetchDataAsync(String query, String state) { + private void fetchDataAsync(String query, String state, boolean assignedToMe) { IssuesViewModel issuesModel = new ViewModelProvider(this).get(IssuesViewModel.class); - issuesModel.getIssuesList(query, "issues", true, state, getContext()).observe(getViewLifecycleOwner(), issuesListMain -> { + issuesModel.getIssuesList(query, "issues", true, state, assignedToMe, getContext()).observe(getViewLifecycleOwner(), issuesListMain -> { adapter = new ExploreIssuesAdapter(issuesListMain, getContext()); adapter.setLoadMoreListener(new ExploreIssuesAdapter.OnLoadMoreListener() { @@ -87,7 +90,7 @@ public class MyIssuesFragment extends Fragment { public void onLoadMore() { page += 1; - IssuesViewModel.loadMoreIssues(query, "issues", true, state, page, getContext(), adapter); + IssuesViewModel.loadMoreIssues(query, "issues", true, state, page, assignedToMe, getContext(), adapter); fragmentIssuesBinding.progressBar.setVisibility(View.VISIBLE); } @@ -128,7 +131,7 @@ public class MyIssuesFragment extends Fragment { @Override public boolean onQueryTextSubmit(String query) { - fetchDataAsync(query, state); + fetchDataAsync(query, state, assignedToMe); searchView.setQuery(null, false); searchItem.collapseActionView(); return false; diff --git a/app/src/main/java/org/mian/gitnex/viewmodels/IssuesViewModel.java b/app/src/main/java/org/mian/gitnex/viewmodels/IssuesViewModel.java index 1d0f20b1..c09d38df 100644 --- a/app/src/main/java/org/mian/gitnex/viewmodels/IssuesViewModel.java +++ b/app/src/main/java/org/mian/gitnex/viewmodels/IssuesViewModel.java @@ -26,7 +26,7 @@ public class IssuesViewModel extends ViewModel { private static MutableLiveData> issuesList; private static int resultLimit = Constants.resultLimitOldGiteaInstances; - public LiveData> getIssuesList(String searchKeyword, String type, Boolean created, String state, Context ctx) { + public LiveData> getIssuesList(String searchKeyword, String type, Boolean created, String state, Boolean assignedToMe, Context ctx) { issuesList = new MutableLiveData<>(); @@ -35,17 +35,16 @@ public class IssuesViewModel extends ViewModel { resultLimit = Constants.resultLimitNewGiteaInstances; } - loadIssuesList(searchKeyword, type, created, state, ctx); + loadIssuesList(searchKeyword, type, created, state, assignedToMe, ctx); return issuesList; } - public static void loadIssuesList(String searchKeyword, String type, Boolean created, String state, Context ctx) { + public static void loadIssuesList(String searchKeyword, String type, Boolean created, String state, Boolean assignedToMe, Context ctx) { - Call> call = RetrofitClient - .getApiInterface(ctx) - .issueSearchIssues(state, null, null, searchKeyword, null, type, null, null, - null, created, null, null, null, null, 1, resultLimit); + Call> call = RetrofitClient.getApiInterface(ctx) + .issueSearchIssues(state, null, null, searchKeyword, null, type, null, null, assignedToMe, created, null, null, null, null, 1, + resultLimit); call.enqueue(new Callback<>() { @@ -68,12 +67,10 @@ public class IssuesViewModel extends ViewModel { }); } - public static void loadMoreIssues(String searchKeyword, String type, Boolean created, String state, int page, Context ctx, ExploreIssuesAdapter adapter) { + public static void loadMoreIssues(String searchKeyword, String type, Boolean created, String state, int page, Boolean assignedToMe, Context ctx, ExploreIssuesAdapter adapter) { - Call> call = RetrofitClient - .getApiInterface(ctx) - .issueSearchIssues(state, null, null, searchKeyword, null, type, null, null, - null, created, null, null, null, null, page, resultLimit); + Call> call = RetrofitClient.getApiInterface(ctx) + .issueSearchIssues(state, null, null, searchKeyword, null, type, null, null, assignedToMe, created, null, null, null, null, page, resultLimit); call.enqueue(new Callback<>() { diff --git a/app/src/main/res/layout/bottom_sheet_my_issues_filter.xml b/app/src/main/res/layout/bottom_sheet_my_issues_filter.xml index c859fc1d..02b2902d 100644 --- a/app/src/main/res/layout/bottom_sheet_my_issues_filter.xml +++ b/app/src/main/res/layout/bottom_sheet_my_issues_filter.xml @@ -71,6 +71,19 @@ android:textColor="?attr/primaryTextColor" android:textSize="16sp" /> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7092415a..484fd353 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -145,6 +145,7 @@ Milestone %1$s Due on %1$s Assigned to: %1$s + Assigned to Me Comment Please write your comment Comment posted