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

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

Refactor for audio focus, remote control, media button handling

Extract audio focus, remote control and media button handling
 outside of AudioService without any changes in functionality.
 Moving logic to new class, MediaFocusControl.
Introduce interface for managing volum control logic, VolumeController.
 The VolumePanel class implements this interface.

Change-Id: I72bda2e0670c26e61ff076fd729c15f9f1156dc5
parent 03903b3b
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.media.AudioService;
import android.media.AudioSystem;
import android.media.RingtoneManager;
import android.media.ToneGenerator;
import android.media.VolumeController;
import android.net.Uri;
import android.os.Handler;
import android.os.Message;
@@ -55,7 +56,8 @@ import java.util.HashMap;
 *
 * @hide
 */
public class VolumePanel extends Handler implements OnSeekBarChangeListener, View.OnClickListener
public class VolumePanel extends Handler implements OnSeekBarChangeListener, View.OnClickListener,
        VolumeController
{
    private static final String TAG = "VolumePanel";
    private static boolean LOGD = false;
+2 −2
Original line number Diff line number Diff line
@@ -1996,7 +1996,7 @@ public class AudioManager {
        IAudioService service = getService();
        try {
            service.requestAudioFocus(streamType, durationHint, mICallBack, null,
                    AudioService.IN_VOICE_COMM_FOCUS_ID,
                    MediaFocusControl.IN_VOICE_COMM_FOCUS_ID,
                    mContext.getBasePackageName());
        } catch (RemoteException e) {
            Log.e(TAG, "Can't call requestAudioFocusForCall() on AudioService due to "+e);
@@ -2012,7 +2012,7 @@ public class AudioManager {
    public void abandonAudioFocusForCall() {
        IAudioService service = getService();
        try {
            service.abandonAudioFocus(null, AudioService.IN_VOICE_COMM_FOCUS_ID);
            service.abandonAudioFocus(null, MediaFocusControl.IN_VOICE_COMM_FOCUS_ID);
        } catch (RemoteException e) {
            Log.e(TAG, "Can't call abandonAudioFocusForCall() on AudioService due to "+e);
        }
+95 −2291

File changed.

Preview size limit exceeded, changes collapsed.

+3 −3
Original line number Diff line number Diff line
@@ -112,10 +112,10 @@ interface IAudioService {

    oneway void setRemoteSubmixOn(boolean on, int address);

    int requestAudioFocus(int mainStreamType, int durationHint, IBinder cb, IAudioFocusDispatcher l,
            String clientId, String callingPackageName);
    int requestAudioFocus(int mainStreamType, int durationHint, IBinder cb,
            IAudioFocusDispatcher fd, String clientId, String callingPackageName);

    int abandonAudioFocus(IAudioFocusDispatcher l, String clientId);
    int abandonAudioFocus(IAudioFocusDispatcher fd, String clientId);
    
    void unregisterAudioFocusClient(String clientId);

+2446 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading