Loading media/java/android/media/AudioManager.java +14 −0 Original line number Original line Diff line number Diff line Loading @@ -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 //-------------------- //-------------------- Loading media/java/android/media/IAudioService.aidl +2 −0 Original line number Original line Diff line number Diff line Loading @@ -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. } } services/core/java/com/android/server/audio/AudioService.java +26 −11 Original line number Original line Diff line number Diff line Loading @@ -635,6 +635,9 @@ public class AudioService extends IAudioService.Stub } } }; }; @GuardedBy("mSettingsLock") private boolean mRttEnabled = false; /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// // Construction // Construction /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// Loading Loading @@ -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); Loading Loading @@ -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; Loading Loading @@ -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, Loading Loading @@ -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 //========================================================================================== //========================================================================================== Loading Loading @@ -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 Loading @@ -6009,7 +6025,6 @@ public class AudioService extends IAudioService.Stub updateEncodedSurroundOutput(); updateEncodedSurroundOutput(); sendEnabledSurroundFormats(mContentResolver, mSurroundModeChanged); sendEnabledSurroundFormats(mContentResolver, mSurroundModeChanged); updateAssistantUId(false); updateAssistantUId(false); updateRttEanbled(mContentResolver); } } } } Loading Loading
media/java/android/media/AudioManager.java +14 −0 Original line number Original line Diff line number Diff line Loading @@ -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 //-------------------- //-------------------- Loading
media/java/android/media/IAudioService.aidl +2 −0 Original line number Original line Diff line number Diff line Loading @@ -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. } }
services/core/java/com/android/server/audio/AudioService.java +26 −11 Original line number Original line Diff line number Diff line Loading @@ -635,6 +635,9 @@ public class AudioService extends IAudioService.Stub } } }; }; @GuardedBy("mSettingsLock") private boolean mRttEnabled = false; /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// // Construction // Construction /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// Loading Loading @@ -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); Loading Loading @@ -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; Loading Loading @@ -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, Loading Loading @@ -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 //========================================================================================== //========================================================================================== Loading Loading @@ -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 Loading @@ -6009,7 +6025,6 @@ public class AudioService extends IAudioService.Stub updateEncodedSurroundOutput(); updateEncodedSurroundOutput(); sendEnabledSurroundFormats(mContentResolver, mSurroundModeChanged); sendEnabledSurroundFormats(mContentResolver, mSurroundModeChanged); updateAssistantUId(false); updateAssistantUId(false); updateRttEanbled(mContentResolver); } } } } Loading