Search in sources :

Example 1 with VideoMenuDialogFragment

use of com.zype.android.ui.dialog.VideoMenuDialogFragment in project zype-android by zype.

the class OptionsFragment method showDownloadMenu.

private void showDownloadMenu() {
    ArrayList<VideosMenuItem> downloadItems = new ArrayList<>();
    if (isAudioDownloading || isVideoDownloading) {
        downloadItems.add(new VideosMenuItem(0, R.string.menu_cancel_download));
    } else {
        boolean downloadUrlExist = true;
        if (isAudioDownloaded) {
            downloadItems.add(new VideosMenuItem(1, R.string.menu_delete_download_audio));
        } else {
            String audioUrl = DataHelper.getAudioUrl(getActivity().getContentResolver(), videoId);
            if (!TextUtils.isEmpty(audioUrl)) {
                downloadItems.add(new VideosMenuItem(2, R.string.option_download_audio));
            } else {
                downloadUrlExist = false;
            }
        }
        if (isVideoDownloaded) {
            downloadItems.add(new VideosMenuItem(3, R.string.menu_delete_download_video));
        } else {
            String videoUrl = DataHelper.getVideoUrl(getActivity().getContentResolver(), videoId);
            if (!TextUtils.isEmpty(videoUrl)) {
                downloadItems.add(new VideosMenuItem(4, R.string.option_download_video));
            } else {
                downloadUrlExist = false;
            }
        }
        // Get audio and video download urls if not exist
        if (!downloadUrlExist) {
        // ((VideoDetailActivity) getActivity()).down(videoId);
        }
    }
    final VideoMenuDialogFragment fragment = VideoMenuDialogFragment.newInstance(downloadItems);
    fragment.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            switch(fragment.getList().get(position).getId()) {
                case 0:
                    DownloadHelper.stopDownload(mContext.getContentResolver(), videoId);
                    break;
                case 1:
                    FileUtils.deleteAudioFile(videoId, mContext);
                    DataHelper.setAudioDeleted(mContext.getContentResolver(), videoId);
                    isAudioDownloaded = false;
                    break;
                case 2:
                    mListener.onDownloadAudio(videoId);
                    break;
                case 3:
                    FileUtils.deleteVideoFile(videoId, mContext);
                    DataHelper.setVideoDeleted(mContext.getContentResolver(), videoId);
                    isVideoDownloaded = false;
                    break;
                case 4:
                    mListener.onDownloadVideo(videoId);
                    break;
            }
            fragment.dismiss();
        }
    });
    if (!downloadItems.isEmpty()) {
        fragment.show(getActivity().getFragmentManager(), "menu");
    } else {
        videoDetailViewModel.checkDownloadsAvailable(videoDetailViewModel.getVideoSync());
        // UiUtils.showErrorSnackbar(getView(), "Download url not found");
        Logger.v("Still don't have url to load");
    }
}
Also used : VideosMenuItem(com.zype.android.ui.main.fragments.videos.VideosMenuItem) ArrayList(java.util.ArrayList) View(android.view.View) AdapterView(android.widget.AdapterView) RecyclerView(androidx.recyclerview.widget.RecyclerView) VideoMenuDialogFragment(com.zype.android.ui.dialog.VideoMenuDialogFragment) AdapterView(android.widget.AdapterView)

Example 2 with VideoMenuDialogFragment

use of com.zype.android.ui.dialog.VideoMenuDialogFragment in project zype-android by zype.

the class VideosCursorAdapter method bindView.

@Override
public void bindView(final View view, final Context context, final Cursor cursor) {
    final VideosViewHolder viewHolder = (VideosViewHolder) view.getTag();
    if (!isColumnIndexesCalculated()) {
        calculateColumnIndexes(cursor);
    }
    viewHolder.videoId = cursor.getString(COL_VIDEO_ID);
    viewHolder.title.setText(cursor.getString(COL_VIDEO_TITLE));
    viewHolder.thumbnail.setImageDrawable(null);
    viewHolder.isFavorite = cursor.getInt(COL_VIDEO_IS_FAVORITE) == 1;
    // viewHolder.isDownloaded = cursor.getInt(COL_VIDEO_IS_DOWNLOADED) == 1;
    viewHolder.isVideoDownloaded = cursor.getInt(COL_VIDEO_IS_VIDEO_DOWNLOADED) == 1;
    viewHolder.isAudioDownloaded = cursor.getInt(COL_VIDEO_IS_AUDIO_DOWNLOADED) == 1;
    viewHolder.videoPath = cursor.getString(COL_DOWNLOAD_VIDEO_PATH);
    viewHolder.isTranscoded = cursor.getInt(COL_TRANSCODED) == 1;
    viewHolder.onAir = cursor.getInt(COL_ON_AIR) == 1;
    viewHolder.subscriptionRequired = cursor.getInt(COL_SUBSCRIPTION_REQUIRED) == 1;
    viewHolder.youtubePath = cursor.getString(COL_YOUTUBE);
    // if (TextUtils.isEmpty(cursor.getString(COL_VIDEO_EPISODE))) {
    // viewHolder.episodeView.setVisibility(GONE);
    // } else {
    // viewHolder.episodeView.setVisibility(View.VISIBLE);
    // viewHolder.episode.setText(cursor.getString(COL_VIDEO_EPISODE));
    // }
    viewHolder.isEntitled = cursor.getInt(cursor.getColumnIndexOrThrow(Contract.Video.IS_ENTITLED)) == 1;
    viewHolder.purchaseRequired = cursor.getInt(cursor.getColumnIndexOrThrow(Contract.Video.PURCHASE_REQUIRED)) == 1;
    loadThumbnail(viewHolder, cursor);
    updateLockIcon(viewHolder);
    // if (cursor.getString(COL_VIDEO_THUMBNAILS) != null) {
    // loadImage(context, cursor, viewHolder);
    // }
    // if (viewHolder.subscriptionRequired) {
    // if (hasPermissionToPlayVideo(viewHolder)) {
    // viewHolder.imageLocked.setVisibility(GONE);
    // viewHolder.imageUnlocked.setVisibility(View.VISIBLE);
    // }
    // else {
    // viewHolder.imageLocked.setVisibility(View.VISIBLE);
    // viewHolder.imageUnlocked.setVisibility(View.GONE);
    // }
    // }
    // else {
    // viewHolder.imageLocked.setVisibility(GONE);
    // viewHolder.imageUnlocked.setVisibility(GONE);
    // }
    // final String episodeCreationDate = DateUtils.getConvertedText(cursor.getString(COL_VIDEO_PUBLISHED_AT), context);
    // if (episodeCreationDate != null) {
    // viewHolder.episodeDate.setText(episodeCreationDate);
    // } else {
    // viewHolder.episodeDate.setText("");
    // }
    int currentProgress = DownloaderService.currentProgress(viewHolder.videoId);
    if (currentProgress > -1) {
        viewHolder.progressBar.setVisibility(View.VISIBLE);
        viewHolder.progressBar.setProgress(currentProgress);
    // viewHolder.detailsView.setVisibility(GONE);
    } else {
        viewHolder.progressBar.setVisibility(GONE);
    // viewHolder.detailsView.setVisibility(View.VISIBLE);
    }
    final boolean isYoutubeVideo = !TextUtils.isEmpty(cursor.getString(cursor.getColumnIndex(Contract.Video.COLUMN_YOUTUBE_ID)));
    View.OnClickListener onClick = new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // if (SettingsProvider.getInstance().isLoggedIn()) {
            mActivity.openContextMenu(v);
            ArrayList<VideosMenuItem> items = new ArrayList<>();
            items.addAll(getListForMenu(viewHolder, isYoutubeVideo));
            final VideoMenuDialogFragment fragment = VideoMenuDialogFragment.newInstance(items);
            fragment.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Map<String, String> event;
                    Tracker tracker = ZypeApp.getTracker();
                    switch(fragment.getList().get(position).getId()) {
                        case ITEM_UNFAVORITE:
                            mOnVideoItemAction.onUnFavoriteVideo(viewHolder.videoId);
                            event = new HitBuilders.EventBuilder().setAction("Unfavorite").setLabel("id=" + viewHolder.videoId).build();
                            break;
                        case ITEM_FAVORITE:
                            mOnVideoItemAction.onFavoriteVideo(viewHolder.videoId);
                            event = new HitBuilders.EventBuilder().setAction("Favorite").setLabel("id=" + viewHolder.videoId).build();
                            break;
                        case ITEM_SHARE:
                            mOnVideoItemAction.onShareVideo(viewHolder.videoId);
                            event = new HitBuilders.EventBuilder().setAction("Share").setLabel("id=" + viewHolder.videoId).build();
                            break;
                        case ITEM_DOWNLOAD_STOP:
                            DownloadHelper.stopDownload(mContext.getContentResolver(), viewHolder.videoId);
                            event = new HitBuilders.EventBuilder().setAction("Stop Download").setLabel("id=" + viewHolder.videoId).build();
                            break;
                        case ITEM_DOWNLOAD_AUDIO:
                            mOnVideoItemAction.onDownloadAudio(viewHolder.videoId);
                            event = new HitBuilders.EventBuilder().setAction("Download Audio").setLabel("id=" + viewHolder.videoId).build();
                            break;
                        case ITEM_DOWNLOAD_VIDEO:
                            mOnVideoItemAction.onDownloadVideo(viewHolder.videoId);
                            event = new HitBuilders.EventBuilder().setAction("Download VideoList").setLabel("id=" + viewHolder.videoId).build();
                            break;
                        case ITEM_DELETE_AUDIO:
                            FileUtils.deleteAudioFile(viewHolder.videoId, context);
                            DataHelper.setAudioDeleted(context.getContentResolver(), viewHolder.videoId);
                            event = new HitBuilders.EventBuilder().setAction("Delete Downloaded Audio").setLabel("id=" + viewHolder.videoId).build();
                            break;
                        case ITEM_DELETE_VIDEO:
                            FileUtils.deleteVideoFile(viewHolder.videoId, context);
                            DataHelper.setVideoDeleted(context.getContentResolver(), viewHolder.videoId);
                            event = new HitBuilders.EventBuilder().setAction("Delete Downloaded VideoList").setLabel("id=" + viewHolder.videoId).build();
                            break;
                        default:
                            throw new IllegalStateException("unknown id=" + fragment.getList().get(position).getId());
                    }
                    fragment.dismiss();
                    if (tracker != null) {
                        tracker.send(event);
                    }
                }
            });
            fragment.show(mActivity.getFragmentManager(), "menu");
        // }
        // else {
        // mOnLoginListener.onRequestLogin();
        // }
        }
    };
    if (getListForMenu(viewHolder, isYoutubeVideo).isEmpty()) {
        viewHolder.popupButton.setVisibility(GONE);
    } else {
        viewHolder.popupButton.setVisibility(View.VISIBLE);
        viewHolder.popupButton.setOnClickListener(onClick);
    }
// viewHolder.downloadButton.setOnClickListener(onClick);
// if (viewHolder.isTranscoded && ZypeSettings.isDownloadsEnabled()) {
// viewHolder.downloadButton.setVisibility(View.VISIBLE);
// } else {
// viewHolder.downloadButton.setVisibility(View.INVISIBLE);
// }
// updateDownloadedIndicator(cursor, viewHolder);
// updatePlayedIndicator(cursor, viewHolder);
}
Also used : Tracker(com.google.android.gms.analytics.Tracker) HitBuilders(com.google.android.gms.analytics.HitBuilders) ArrayList(java.util.ArrayList) ImageView(android.widget.ImageView) View(android.view.View) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) ListView(android.widget.ListView) VideoMenuDialogFragment(com.zype.android.ui.dialog.VideoMenuDialogFragment) AdapterView(android.widget.AdapterView) Map(java.util.Map)

Example 3 with VideoMenuDialogFragment

use of com.zype.android.ui.dialog.VideoMenuDialogFragment in project zype-android by zype.

the class VideosAdapter method updatePopupMenu.

private void updatePopupMenu(final ViewHolder holder) {
    final ArrayList<VideosMenuItem> items = new ArrayList<>(getPopupMenuItems(holder));
    View.OnClickListener listener = view -> {
        holder.view.showContextMenu();
        final VideoMenuDialogFragment fragment = VideoMenuDialogFragment.newInstance(items);
        fragment.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Map<String, String> event;
                Tracker tracker = ZypeApp.getTracker();
                switch(fragment.getList().get(position).getId()) {
                    case ITEM_UNFAVORITE:
                        if (menuListener != null) {
                            menuListener.onMenuItemSelected(VideoActionsHelper.ACTION_UNFAVORITE, holder.item);
                        }
                        // VideoActionsHelper.onUnfavorite(holder.item, (Activity) holder.view.getContext(), null);
                        event = new HitBuilders.EventBuilder().setAction("Unfavorite").setLabel("id=" + holder.item.id).build();
                        break;
                    case ITEM_FAVORITE:
                        if (menuListener != null) {
                            menuListener.onMenuItemSelected(VideoActionsHelper.ACTION_FAVORITE, holder.item);
                        }
                        // VideoActionsHelper.onFavorite(holder.item, (Activity) holder.view.getContext(), null);
                        event = new HitBuilders.EventBuilder().setAction("Favorite").setLabel("id=" + holder.item.id).build();
                        break;
                    case ITEM_SHARE:
                        if (menuListener != null) {
                            menuListener.onMenuItemSelected(VideoActionsHelper.ACTION_SHARE, holder.item);
                        }
                        // videoActionListener.onShareVideo(holder.item.id);
                        event = new HitBuilders.EventBuilder().setAction("Share").setLabel("id=" + holder.item.id).build();
                        break;
                    case ITEM_DOWNLOAD_STOP:
                        DownloadHelper.stopDownload(holder.view.getContext().getContentResolver(), holder.item.id);
                        event = new HitBuilders.EventBuilder().setAction("Stop Download").setLabel("id=" + holder.item.id).build();
                        break;
                    // break;
                    case ITEM_DELETE_AUDIO:
                        FileUtils.deleteAudioFile(holder.item.id, holder.view.getContext());
                        DataHelper.setAudioDeleted(holder.view.getContext().getContentResolver(), holder.item.id);
                        event = new HitBuilders.EventBuilder().setAction("Delete Downloaded Audio").setLabel("id=" + holder.item.id).build();
                        break;
                    case ITEM_DELETE_VIDEO:
                        FileUtils.deleteVideoFile(holder.item.id, holder.view.getContext());
                        DataHelper.setVideoDeleted(holder.view.getContext().getContentResolver(), holder.item.id);
                        event = new HitBuilders.EventBuilder().setAction("Delete Downloaded VideoList").setLabel("id=" + holder.item.id).build();
                        break;
                    default:
                        throw new IllegalStateException("unknown id=" + fragment.getList().get(position).getId());
                }
                fragment.dismiss();
                if (tracker != null) {
                    tracker.send(event);
                }
            }
        });
        fragment.show(((Activity) holder.view.getContext()).getFragmentManager(), "menu");
    // }
    };
    if (items.isEmpty()) {
        holder.imagePopup.setVisibility(GONE);
    } else {
        holder.imagePopup.setVisibility(View.VISIBLE);
        holder.imagePopup.setOnClickListener(listener);
    }
}
Also used : ZypeConfiguration(com.zype.android.ZypeConfiguration) Thumbnail(com.zype.android.webapi.model.video.Thumbnail) ProgressBar(android.widget.ProgressBar) VideoHelper(com.zype.android.core.provider.helpers.VideoHelper) Tracker(com.google.android.gms.analytics.Tracker) ImageView(android.widget.ImageView) VideosMenuItem(com.zype.android.ui.main.fragments.videos.VideosMenuItem) ArrayList(java.util.ArrayList) Map(java.util.Map) View(android.view.View) RecyclerView(androidx.recyclerview.widget.RecyclerView) AdapterView(android.widget.AdapterView) DataHelper(com.zype.android.core.provider.DataHelper) ContextCompat(androidx.core.content.ContextCompat) HitBuilders(com.google.android.gms.analytics.HitBuilders) LayoutInflater(android.view.LayoutInflater) VideoMenuDialogFragment(com.zype.android.ui.dialog.VideoMenuDialogFragment) ZypeSettings(com.zype.android.ZypeSettings) TextUtils(android.text.TextUtils) AuthHelper(com.zype.android.Auth.AuthHelper) Image(com.zype.android.webapi.model.video.Image) UiUtils(com.zype.android.utils.UiUtils) ViewGroup(android.view.ViewGroup) DownloaderService(com.zype.android.service.DownloaderService) List(java.util.List) TextView(android.widget.TextView) FileUtils(com.zype.android.utils.FileUtils) GONE(android.view.View.GONE) R(com.zype.android.R) ZypeApp(com.zype.android.ZypeApp) DownloadHelper(com.zype.android.service.DownloadHelper) Activity(android.app.Activity) Video(com.zype.android.Db.Entity.Video) Tracker(com.google.android.gms.analytics.Tracker) VideosMenuItem(com.zype.android.ui.main.fragments.videos.VideosMenuItem) ArrayList(java.util.ArrayList) Activity(android.app.Activity) ImageView(android.widget.ImageView) View(android.view.View) RecyclerView(androidx.recyclerview.widget.RecyclerView) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) VideoMenuDialogFragment(com.zype.android.ui.dialog.VideoMenuDialogFragment) AdapterView(android.widget.AdapterView)

Aggregations

View (android.view.View)3 AdapterView (android.widget.AdapterView)3 VideoMenuDialogFragment (com.zype.android.ui.dialog.VideoMenuDialogFragment)3 ArrayList (java.util.ArrayList)3 ImageView (android.widget.ImageView)2 TextView (android.widget.TextView)2 RecyclerView (androidx.recyclerview.widget.RecyclerView)2 HitBuilders (com.google.android.gms.analytics.HitBuilders)2 Tracker (com.google.android.gms.analytics.Tracker)2 VideosMenuItem (com.zype.android.ui.main.fragments.videos.VideosMenuItem)2 Map (java.util.Map)2 Activity (android.app.Activity)1 TextUtils (android.text.TextUtils)1 LayoutInflater (android.view.LayoutInflater)1 GONE (android.view.View.GONE)1 ViewGroup (android.view.ViewGroup)1 ListView (android.widget.ListView)1 ProgressBar (android.widget.ProgressBar)1 ContextCompat (androidx.core.content.ContextCompat)1 AuthHelper (com.zype.android.Auth.AuthHelper)1