Search in sources :

Example 1 with MusicFolder

use of org.moire.ultrasonic.domain.MusicFolder in project ultrasonic by ultrasonic.

the class SelectArtistActivity method onCreateContextMenu.

@Override
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, view, menuInfo);
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
    if (artistListView.getItemAtPosition(info.position) instanceof Artist) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.select_artist_context, menu);
    } else if (info.position == 1) {
        String musicFolderId = Util.getSelectedMusicFolderId(this);
        MenuItem menuItem = menu.add(MENU_GROUP_MUSIC_FOLDER, -1, 0, R.string.select_artist_all_folders);
        if (musicFolderId == null) {
            menuItem.setChecked(true);
        }
        if (musicFolders != null) {
            for (int i = 0; i < musicFolders.size(); i++) {
                MusicFolder musicFolder = musicFolders.get(i);
                menuItem = menu.add(MENU_GROUP_MUSIC_FOLDER, i, i + 1, musicFolder.getName());
                if (musicFolder.getId().equals(musicFolderId)) {
                    menuItem.setChecked(true);
                }
            }
        }
        menu.setGroupCheckable(MENU_GROUP_MUSIC_FOLDER, true, true);
    }
    MenuItem downloadMenuItem = menu.findItem(R.id.artist_menu_download);
    if (downloadMenuItem != null) {
        downloadMenuItem.setVisible(!Util.isOffline(this));
    }
}
Also used : Artist(org.moire.ultrasonic.domain.Artist) MenuInflater(android.view.MenuInflater) AdapterView(android.widget.AdapterView) MenuItem(android.view.MenuItem) MusicFolder(org.moire.ultrasonic.domain.MusicFolder)

Example 2 with MusicFolder

use of org.moire.ultrasonic.domain.MusicFolder in project ultrasonic by ultrasonic.

the class SelectArtistActivity method onContextItemSelected.

@Override
public boolean onContextItemSelected(MenuItem menuItem) {
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuItem.getMenuInfo();
    if (info == null) {
        return true;
    }
    Artist artist = (Artist) artistListView.getItemAtPosition(info.position);
    if (artist != null) {
        switch(menuItem.getItemId()) {
            case R.id.artist_menu_play_now:
                downloadRecursively(artist.getId(), false, false, true, false, false, false, false, true);
                break;
            case R.id.artist_menu_play_next:
                downloadRecursively(artist.getId(), false, false, true, true, false, true, false, true);
                break;
            case R.id.artist_menu_play_last:
                downloadRecursively(artist.getId(), false, true, false, false, false, false, false, true);
                break;
            case R.id.artist_menu_pin:
                downloadRecursively(artist.getId(), true, true, false, false, false, false, false, true);
                break;
            case R.id.artist_menu_unpin:
                downloadRecursively(artist.getId(), false, false, false, false, false, false, true, true);
                break;
            case R.id.artist_menu_download:
                downloadRecursively(artist.getId(), false, false, false, false, true, false, false, true);
                break;
            default:
                return super.onContextItemSelected(menuItem);
        }
    } else if (info.position == 1) {
        MusicFolder selectedFolder = menuItem.getItemId() == -1 ? null : musicFolders.get(menuItem.getItemId());
        String musicFolderId = selectedFolder == null ? null : selectedFolder.getId();
        String musicFolderName = selectedFolder == null ? getString(R.string.select_artist_all_folders) : selectedFolder.getName();
        Util.setSelectedMusicFolderId(this, musicFolderId);
        folderName.setText(musicFolderName);
        refresh();
    }
    return true;
}
Also used : Artist(org.moire.ultrasonic.domain.Artist) AdapterView(android.widget.AdapterView) MusicFolder(org.moire.ultrasonic.domain.MusicFolder)

Example 3 with MusicFolder

use of org.moire.ultrasonic.domain.MusicFolder in project ultrasonic by ultrasonic.

the class SelectArtistActivity method load.

private void load() {
    BackgroundTask<Indexes> task = new TabActivityBackgroundTask<Indexes>(this, true) {

        @Override
        protected Indexes doInBackground() throws Throwable {
            boolean refresh = getIntent().getBooleanExtra(Constants.INTENT_EXTRA_NAME_REFRESH, false);
            MusicService musicService = MusicServiceFactory.getMusicService(SelectArtistActivity.this);
            boolean isOffline = Util.isOffline(SelectArtistActivity.this);
            boolean useId3Tags = Util.getShouldUseId3Tags(SelectArtistActivity.this);
            if (!isOffline && !useId3Tags) {
                musicFolders = musicService.getMusicFolders(refresh, SelectArtistActivity.this, this);
            }
            String musicFolderId = Util.getSelectedMusicFolderId(SelectArtistActivity.this);
            return !isOffline && useId3Tags ? musicService.getArtists(refresh, SelectArtistActivity.this, this) : musicService.getIndexes(musicFolderId, refresh, SelectArtistActivity.this, this);
        }

        @Override
        protected void done(Indexes result) {
            if (result != null) {
                List<Artist> artists = new ArrayList<Artist>(result.getShortcuts().size() + result.getArtists().size());
                artists.addAll(result.getShortcuts());
                artists.addAll(result.getArtists());
                artistListView.setAdapter(new ArtistAdapter(SelectArtistActivity.this, artists));
            }
            // Display selected music folder
            if (musicFolders != null) {
                String musicFolderId = Util.getSelectedMusicFolderId(SelectArtistActivity.this);
                if (musicFolderId == null) {
                    if (folderName != null) {
                        folderName.setText(R.string.select_artist_all_folders);
                    }
                } else {
                    for (MusicFolder musicFolder : musicFolders) {
                        if (musicFolder.getId().equals(musicFolderId)) {
                            if (folderName != null) {
                                folderName.setText(musicFolder.getName());
                            }
                            break;
                        }
                    }
                }
            }
        }
    };
    task.execute();
}
Also used : Artist(org.moire.ultrasonic.domain.Artist) TabActivityBackgroundTask(org.moire.ultrasonic.util.TabActivityBackgroundTask) MusicService(org.moire.ultrasonic.service.MusicService) ArtistAdapter(org.moire.ultrasonic.view.ArtistAdapter) ArrayList(java.util.ArrayList) Indexes(org.moire.ultrasonic.domain.Indexes) MusicFolder(org.moire.ultrasonic.domain.MusicFolder)

Aggregations

Artist (org.moire.ultrasonic.domain.Artist)3 MusicFolder (org.moire.ultrasonic.domain.MusicFolder)3 AdapterView (android.widget.AdapterView)2 MenuInflater (android.view.MenuInflater)1 MenuItem (android.view.MenuItem)1 ArrayList (java.util.ArrayList)1 Indexes (org.moire.ultrasonic.domain.Indexes)1 MusicService (org.moire.ultrasonic.service.MusicService)1 TabActivityBackgroundTask (org.moire.ultrasonic.util.TabActivityBackgroundTask)1 ArtistAdapter (org.moire.ultrasonic.view.ArtistAdapter)1