Search in sources :

Example 11 with Entry

use of org.moire.ultrasonic.domain.MusicDirectory.Entry in project ultrasonic by ultrasonic.

the class SubsonicTabActivity method share.

public void share() {
    BackgroundTask<Share> task = new TabActivityBackgroundTask<Share>(this, true) {

        @Override
        protected Share doInBackground() throws Throwable {
            List<String> ids = new ArrayList<String>();
            if (shareDetails.Entries.isEmpty()) {
                ids.add(getIntent().getStringExtra(Constants.INTENT_EXTRA_NAME_ID));
            } else {
                for (Entry entry : shareDetails.Entries) {
                    ids.add(entry.getId());
                }
            }
            MusicService musicService = MusicServiceFactory.getMusicService(SubsonicTabActivity.this);
            long timeInMillis = 0;
            if (shareDetails.Expiration != 0) {
                timeInMillis = shareDetails.Expiration;
            }
            List<Share> shares = musicService.createShare(ids, shareDetails.Description, timeInMillis, SubsonicTabActivity.this, this);
            return shares.get(0);
        }

        @Override
        protected void done(Share result) {
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_TEXT, String.format("%s\n\n%s", Util.getShareGreeting(SubsonicTabActivity.this), result.getUrl()));
            startActivity(Intent.createChooser(intent, getResources().getString(R.string.share_via)));
        }
    };
    task.execute();
}
Also used : Entry(org.moire.ultrasonic.domain.MusicDirectory.Entry) TabActivityBackgroundTask(org.moire.ultrasonic.util.TabActivityBackgroundTask) MusicService(org.moire.ultrasonic.service.MusicService) ArrayList(java.util.ArrayList) Intent(android.content.Intent) Share(org.moire.ultrasonic.domain.Share)

Example 12 with Entry

use of org.moire.ultrasonic.domain.MusicDirectory.Entry in project ultrasonic by ultrasonic.

the class DownloadServiceImpl method buildForegroundNotification.

@SuppressWarnings("IconColors")
private Notification buildForegroundNotification() {
    NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
    builder.setSmallIcon(R.drawable.ic_stat_ultrasonic);
    builder.setAutoCancel(false);
    builder.setOngoing(true);
    builder.setWhen(System.currentTimeMillis());
    RemoteViews contentView = new RemoteViews(this.getPackageName(), R.layout.notification);
    Util.linkButtons(this, contentView, false);
    RemoteViews bigView = new RemoteViews(this.getPackageName(), R.layout.notification_large);
    Util.linkButtons(this, bigView, false);
    builder.setContent(contentView);
    Intent notificationIntent = new Intent(this, DownloadActivity.class);
    builder.setContentIntent(PendingIntent.getActivity(this, 0, notificationIntent, 0));
    if (playerState == PlayerState.PAUSED || playerState == PlayerState.IDLE) {
        contentView.setImageViewResource(R.id.control_play, R.drawable.media_start_normal_dark);
        bigView.setImageViewResource(R.id.control_play, R.drawable.media_start_normal_dark);
    } else if (playerState == PlayerState.STARTED) {
        contentView.setImageViewResource(R.id.control_play, R.drawable.media_pause_normal_dark);
        bigView.setImageViewResource(R.id.control_play, R.drawable.media_pause_normal_dark);
    }
    final Entry song = currentPlaying.getSong();
    final String title = song.getTitle();
    final String text = song.getArtist();
    final String album = song.getAlbum();
    final int imageSize = Util.getNotificationImageSize(this);
    try {
        final Bitmap nowPlayingImage = FileUtil.getAlbumArtBitmap(this, currentPlaying.getSong(), imageSize, true);
        if (nowPlayingImage == null) {
            contentView.setImageViewResource(R.id.notification_image, R.drawable.unknown_album);
            bigView.setImageViewResource(R.id.notification_image, R.drawable.unknown_album);
        } else {
            contentView.setImageViewBitmap(R.id.notification_image, nowPlayingImage);
            bigView.setImageViewBitmap(R.id.notification_image, nowPlayingImage);
        }
    } catch (Exception x) {
        Log.w(TAG, "Failed to get notification cover art", x);
        contentView.setImageViewResource(R.id.notification_image, R.drawable.unknown_album);
        bigView.setImageViewResource(R.id.notification_image, R.drawable.unknown_album);
    }
    contentView.setTextViewText(R.id.trackname, title);
    bigView.setTextViewText(R.id.trackname, title);
    contentView.setTextViewText(R.id.artist, text);
    bigView.setTextViewText(R.id.artist, text);
    contentView.setTextViewText(R.id.album, album);
    bigView.setTextViewText(R.id.album, album);
    Notification notification = builder.build();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        notification.bigContentView = bigView;
    }
    return notification;
}
Also used : RemoteViews(android.widget.RemoteViews) Entry(org.moire.ultrasonic.domain.MusicDirectory.Entry) Bitmap(android.graphics.Bitmap) NotificationCompat(android.support.v4.app.NotificationCompat) PendingIntent(android.app.PendingIntent) Intent(android.content.Intent) SuppressLint(android.annotation.SuppressLint) Notification(android.app.Notification)

Example 13 with Entry

use of org.moire.ultrasonic.domain.MusicDirectory.Entry in project ultrasonic by ultrasonic.

the class BookmarkActivity method onCreate.

/**
 * Called when the activity is first created.
 */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.select_album);
    albumButtons = findViewById(R.id.menu_album);
    refreshAlbumListView = (PullToRefreshListView) findViewById(R.id.select_album_entries);
    albumListView = refreshAlbumListView.getRefreshableView();
    refreshAlbumListView.setOnRefreshListener(new OnRefreshListener<ListView>() {

        @Override
        public void onRefresh(PullToRefreshBase<ListView> refreshView) {
            new GetDataTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
        }
    });
    albumListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    albumListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            if (position >= 0) {
                Entry entry = (Entry) parent.getItemAtPosition(position);
                if (entry != null) {
                    if (entry.isVideo()) {
                        playVideo(entry);
                    } else {
                        enableButtons();
                    }
                }
            }
        }
    });
    ImageView selectButton = (ImageView) findViewById(R.id.select_album_select);
    playNowButton = (ImageView) findViewById(R.id.select_album_play_now);
    ImageView playNextButton = (ImageView) findViewById(R.id.select_album_play_next);
    ImageView playLastButton = (ImageView) findViewById(R.id.select_album_play_last);
    pinButton = (ImageView) findViewById(R.id.select_album_pin);
    unpinButton = (ImageView) findViewById(R.id.select_album_unpin);
    downloadButton = (ImageView) findViewById(R.id.select_album_download);
    deleteButton = (ImageView) findViewById(R.id.select_album_delete);
    ImageView oreButton = (ImageView) findViewById(R.id.select_album_more);
    emptyView = findViewById(R.id.select_album_empty);
    selectButton.setVisibility(View.GONE);
    playNextButton.setVisibility(View.GONE);
    playLastButton.setVisibility(View.GONE);
    oreButton.setVisibility(View.GONE);
    playNowButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            playNow(getSelectedSongs(albumListView));
        }
    });
    selectButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            selectAllOrNone();
        }
    });
    pinButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            downloadBackground(true);
            selectAll(false, false);
        }
    });
    unpinButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            unpin();
            selectAll(false, false);
        }
    });
    downloadButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            downloadBackground(false);
            selectAll(false, false);
        }
    });
    deleteButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            delete();
            selectAll(false, false);
        }
    });
    registerForContextMenu(albumListView);
    enableButtons();
    View browseMenuItem = findViewById(R.id.menu_bookmarks);
    menuDrawer.setActiveView(browseMenuItem);
    getBookmarks();
}
Also used : ImageView(android.widget.ImageView) PullToRefreshListView(com.handmark.pulltorefresh.library.PullToRefreshListView) View(android.view.View) AdapterView(android.widget.AdapterView) ListView(android.widget.ListView) Entry(org.moire.ultrasonic.domain.MusicDirectory.Entry) PullToRefreshListView(com.handmark.pulltorefresh.library.PullToRefreshListView) ListView(android.widget.ListView) AdapterView(android.widget.AdapterView) ImageView(android.widget.ImageView)

Example 14 with Entry

use of org.moire.ultrasonic.domain.MusicDirectory.Entry in project ultrasonic by ultrasonic.

the class A2dpIntentReceiver method onReceive.

@Override
public void onReceive(Context context, Intent intent) {
    DownloadService downloadService = DownloadServiceImpl.getInstance();
    if (downloadService == null) {
        return;
    }
    if (downloadService.getCurrentPlaying() == null) {
        return;
    }
    Entry song = downloadService.getCurrentPlaying().getSong();
    if (song == null) {
        return;
    }
    Intent avrcpIntent = new Intent(PLAYSTATUS_RESPONSE);
    Integer duration = song.getDuration();
    Integer playerPosition = downloadService.getPlayerPosition();
    Integer listSize = downloadService.getDownloads().size();
    if (duration != null) {
        avrcpIntent.putExtra("duration", (long) duration);
    }
    avrcpIntent.putExtra("position", (long) playerPosition);
    avrcpIntent.putExtra("ListSize", (long) listSize);
    switch(downloadService.getPlayerState()) {
        case STARTED:
            avrcpIntent.putExtra("playing", true);
            break;
        case STOPPED:
            avrcpIntent.putExtra("playing", false);
            break;
        case PAUSED:
            avrcpIntent.putExtra("playing", false);
            break;
        case COMPLETED:
            avrcpIntent.putExtra("playing", false);
            break;
        default:
            return;
    }
    context.sendBroadcast(avrcpIntent);
}
Also used : Entry(org.moire.ultrasonic.domain.MusicDirectory.Entry) Intent(android.content.Intent) DownloadService(org.moire.ultrasonic.service.DownloadService)

Aggregations

Entry (org.moire.ultrasonic.domain.MusicDirectory.Entry)14 Intent (android.content.Intent)6 DownloadFile (org.moire.ultrasonic.service.DownloadFile)5 AdapterView (android.widget.AdapterView)4 ArrayList (java.util.ArrayList)4 DownloadService (org.moire.ultrasonic.service.DownloadService)4 PendingIntent (android.app.PendingIntent)3 MusicDirectory (org.moire.ultrasonic.domain.MusicDirectory)3 MusicService (org.moire.ultrasonic.service.MusicService)3 View (android.view.View)2 ListView (android.widget.ListView)2 File (java.io.File)2 Artist (org.moire.ultrasonic.domain.Artist)2 Share (org.moire.ultrasonic.domain.Share)2 SuppressLint (android.annotation.SuppressLint)1 Notification (android.app.Notification)1 Bitmap (android.graphics.Bitmap)1 Point (android.graphics.Point)1 NotificationCompat (android.support.v4.app.NotificationCompat)1 MenuInflater (android.view.MenuInflater)1