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

Commit 0b9246d6 authored by Evan Charlton's avatar Evan Charlton
Browse files

Use new post-dial DTMF flows

Migrate the post-dial DTMF call flows to use the new APIs.

Bug: 13734588
Change-Id: I5cc06268590c3c424ea6daf216cb205b9c470dac
parent 48579fcc
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -19,15 +19,24 @@ package com.android.internal.telephony;
import android.telephony.Rlog;
import android.util.Log;

import java.util.ArrayList;
import java.util.List;

/**
 * {@hide}
 */
public abstract class Connection {

    public interface PostDialListener {
        void onPostDialWait();
    }

    //Caller Name Display
    protected String mCnapName;
    protected int mCnapNamePresentation  = PhoneConstants.PRESENTATION_ALLOWED;

    private List<PostDialListener> mPostDialListeners = new ArrayList<>();

    private static String LOG_TAG = "Connection";

    Object mUserData;
@@ -212,6 +221,24 @@ public abstract class Connection {
        mUserData = null;
    }

    public final void addPostDialListener(PostDialListener listener) {
        if (!mPostDialListeners.contains(listener)) {
            mPostDialListeners.add(listener);
        }
    }

    protected final void clearPostDialListeners() {
        mPostDialListeners.clear();
    }

    protected final void notifyPostDialListeners() {
        if (getPostDialState() == PostDialState.WAIT) {
            for (PostDialListener listener : new ArrayList<>(mPostDialListeners)) {
                listener.onPostDialWait();
            }
        }
    }

    public abstract PostDialState getPostDialState();

    /**
+6 −4
Original line number Diff line number Diff line
@@ -609,6 +609,7 @@ public class CdmaConnection extends Connection {
        mDisconnectTime = System.currentTimeMillis();
        mDuration = SystemClock.elapsedRealtime() - mConnectTimeReal;
        mDisconnected = true;
        clearPostDialListeners();
    }

    /*package*/ void
@@ -804,6 +805,7 @@ public class CdmaConnection extends Connection {
            releaseWakeLock();
        }
        mPostDialState = s;
        notifyPostDialListeners();
    }

    private void createWakeLock(Context context) {
+3 −0
Original line number Diff line number Diff line
@@ -437,6 +437,7 @@ public class GsmConnection extends Connection {
                changed = mParent.connectionDisconnected(this);
            }
        }
        clearPostDialListeners();
        releaseWakeLock();
        return changed;
    }
@@ -622,6 +623,7 @@ public class GsmConnection extends Connection {
        if (mPartialWakeLock.isHeld()) {
            Rlog.e(LOG_TAG, "[GSMConn] UNEXPECTED; mPartialWakeLock is held when finalizing.");
        }
        clearPostDialListeners();
        releaseWakeLock();
    }

@@ -731,6 +733,7 @@ public class GsmConnection extends Connection {
            releaseWakeLock();
        }
        mPostDialState = s;
        notifyPostDialListeners();
    }

    private void