use of com.frostwire.android.gui.adapters.menu.SeedAction in project frostwire by frostwire.
the class TransferListAdapter method populateCloudDownloadMenuActions.
private String populateCloudDownloadMenuActions(Object tag, List<MenuAction> items) {
Transfer download = (Transfer) tag;
String title = download.getDisplayName();
boolean errored = download.getState().name().contains("ERROR");
boolean finishedSuccessfully = !errored && download.isComplete() && isCloudDownload(tag);
if (finishedSuccessfully && Ref.alive(contextRef)) {
final List<FileDescriptor> files = Librarian.instance().getFiles(contextRef.get(), download.getSavePath().getAbsolutePath(), true);
boolean singleFile = files != null && files.size() == 1;
if (singleFile && !AndroidPlatform.saf(new File(files.get(0).filePath))) {
items.add(new SeedAction(contextRef.get(), files.get(0), download));
}
if (singleFile && files.get(0).fileType == Constants.FILE_TYPE_PICTURES) {
items.add(new OpenMenuAction(contextRef.get(), download.getDisplayName(), files.get(0)));
} else {
items.add(new OpenMenuAction(contextRef.get(), download.getDisplayName(), download.getSavePath().getAbsolutePath(), extractMime(download)));
}
}
if (Ref.alive(contextRef)) {
items.add(new CancelMenuAction(contextRef.get(), download, !finishedSuccessfully));
}
return title;
}
use of com.frostwire.android.gui.adapters.menu.SeedAction in project frostwire by frostwire.
the class TransferListAdapter method populateBittorrentDownloadMenuActions.
private String populateBittorrentDownloadMenuActions(BittorrentDownload bittorrentDownload, List<MenuAction> items) {
String title;
title = bittorrentDownload.getDisplayName();
// If it's a torrent download with a single file, we should be able to open it.
if (bittorrentDownload.isComplete() && bittorrentDownload.getItems().size() > 0) {
TransferItem transferItem = bittorrentDownload.getItems().get(0);
String path = transferItem.getFile().getAbsolutePath();
String mimeType = UIUtils.getMimeType(path);
items.add(new OpenMenuAction(contextRef.get(), path, mimeType));
}
if (!bittorrentDownload.isComplete() && !bittorrentDownload.isSeeding()) {
if (!bittorrentDownload.isPaused()) {
items.add(new PauseDownloadMenuAction(contextRef.get(), bittorrentDownload));
} else {
boolean wifiIsUp = NetworkManager.instance().isDataWIFIUp();
boolean bittorrentOnMobileData = !ConfigurationManager.instance().getBoolean(Constants.PREF_KEY_NETWORK_USE_WIFI_ONLY);
if (wifiIsUp || bittorrentOnMobileData) {
if (!bittorrentDownload.isComplete()) {
items.add(new ResumeDownloadMenuAction(contextRef.get(), bittorrentDownload, R.string.resume_torrent_menu_action));
}
}
}
}
if (bittorrentDownload.getState() == TransferState.FINISHED) {
items.add(new SeedAction(contextRef.get(), bittorrentDownload));
}
if (bittorrentDownload.getState() == TransferState.SEEDING) {
items.add(new StopSeedingAction(contextRef.get(), bittorrentDownload));
}
items.add(new CancelMenuAction(contextRef.get(), bittorrentDownload, !bittorrentDownload.isComplete()));
items.add(new CopyToClipboardMenuAction(contextRef.get(), R.drawable.contextmenu_icon_magnet, R.string.transfers_context_menu_copy_magnet, R.string.transfers_context_menu_copy_magnet_copied, bittorrentDownload.magnetUri() + BTEngine.getInstance().magnetPeers()));
items.add(new CopyToClipboardMenuAction(contextRef.get(), R.drawable.contextmenu_icon_copy, R.string.transfers_context_menu_copy_infohash, R.string.transfers_context_menu_copy_infohash_copied, bittorrentDownload.getInfoHash()));
if (bittorrentDownload.isComplete()) {
// Remove Torrent and Data action.
items.add(new CancelMenuAction(contextRef.get(), bittorrentDownload, true, true));
}
if (bittorrentDownload instanceof UIBittorrentDownload) {
UIBittorrentDownload uidl = (UIBittorrentDownload) bittorrentDownload;
if (uidl.hasPaymentOptions()) {
PaymentOptions po = uidl.getPaymentOptions();
if (po.bitcoin != null) {
items.add(new SendBitcoinTipAction(contextRef.get(), po.bitcoin));
}
if (po.paypalUrl != null) {
items.add(new SendFiatTipAction(contextRef.get(), po.paypalUrl));
}
if (po.bitcoin != null) {
items.add(new SendBitcoinTipAction(contextRef.get(), po.bitcoin));
}
}
if (bittorrentDownload.getInfoHash() != null && !"".equals(bittorrentDownload.getInfoHash())) {
items.add(new TransferDetailsMenuAction(contextRef.get(), R.string.show_torrent_details, bittorrentDownload.getInfoHash()));
}
}
return title;
}
use of com.frostwire.android.gui.adapters.menu.SeedAction in project frostwire by frostwire.
the class TransfersFragment method onOptionsItemSelected.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
boolean bittorrentDisconnected = TransferManager.instance().isBittorrentDisconnected();
// Handle item selection
setupAdapter(getActivity());
switch(item.getItemId()) {
case R.id.fragment_transfers_menu_add_transfer:
toggleAddTransferControls();
getActivity().invalidateOptionsMenu();
return true;
case R.id.fragment_transfers_menu_clear_all:
TransferManager.instance().clearComplete();
getActivity().invalidateOptionsMenu();
return true;
case R.id.fragment_transfers_menu_pause_stop_all:
TransferManager.instance().stopHttpTransfers();
TransferManager.instance().pauseTorrents();
return true;
case R.id.fragment_transfers_menu_resume_all:
if (bittorrentDisconnected) {
UIUtils.showLongMessage(getActivity(), R.string.cant_resume_torrent_transfers);
} else {
if (NetworkManager.instance().isDataUp()) {
TransferManager.instance().resumeResumableTransfers();
} else {
UIUtils.showShortMessage(getActivity(), R.string.please_check_connection_status_before_resuming_download);
}
}
return true;
case R.id.fragment_transfers_menu_seed_all:
new SeedAction(getActivity()).onClick();
return true;
case R.id.fragment_transfers_menu_stop_seeding_all:
TransferManager.instance().stopSeedingTorrents();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
use of com.frostwire.android.gui.adapters.menu.SeedAction in project frostwire by frostwire.
the class TransfersNoSeedsView method onSeedAllFinishedTransfers.
private void onSeedAllFinishedTransfers() {
new SeedAction(getContext()).onClick();
setMode(Mode.INACTIVE);
}
use of com.frostwire.android.gui.adapters.menu.SeedAction in project frostwire by frostwire.
the class TransferDetailFragment method onOptionsItemSelected.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Activity activity = getActivity();
int itemId = item.getItemId();
PaymentOptions paymentOptions = uiBittorrentDownload.getPaymentOptions();
switch(itemId) {
// TODO: Add a force re-announce action
case R.id.fragment_transfer_detail_menu_delete:
// TODO: add an action listener and pass to dialog
new CancelMenuAction(activity, uiBittorrentDownload, true, true).onClick(activity);
break;
case R.id.fragment_transfer_detail_menu_pause_resume_seed:
if (isPausable()) {
new PauseDownloadMenuAction(activity, uiBittorrentDownload).onClick(activity);
} else if (isSeedable()) {
new SeedAction(activity, uiBittorrentDownload).onClick(activity);
} else if (isResumable()) {
new ResumeDownloadMenuAction(activity, uiBittorrentDownload, R.string.resume_torrent_menu_action).onClick(activity);
}
updatePauseResumeSeedMenuAction();
break;
case R.id.fragment_transfer_detail_menu_clear:
new CancelMenuAction(activity, uiBittorrentDownload, false, false).onClick(activity);
break;
case R.id.fragment_transfer_detail_menu_copy_magnet:
new CopyToClipboardMenuAction(activity, R.drawable.contextmenu_icon_magnet, R.string.transfers_context_menu_copy_magnet, R.string.transfers_context_menu_copy_magnet_copied, uiBittorrentDownload.magnetUri() + BTEngine.getInstance().magnetPeers()).onClick(activity);
break;
case R.id.fragment_transfer_detail_menu_copy_infohash:
new CopyToClipboardMenuAction(activity, R.drawable.contextmenu_icon_copy, R.string.transfers_context_menu_copy_infohash, R.string.transfers_context_menu_copy_infohash_copied, uiBittorrentDownload.getInfoHash()).onClick(activity);
break;
case R.id.fragment_transfer_detail_menu_donate_fiat:
new SendFiatTipAction(activity, paymentOptions.paypalUrl).onClick(activity);
break;
case R.id.fragment_transfer_detail_menu_donate_bitcoin:
new SendBitcoinTipAction(activity, paymentOptions.bitcoin).onClick(activity);
break;
}
return super.onOptionsItemSelected(item);
}
Aggregations