Android Open Source - PlayerHater Player Hater






From Project

Back to project page PlayerHater.

License

The source code is released under:

Apache License

If you think the Android project PlayerHater listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*******************************************************************************
 * Copyright 2013 Chris Rhoden, Rebecca Nesson, Public Radio Exchange
 * //  w w w  . j  av  a2 s.  co  m
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/
package org.prx.playerhater;

import org.prx.playerhater.wrappers.BoundPlayerHater;
import org.prx.playerhater.util.Config;
import org.prx.playerhater.util.IPlayerHater;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.media.RemoteControlClient;
import android.util.Log;

public abstract class PlayerHater implements IPlayerHater {

  @SuppressLint("InlinedApi")
  public static final int DEFAULT_TRANSPORT_CONTROL_FLAGS = RemoteControlClient.FLAG_KEY_MEDIA_NEXT
      | RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE
      | RemoteControlClient.FLAG_KEY_MEDIA_PAUSE
      | RemoteControlClient.FLAG_KEY_MEDIA_PLAY
      | RemoteControlClient.FLAG_KEY_MEDIA_PREVIOUS
      | RemoteControlClient.FLAG_KEY_MEDIA_STOP;

  /**
   * Releases the {@linkplain ServiceConnection} which this instance is using
   * if this instance is backed by a {@linkplain ServiceConnection}
   * 
   * @return {@code true} if this instance was backed by a
   *         {@linkplain ServiceConnection} and should not be used anymore,
   *         {@code false} otherwise.
   */
  public boolean release() {
    return false;
  }

  public boolean setLocalPlugin(PlayerHaterPlugin plugin) {
    return false;
  }

  /**
   * Constructs an {@linkplain Intent} which will start the appropriate
   * {@linkplain PlayerHaterService} as configured in the project's
   * AndroidManifest.xml file.
   * 
   * @param context
   * @return An {@link Intent} which will start the correct service.
   * @throws IllegalArgumentException
   *             if there is no appropriate service configured in
   *             AndroidManifest.xml
   */
  public static Intent buildServiceIntent(Context context) {
    Intent intent = new Intent("org.prx.playerhater.SERVICE");
    intent.setPackage(context.getPackageName());
    Config.attachToIntent(intent);

    if (context.getPackageManager().queryIntentServices(intent, 0).size() == 0) {
      intent = new Intent(context, PlaybackService.class);
      Config.attachToIntent(intent);
      if (context.getPackageManager().queryIntentServices(intent, 0)
          .size() == 0) {
        IllegalArgumentException e = new IllegalArgumentException(
            "No usable service found.");
        String tag = context.getPackageName() + "/PlayerHater";
        String message = "Please define your Playback Service. For help, refer to: https://github.com/PRX/PlayerHater/wiki/Setting-Up-Your-Manifest";
        Log.e(tag, message, e);
        throw e;
      }
    }

    return intent;
  }

  /**
   * Gets an instance of a {@linkplain BoundPlayerHater} which can be used to
   * interact with the playback service.
   * 
   * Calling this method will also invoke
   * {@linkplain PlayerHater#configure(Context)} if it has not yet been
   * called.
   * 
   * @since 2.1.0
   * 
   * @param context
   *            The context on which to bind the service.
   * @return an instance of PlayerHater which one can use to interact with the
   *         Playback Service.
   */
  public static PlayerHater bind(Context context) {
    return new BoundPlayerHater(context);
  }
}




Java Source Code List

.AbstractPlugin.java
.AudioFocusPlugin.java
.BackgroundedPlugin.java
.BoundPlayerHater.java
.BroadcastReceiver.java
.ClientPlugin.java
.Config.java
.ExpandableNotificationPlugin.java
.HeadphoneButtonGestureHelper.java
.IPlayerHater.java
.LockScreenControlsPlugin.java
.Log.java
.MediaPlayerPool.java
.NotificationPlugin.java
.OnAudioFocusChangedListener.java
.PebblePlugin.java
.PlaybackService.java
.PlayerHaterClient.java
.PlayerHaterListenerPlugin.java
.PlayerHaterListener.java
.PlayerHaterPlugin.java
.PlayerHaterServer.java
.PlayerHaterService.java
.PlayerHater.java
.PlayerStateWatcher.java
.Player.java
.PlaylistParser.java
.PlaylistSupportingPlayer.java
.PluginCollection.java
.Receiver.java
.RemoteControlButtonReceiver.java
.RemoteSong.java
.ServerPlayerHater.java
.ServicePlayerHater.java
.SongHost.java
.SongQueue.java
.Song.java
.Songs.java
.StatelyPlayer.java
.SynchronousPlayer.java
.ThreadsafePlayerHater.java
.ThreadsafeServicePlayerHater.java
.TouchableNotificationPlugin.java
org.prx.playerhater.BroadcastReceiver.java
org.prx.playerhater.PlaybackService.java
org.prx.playerhater.PlayerHaterListener.java
org.prx.playerhater.PlayerHaterPlugin.java
org.prx.playerhater.PlayerHater.java
org.prx.playerhater.Song.java
org.prx.playerhater.broadcast.HeadphoneButtonGestureHelper.java
org.prx.playerhater.broadcast.OnAudioFocusChangedListener.java
org.prx.playerhater.broadcast.Receiver.java
org.prx.playerhater.broadcast.RemoteControlButtonReceiver.java
org.prx.playerhater.ipc.ClientPlugin.java
org.prx.playerhater.ipc.PlayerHaterClient.java
org.prx.playerhater.ipc.PlayerHaterServer.java
org.prx.playerhater.ipc.ServerPlayerHater.java
org.prx.playerhater.mediaplayer.MediaPlayerPool.java
org.prx.playerhater.mediaplayer.Player.java
org.prx.playerhater.mediaplayer.PlaylistSupportingPlayer.java
org.prx.playerhater.mediaplayer.StatelyPlayer.java
org.prx.playerhater.mediaplayer.SynchronousPlayer.java
org.prx.playerhater.plugins.AbstractPlugin.java
org.prx.playerhater.plugins.AudioFocusPlugin.java
org.prx.playerhater.plugins.BackgroundedPlugin.java
org.prx.playerhater.plugins.ExpandableNotificationPlugin.java
org.prx.playerhater.plugins.LockScreenControlsPlugin.java
org.prx.playerhater.plugins.NotificationPlugin.java
org.prx.playerhater.plugins.PebblePlugin.java
org.prx.playerhater.plugins.PlayerHaterListenerPlugin.java
org.prx.playerhater.plugins.PluginCollection.java
org.prx.playerhater.plugins.ScrubbableLockScreenControlsPlugin.java
org.prx.playerhater.plugins.TouchableNotificationPlugin.java
org.prx.playerhater.service.PlayerHaterService.java
org.prx.playerhater.service.PlayerStateWatcher.java
org.prx.playerhater.songs.RemoteSong.java
org.prx.playerhater.songs.SongHost.java
org.prx.playerhater.songs.SongQueue.java
org.prx.playerhater.songs.Songs.java
org.prx.playerhater.util.Config.java
org.prx.playerhater.util.IPlayerHater.java
org.prx.playerhater.util.Log.java
org.prx.playerhater.util.PlaylistParser.java
org.prx.playerhater.wrappers.BoundPlayerHater.java
org.prx.playerhater.wrappers.ServicePlayerHater.java
org.prx.playerhater.wrappers.ThreadsafePlayerHater.java
org.prx.playerhater.wrappers.ThreadsafeServicePlayerHater.java