Closes #3264, disable options menu for null media from provider (#3265)

This commit is contained in:
Ashish Kumar 2019-12-03 13:14:48 +05:30 committed by Josephine Lim
parent 452f799cb3
commit 1359f706d9

View file

@ -1,5 +1,9 @@
package fr.free.nrw.commons.media; package fr.free.nrw.commons.media;
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
import static android.content.Context.DOWNLOAD_SERVICE;
import static fr.free.nrw.commons.Utils.handleWebUrl;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.DownloadManager; import android.app.DownloadManager;
import android.content.Intent; import android.content.Intent;
@ -14,15 +18,10 @@ import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Toast; import android.widget.Toast;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter; import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import javax.inject.Inject;
import javax.inject.Named;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import fr.free.nrw.commons.Media; import fr.free.nrw.commons.Media;
@ -42,12 +41,10 @@ import fr.free.nrw.commons.utils.ImageUtils;
import fr.free.nrw.commons.utils.NetworkUtils; import fr.free.nrw.commons.utils.NetworkUtils;
import fr.free.nrw.commons.utils.PermissionUtils; import fr.free.nrw.commons.utils.PermissionUtils;
import fr.free.nrw.commons.utils.ViewUtil; import fr.free.nrw.commons.utils.ViewUtil;
import javax.inject.Inject;
import javax.inject.Named;
import timber.log.Timber; import timber.log.Timber;
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
import static android.content.Context.DOWNLOAD_SERVICE;
import static fr.free.nrw.commons.Utils.handleWebUrl;
public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment implements ViewPager.OnPageChangeListener { public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment implements ViewPager.OnPageChangeListener {
@Inject SessionManager sessionManager; @Inject SessionManager sessionManager;
@ -256,6 +253,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
menu.findItem(R.id.menu_share_current_image).setEnabled(true).setVisible(true); menu.findItem(R.id.menu_share_current_image).setEnabled(true).setVisible(true);
menu.findItem(R.id.menu_download_current_image).setEnabled(true).setVisible(true); menu.findItem(R.id.menu_download_current_image).setEnabled(true).setVisible(true);
menu.findItem(R.id.menu_bookmark_current_image).setEnabled(true).setVisible(true); menu.findItem(R.id.menu_bookmark_current_image).setEnabled(true).setVisible(true);
menu.findItem(R.id.menu_set_as_wallpaper).setEnabled(true).setVisible(true);
// Initialize bookmark object // Initialize bookmark object
bookmark = new Bookmark( bookmark = new Bookmark(
@ -265,27 +263,39 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
); );
updateBookmarkState(menu.findItem(R.id.menu_bookmark_current_image)); updateBookmarkState(menu.findItem(R.id.menu_bookmark_current_image));
if (m instanceof Contribution ) { if (m instanceof Contribution) {
Contribution c = (Contribution) m; Contribution c = (Contribution) m;
switch (c.getState()) { switch (c.getState()) {
case Contribution.STATE_FAILED: case Contribution.STATE_FAILED:
menu.findItem(R.id.menu_browser_current_image).setEnabled(false).setVisible(false);
menu.findItem(R.id.menu_share_current_image).setEnabled(false).setVisible(false);
menu.findItem(R.id.menu_download_current_image).setEnabled(false).setVisible(false);
menu.findItem(R.id.menu_bookmark_current_image).setEnabled(false).setVisible(false);
break;
case Contribution.STATE_IN_PROGRESS: case Contribution.STATE_IN_PROGRESS:
case Contribution.STATE_QUEUED: case Contribution.STATE_QUEUED:
menu.findItem(R.id.menu_browser_current_image).setEnabled(false).setVisible(false); menu.findItem(R.id.menu_browser_current_image).setEnabled(false)
menu.findItem(R.id.menu_share_current_image).setEnabled(false).setVisible(false); .setVisible(false);
menu.findItem(R.id.menu_download_current_image).setEnabled(false).setVisible(false); menu.findItem(R.id.menu_share_current_image).setEnabled(false)
menu.findItem(R.id.menu_bookmark_current_image).setEnabled(false).setVisible(false); .setVisible(false);
menu.findItem(R.id.menu_download_current_image).setEnabled(false)
.setVisible(false);
menu.findItem(R.id.menu_bookmark_current_image).setEnabled(false)
.setVisible(false);
menu.findItem(R.id.menu_set_as_wallpaper).setEnabled(false)
.setVisible(false);
break; break;
case Contribution.STATE_COMPLETED: case Contribution.STATE_COMPLETED:
// Default set of menu items works fine. Treat same as regular media object // Default set of menu items works fine. Treat same as regular media object
break; break;
} }
} }
} else {
menu.findItem(R.id.menu_browser_current_image).setEnabled(false)
.setVisible(false);
menu.findItem(R.id.menu_share_current_image).setEnabled(false)
.setVisible(false);
menu.findItem(R.id.menu_download_current_image).setEnabled(false)
.setVisible(false);
menu.findItem(R.id.menu_bookmark_current_image).setEnabled(false)
.setVisible(false);
menu.findItem(R.id.menu_set_as_wallpaper).setEnabled(false)
.setVisible(false);
} }
} }
} }