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

Commit b13be243 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Have Telecom service notify AudioService of RTT call state." into...

Merge "Have Telecom service notify AudioService of RTT call state." into rvc-dev am: cbf33802 am: 9c660efe am: 94fa96a6 am: 6e37cba8

Change-Id: Id2dc6182eca009d4c4b17659551d99867bc90c65
parents 09a25b28 6e37cba8
Loading
Loading
Loading
Loading
+14 −0
Original line number Original line Diff line number Diff line
@@ -5987,6 +5987,20 @@ public class AudioManager {
        }
        }
    }
    }


    /**
     * Set whether or not there is an active RTT call.
     * This method should be called by Telecom service.
     * @hide
     * TODO: make this a @SystemApi
     */
    public static void setRttEnabled(boolean rttEnabled) {
        try {
            getService().setRttEnabled(rttEnabled);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }

    //---------------------------------------------------------
    //---------------------------------------------------------
    // Inner classes
    // Inner classes
    //--------------------
    //--------------------
+2 −0
Original line number Original line Diff line number Diff line
@@ -292,6 +292,8 @@ interface IAudioService {
    oneway void unregisterStrategyPreferredDeviceDispatcher(
    oneway void unregisterStrategyPreferredDeviceDispatcher(
            IStrategyPreferredDeviceDispatcher dispatcher);
            IStrategyPreferredDeviceDispatcher dispatcher);


    oneway void setRttEnabled(in boolean rttEnabled);

    // WARNING: read warning at top of file, new methods that need to be used by native
    // WARNING: read warning at top of file, new methods that need to be used by native
    // code via IAudioManager.h need to be added to the top section.
    // code via IAudioManager.h need to be added to the top section.
}
}
+26 −11
Original line number Original line Diff line number Diff line
@@ -635,6 +635,9 @@ public class AudioService extends IAudioService.Stub
        }
        }
    };
    };


    @GuardedBy("mSettingsLock")
    private boolean mRttEnabled = false;

    ///////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////
    // Construction
    // Construction
    ///////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////
@@ -1054,7 +1057,7 @@ public class AudioService extends IAudioService.Stub
            sendEncodedSurroundMode(mContentResolver, "onAudioServerDied");
            sendEncodedSurroundMode(mContentResolver, "onAudioServerDied");
            sendEnabledSurroundFormats(mContentResolver, true);
            sendEnabledSurroundFormats(mContentResolver, true);
            updateAssistantUId(true);
            updateAssistantUId(true);
            updateRttEanbled(mContentResolver);
            AudioSystem.setRttEnabled(mRttEnabled);
        }
        }
        synchronized (mAccessibilityServiceUidsLock) {
        synchronized (mAccessibilityServiceUidsLock) {
            AudioSystem.setA11yServicesUids(mAccessibilityServiceUids);
            AudioSystem.setA11yServicesUids(mAccessibilityServiceUids);
@@ -1599,12 +1602,6 @@ public class AudioService extends IAudioService.Stub
        }
        }
    }
    }


    private void updateRttEanbled(ContentResolver cr) {
        final boolean rttEnabled = Settings.Secure.getIntForUser(cr,
                    Settings.Secure.RTT_CALLING_MODE, 0, UserHandle.USER_CURRENT) != 0;
        AudioSystem.setRttEnabled(rttEnabled);
    }

    private void readPersistedSettings() {
    private void readPersistedSettings() {
        final ContentResolver cr = mContentResolver;
        final ContentResolver cr = mContentResolver;


@@ -1649,7 +1646,7 @@ public class AudioService extends IAudioService.Stub
            sendEncodedSurroundMode(cr, "readPersistedSettings");
            sendEncodedSurroundMode(cr, "readPersistedSettings");
            sendEnabledSurroundFormats(cr, true);
            sendEnabledSurroundFormats(cr, true);
            updateAssistantUId(true);
            updateAssistantUId(true);
            updateRttEanbled(cr);
            AudioSystem.setRttEnabled(mRttEnabled);
        }
        }


        mMuteAffectedStreams = System.getIntForUser(cr,
        mMuteAffectedStreams = System.getIntForUser(cr,
@@ -3770,6 +3767,27 @@ public class AudioService extends IAudioService.Stub
        return mIsCallScreeningModeSupported;
        return mIsCallScreeningModeSupported;
    }
    }


    /** @see AudioManager#setRttEnabled() */
    @Override
    public void setRttEnabled(boolean rttEnabled) {
        if (mContext.checkCallingOrSelfPermission(
                android.Manifest.permission.MODIFY_PHONE_STATE)
                != PackageManager.PERMISSION_GRANTED) {
            Log.w(TAG, "MODIFY_PHONE_STATE Permission Denial: setRttEnabled from pid="
                    + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid());
            return;
        }
        synchronized (mSettingsLock) {
            mRttEnabled = rttEnabled;
            final long identity = Binder.clearCallingIdentity();
            try {
                AudioSystem.setRttEnabled(rttEnabled);
            } finally {
                Binder.restoreCallingIdentity(identity);
            }
        }
    }

    //==========================================================================================
    //==========================================================================================
    // Sound Effects
    // Sound Effects
    //==========================================================================================
    //==========================================================================================
@@ -5984,8 +6002,6 @@ public class AudioService extends IAudioService.Stub


            mContentResolver.registerContentObserver(Settings.Secure.getUriFor(
            mContentResolver.registerContentObserver(Settings.Secure.getUriFor(
                    Settings.Secure.VOICE_INTERACTION_SERVICE), false, this);
                    Settings.Secure.VOICE_INTERACTION_SERVICE), false, this);
            mContentResolver.registerContentObserver(Settings.Secure.getUriFor(
                    Settings.Secure.RTT_CALLING_MODE), false, this);
        }
        }


        @Override
        @Override
@@ -6009,7 +6025,6 @@ public class AudioService extends IAudioService.Stub
                updateEncodedSurroundOutput();
                updateEncodedSurroundOutput();
                sendEnabledSurroundFormats(mContentResolver, mSurroundModeChanged);
                sendEnabledSurroundFormats(mContentResolver, mSurroundModeChanged);
                updateAssistantUId(false);
                updateAssistantUId(false);
                updateRttEanbled(mContentResolver);
            }
            }
        }
        }