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

Commit fa9a38c5 authored by Hung-ying Tyan's avatar Hung-ying Tyan Committed by Android Git Automerger
Browse files

am 6ab94608: Merge "CallManager: add setAudioMode()" into gingerbread

Merge commit '6ab94608' into gingerbread-plus-aosp

* commit '6ab94608':
  CallManager: add setAudioMode()
parents 29eb491a 6ab94608
Loading
Loading
Loading
Loading
+29 −4
Original line number Diff line number Diff line
@@ -19,15 +19,14 @@ package com.android.internal.telephony;
import com.android.internal.telephony.sip.SipPhone;

import android.content.Context;
import android.media.AudioManager;
import android.os.AsyncResult;
import android.os.Handler;
import android.os.Message;
import android.os.RegistrantList;
import android.util.Log;

import android.telephony.PhoneStateListener;
import android.telephony.ServiceState;

import android.util.Log;

import java.util.ArrayList;
import java.util.Collections;
@@ -54,7 +53,7 @@ import java.util.List;
 */
public final class CallManager {

    private static final String LOG_TAG ="GSM";
    private static final String LOG_TAG ="Phone";
    private static final boolean LOCAL_DEBUG = true;

    private static final int EVENT_DISCONNECT = 100;
@@ -305,6 +304,32 @@ public final class CallManager {
        }
    }

    public void setAudioMode() {
        Context context = getContext();
        if (context == null) return;
        AudioManager audioManager = (AudioManager)
                context.getSystemService(Context.AUDIO_SERVICE);

        int mode = AudioManager.MODE_NORMAL;
        switch (getState()) {
            case RINGING:
                mode = AudioManager.MODE_RINGTONE;
                break;
            case OFFHOOK:
                Phone fgPhone = getFgPhone();
                if (!(fgPhone instanceof SipPhone)) {
                    mode = AudioManager.MODE_IN_CALL;
                }
                break;
        }
        audioManager.setMode(mode);
    }

    private Context getContext() {
        Phone defaultPhone = getDefaultPhone();
        return ((defaultPhone == null) ? null : defaultPhone.getContext());
    }

    private void registerForPhoneStates(Phone phone) {
        phone.registerForPreciseCallStateChanged(mHandler, EVENT_PRECISE_CALL_STATE_CHANGED, null);
        phone.registerForDisconnect(mHandler, EVENT_DISCONNECT, null);