mirror of
https://github.com/gitnex-org/gitnex.git
synced 2026-07-19 17:59:26 -05:00
Remove deprecated menu and use MenuProvider instead
This commit is contained in:
@@ -18,7 +18,6 @@ import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.activities.MainActivity;
|
||||
import org.mian.gitnex.helpers.AppDatabaseSettings;
|
||||
import org.mian.gitnex.helpers.AppUtil;
|
||||
import org.mian.gitnex.helpers.TinyDB;
|
||||
import org.mian.gitnex.helpers.ViewPager2Transformers;
|
||||
|
||||
/**
|
||||
@@ -35,7 +34,6 @@ public class ExploreFragment extends Fragment {
|
||||
View view = inflater.inflate(R.layout.fragment_explore, container, false);
|
||||
|
||||
Context ctx = getContext();
|
||||
TinyDB tinyDB = TinyDB.getInstance(ctx);
|
||||
|
||||
((MainActivity) requireActivity())
|
||||
.setActionBarTitle(getResources().getString(R.string.pageTitleExplore));
|
||||
|
||||
@@ -105,7 +105,7 @@ public class ExplorePublicOrganizationsFragment extends Fragment {
|
||||
@NonNull Call<List<Organization>> call,
|
||||
@NonNull Response<List<Organization>> response) {
|
||||
if (response.isSuccessful()) {
|
||||
if (response.body() != null && response.body().size() > 0) {
|
||||
if (response.body() != null && !response.body().isEmpty()) {
|
||||
organizationsList.clear();
|
||||
organizationsList.addAll(response.body());
|
||||
adapter.notifyDataChanged();
|
||||
@@ -147,7 +147,7 @@ public class ExplorePublicOrganizationsFragment extends Fragment {
|
||||
if (response.isSuccessful()) {
|
||||
List<Organization> result = response.body();
|
||||
if (result != null) {
|
||||
if (result.size() > 0) {
|
||||
if (!result.isEmpty()) {
|
||||
pageSize = result.size();
|
||||
organizationsList.addAll(result);
|
||||
} else {
|
||||
|
||||
@@ -15,7 +15,9 @@ import android.view.inputmethod.EditorInfo;
|
||||
import androidx.activity.OnBackPressedCallback;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.widget.SearchView;
|
||||
import androidx.core.view.MenuProvider;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
@@ -76,7 +78,6 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter
|
||||
@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
|
||||
binding = FragmentFilesBinding.inflate(inflater, container, false);
|
||||
setHasOptionsMenu(true);
|
||||
|
||||
boolean canPush = repository.getPermissions().isPush();
|
||||
boolean archived = repository.getRepository().isArchived();
|
||||
@@ -184,6 +185,51 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter
|
||||
|
||||
binding.switchBranch.setOnClickListener(switchBranch -> chooseBranch());
|
||||
|
||||
requireActivity()
|
||||
.addMenuProvider(
|
||||
new MenuProvider() {
|
||||
@Override
|
||||
public void onCreateMenu(
|
||||
@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||
|
||||
menuInflater.inflate(R.menu.search_menu, menu);
|
||||
menuInflater.inflate(R.menu.files_switch_branches_menu, menu);
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
androidx.appcompat.widget.SearchView searchView =
|
||||
(androidx.appcompat.widget.SearchView)
|
||||
searchItem.getActionView();
|
||||
assert searchView != null;
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
|
||||
searchView.setOnQueryTextListener(
|
||||
new SearchView.OnQueryTextListener() {
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
|
||||
if (binding.recyclerView.getAdapter() != null) {
|
||||
filesAdapter.getFilter().filter(newText);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
getViewLifecycleOwner(),
|
||||
Lifecycle.State.RESUMED);
|
||||
|
||||
return binding.getRoot();
|
||||
}
|
||||
|
||||
@@ -415,39 +461,4 @@ public class FilesFragment extends Fragment implements FilesAdapter.FilesAdapter
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
||||
|
||||
menu.clear();
|
||||
|
||||
inflater.inflate(R.menu.search_menu, menu);
|
||||
inflater.inflate(R.menu.files_switch_branches_menu, menu);
|
||||
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
|
||||
SearchView searchView = (SearchView) searchItem.getActionView();
|
||||
assert searchView != null;
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
searchView.setOnQueryTextListener(
|
||||
new SearchView.OnQueryTextListener() {
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
|
||||
if (binding.recyclerView.getAdapter() != null) {
|
||||
filesAdapter.getFilter().filter(newText);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,9 @@ import android.view.ViewGroup;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.view.MenuProvider;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -41,7 +43,6 @@ public class IssuesFragment extends Fragment {
|
||||
private final String requestType = Constants.issuesRequestType;
|
||||
private FragmentIssuesBinding fragmentIssuesBinding;
|
||||
private Context context;
|
||||
private Menu menu;
|
||||
private List<Issue> issuesList;
|
||||
private List<Issue> pinnedIssuesList;
|
||||
private IssuesAdapter adapter;
|
||||
@@ -63,7 +64,6 @@ public class IssuesFragment extends Fragment {
|
||||
@Nullable Bundle savedInstanceState) {
|
||||
|
||||
fragmentIssuesBinding = FragmentIssuesBinding.inflate(inflater, container, false);
|
||||
setHasOptionsMenu(true);
|
||||
context = getContext();
|
||||
|
||||
repository = RepositoryContext.fromBundle(requireArguments());
|
||||
@@ -126,12 +126,6 @@ public class IssuesFragment extends Fragment {
|
||||
((RepoDetailActivity) requireActivity())
|
||||
.setFragmentRefreshListener(
|
||||
issueState -> {
|
||||
if (issueState.equals("closed")) {
|
||||
menu.getItem(1).setIcon(R.drawable.ic_filter_closed);
|
||||
} else {
|
||||
menu.getItem(1).setIcon(R.drawable.ic_filter);
|
||||
}
|
||||
|
||||
issuesList.clear();
|
||||
|
||||
adapter = new IssuesAdapter(context, issuesList, "");
|
||||
@@ -247,6 +241,64 @@ public class IssuesFragment extends Fragment {
|
||||
fragmentIssuesBinding.createNewIssue.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
requireActivity()
|
||||
.addMenuProvider(
|
||||
new MenuProvider() {
|
||||
|
||||
@Override
|
||||
public void onCreateMenu(
|
||||
@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||
|
||||
menuInflater.inflate(R.menu.search_menu, menu);
|
||||
menuInflater.inflate(R.menu.filter_menu, menu);
|
||||
|
||||
if (repository.getIssueState().toString().equals("closed")) {
|
||||
menu.getItem(1).setIcon(R.drawable.ic_filter_closed);
|
||||
} else {
|
||||
menu.getItem(1).setIcon(R.drawable.ic_filter);
|
||||
}
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
androidx.appcompat.widget.SearchView searchView =
|
||||
(androidx.appcompat.widget.SearchView)
|
||||
searchItem.getActionView();
|
||||
assert searchView != null;
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
|
||||
searchView.setOnQueryTextListener(
|
||||
new androidx.appcompat.widget.SearchView
|
||||
.OnQueryTextListener() {
|
||||
|
||||
@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) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
getViewLifecycleOwner(),
|
||||
Lifecycle.State.RESUMED);
|
||||
|
||||
return fragmentIssuesBinding.getRoot();
|
||||
}
|
||||
|
||||
@@ -439,7 +491,7 @@ public class IssuesFragment extends Fragment {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
/*@Override
|
||||
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
||||
|
||||
this.menu = menu;
|
||||
@@ -481,5 +533,5 @@ public class IssuesFragment extends Fragment {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -53,7 +53,6 @@ public class LabelsFragment extends Fragment {
|
||||
|
||||
FragmentLabelsBinding fragmentLabelsBinding =
|
||||
FragmentLabelsBinding.inflate(inflater, container, false);
|
||||
setHasOptionsMenu(true);
|
||||
|
||||
boolean canPush = repository.getPermissions().isPush();
|
||||
boolean archived = repository.getRepository().isArchived();
|
||||
|
||||
@@ -13,7 +13,9 @@ import android.view.ViewGroup;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.view.MenuProvider;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import java.util.ArrayList;
|
||||
@@ -34,7 +36,6 @@ public class MilestonesFragment extends Fragment {
|
||||
|
||||
private MilestonesViewModel milestonesViewModel;
|
||||
private FragmentMilestonesBinding viewBinding;
|
||||
private Menu menu;
|
||||
private List<Milestone> dataList;
|
||||
private MilestonesAdapter adapter;
|
||||
private RepositoryContext repository;
|
||||
@@ -59,7 +60,6 @@ public class MilestonesFragment extends Fragment {
|
||||
@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
|
||||
viewBinding = FragmentMilestonesBinding.inflate(inflater, container, false);
|
||||
setHasOptionsMenu(true);
|
||||
Context ctx = getContext();
|
||||
milestonesViewModel = new ViewModelProvider(this).get(MilestonesViewModel.class);
|
||||
|
||||
@@ -96,11 +96,6 @@ public class MilestonesFragment extends Fragment {
|
||||
.setFragmentRefreshListenerMilestone(
|
||||
milestoneState -> {
|
||||
state = milestoneState;
|
||||
if (milestoneState.equals("open")) {
|
||||
menu.getItem(1).setIcon(R.drawable.ic_filter);
|
||||
} else {
|
||||
menu.getItem(1).setIcon(R.drawable.ic_filter_closed);
|
||||
}
|
||||
|
||||
page = 1;
|
||||
dataList.clear();
|
||||
@@ -119,6 +114,56 @@ public class MilestonesFragment extends Fragment {
|
||||
v13 -> startActivity(repository.getIntent(ctx, CreateMilestoneActivity.class)));
|
||||
|
||||
fetchDataAsync(repository.getOwner(), repository.getName(), state);
|
||||
|
||||
requireActivity()
|
||||
.addMenuProvider(
|
||||
new MenuProvider() {
|
||||
|
||||
@Override
|
||||
public void onCreateMenu(
|
||||
@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||
|
||||
menuInflater.inflate(R.menu.search_menu, menu);
|
||||
menuInflater.inflate(R.menu.filter_menu_milestone, menu);
|
||||
|
||||
if (repository.getMilestoneState().toString().equals("open")) {
|
||||
menu.getItem(1).setIcon(R.drawable.ic_filter);
|
||||
} else {
|
||||
menu.getItem(1).setIcon(R.drawable.ic_filter_closed);
|
||||
}
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
androidx.appcompat.widget.SearchView searchView =
|
||||
(androidx.appcompat.widget.SearchView)
|
||||
searchItem.getActionView();
|
||||
assert searchView != null;
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
|
||||
searchView.setOnQueryTextListener(
|
||||
new androidx.appcompat.widget.SearchView
|
||||
.OnQueryTextListener() {
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
filter(newText);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
getViewLifecycleOwner(),
|
||||
Lifecycle.State.RESUMED);
|
||||
|
||||
return viewBinding.getRoot();
|
||||
}
|
||||
|
||||
@@ -195,37 +240,6 @@ public class MilestonesFragment extends Fragment {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
||||
|
||||
this.menu = menu;
|
||||
inflater.inflate(R.menu.search_menu, menu);
|
||||
inflater.inflate(R.menu.filter_menu_milestone, menu);
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
androidx.appcompat.widget.SearchView searchView =
|
||||
(androidx.appcompat.widget.SearchView) searchItem.getActionView();
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
|
||||
searchView.setOnQueryTextListener(
|
||||
new androidx.appcompat.widget.SearchView.OnQueryTextListener() {
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
|
||||
filter(newText);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void filter(String text) {
|
||||
|
||||
List<Milestone> arr = new ArrayList<>();
|
||||
|
||||
@@ -12,7 +12,9 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.view.MenuProvider;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import java.util.ArrayList;
|
||||
@@ -45,11 +47,8 @@ public class NotificationsFragment extends Fragment
|
||||
private final List<NotificationThread> notificationThreads = new ArrayList<>();
|
||||
private FragmentNotificationsBinding viewBinding;
|
||||
private NotificationsAdapter notificationsAdapter;
|
||||
|
||||
private Activity activity;
|
||||
private Context context;
|
||||
private Menu menu;
|
||||
|
||||
private int pageCurrentIndex = 1;
|
||||
private int pageResultLimit;
|
||||
private String currentFilterMode = "unread";
|
||||
@@ -68,7 +67,6 @@ public class NotificationsFragment extends Fragment
|
||||
@Nullable Bundle savedInstanceState) {
|
||||
|
||||
viewBinding = FragmentNotificationsBinding.inflate(inflater, container, false);
|
||||
setHasOptionsMenu(true);
|
||||
|
||||
activity = requireActivity();
|
||||
context = getContext();
|
||||
@@ -133,37 +131,42 @@ public class NotificationsFragment extends Fragment
|
||||
loadNotifications(false);
|
||||
} else {
|
||||
|
||||
if (!emptyErrorResponse.isEmpty()) {
|
||||
if (emptyErrorResponse.contains(
|
||||
"205")) {
|
||||
if (emptyErrorResponse != null) {
|
||||
if (!emptyErrorResponse.isEmpty()) {
|
||||
if (emptyErrorResponse.contains(
|
||||
"205")) {
|
||||
|
||||
SnackBar.success(
|
||||
context,
|
||||
requireActivity()
|
||||
.findViewById(
|
||||
android.R.id
|
||||
.content),
|
||||
getString(
|
||||
R.string
|
||||
.markedNotificationsAsRead));
|
||||
pageCurrentIndex = 1;
|
||||
loadNotifications(false);
|
||||
SnackBar.success(
|
||||
context,
|
||||
requireActivity()
|
||||
.findViewById(
|
||||
android
|
||||
.R
|
||||
.id
|
||||
.content),
|
||||
getString(
|
||||
R.string
|
||||
.markedNotificationsAsRead));
|
||||
pageCurrentIndex = 1;
|
||||
loadNotifications(false);
|
||||
}
|
||||
} else {
|
||||
|
||||
activity.runOnUiThread(
|
||||
() ->
|
||||
SnackBar.error(
|
||||
context,
|
||||
requireActivity()
|
||||
.findViewById(
|
||||
android
|
||||
.R
|
||||
.id
|
||||
.content),
|
||||
getString(
|
||||
R
|
||||
.string
|
||||
.genericError)));
|
||||
}
|
||||
} else {
|
||||
|
||||
activity.runOnUiThread(
|
||||
() ->
|
||||
SnackBar.error(
|
||||
context,
|
||||
requireActivity()
|
||||
.findViewById(
|
||||
android
|
||||
.R
|
||||
.id
|
||||
.content),
|
||||
getString(
|
||||
R.string
|
||||
.genericError)));
|
||||
}
|
||||
}
|
||||
}));
|
||||
@@ -176,6 +179,73 @@ public class NotificationsFragment extends Fragment
|
||||
});
|
||||
|
||||
loadNotifications(true);
|
||||
|
||||
requireActivity()
|
||||
.addMenuProvider(
|
||||
new MenuProvider() {
|
||||
|
||||
Menu menu;
|
||||
|
||||
@Override
|
||||
public void onCreateMenu(
|
||||
@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||
|
||||
this.menu = menu;
|
||||
menuInflater.inflate(R.menu.filter_menu_notifications, menu);
|
||||
|
||||
int filterIcon =
|
||||
currentFilterMode.equalsIgnoreCase("read")
|
||||
? R.drawable.ic_filter_closed
|
||||
: R.drawable.ic_filter;
|
||||
|
||||
menu.getItem(0).setIcon(filterIcon);
|
||||
|
||||
if (currentFilterMode.equalsIgnoreCase("read")) {
|
||||
viewBinding.markAllAsRead.setVisibility(View.GONE);
|
||||
} else {
|
||||
viewBinding.markAllAsRead.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
|
||||
|
||||
if (menu.getItem(0).getItemId() == R.id.filterNotifications) {
|
||||
|
||||
BottomSheetNotificationsFilterFragment
|
||||
bottomSheetNotificationsFilterFragment =
|
||||
new BottomSheetNotificationsFilterFragment();
|
||||
bottomSheetNotificationsFilterFragment.show(
|
||||
getChildFragmentManager(),
|
||||
"notificationsFilterBottomSheet");
|
||||
bottomSheetNotificationsFilterFragment.setOnClickListener(
|
||||
(text) -> {
|
||||
currentFilterMode = text;
|
||||
pageCurrentIndex = 1;
|
||||
loadNotifications(false);
|
||||
|
||||
int filterIcon =
|
||||
currentFilterMode.equalsIgnoreCase("read")
|
||||
? R.drawable.ic_filter_closed
|
||||
: R.drawable.ic_filter;
|
||||
|
||||
menu.getItem(0).setIcon(filterIcon);
|
||||
|
||||
if (currentFilterMode.equalsIgnoreCase("read")) {
|
||||
viewBinding.markAllAsRead.setVisibility(
|
||||
View.GONE);
|
||||
} else {
|
||||
viewBinding.markAllAsRead.setVisibility(
|
||||
View.VISIBLE);
|
||||
}
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
},
|
||||
getViewLifecycleOwner(),
|
||||
Lifecycle.State.RESUMED);
|
||||
|
||||
return viewBinding.getRoot();
|
||||
}
|
||||
|
||||
@@ -216,9 +286,9 @@ public class NotificationsFragment extends Fragment
|
||||
}
|
||||
|
||||
if (!append
|
||||
|| Objects.requireNonNull(listResponse.get().body())
|
||||
.size()
|
||||
> 0) {
|
||||
|| !Objects.requireNonNull(
|
||||
listResponse.get().body())
|
||||
.isEmpty()) {
|
||||
notificationsAdapter.notifyDataChanged();
|
||||
}
|
||||
}
|
||||
@@ -241,53 +311,6 @@ public class NotificationsFragment extends Fragment
|
||||
});
|
||||
}
|
||||
|
||||
private void changeFilterMode() {
|
||||
|
||||
int filterIcon =
|
||||
currentFilterMode.equalsIgnoreCase("read")
|
||||
? R.drawable.ic_filter_closed
|
||||
: R.drawable.ic_filter;
|
||||
|
||||
menu.getItem(0).setIcon(filterIcon);
|
||||
|
||||
if (currentFilterMode.equalsIgnoreCase("read")) {
|
||||
viewBinding.markAllAsRead.setVisibility(View.GONE);
|
||||
} else {
|
||||
viewBinding.markAllAsRead.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
||||
|
||||
this.menu = menu;
|
||||
inflater.inflate(R.menu.filter_menu_notifications, menu);
|
||||
changeFilterMode();
|
||||
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
||||
|
||||
if (item.getItemId() == R.id.filterNotifications) {
|
||||
|
||||
BottomSheetNotificationsFilterFragment bottomSheetNotificationsFilterFragment =
|
||||
new BottomSheetNotificationsFilterFragment();
|
||||
bottomSheetNotificationsFilterFragment.show(
|
||||
getChildFragmentManager(), "notificationsFilterBottomSheet");
|
||||
bottomSheetNotificationsFilterFragment.setOnClickListener(
|
||||
(text) -> {
|
||||
currentFilterMode = text;
|
||||
changeFilterMode();
|
||||
pageCurrentIndex = 1;
|
||||
loadNotifications(false);
|
||||
});
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNotificationClicked(NotificationThread notificationThread) {
|
||||
|
||||
|
||||
@@ -65,7 +65,6 @@ public class OrganizationLabelsFragment extends Fragment {
|
||||
|
||||
FragmentLabelsBinding fragmentLabelsBinding =
|
||||
FragmentLabelsBinding.inflate(inflater, container, false);
|
||||
setHasOptionsMenu(true);
|
||||
organizationLabelsViewModel =
|
||||
new ViewModelProvider(this).get(OrganizationLabelsViewModel.class);
|
||||
|
||||
|
||||
@@ -12,9 +12,12 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.view.MenuProvider;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import java.util.Objects;
|
||||
import org.gitnex.tea4j.v2.models.OrganizationPermissions;
|
||||
import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.activities.CreateRepoActivity;
|
||||
@@ -65,7 +68,6 @@ public class OrganizationRepositoriesFragment extends Fragment {
|
||||
|
||||
fragmentRepositoriesBinding =
|
||||
FragmentRepositoriesBinding.inflate(inflater, container, false);
|
||||
setHasOptionsMenu(true);
|
||||
repositoriesViewModel = new ViewModelProvider(this).get(RepositoriesViewModel.class);
|
||||
|
||||
resultLimit = Constants.getCurrentResultLimit(getContext());
|
||||
@@ -102,10 +104,57 @@ public class OrganizationRepositoriesFragment extends Fragment {
|
||||
Intent intentRepo = new Intent(getContext(), CreateRepoActivity.class);
|
||||
intentRepo.putExtra("organizationAction", true);
|
||||
intentRepo.putExtra("orgName", orgName);
|
||||
intentRepo.putExtras(requireActivity().getIntent().getExtras());
|
||||
intentRepo.putExtras(
|
||||
Objects.requireNonNull(requireActivity().getIntent().getExtras()));
|
||||
startActivity(intentRepo);
|
||||
});
|
||||
|
||||
requireActivity()
|
||||
.addMenuProvider(
|
||||
new MenuProvider() {
|
||||
|
||||
@Override
|
||||
public void onCreateMenu(
|
||||
@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||
|
||||
menuInflater.inflate(R.menu.search_menu, menu);
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
androidx.appcompat.widget.SearchView searchView =
|
||||
(androidx.appcompat.widget.SearchView)
|
||||
searchItem.getActionView();
|
||||
assert searchView != null;
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
|
||||
searchView.setOnQueryTextListener(
|
||||
new androidx.appcompat.widget.SearchView
|
||||
.OnQueryTextListener() {
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
if (fragmentRepositoriesBinding.recyclerView
|
||||
.getAdapter()
|
||||
!= null) {
|
||||
adapter.getFilter().filter(newText);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
getViewLifecycleOwner(),
|
||||
Lifecycle.State.RESUMED);
|
||||
|
||||
return fragmentRepositoriesBinding.getRoot();
|
||||
}
|
||||
|
||||
@@ -176,32 +225,4 @@ public class OrganizationRepositoriesFragment extends Fragment {
|
||||
OrganizationDetailActivity.updateOrgFABActions = false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
||||
|
||||
inflater.inflate(R.menu.search_menu, menu);
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
androidx.appcompat.widget.SearchView searchView =
|
||||
(androidx.appcompat.widget.SearchView) searchItem.getActionView();
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
|
||||
searchView.setOnQueryTextListener(
|
||||
new androidx.appcompat.widget.SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
if (fragmentRepositoriesBinding.recyclerView.getAdapter() != null) {
|
||||
adapter.getFilter().filter(newText);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
+52
-31
@@ -12,9 +12,12 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.view.MenuProvider;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import java.util.Objects;
|
||||
import org.gitnex.tea4j.v2.models.OrganizationPermissions;
|
||||
import org.gitnex.tea4j.v2.models.Team;
|
||||
import org.mian.gitnex.R;
|
||||
@@ -58,7 +61,7 @@ public class OrganizationTeamInfoReposFragment extends Fragment {
|
||||
FragmentRepositoriesBinding.inflate(inflater, container, false);
|
||||
|
||||
resultLimit = Constants.getCurrentResultLimit(getContext());
|
||||
setHasOptionsMenu(true);
|
||||
|
||||
team = (Team) requireArguments().getSerializable("team");
|
||||
|
||||
repositoriesViewModel = new ViewModelProvider(this).get(RepositoriesViewModel.class);
|
||||
@@ -89,7 +92,8 @@ public class OrganizationTeamInfoReposFragment extends Fragment {
|
||||
(OrganizationPermissions)
|
||||
requireActivity().getIntent().getSerializableExtra("permissions");
|
||||
|
||||
if (!requireArguments().getBoolean("showRepo") || !permissions.isIsOwner()) {
|
||||
if (!requireArguments().getBoolean("showRepo")
|
||||
|| !Objects.requireNonNull(permissions).isIsOwner()) {
|
||||
fragmentRepositoriesBinding.addNewRepo.setVisibility(View.GONE);
|
||||
}
|
||||
fragmentRepositoriesBinding.addNewRepo.setOnClickListener(
|
||||
@@ -102,6 +106,52 @@ public class OrganizationTeamInfoReposFragment extends Fragment {
|
||||
startActivity(intent);
|
||||
});
|
||||
|
||||
requireActivity()
|
||||
.addMenuProvider(
|
||||
new MenuProvider() {
|
||||
|
||||
@Override
|
||||
public void onCreateMenu(
|
||||
@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||
|
||||
menuInflater.inflate(R.menu.search_menu, menu);
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
androidx.appcompat.widget.SearchView searchView =
|
||||
(androidx.appcompat.widget.SearchView)
|
||||
searchItem.getActionView();
|
||||
assert searchView != null;
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
|
||||
searchView.setOnQueryTextListener(
|
||||
new androidx.appcompat.widget.SearchView
|
||||
.OnQueryTextListener() {
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
if (fragmentRepositoriesBinding.recyclerView
|
||||
.getAdapter()
|
||||
!= null) {
|
||||
adapter.getFilter().filter(newText);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
getViewLifecycleOwner(),
|
||||
Lifecycle.State.RESUMED);
|
||||
|
||||
return fragmentRepositoriesBinding.getRoot();
|
||||
}
|
||||
|
||||
@@ -170,33 +220,4 @@ public class OrganizationTeamInfoReposFragment extends Fragment {
|
||||
MainActivity.reloadRepos = false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
||||
|
||||
inflater.inflate(R.menu.search_menu, menu);
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
androidx.appcompat.widget.SearchView searchView =
|
||||
(androidx.appcompat.widget.SearchView) searchItem.getActionView();
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
|
||||
searchView.setOnQueryTextListener(
|
||||
new androidx.appcompat.widget.SearchView.OnQueryTextListener() {
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
if (fragmentRepositoriesBinding.recyclerView.getAdapter() != null) {
|
||||
adapter.getFilter().filter(newText);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.mian.gitnex.fragments;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
@@ -14,11 +15,14 @@ import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.view.MenuProvider;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
import java.util.Objects;
|
||||
import org.gitnex.tea4j.v2.models.OrganizationPermissions;
|
||||
import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.activities.CreateTeamByOrgActivity;
|
||||
@@ -69,7 +73,7 @@ public class OrganizationTeamsFragment extends Fragment {
|
||||
|
||||
FragmentOrganizationTeamsBinding fragmentTeamsByOrgBinding =
|
||||
FragmentOrganizationTeamsBinding.inflate(inflater, container, false);
|
||||
setHasOptionsMenu(true);
|
||||
|
||||
teamsByOrgViewModel = new ViewModelProvider(this).get(TeamsByOrgViewModel.class);
|
||||
|
||||
noDataTeams = fragmentTeamsByOrgBinding.noDataTeams;
|
||||
@@ -105,10 +109,55 @@ public class OrganizationTeamsFragment extends Fragment {
|
||||
fragmentTeamsByOrgBinding.createTeam.setOnClickListener(
|
||||
v1 -> {
|
||||
Intent intentTeam = new Intent(getContext(), CreateTeamByOrgActivity.class);
|
||||
intentTeam.putExtras(requireActivity().getIntent().getExtras());
|
||||
intentTeam.putExtras(
|
||||
Objects.requireNonNull(requireActivity().getIntent().getExtras()));
|
||||
startActivity(intentTeam);
|
||||
});
|
||||
|
||||
requireActivity()
|
||||
.addMenuProvider(
|
||||
new MenuProvider() {
|
||||
|
||||
@Override
|
||||
public void onCreateMenu(
|
||||
@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||
|
||||
menuInflater.inflate(R.menu.search_menu, menu);
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
androidx.appcompat.widget.SearchView searchView =
|
||||
(androidx.appcompat.widget.SearchView)
|
||||
searchItem.getActionView();
|
||||
assert searchView != null;
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
|
||||
searchView.setOnQueryTextListener(
|
||||
new androidx.appcompat.widget.SearchView
|
||||
.OnQueryTextListener() {
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
if (mRecyclerView.getAdapter() != null) {
|
||||
adapter.getFilter().filter(newText);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
getViewLifecycleOwner(),
|
||||
Lifecycle.State.RESUMED);
|
||||
|
||||
return fragmentTeamsByOrgBinding.getRoot();
|
||||
}
|
||||
|
||||
@@ -122,6 +171,7 @@ public class OrganizationTeamsFragment extends Fragment {
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("NotifyDataSetChanged")
|
||||
private void fetchDataAsync(String owner) {
|
||||
|
||||
teamsByOrgViewModel
|
||||
@@ -143,32 +193,4 @@ public class OrganizationTeamsFragment extends Fragment {
|
||||
mProgressBar.setVisibility(View.GONE);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
||||
|
||||
inflater.inflate(R.menu.search_menu, menu);
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
androidx.appcompat.widget.SearchView searchView =
|
||||
(androidx.appcompat.widget.SearchView) searchItem.getActionView();
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
|
||||
searchView.setOnQueryTextListener(
|
||||
new androidx.appcompat.widget.SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
if (mRecyclerView.getAdapter() != null) {
|
||||
adapter.getFilter().filter(newText);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,12 +14,13 @@ import android.view.ViewGroup;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.RelativeLayout;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.view.MenuProvider;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.gitnex.tea4j.v2.models.Commit;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.adapters.CommitsAdapter;
|
||||
import org.mian.gitnex.clients.RetrofitClient;
|
||||
@@ -108,6 +109,48 @@ public class PullRequestCommitsFragment extends Fragment {
|
||||
|
||||
loadInitial(issue, resultLimit);
|
||||
|
||||
requireActivity()
|
||||
.addMenuProvider(
|
||||
new MenuProvider() {
|
||||
|
||||
@Override
|
||||
public void onCreateMenu(
|
||||
@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||
|
||||
menuInflater.inflate(R.menu.search_menu, menu);
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
androidx.appcompat.widget.SearchView searchView =
|
||||
(androidx.appcompat.widget.SearchView)
|
||||
searchItem.getActionView();
|
||||
assert searchView != null;
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
|
||||
searchView.setOnQueryTextListener(
|
||||
new androidx.appcompat.widget.SearchView
|
||||
.OnQueryTextListener() {
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
filter(newText);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
getViewLifecycleOwner(),
|
||||
Lifecycle.State.RESUMED);
|
||||
|
||||
return binding.getRoot();
|
||||
}
|
||||
|
||||
@@ -142,7 +185,7 @@ public class PullRequestCommitsFragment extends Fragment {
|
||||
if (response.code() == 200) {
|
||||
|
||||
assert response.body() != null;
|
||||
if (response.body().size() > 0) {
|
||||
if (!response.body().isEmpty()) {
|
||||
|
||||
commitsList.clear();
|
||||
commitsList.addAll(response.body());
|
||||
@@ -203,7 +246,7 @@ public class PullRequestCommitsFragment extends Fragment {
|
||||
List<Commit> result = response.body();
|
||||
assert result != null;
|
||||
|
||||
if (result.size() > 0) {
|
||||
if (!result.isEmpty()) {
|
||||
|
||||
pageSize = result.size();
|
||||
commitsList.addAll(result);
|
||||
@@ -230,34 +273,6 @@ public class PullRequestCommitsFragment extends Fragment {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(@NotNull Menu menu, MenuInflater inflater) {
|
||||
|
||||
inflater.inflate(R.menu.search_menu, menu);
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
androidx.appcompat.widget.SearchView searchView =
|
||||
(androidx.appcompat.widget.SearchView) searchItem.getActionView();
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
|
||||
searchView.setOnQueryTextListener(
|
||||
new androidx.appcompat.widget.SearchView.OnQueryTextListener() {
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
|
||||
filter(newText);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void filter(String text) {
|
||||
|
||||
List<Commit> arr = new ArrayList<>();
|
||||
|
||||
@@ -14,7 +14,9 @@ import android.view.ViewGroup;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.view.MenuProvider;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
import java.util.ArrayList;
|
||||
@@ -41,7 +43,6 @@ public class PullRequestsFragment extends Fragment {
|
||||
public static boolean resumePullRequests = false;
|
||||
private final String TAG = "PullRequestFragment";
|
||||
private FragmentPullRequestsBinding fragmentPullRequestsBinding;
|
||||
private Menu menu;
|
||||
private List<PullRequest> prList;
|
||||
private PullRequestsAdapter adapter;
|
||||
private Context context;
|
||||
@@ -64,7 +65,6 @@ public class PullRequestsFragment extends Fragment {
|
||||
|
||||
fragmentPullRequestsBinding =
|
||||
FragmentPullRequestsBinding.inflate(inflater, container, false);
|
||||
setHasOptionsMenu(true);
|
||||
context = getContext();
|
||||
|
||||
final SwipeRefreshLayout swipeRefresh = fragmentPullRequestsBinding.pullToRefresh;
|
||||
@@ -113,12 +113,6 @@ public class PullRequestsFragment extends Fragment {
|
||||
((RepoDetailActivity) requireActivity())
|
||||
.setFragmentRefreshListenerPr(
|
||||
prState -> {
|
||||
if (prState.equals("closed")) {
|
||||
menu.getItem(1).setIcon(R.drawable.ic_filter_closed);
|
||||
} else {
|
||||
menu.getItem(1).setIcon(R.drawable.ic_filter);
|
||||
}
|
||||
|
||||
prList.clear();
|
||||
|
||||
adapter = new PullRequestsAdapter(context, prList);
|
||||
@@ -180,6 +174,55 @@ public class PullRequestsFragment extends Fragment {
|
||||
fragmentPullRequestsBinding.createPullRequest.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
requireActivity()
|
||||
.addMenuProvider(
|
||||
new MenuProvider() {
|
||||
|
||||
@Override
|
||||
public void onCreateMenu(
|
||||
@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||
|
||||
menuInflater.inflate(R.menu.search_menu, menu);
|
||||
menuInflater.inflate(R.menu.filter_menu_pr, menu);
|
||||
|
||||
if (repository.getPrState().toString().equals("closed")) {
|
||||
menu.getItem(1).setIcon(R.drawable.ic_filter_closed);
|
||||
} else {
|
||||
menu.getItem(1).setIcon(R.drawable.ic_filter);
|
||||
}
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
androidx.appcompat.widget.SearchView searchView =
|
||||
(androidx.appcompat.widget.SearchView)
|
||||
searchItem.getActionView();
|
||||
assert searchView != null;
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
|
||||
searchView.setOnQueryTextListener(
|
||||
new androidx.appcompat.widget.SearchView
|
||||
.OnQueryTextListener() {
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
filter(newText);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
getViewLifecycleOwner(),
|
||||
Lifecycle.State.RESUMED);
|
||||
|
||||
return fragmentPullRequestsBinding.getRoot();
|
||||
}
|
||||
|
||||
@@ -226,7 +269,7 @@ public class PullRequestsFragment extends Fragment {
|
||||
if (response.code() == 200) {
|
||||
|
||||
assert response.body() != null;
|
||||
if (response.body().size() > 0) {
|
||||
if (!response.body().isEmpty()) {
|
||||
prList.clear();
|
||||
prList.addAll(response.body());
|
||||
adapter.notifyDataChanged();
|
||||
@@ -285,7 +328,7 @@ public class PullRequestsFragment extends Fragment {
|
||||
List<PullRequest> result = response.body();
|
||||
|
||||
assert result != null;
|
||||
if (result.size() > 0) {
|
||||
if (!result.isEmpty()) {
|
||||
pageSize = result.size();
|
||||
prList.addAll(result);
|
||||
} else {
|
||||
@@ -305,41 +348,6 @@ public class PullRequestsFragment extends Fragment {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
||||
|
||||
this.menu = menu;
|
||||
inflater.inflate(R.menu.search_menu, menu);
|
||||
inflater.inflate(R.menu.filter_menu_pr, menu);
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
|
||||
if (repository.getPrState().toString().equals("closed")) {
|
||||
menu.getItem(1).setIcon(R.drawable.ic_filter_closed);
|
||||
} else {
|
||||
menu.getItem(1).setIcon(R.drawable.ic_filter);
|
||||
}
|
||||
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
||||
androidx.appcompat.widget.SearchView searchView =
|
||||
(androidx.appcompat.widget.SearchView) searchItem.getActionView();
|
||||
searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
|
||||
|
||||
searchView.setOnQueryTextListener(
|
||||
new androidx.appcompat.widget.SearchView.OnQueryTextListener() {
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
filter(newText);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void filter(String text) {
|
||||
|
||||
List<PullRequest> arr = new ArrayList<>();
|
||||
|
||||
@@ -11,13 +11,16 @@ import android.os.Looper;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import androidx.activity.result.ActivityResultLauncher;
|
||||
import androidx.activity.result.contract.ActivityResultContracts;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.app.NotificationCompat;
|
||||
import androidx.core.view.MenuProvider;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import java.io.IOException;
|
||||
@@ -121,7 +124,6 @@ public class ReleasesFragment extends Fragment {
|
||||
|
||||
fetchDataAsync(repository.getOwner(), repository.getName());
|
||||
|
||||
setHasOptionsMenu(true);
|
||||
((RepoDetailActivity) requireActivity())
|
||||
.setFragmentRefreshListenerReleases(
|
||||
type -> {
|
||||
@@ -149,6 +151,25 @@ public class ReleasesFragment extends Fragment {
|
||||
startActivity(
|
||||
repository.getIntent(getContext(), CreateReleaseActivity.class)));
|
||||
|
||||
requireActivity()
|
||||
.addMenuProvider(
|
||||
new MenuProvider() {
|
||||
|
||||
@Override
|
||||
public void onCreateMenu(
|
||||
@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||
|
||||
menuInflater.inflate(R.menu.filter_menu_releases, menu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
getViewLifecycleOwner(),
|
||||
Lifecycle.State.RESUMED);
|
||||
|
||||
return fragmentReleasesBinding.getRoot();
|
||||
}
|
||||
|
||||
@@ -282,14 +303,14 @@ public class ReleasesFragment extends Fragment {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
/*@Override
|
||||
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
||||
if (!((BaseActivity) requireActivity()).getAccount().requiresVersion("1.15.0")) {
|
||||
return;
|
||||
}
|
||||
inflater.inflate(R.menu.filter_menu_releases, menu);
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
}
|
||||
}*/
|
||||
|
||||
private void requestFileDownload(String url) {
|
||||
currentDownloadUrl = url;
|
||||
@@ -400,8 +421,7 @@ public class ReleasesFragment extends Fragment {
|
||||
@NonNull Response response)
|
||||
throws IOException {
|
||||
|
||||
if (!response.isSuccessful()
|
||||
|| response.body() == null) {
|
||||
if (!response.isSuccessful()) {
|
||||
onFailure(call, new IOException());
|
||||
return;
|
||||
}
|
||||
@@ -410,8 +430,10 @@ public class ReleasesFragment extends Fragment {
|
||||
requireContext()
|
||||
.getContentResolver()
|
||||
.openOutputStream(
|
||||
result.getData()
|
||||
.getData());
|
||||
Objects
|
||||
.requireNonNull(
|
||||
result.getData()
|
||||
.getData()));
|
||||
|
||||
AppUtil.copyProgress(
|
||||
Objects.requireNonNull(
|
||||
|
||||
@@ -51,7 +51,6 @@ public class WikiFragment extends Fragment {
|
||||
@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
|
||||
fragmentWikiBinding = FragmentWikiBinding.inflate(inflater, container, false);
|
||||
setHasOptionsMenu(true);
|
||||
|
||||
AccountContext account = ((BaseActivity) requireActivity()).getAccount();
|
||||
boolean archived = repository.getRepository().isArchived();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/primaryBackgroundColor"
|
||||
@@ -91,4 +91,4 @@
|
||||
android:textSize="@dimen/dimen20sp"
|
||||
android:visibility="gone"/>
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<item
|
||||
android:id="@+id/branchCommits"
|
||||
android:icon="@drawable/ic_commit"
|
||||
android:orderInCategory="2"
|
||||
android:orderInCategory="0"
|
||||
android:title="@string/commitTitle"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
|
||||
Reference in New Issue
Block a user