2626import fr .free .nrw .commons .bookmarks .Bookmark ;
2727import fr .free .nrw .commons .bookmarks .pictures .BookmarkPicturesContentProvider ;
2828import fr .free .nrw .commons .bookmarks .pictures .BookmarkPicturesDao ;
29+ import fr .free .nrw .commons .category .CategoryImagesCallback ;
2930import fr .free .nrw .commons .contributions .Contribution ;
3031import fr .free .nrw .commons .di .CommonsDaggerSupportFragment ;
31- import fr .free .nrw .commons .mwapi . OkHttpJsonApiClient ;
32+ import fr .free .nrw .commons .kvstore . JsonKvStore ;
3233import fr .free .nrw .commons .utils .DownloadUtils ;
3334import fr .free .nrw .commons .utils .ImageUtils ;
3435import fr .free .nrw .commons .utils .NetworkUtils ;
3536import fr .free .nrw .commons .utils .ViewUtil ;
36- import io .reactivex .disposables .CompositeDisposable ;
37- import java .util .Objects ;
3837import javax .inject .Inject ;
38+ import javax .inject .Named ;
3939import timber .log .Timber ;
4040
4141public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment implements ViewPager .OnPageChangeListener {
4242
43+ @ Inject SessionManager sessionManager ;
44+ @ Inject @ Named ("default_preferences" ) JsonKvStore store ;
4345 @ Inject BookmarkPicturesDao bookmarkDao ;
4446
45- @ Inject
46- protected OkHttpJsonApiClient okHttpJsonApiClient ;
47-
48- @ Inject
49- protected SessionManager sessionManager ;
50-
51- private static CompositeDisposable compositeDisposable = new CompositeDisposable ();
52-
5347 @ BindView (R .id .mediaDetailsPager ) ViewPager pager ;
5448 private Boolean editable ;
5549 private boolean isFeaturedImage ;
56- private boolean isWikipediaButtonDisplayed ;
5750 MediaDetailAdapter adapter ;
5851 private Bookmark bookmark ;
5952 private MediaDetailProvider provider ;
@@ -172,10 +165,6 @@ public boolean onOptionsItemSelected(MenuItem item) {
172165 // Set wallpaper
173166 setWallpaper (m );
174167 return true ;
175- case R .id .menu_set_as_avatar :
176- // Set avatar
177- setAvatar (m );
178- return true ;
179168 default :
180169 return super .onOptionsItemSelected (item );
181170 }
@@ -194,20 +183,6 @@ private void setWallpaper(Media media) {
194183 ImageUtils .setWallpaperFromImageUrl (getActivity (), Uri .parse (media .getImageUrl ()));
195184 }
196185
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-
211186 @ Override
212187 public void onCreateOptionsMenu (Menu menu , MenuInflater inflater ) {
213188 if (!editable ) { // Disable menu options for editable views
@@ -219,8 +194,7 @@ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
219194 return ;
220195 }
221196
222- final int position = pager .getCurrentItem ();
223- Media m = provider .getMediaAtPosition (position );
197+ Media m = provider .getMediaAtPosition (pager .getCurrentItem ());
224198 if (m != null ) {
225199 // Enable default set of actions, then re-enable different set of actions only if it is a failed contrib
226200 menu .findItem (R .id .menu_browser_current_image ).setEnabled (true ).setVisible (true );
@@ -236,9 +210,10 @@ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
236210 BookmarkPicturesContentProvider .uriForName (m .getFilename ())
237211 );
238212 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 ()) {
242217 case Contribution .STATE_FAILED :
243218 case Contribution .STATE_IN_PROGRESS :
244219 case Contribution .STATE_QUEUED :
@@ -280,12 +255,6 @@ private void updateBookmarkState(MenuItem item) {
280255 item .setIcon (icon );
281256 }
282257
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-
289258 public void showImage (int i ) {
290259 Handler handler = new Handler ();
291260 handler .postDelayed (() -> pager .setCurrentItem (i ), 5 );
@@ -295,9 +264,7 @@ public void showImage(int i) {
295264 * The method notify the viewpager that number of items have changed.
296265 */
297266 public void notifyDataSetChanged (){
298- if (null != adapter ) {
299- adapter .notifyDataSetChanged ();
300- }
267+ adapter .notifyDataSetChanged ();
301268 }
302269
303270 @ Override
@@ -306,6 +273,8 @@ public void onPageScrolled(int i, float v, int i2) {
306273 Timber .d ("Returning as activity is destroyed!" );
307274 return ;
308275 }
276+ if (i +1 >= adapter .getCount () && getContext () instanceof CategoryImagesCallback )
277+ ((CategoryImagesCallback ) getContext ()).requestMoreImages ();
309278
310279 getActivity ().invalidateOptionsMenu ();
311280 }
@@ -328,8 +297,6 @@ public interface MediaDetailProvider {
328297 Media getMediaAtPosition (int i );
329298
330299 int getTotalMediaCount ();
331-
332- Integer getContributionStateAt (int position );
333300 }
334301
335302 //FragmentStatePagerAdapter allows user to swipe across collection of images (no. of images undetermined)
@@ -349,7 +316,7 @@ public Fragment getItem(int i) {
349316 }
350317 pager .postDelayed (() -> getActivity ().invalidateOptionsMenu (), 5 );
351318 }
352- return MediaDetailFragment .forMedia (i , editable , isFeaturedImage , isWikipediaButtonDisplayed );
319+ return MediaDetailFragment .forMedia (i , editable , isFeaturedImage );
353320 }
354321
355322 @ Override
0 commit comments