Skip to content

Commit a4b8c0b

Browse files
committed
searchfilters: annotate methods and parameters with Nullable or NotNull inside search/filter/.*
1 parent f24fdcd commit a4b8c0b

15 files changed

Lines changed: 256 additions & 163 deletions

app/src/main/java/org/schabi/newpipe/fragments/list/search/filter/BaseCreateSearchFilterUI.java

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import java.util.ArrayList;
1313
import java.util.List;
1414

15+
import androidx.annotation.NonNull;
16+
1517
/**
1618
* Common base for the {@link SearchFilterDialogGenerator} and
1719
* {@link SearchFilterOptionMenuAlikeDialogGenerator}'s
@@ -20,26 +22,30 @@
2022
public abstract class BaseCreateSearchFilterUI
2123
implements SearchFilterLogic.ICreateUiForFiltersWorker {
2224

25+
@NonNull
2326
protected final BaseSearchFilterUiDialogGenerator dialogGenBase;
27+
@NonNull
2428
protected final Context context;
2529
protected final List<View> titleViewElements = new ArrayList<>();
2630
protected int titleResId;
2731

28-
protected BaseCreateSearchFilterUI(final BaseSearchFilterUiDialogGenerator dialogGenBase,
29-
final Context context,
30-
final int titleResId) {
32+
protected BaseCreateSearchFilterUI(
33+
@NonNull final BaseSearchFilterUiDialogGenerator dialogGenBase,
34+
@NonNull final Context context,
35+
final int titleResId) {
3136
this.dialogGenBase = dialogGenBase;
3237
this.context = context;
3338
this.titleResId = titleResId;
3439
}
3540

3641
@Override
37-
public void createFilterItem(final FilterItem filterItem, final FilterGroup filterGroup) {
42+
public void createFilterItem(@NonNull final FilterItem filterItem,
43+
@NonNull final FilterGroup filterGroup) {
3844
// no implementation here all creation stuff is done in createFilterGroupBeforeItems
3945
}
4046

4147
@Override
42-
public void createFilterGroupAfterItems(final FilterGroup filterGroup) {
48+
public void createFilterGroupAfterItems(@NonNull final FilterGroup filterGroup) {
4349
// no implementation here all creation stuff is done in createFilterGroupBeforeItems
4450
}
4551

@@ -66,15 +72,16 @@ public void filtersVisible(final boolean areFiltersVisible) {
6672

6773
public static class CreateContentFilterUI extends CreateSortFilterUI {
6874

69-
public CreateContentFilterUI(final BaseSearchFilterUiDialogGenerator dialogGenBase,
70-
final Context context) {
75+
public CreateContentFilterUI(
76+
@NonNull final BaseSearchFilterUiDialogGenerator dialogGenBase,
77+
@NonNull final Context context) {
7178
super(dialogGenBase, context);
7279
this.titleResId = R.string.filter_search_content_filters;
7380
}
7481

7582
@Override
7683
public void createFilterGroupBeforeItems(
77-
final FilterGroup filterGroup) {
84+
@NonNull final FilterGroup filterGroup) {
7885
dialogGenBase.createFilterGroup(filterGroup,
7986
dialogGenBase::addContentFilterUiWrapperToItemMap,
8087
dialogGenBase::selectContentFilter);
@@ -88,8 +95,9 @@ public void filtersVisible(final boolean areFiltersVisible) {
8895

8996
public static class CreateSortFilterUI extends BaseCreateSearchFilterUI {
9097

91-
public CreateSortFilterUI(final BaseSearchFilterUiDialogGenerator dialogGenBase,
92-
final Context context) {
98+
public CreateSortFilterUI(
99+
@NonNull final BaseSearchFilterUiDialogGenerator dialogGenBase,
100+
@NonNull final Context context) {
93101
super(dialogGenBase, context, R.string.filter_search_sort_filters);
94102
}
95103

@@ -99,7 +107,7 @@ public void prepare() {
99107
}
100108

101109
@Override
102-
public void createFilterGroupBeforeItems(final FilterGroup filterGroup) {
110+
public void createFilterGroupBeforeItems(@NonNull final FilterGroup filterGroup) {
103111
dialogGenBase.createFilterGroup(filterGroup,
104112
dialogGenBase::addSortFilterUiWrapperToItemMap,
105113
dialogGenBase::selectSortFilter);

app/src/main/java/org/schabi/newpipe/fragments/list/search/filter/BaseItemWrapper.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44

55
import org.schabi.newpipe.extractor.search.filter.FilterItem;
66

7-
public abstract class BaseItemWrapper implements SearchFilterLogic.IUiItemWrapper {
7+
import androidx.annotation.NonNull;
88

9+
public abstract class BaseItemWrapper implements SearchFilterLogic.IUiItemWrapper {
10+
@NonNull
911
protected final FilterItem item;
1012

11-
protected BaseItemWrapper(final FilterItem item) {
13+
protected BaseItemWrapper(@NonNull final FilterItem item) {
1214
this.item = item;
1315
}
1416

app/src/main/java/org/schabi/newpipe/fragments/list/search/filter/BaseSearchFilterDialogFragment.java

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.util.List;
1818

1919
import androidx.annotation.NonNull;
20+
import androidx.annotation.Nullable;
2021
import androidx.appcompat.widget.Toolbar;
2122
import androidx.fragment.app.DialogFragment;
2223
import icepick.Icepick;
@@ -39,7 +40,7 @@ public abstract class BaseSearchFilterDialogFragment extends DialogFragment {
3940
ArrayList<Integer> userSelectedSortFilterList = null;
4041

4142
protected static DialogFragment initDialogArguments(
42-
final DialogFragment dialogFragment,
43+
@NonNull final DialogFragment dialogFragment,
4344
final int serviceId,
4445
final List<Integer> userSelectedContentFilter,
4546
final List<Integer> userSelectedSortFilter) {
@@ -92,16 +93,17 @@ protected abstract BaseSearchFilterUiGenerator createSearchFilterDialogGenerator
9293
/**
9394
* As we have different bindings we need to get this sorted in a method.
9495
*
95-
* @return the {@link Toolbar}
96+
* @return the {@link Toolbar} null if there is no toolbar available.
9697
*/
98+
@Nullable
9799
protected abstract Toolbar getToolbar();
98100

99-
protected abstract View getRootView(LayoutInflater inflater,
100-
ViewGroup container);
101+
protected abstract View getRootView(@NonNull LayoutInflater inflater,
102+
@Nullable ViewGroup container);
101103

102104
@Override
103105
public View onCreateView(@NonNull final LayoutInflater inflater,
104-
final ViewGroup container,
106+
@Nullable final ViewGroup container,
105107
final Bundle savedInstanceState) {
106108
final View rootView = getRootView(inflater, container);
107109
initializeFilterData();
@@ -113,10 +115,20 @@ public void onViewCreated(@NonNull final View view, final Bundle savedInstanceSt
113115
super.onViewCreated(view, savedInstanceState);
114116
Icepick.restoreInstanceState(this, savedInstanceState);
115117

116-
initToolbar(getToolbar());
118+
final Toolbar toolbar = getToolbar();
119+
if (toolbar != null) {
120+
initToolbar(toolbar);
121+
}
117122
}
118123

119-
protected void initToolbar(final Toolbar toolbar) {
124+
/**
125+
* Initialize the toolbar.
126+
* <p>
127+
* This method is only called if {@link #getToolbar()} is implemented to return a toolbar.
128+
*
129+
* @param toolbar the actual toolbar for this dialog fragment
130+
*/
131+
protected void initToolbar(@NonNull final Toolbar toolbar) {
120132
toolbar.setTitle(R.string.filter);
121133
toolbar.setNavigationIcon(R.drawable.ic_arrow_back);
122134
toolbar.inflateMenu(R.menu.menu_search_filter_dialog_fragment);

app/src/main/java/org/schabi/newpipe/fragments/list/search/filter/BaseSearchFilterUiDialogGenerator.java

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,27 @@
1212

1313
import java.util.List;
1414

15+
import androidx.annotation.NonNull;
16+
import androidx.annotation.Nullable;
17+
1518
import static android.util.TypedValue.COMPLEX_UNIT_DIP;
1619

1720
public abstract class BaseSearchFilterUiDialogGenerator extends BaseSearchFilterUiGenerator {
1821
private static final float FONT_SIZE_TITLE_ITEMS_IN_DIP = 20f;
1922

2023
protected BaseSearchFilterUiDialogGenerator(
21-
final SearchQueryHandlerFactory linkHandlerFactory,
22-
final Callback callback,
23-
final Context context) {
24+
@NonNull final SearchQueryHandlerFactory linkHandlerFactory,
25+
@Nullable final Callback callback,
26+
@NonNull final Context context) {
2427
super(linkHandlerFactory, callback, context);
2528
}
2629

27-
protected abstract void createTitle(String name, List<View> titleViewElements);
30+
protected abstract void createTitle(@NonNull String name,
31+
@NonNull List<View> titleViewElements);
2832

29-
protected abstract void createFilterGroup(FilterGroup filterGroup,
30-
UiWrapperMapDelegate wrapperDelegate,
31-
UiSelectorDelegate selectorDelegate);
33+
protected abstract void createFilterGroup(@NonNull FilterGroup filterGroup,
34+
@NonNull UiWrapperMapDelegate wrapperDelegate,
35+
@NonNull UiSelectorDelegate selectorDelegate);
3236

3337
@Override
3438
protected ICreateUiForFiltersWorker createContentFilterWorker() {
@@ -40,16 +44,18 @@ protected ICreateUiForFiltersWorker createSortFilterWorker() {
4044
return new BaseCreateSearchFilterUI.CreateSortFilterUI(this, context);
4145
}
4246

43-
protected View createSeparatorLine(final ViewGroup.LayoutParams layoutParams) {
47+
@NonNull
48+
protected View createSeparatorLine(@NonNull final ViewGroup.LayoutParams layoutParams) {
4449
final View separatorLine = new View(context);
4550
separatorLine.setBackgroundColor(getSeparatorLineColorFromTheme());
4651
layoutParams.height = 1; // always set the separator to the height of 1
4752
separatorLine.setLayoutParams(layoutParams);
4853
return separatorLine;
4954
}
5055

51-
protected TextView createTitleText(final String name,
52-
final ViewGroup.LayoutParams layoutParams) {
56+
@NonNull
57+
protected TextView createTitleText(@NonNull final String name,
58+
@NonNull final ViewGroup.LayoutParams layoutParams) {
5359
final TextView title = new TextView(context);
5460
title.setText(name);
5561
title.setTextSize(COMPLEX_UNIT_DIP, FONT_SIZE_TITLE_ITEMS_IN_DIP);

app/src/main/java/org/schabi/newpipe/fragments/list/search/filter/BaseSearchFilterUiGenerator.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
package org.schabi.newpipe.fragments.list.search.filter;
44

5+
import androidx.annotation.NonNull;
6+
import androidx.annotation.Nullable;
57

68
import android.content.Context;
79
import android.util.TypedValue;
@@ -21,9 +23,10 @@ public abstract class BaseSearchFilterUiGenerator extends SearchFilterLogic {
2123
protected final ICreateUiForFiltersWorker sortFilterWorker;
2224
protected final Context context;
2325

24-
protected BaseSearchFilterUiGenerator(final SearchQueryHandlerFactory linkHandlerFactory,
25-
final Callback callback,
26-
final Context context) {
26+
protected BaseSearchFilterUiGenerator(
27+
@NonNull final SearchQueryHandlerFactory linkHandlerFactory,
28+
@Nullable final Callback callback,
29+
@NonNull final Context context) {
2730
super(linkHandlerFactory, callback);
2831
this.context = context;
2932
this.contentFilterWorker = createContentFilterWorker();

app/src/main/java/org/schabi/newpipe/fragments/list/search/filter/BaseUiItemWrapper.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@
66

77
import org.schabi.newpipe.extractor.search.filter.FilterItem;
88

9+
import androidx.annotation.NonNull;
910

1011
public abstract class BaseUiItemWrapper extends BaseItemWrapper {
12+
@NonNull
1113
protected final View view;
1214

13-
protected BaseUiItemWrapper(final FilterItem item,
14-
final View view) {
15+
protected BaseUiItemWrapper(@NonNull final FilterItem item,
16+
@NonNull final View view) {
1517
super(item);
1618
this.view = view;
1719
}

app/src/main/java/org/schabi/newpipe/fragments/list/search/filter/SearchFilterDialogFragment.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
import java.util.List;
1313

14+
import androidx.annotation.NonNull;
15+
import androidx.annotation.Nullable;
1416
import androidx.appcompat.widget.Toolbar;
1517
import androidx.fragment.app.DialogFragment;
1618

@@ -41,13 +43,14 @@ protected BaseSearchFilterUiGenerator createSearchFilterDialogGenerator(
4143
}
4244

4345
@Override
46+
@Nullable
4447
protected Toolbar getToolbar() {
4548
return binding.toolbarLayout.toolbar;
4649
}
4750

4851
@Override
49-
protected View getRootView(final LayoutInflater inflater,
50-
final ViewGroup container) {
52+
protected View getRootView(@NonNull final LayoutInflater inflater,
53+
@Nullable final ViewGroup container) {
5154
binding = SearchFilterDialogFragmentBinding
5255
.inflate(inflater, container, false);
5356
return binding.getRoot();

0 commit comments

Comments
 (0)