1
1
package io .syslogic .github .fragment ;
2
2
3
3
import android .os .Bundle ;
4
- import android .util .Log ;
5
4
import android .view .LayoutInflater ;
6
5
import android .view .View ;
7
6
import android .view .ViewGroup ;
8
- import android .widget .AdapterView ;
9
7
10
8
import androidx .annotation .NonNull ;
11
9
import androidx .annotation .Nullable ;
12
- import androidx .appcompat .widget .AppCompatSpinner ;
13
10
import androidx .databinding .ViewDataBinding ;
14
11
15
- import java .util .List ;
16
-
17
- import io .syslogic .github .Constants ;
18
12
import io .syslogic .github .R ;
19
13
import io .syslogic .github .activity .NavHostActivity ;
20
- import io .syslogic .github .model .PagerState ;
21
- import io .syslogic .github .model .QueryString ;
22
- import io .syslogic .github .model .SpinnerItem ;
23
- import io .syslogic .github .adapter .QueryStringAdapter ;
24
14
import io .syslogic .github .databinding .FragmentRepositoriesBinding ;
25
- import io .syslogic .github .model .User ;
26
- import io .syslogic .github .network .TokenCallback ;
27
- import io .syslogic .github .provider .RepositoriesMenuProvider ;
15
+ import io .syslogic .github .provider .WorkflowsMenuProvider ;
28
16
import io .syslogic .github .recyclerview .RepositoriesAdapter ;
29
- import io .syslogic .github .recyclerview .RepositoriesLinearView ;
30
- import io .syslogic .github .recyclerview .ScrollListener ;
31
- import io .syslogic .github .room .Abstraction ;
32
- import io .syslogic .github .room .QueryStringsDao ;
33
17
34
18
/**
35
- * Repositories {@link BaseFragment}
19
+ * Workflows {@link BaseFragment}
36
20
*
37
21
* @author Martin Zeitler
38
22
*/
39
- public class RepositoriesFragment extends BaseFragment implements TokenCallback {
23
+ public class RepositoriesFragment extends BaseFragment {
40
24
41
25
/** Log Tag */
42
26
@ SuppressWarnings ("unused" )
43
27
private static final String LOG_TAG = RepositoriesFragment .class .getSimpleName ();
44
28
45
- @ SuppressWarnings ("unused" ) private static final int resId = R .layout .fragment_repositories ;
29
+ @ SuppressWarnings ("unused" )
30
+ private static final int resId = R .layout .fragment_repositories ;
46
31
47
32
/** Data Binding */
48
33
private FragmentRepositoriesBinding mDataBinding ;
49
34
50
- /** Preference: PREFERENCE_KEY_SHOW_REPOSITORY_TOPICS */
51
- boolean showRepositoryTopics = false ;
52
-
53
35
/** Constructor */
54
36
public RepositoriesFragment () {}
55
37
@@ -59,77 +41,20 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c
59
41
60
42
NavHostActivity activity = ((NavHostActivity ) this .requireActivity ());
61
43
this .setDataBinding (FragmentRepositoriesBinding .inflate (inflater , container , false ));
62
- this .getDataBinding ().setPagerState (new PagerState ());
63
44
64
45
/* It removes & adds {@link BaseMenuProvider} */
65
- activity .setMenuProvider (new RepositoriesMenuProvider (activity ));
66
-
67
- // the SpinnerItem has the same ID as the QueryString.
68
- activity .setSupportActionBar (this .getDataBinding ().toolbarRepositories .toolbarRepositories );
69
- this .mDataBinding .toolbarRepositories .home .setOnClickListener (view -> activity .onBackPressed ());
70
-
71
- AppCompatSpinner spinner = this .getDataBinding ().toolbarRepositories .spinnerQueryString ;
72
- spinner .setAdapter (new QueryStringAdapter (requireContext ()));
73
- spinner .setOnItemSelectedListener (new AdapterView .OnItemSelectedListener () {
74
- int count = 0 ;
75
- @ Override
76
- public void onItemSelected (AdapterView <?> parent , View view , int position , long resId ) {
77
- if (count > 0 ) {
78
- SpinnerItem item = (SpinnerItem ) view .getTag ();
79
- ScrollListener .setPageNumber (1 );
80
- String queryString = item .getValue ();
81
- RepositoriesLinearView recyclerview = getDataBinding ().recyclerviewRepositories ;
82
- recyclerview .setQueryString (queryString );
83
- PagerState pagerState = getDataBinding ().getPagerState ();
84
- if (pagerState != null ) {
85
- pagerState .setQueryString (queryString );
86
- getDataBinding ().setPagerState (pagerState );
87
- }
88
- if (recyclerview .getAdapter () != null ) {
89
- recyclerview .clearAdapter ();
90
- ((RepositoriesAdapter ) recyclerview .getAdapter ()).fetchPage (1 );
91
- }
92
- }
93
- count ++;
94
- }
95
- @ Override
96
- public void onNothingSelected (AdapterView <?> parent ) {}
97
- });
98
-
99
- /* It is quicker to query Room, because the QueryStringAdapter is populating too slow. */
100
- assert this .prefs != null ;
101
- showRepositoryTopics = this .prefs .getBoolean (Constants .PREFERENCE_KEY_SHOW_REPOSITORY_TOPICS , false );
102
- if (this .getDataBinding ().recyclerviewRepositories .getAdapter () == null ) {
103
- if (isNetworkAvailable (requireContext ())) {
104
- QueryStringsDao dao = Abstraction .getInstance (requireContext ()).queryStringsDao ();
105
- Abstraction .executorService .execute (() -> {
106
- try {
107
- assert dao != null ;
108
- List <QueryString > items = dao .getItems ();
109
- if (items .size () > 0 ) {
110
- String queryString = items .get (0 ).toQueryString ();
111
- requireActivity ().runOnUiThread (() -> {
112
- RepositoriesAdapter adapter = new RepositoriesAdapter (requireContext (), queryString , showRepositoryTopics , 1 );
113
- getDataBinding ().recyclerviewRepositories .setAdapter (adapter );
114
- PagerState pagerState = getDataBinding ().getPagerState ();
115
- if (pagerState != null ) {
116
- pagerState .setQueryString (queryString );
117
- getDataBinding ().setPagerState (pagerState );
118
- }
119
- });
120
- } else {
121
- if (mDebug ) {Log .e (LOG_TAG , "table `" + Constants .TABLE_QUERY_STRINGS +"` has no records." );}
122
- this .getDataBinding ().toolbarRepositories .spinnerQueryString .setVisibility (View .INVISIBLE );
123
- }
124
- } catch (IllegalStateException e ) {
125
- if (mDebug ) {Log .e (LOG_TAG , "" + e .getMessage ());}
126
- }
127
- });
128
- } else {
129
- this .onNetworkLost ();
130
- }
131
- }
46
+ activity .setMenuProvider (new WorkflowsMenuProvider (activity ));
132
47
48
+ activity .setSupportActionBar (this .getDataBinding ().toolbarWorkflows .toolbarWorkflows );
49
+ this .mDataBinding .toolbarWorkflows .home .setOnClickListener (view -> activity .onBackPressed ());
50
+
51
+ if (! isNetworkAvailable (this .requireContext ())) {
52
+ this .onNetworkLost ();
53
+ } else {
54
+ RepositoriesAdapter adapter = new RepositoriesAdapter (requireContext ());
55
+ this .getDataBinding ().recyclerviewWorkflows .setAdapter (adapter );
56
+ adapter .fetchPage (1 );
57
+ }
133
58
return this .getDataBinding ().getRoot ();
134
59
}
135
60
@@ -140,64 +65,22 @@ public FragmentRepositoriesBinding getDataBinding() {
140
65
141
66
@ Override
142
67
protected void setDataBinding (@ NonNull ViewDataBinding binding ) {
143
- if (binding instanceof FragmentRepositoriesBinding ) {
144
- this .mDataBinding = (FragmentRepositoriesBinding ) binding ;
145
- }
68
+ this .mDataBinding = (FragmentRepositoriesBinding ) binding ;
146
69
}
147
70
148
71
@ Override
149
72
public void onNetworkAvailable () {
150
-
151
73
super .onNetworkAvailable ();
152
-
153
- String token = this .getPersonalAccessToken ();
154
- if (getCurrentUser () == null && token != null ) {
155
- this .setUser (token , this );
156
- }
157
-
158
- if (mDataBinding != null ) {
159
- PagerState pagerState = this .getDataBinding ().getPagerState ();
160
- if (pagerState != null ) {
161
- pagerState .setIsOffline (false );
162
- this .getDataBinding ().setPagerState (pagerState );
163
- }
164
-
165
- /* When being online for the first time, adapter is null. */
166
- RepositoriesAdapter adapter = ((RepositoriesAdapter ) this .getDataBinding ().recyclerviewRepositories .getAdapter ());
167
- if (adapter == null ) {
168
- /* Needs to run on UiThread */
169
- requireActivity ().runOnUiThread (() -> {
170
- String queryString = getDataBinding ().recyclerviewRepositories .getQueryString ();
171
- if (queryString == null ) {
172
- QueryStringAdapter queryStringArrayAdapter = (QueryStringAdapter ) getDataBinding ().toolbarRepositories .spinnerQueryString .getAdapter ();
173
- if (queryStringArrayAdapter != null && queryStringArrayAdapter .getCount () > 0 ) {
174
- queryString = queryStringArrayAdapter .getItem (0 ).getValue ();
175
- }
176
- }
177
- if (queryString != null ) {
178
- getDataBinding ().recyclerviewRepositories .setAdapter (new RepositoriesAdapter (requireActivity (), queryString , showRepositoryTopics , 1 ));
179
- }
180
- });
181
- } else if (adapter .getItemCount () == 0 ) {
182
- /* If required, fetch page 1 */
183
- adapter .fetchPage (1 );
184
- }
185
- }
186
74
}
187
75
188
76
@ Override
189
77
public void onNetworkLost () {
190
78
super .onNetworkLost ();
191
- PagerState pagerState = this .getDataBinding ().getPagerState ();
192
- if (pagerState != null ) {
193
- pagerState .setIsLoading (false );
194
- pagerState .setIsOffline (true );
195
- this .getDataBinding ().setPagerState (pagerState );
196
- }
197
79
}
198
80
199
81
@ Override
200
- public void onLogin (@ NonNull User item ) {
201
- this .mDataBinding .setUser (item );
82
+ public void onRequestPermissionsResult (int requestCode , @ NonNull String [] permissions , @ NonNull int [] grantResults ) {
83
+ super .onRequestPermissionsResult (requestCode , permissions , grantResults );
84
+ // if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {}
202
85
}
203
86
}
0 commit comments