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

Commit 042df33a authored by Zhao Wei Liew's avatar Zhao Wei Liew Committed by Steve Kondik
Browse files

InCallUI: Break qti-telephony-framework dependency

  Not all devices have qti-telephony-framework,
  so fall back to AOSP's methods if needed.

Change-Id: I4f2cec3a98faa7a9ee77db08e2fb253f4f043f18
parent 8f8a268b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -924,8 +924,8 @@ public class Call {
     */
    private void updateEmergencyCallState() {
        Uri handle = mTelecomCall.getDetails().getHandle();
        mIsEmergencyCall = QtiCallUtils.isEmergencyNumber
                (handle == null ? "" : handle.getSchemeSpecificPart());
        mIsEmergencyCall = QtiCallUtils.isEmergencyNumber(mTelecomCall,
                handle == null ? "" : handle.getSchemeSpecificPart());
    }

    /**
+1 −1
Original line number Diff line number Diff line
@@ -408,7 +408,7 @@ public class CallerInfoAsyncQuery {
        cw.number = info.phoneNumber;

        // check to see if these are recognized numbers, and use shortcuts if we can.
        if (QtiCallUtils.isLocalEmergencyNumber(info.phoneNumber)){
        if (QtiCallUtils.isLocalEmergencyNumber(context, info.phoneNumber)){
            cw.event = EVENT_EMERGENCY_NUMBER;
        } else if (info.isVoiceMailNumber()) {
            cw.event = EVENT_VOICEMAIL_NUMBER;
+17 −12
Original line number Diff line number Diff line
@@ -43,9 +43,12 @@ import android.os.IBinder;
import android.os.RemoteException;
import android.content.pm.ActivityInfo;
import android.telecom.InCallService.VideoCall;
import android.telephony.PhoneNumberUtils;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;

import com.android.incallui.util.TelecomCallUtil;

import java.lang.reflect.*;
import java.util.ArrayList;

@@ -314,33 +317,35 @@ public class QtiCallUtils {
    /**
     * returns true if it is emrgency number else false
     */
    public static boolean isEmergencyNumber(String number) {
        boolean isEmergencyNumber = false;
    public static boolean isEmergencyNumber(android.telecom.Call telecomCall, String number) {
        IExtTelephony extTelephony = getIExtTelephony();
        if (extTelephony == null) {
            return TelecomCallUtil.isEmergencyCall(telecomCall);
        }

        try {
            isEmergencyNumber = getIExtTelephony().isEmergencyNumber(number);
            return extTelephony.isEmergencyNumber(number);
        } catch (RemoteException ex) {
            Log.e(LOG_TAG, "Exception : " + ex);
        } catch (NullPointerException ex) {
            Log.e(LOG_TAG, "Exception : " + ex);
            return TelecomCallUtil.isEmergencyCall(telecomCall);
        }
        return isEmergencyNumber;
    }

    /**
     * returns true if it is local emrgency number else false
     */
    public static boolean isLocalEmergencyNumber(String number) {
        boolean isEmergencyNumber = false;
    public static boolean isLocalEmergencyNumber(Context context, String number) {
        IExtTelephony extTelephony = getIExtTelephony();
        if (extTelephony == null) {
            return PhoneNumberUtils.isLocalEmergencyNumber(context, number);
        }

        try {
            isEmergencyNumber = getIExtTelephony().isLocalEmergencyNumber(number);
            return extTelephony.isLocalEmergencyNumber(number);
        } catch (RemoteException ex) {
            Log.e(LOG_TAG, "Exception : " + ex);
        } catch (NullPointerException ex) {
            Log.e(LOG_TAG, "Exception : " + ex);
            return PhoneNumberUtils.isLocalEmergencyNumber(context, number);
        }
        return isEmergencyNumber;
    }

    /**