26
26
import fr .free .nrw .commons .bookmarks .Bookmark ;
27
27
import fr .free .nrw .commons .bookmarks .pictures .BookmarkPicturesContentProvider ;
28
28
import fr .free .nrw .commons .bookmarks .pictures .BookmarkPicturesDao ;
29
+ import fr .free .nrw .commons .category .CategoryImagesCallback ;
29
30
import fr .free .nrw .commons .contributions .Contribution ;
30
31
import fr .free .nrw .commons .di .CommonsDaggerSupportFragment ;
31
- import fr .free .nrw .commons .mwapi . OkHttpJsonApiClient ;
32
+ import fr .free .nrw .commons .kvstore . JsonKvStore ;
32
33
import fr .free .nrw .commons .utils .DownloadUtils ;
33
34
import fr .free .nrw .commons .utils .ImageUtils ;
34
35
import fr .free .nrw .commons .utils .NetworkUtils ;
35
36
import fr .free .nrw .commons .utils .ViewUtil ;
36
- import io .reactivex .disposables .CompositeDisposable ;
37
- import java .util .Objects ;
38
37
import javax .inject .Inject ;
38
+ import javax .inject .Named ;
39
39
import timber .log .Timber ;
40
40
41
41
public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment implements ViewPager .OnPageChangeListener {
42
42
43
+ @ Inject SessionManager sessionManager ;
44
+ @ Inject @ Named ("default_preferences" ) JsonKvStore store ;
43
45
@ Inject BookmarkPicturesDao bookmarkDao ;
44
46
45
- @ Inject
46
- protected OkHttpJsonApiClient okHttpJsonApiClient ;
47
-
48
- @ Inject
49
- protected SessionManager sessionManager ;
50
-
51
- private static CompositeDisposable compositeDisposable = new CompositeDisposable ();
52
-
53
47
@ BindView (R .id .mediaDetailsPager ) ViewPager pager ;
54
48
private Boolean editable ;
55
49
private boolean isFeaturedImage ;
56
- private boolean isWikipediaButtonDisplayed ;
57
50
MediaDetailAdapter adapter ;
58
51
private Bookmark bookmark ;
59
52
private MediaDetailProvider provider ;
@@ -172,10 +165,6 @@ public boolean onOptionsItemSelected(MenuItem item) {
172
165
// Set wallpaper
173
166
setWallpaper (m );
174
167
return true ;
175
- case R .id .menu_set_as_avatar :
176
- // Set avatar
177
- setAvatar (m );
178
- return true ;
179
168
default :
180
169
return super .onOptionsItemSelected (item );
181
170
}
@@ -194,20 +183,6 @@ private void setWallpaper(Media media) {
194
183
ImageUtils .setWallpaperFromImageUrl (getActivity (), Uri .parse (media .getImageUrl ()));
195
184
}
196
185
197
- /**
198
- * Set the media as user's leaderboard avatar
199
- * @param media
200
- */
201
- private void setAvatar (Media media ) {
202
- if (media .getImageUrl () == null || media .getImageUrl ().isEmpty ()) {
203
- Timber .d ("Media URL not present" );
204
- return ;
205
- }
206
- ImageUtils .setAvatarFromImageUrl (getActivity (), media .getImageUrl (),
207
- Objects .requireNonNull (sessionManager .getCurrentAccount ()).name ,
208
- okHttpJsonApiClient , compositeDisposable );
209
- }
210
-
211
186
@ Override
212
187
public void onCreateOptionsMenu (Menu menu , MenuInflater inflater ) {
213
188
if (!editable ) { // Disable menu options for editable views
@@ -219,8 +194,7 @@ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
219
194
return ;
220
195
}
221
196
222
- final int position = pager .getCurrentItem ();
223
- Media m = provider .getMediaAtPosition (position );
197
+ Media m = provider .getMediaAtPosition (pager .getCurrentItem ());
224
198
if (m != null ) {
225
199
// Enable default set of actions, then re-enable different set of actions only if it is a failed contrib
226
200
menu .findItem (R .id .menu_browser_current_image ).setEnabled (true ).setVisible (true );
@@ -236,9 +210,10 @@ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
236
210
BookmarkPicturesContentProvider .uriForName (m .getFilename ())
237
211
);
238
212
updateBookmarkState (menu .findItem (R .id .menu_bookmark_current_image ));
239
- final Integer contributionState = provider .getContributionStateAt (position );
240
- if (contributionState != null ) {
241
- switch (contributionState ) {
213
+
214
+ if (m instanceof Contribution ) {
215
+ Contribution c = (Contribution ) m ;
216
+ switch (c .getState ()) {
242
217
case Contribution .STATE_FAILED :
243
218
case Contribution .STATE_IN_PROGRESS :
244
219
case Contribution .STATE_QUEUED :
@@ -280,12 +255,6 @@ private void updateBookmarkState(MenuItem item) {
280
255
item .setIcon (icon );
281
256
}
282
257
283
- public void showImage (int i , boolean isWikipediaButtonDisplayed ) {
284
- this .isWikipediaButtonDisplayed = isWikipediaButtonDisplayed ;
285
- Handler handler = new Handler ();
286
- handler .postDelayed (() -> pager .setCurrentItem (i ), 5 );
287
- }
288
-
289
258
public void showImage (int i ) {
290
259
Handler handler = new Handler ();
291
260
handler .postDelayed (() -> pager .setCurrentItem (i ), 5 );
@@ -295,9 +264,7 @@ public void showImage(int i) {
295
264
* The method notify the viewpager that number of items have changed.
296
265
*/
297
266
public void notifyDataSetChanged (){
298
- if (null != adapter ) {
299
- adapter .notifyDataSetChanged ();
300
- }
267
+ adapter .notifyDataSetChanged ();
301
268
}
302
269
303
270
@ Override
@@ -306,6 +273,8 @@ public void onPageScrolled(int i, float v, int i2) {
306
273
Timber .d ("Returning as activity is destroyed!" );
307
274
return ;
308
275
}
276
+ if (i +1 >= adapter .getCount () && getContext () instanceof CategoryImagesCallback )
277
+ ((CategoryImagesCallback ) getContext ()).requestMoreImages ();
309
278
310
279
getActivity ().invalidateOptionsMenu ();
311
280
}
@@ -328,8 +297,6 @@ public interface MediaDetailProvider {
328
297
Media getMediaAtPosition (int i );
329
298
330
299
int getTotalMediaCount ();
331
-
332
- Integer getContributionStateAt (int position );
333
300
}
334
301
335
302
//FragmentStatePagerAdapter allows user to swipe across collection of images (no. of images undetermined)
@@ -349,7 +316,7 @@ public Fragment getItem(int i) {
349
316
}
350
317
pager .postDelayed (() -> getActivity ().invalidateOptionsMenu (), 5 );
351
318
}
352
- return MediaDetailFragment .forMedia (i , editable , isFeaturedImage , isWikipediaButtonDisplayed );
319
+ return MediaDetailFragment .forMedia (i , editable , isFeaturedImage );
353
320
}
354
321
355
322
@ Override
0 commit comments