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");
}
}
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);
}
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);
}
}
Aggregations