Skip to content

Commit

Permalink
[android] DRY refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
gubatron committed Mar 17, 2016
1 parent 5186f93 commit 3ded86a
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 68 deletions.
22 changes: 22 additions & 0 deletions android/src/com/frostwire/android/core/MediaType.java
Original file line number Diff line number Diff line change
Expand Up @@ -337,4 +337,26 @@ public int compare(String o1, String o2) {
return o1.compareToIgnoreCase(o2);
}
}

public static int getFileTypeIconId(String ext) {
MediaType mt = MediaType.getMediaTypeForExtension(ext);
if (mt == null) {
return R.drawable.question_mark;
}
if (mt.equals(MediaType.getApplicationsMediaType())) {
return R.drawable.browse_peer_application_icon_selector_menu;
} else if (mt.equals(MediaType.getAudioMediaType())) {
return R.drawable.browse_peer_audio_icon_selector_menu;
} else if (mt.equals(MediaType.getDocumentMediaType())) {
return R.drawable.browse_peer_document_icon_selector_menu;
} else if (mt.equals(MediaType.getImageMediaType())) {
return R.drawable.browse_peer_picture_icon_selector_menu;
} else if (mt.equals(MediaType.getVideoMediaType())) {
return R.drawable.browse_peer_video_icon_selector_menu;
} else if (mt.equals(MediaType.getTorrentMediaType())) {
return R.drawable.browse_peer_torrent_icon_selector_menu;
} else {
return R.drawable.question_mark;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public class TransferListAdapter extends BaseExpandableListAdapter {
private final OpenOnClickListener playOnClickListener;

/**
* Keep track of all dialogs ever opened so we dismiss when we leave to avoid memleaks
* Keep track of all dialogs ever opened so we dismiss when we leave to avoid memory leaks
*/
private final List<Dialog> dialogs;
private List<Transfer> list;
Expand Down Expand Up @@ -243,9 +243,9 @@ private void populateGroupView(View view, Transfer transfer) {
} else if (transfer instanceof HttpDownload) {
populateHttpDownload(view, (HttpDownload) transfer);
} else if (transfer instanceof YouTubeDownload) {
populateYouTubeDownload(view, (YouTubeDownload) transfer);
populateCloudDownload(view, (YouTubeDownload) transfer);
} else if (transfer instanceof SoundcloudDownload) {
populateSoundcloudDownload(view, (SoundcloudDownload) transfer);
populateCloudDownload(view, (SoundcloudDownload) transfer);
}
}

Expand Down Expand Up @@ -406,7 +406,7 @@ private void prepareGroupIndicatorDrawable(final Transfer item,
groupIndicator.setImageResource(R.drawable.browse_peer_application_icon_selector_menu);
}
} else {
groupIndicator.setImageResource(getFileTypeIconId(extension));
groupIndicator.setImageResource(MediaType.getFileTypeIconId(extension));
}
}
}
Expand Down Expand Up @@ -459,15 +459,7 @@ private void populateBittorrentDownload(View view, BittorrentDownload download)
if (items != null && items.size() == 1) {
TransferItem item = items.get(0);
buttonPlay.setTag(item);
if (item.isComplete()) {
buttonPlay.setVisibility(View.VISIBLE);
} else {
if (item instanceof BTDownloadItem) {
buttonPlay.setVisibility(previewFile((BTDownloadItem) item) != null ? View.VISIBLE : View.GONE);
} else {
buttonPlay.setVisibility(View.GONE);
}
}
updatePlayButtonVisibility(item, buttonPlay);
buttonPlay.setOnClickListener(playOnClickListener);
} else {
buttonPlay.setVisibility(View.GONE);
Expand Down Expand Up @@ -521,12 +513,17 @@ private void populateBittorrentDownloadItem(View view, TransferItem item) {
TextView size = findView(view, R.id.view_transfer_item_list_item_size);
ImageButton buttonPlay = findView(view, R.id.view_transfer_item_list_item_button_play);

icon.setImageResource(getFileTypeIconId(FilenameUtils.getExtension(item.getFile().getAbsolutePath())));
icon.setImageResource(MediaType.getFileTypeIconId(FilenameUtils.getExtension(item.getFile().getAbsolutePath())));
title.setText(item.getDisplayName());
progress.setProgress(item.getProgress());
size.setText(UIUtils.getBytesInHuman(item.getSize()));

buttonPlay.setTag(item);
updatePlayButtonVisibility(item, buttonPlay);
buttonPlay.setOnClickListener(playOnClickListener);
}

private void updatePlayButtonVisibility(TransferItem item, ImageButton buttonPlay) {
if (item.isComplete()) {
buttonPlay.setVisibility(View.VISIBLE);
} else {
Expand All @@ -536,39 +533,9 @@ private void populateBittorrentDownloadItem(View view, TransferItem item) {
buttonPlay.setVisibility(View.GONE);
}
}
buttonPlay.setOnClickListener(playOnClickListener);
}

private void populateYouTubeDownload(View view, YouTubeDownload download) {
TextView title = findView(view, R.id.view_transfer_list_item_title);
ProgressBar progress = findView(view, R.id.view_transfer_list_item_progress);
TextView status = findView(view, R.id.view_transfer_list_item_status);
TextView speed = findView(view, R.id.view_transfer_list_item_speed);
TextView size = findView(view, R.id.view_transfer_list_item_size);
TextView seeds = findView(view, R.id.view_transfer_list_item_seeds);
TextView peers = findView(view, R.id.view_transfer_list_item_peers);
ImageButton buttonPlay = findView(view, R.id.view_transfer_list_item_button_play);

seeds.setText("");
peers.setText("");
title.setText(download.getDisplayName());
title.setCompoundDrawables(null, null, null, null);
progress.setProgress(download.getProgress());
status.setText(getStatusFromResId(download.getStatus()));
speed.setText(UIUtils.getBytesInHuman(download.getDownloadSpeed()) + "/s");
size.setText(UIUtils.getBytesInHuman(download.getSize()));

File previewFile = download.previewFile();
if (previewFile != null) {
buttonPlay.setTag(previewFile);
buttonPlay.setVisibility(View.VISIBLE);
buttonPlay.setOnClickListener(playOnClickListener);
} else {
buttonPlay.setVisibility(View.GONE);
}
}

private void populateSoundcloudDownload(View view, SoundcloudDownload download) {
private void populateCloudDownload(View view, DownloadTransfer download) {
TextView title = findView(view, R.id.view_transfer_list_item_title);
ProgressBar progress = findView(view, R.id.view_transfer_list_item_progress);
TextView status = findView(view, R.id.view_transfer_list_item_status);
Expand Down Expand Up @@ -607,28 +574,6 @@ private String getStatusFromResId(String str) {
return s;
}

private static int getFileTypeIconId(String ext) {
MediaType mt = MediaType.getMediaTypeForExtension(ext);
if (mt == null) {
return R.drawable.question_mark;
}
if (mt.equals(MediaType.getApplicationsMediaType())) {
return R.drawable.browse_peer_application_icon_selector_menu;
} else if (mt.equals(MediaType.getAudioMediaType())) {
return R.drawable.browse_peer_audio_icon_selector_menu;
} else if (mt.equals(MediaType.getDocumentMediaType())) {
return R.drawable.browse_peer_document_icon_selector_menu;
} else if (mt.equals(MediaType.getImageMediaType())) {
return R.drawable.browse_peer_picture_icon_selector_menu;
} else if (mt.equals(MediaType.getVideoMediaType())) {
return R.drawable.browse_peer_video_icon_selector_menu;
} else if (mt.equals(MediaType.getTorrentMediaType())) {
return R.drawable.browse_peer_torrent_icon_selector_menu;
} else {
return R.drawable.question_mark;
}
}

private boolean showTransferItemMenu(View v) {
try {
MenuAdapter adapter = getMenuAdapter(v);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public abstract class AbstractConfirmListDialog<T> extends AbstractDialog implem

public enum SelectionMode {
NO_SELECTION,
SINGLE_SELECTION,
SINGLE_SELECTION, // still work to do, crashes on rotate, won't auto select 0
MULTIPLE_SELECTION,
}

Expand Down

0 comments on commit 3ded86a

Please sign in to comment.