Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c2769ab2 authored by Jean-Michel Trivi's avatar Jean-Michel Trivi
Browse files

AudioService: make PlaybackActivityMonitor less log-chatty

Do not log error messages on release errors.
Do not try to terminate VolumeShaper when releasing a player.
Use coding convention for "private" and "static" keywords.

Test: make
Change-Id: Ic1ff376c1ce4750708c368756f7b4a8a2c05c50c
parent b8305e91
Loading
Loading
Loading
Loading
+10 −21
Original line number Diff line number Diff line
@@ -46,12 +46,12 @@ import java.util.Set;
public final class PlaybackActivityMonitor
        implements AudioPlaybackConfiguration.PlayerDeathMonitor, PlayerFocusEnforcer {

    public final static String TAG = "AudioService.PlaybackActivityMonitor";
    public static final String TAG = "AudioService.PlaybackActivityMonitor";

    private final static boolean DEBUG = false;
    private final static int VOLUME_SHAPER_SYSTEM_DUCK_ID = 1;
    private static final boolean DEBUG = false;
    private static final int VOLUME_SHAPER_SYSTEM_DUCK_ID = 1;

    private final VolumeShaper.Configuration DUCK_VSHAPE =
    private static final VolumeShaper.Configuration DUCK_VSHAPE =
            new VolumeShaper.Configuration.Builder()
                .setId(VOLUME_SHAPER_SYSTEM_DUCK_ID)
                .setCurve(new float[] { 0.f, 1.f } /* times */,
@@ -62,16 +62,12 @@ public final class PlaybackActivityMonitor
                    new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_NOTIFICATION)
                            .build()))
                .build();
    private final VolumeShaper.Configuration DUCK_ID =
    private static final VolumeShaper.Configuration DUCK_ID =
            new VolumeShaper.Configuration(VOLUME_SHAPER_SYSTEM_DUCK_ID);
    private final VolumeShaper.Operation PLAY_CREATE_IF_NEEDED =
    private static final VolumeShaper.Operation PLAY_CREATE_IF_NEEDED =
            new VolumeShaper.Operation.Builder(VolumeShaper.Operation.PLAY)
                    .createIfNeeded()
                    .build();
    private final VolumeShaper.Operation TERMINATE =
            new VolumeShaper.Operation.Builder()
                    .terminate()
                    .build();

    private final ArrayList<PlayMonitorClient> mClients = new ArrayList<PlayMonitorClient>();
    // a public client is one that needs an anonymized version of the playback configurations, we
@@ -166,14 +162,7 @@ public final class PlaybackActivityMonitor
        synchronized(mPlayerLock) {
            final AudioPlaybackConfiguration apc = mPlayers.get(new Integer(piid));
            if (checkConfigurationCaller(piid, apc, binderUid)) {
                try {
                    apc.getPlayerProxy().applyVolumeShaper(
                            DUCK_ID,
                            TERMINATE);
                } catch (Exception e) { /* silent failure, happens with binder failure */ }
                mPlayers.remove(new Integer(piid));
            } else {
                Log.e(TAG, "Error releasing player " + piid);
            }
        }
    }
@@ -206,16 +195,16 @@ public final class PlaybackActivityMonitor
    }

    /**
     * Check that piid and uid are valid for the given configuration.
     * Check that piid and uid are valid for the given valid configuration.
     * @param piid the piid of the player.
     * @param apc the configuration found for this piid.
     * @param binderUid actual uid of client trying to signal a player state/event/attributes.
     * @return true if the call is valid and the change should proceed, false otherwise.
     * @return true if the call is valid and the change should proceed, false otherwise. Always
     *      returns false when apc is null.
     */
    private static boolean checkConfigurationCaller(int piid,
            final AudioPlaybackConfiguration apc, int binderUid) {
        if (apc == null) {
            Log.e(TAG, "Invalid operation: unknown player " + piid);
            return false;
        } else if ((binderUid != 0) && (apc.getClientUid() != binderUid)) {
            Log.e(TAG, "Forbidden operation from uid " + binderUid + " for player " + piid);
@@ -509,7 +498,7 @@ public final class PlaybackActivityMonitor
    /**
     * Inner class to track clients that want to be notified of playback updates
     */
    private final static class PlayMonitorClient implements IBinder.DeathRecipient {
    private static final class PlayMonitorClient implements IBinder.DeathRecipient {

        // can afford to be static because only one PlaybackActivityMonitor ever instantiated
        static PlaybackActivityMonitor sListenerDeathMonitor;