Search in sources :

Example 1 with Media

use of fr.free.nrw.commons.Media in project apps-android-commons by commons-app.

the class MediaDetailFragment method onResume.

@Override
public void onResume() {
    super.onResume();
    Media media = detailProvider.getMediaAtPosition(index);
    if (media == null) {
        // Ask the detail provider to ping us when we're ready
        Timber.d("MediaDetailFragment not yet ready to display details; registering observer");
        dataObserver = new DataSetObserver() {

            @Override
            public void onChanged() {
                if (!isAdded()) {
                    return;
                }
                Timber.d("MediaDetailFragment ready to display delayed details!");
                detailProvider.unregisterDataSetObserver(dataObserver);
                dataObserver = null;
                displayMediaDetails(detailProvider.getMediaAtPosition(index));
            }
        };
        detailProvider.registerDataSetObserver(dataObserver);
    } else {
        Timber.d("MediaDetailFragment ready to display details");
        displayMediaDetails(media);
    }
}
Also used : Media(fr.free.nrw.commons.Media) DataSetObserver(android.database.DataSetObserver)

Example 2 with Media

use of fr.free.nrw.commons.Media in project apps-android-commons by commons-app.

the class MediaDetailPagerFragment method onCreateOptionsMenu.

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    if (!editable) {
        // Disable menu options for editable views
        // see http://stackoverflow.com/a/8495697/17865
        menu.clear();
        inflater.inflate(R.menu.fragment_image_detail, menu);
        if (pager != null) {
            MediaDetailProvider provider = (MediaDetailProvider) getActivity();
            Media m = provider.getMediaAtPosition(pager.getCurrentItem());
            if (m != null) {
                // Enable default set of actions, then re-enable different set of actions only if it is a failed contrib
                menu.findItem(R.id.menu_retry_current_image).setEnabled(false).setVisible(false);
                menu.findItem(R.id.menu_cancel_current_image).setEnabled(false).setVisible(false);
                menu.findItem(R.id.menu_browser_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);
                // Set ShareActionProvider Intent
                ShareActionProvider mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(menu.findItem(R.id.menu_share_current_image));
                // https://github.com/commons-app/apps-android-commons/issues/413
                if (mShareActionProvider != null) {
                    Intent shareIntent = new Intent(Intent.ACTION_SEND);
                    shareIntent.setType("text/plain");
                    shareIntent.putExtra(Intent.EXTRA_TEXT, m.getDisplayTitle() + " \n" + m.getDescriptionUrl());
                    mShareActionProvider.setShareIntent(shareIntent);
                }
                if (m instanceof Contribution) {
                    Contribution c = (Contribution) m;
                    switch(c.getState()) {
                        case Contribution.STATE_FAILED:
                            menu.findItem(R.id.menu_retry_current_image).setEnabled(true).setVisible(true);
                            menu.findItem(R.id.menu_cancel_current_image).setEnabled(true).setVisible(true);
                            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);
                            break;
                        case Contribution.STATE_IN_PROGRESS:
                        case Contribution.STATE_QUEUED:
                            menu.findItem(R.id.menu_retry_current_image).setEnabled(false).setVisible(false);
                            menu.findItem(R.id.menu_cancel_current_image).setEnabled(false).setVisible(false);
                            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);
                            break;
                        case Contribution.STATE_COMPLETED:
                            // Default set of menu items works fine. Treat same as regular media object
                            break;
                    }
                }
            }
        }
    }
}
Also used : Media(fr.free.nrw.commons.Media) Intent(android.content.Intent) ShareActionProvider(android.support.v7.widget.ShareActionProvider) Contribution(fr.free.nrw.commons.contributions.Contribution)

Example 3 with Media

use of fr.free.nrw.commons.Media in project apps-android-commons by commons-app.

the class MediaDetailPagerFragment method onOptionsItemSelected.

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    MediaDetailProvider provider = (MediaDetailProvider) getActivity();
    Media m = provider.getMediaAtPosition(pager.getCurrentItem());
    switch(item.getItemId()) {
        case R.id.menu_share_current_image:
            // Share - this is just logs it, intent set in onCreateOptionsMenu, around line 252
            EventLog.schema(CommonsApplication.EVENT_SHARE_ATTEMPT).param("username", app.getCurrentAccount().name).param("filename", m.getFilename()).log();
            return true;
        case R.id.menu_browser_current_image:
            // View in browser
            Intent viewIntent = new Intent();
            viewIntent.setAction(Intent.ACTION_VIEW);
            viewIntent.setData(Uri.parse(m.getMobileDescriptionUrl()));
            startActivity(viewIntent);
            return true;
        case R.id.menu_download_current_image:
            // Download
            downloadMedia(m);
            return true;
        case R.id.menu_retry_current_image:
            // Retry
            ((ContributionsActivity) getActivity()).retryUpload(pager.getCurrentItem());
            getActivity().getSupportFragmentManager().popBackStack();
            return true;
        case R.id.menu_cancel_current_image:
            // todo: delete image
            ((ContributionsActivity) getActivity()).deleteUpload(pager.getCurrentItem());
            getActivity().getSupportFragmentManager().popBackStack();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}
Also used : ContributionsActivity(fr.free.nrw.commons.contributions.ContributionsActivity) Media(fr.free.nrw.commons.Media) Intent(android.content.Intent)

Aggregations

Media (fr.free.nrw.commons.Media)3 Intent (android.content.Intent)2 DataSetObserver (android.database.DataSetObserver)1 ShareActionProvider (android.support.v7.widget.ShareActionProvider)1 Contribution (fr.free.nrw.commons.contributions.Contribution)1 ContributionsActivity (fr.free.nrw.commons.contributions.ContributionsActivity)1