Loading services/core/java/com/android/server/audio/SoundDoseHelper.java +28 −5 Original line number Diff line number Diff line Loading @@ -34,11 +34,13 @@ import android.media.ISoundDose; import android.media.ISoundDoseCallback; import android.media.SoundDoseRecord; import android.os.Binder; import android.os.HandlerExecutor; import android.os.Message; import android.os.RemoteException; import android.os.SystemClock; import android.os.SystemProperties; import android.os.UserHandle; import android.provider.DeviceConfig; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; Loading Loading @@ -120,6 +122,8 @@ public class SoundDoseHelper { private static final int SAFE_MEDIA_VOLUME_UNINITIALIZED = -1; private static final String FEATURE_FLAG_ENABLE_CSD = "enable_csd"; private final EventLogger mLogger = new EventLogger(AudioService.LOG_NB_EVENTS_SOUND_DOSE, "CSD updates"); Loading Loading @@ -290,6 +294,10 @@ public class SoundDoseHelper { mAlarmManager = (AlarmManager) mContext.getSystemService( Context.ALARM_SERVICE); DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_MEDIA, new HandlerExecutor(mAudioHandler), p -> updateCsdEnabled("onPropertiesChanged")); } void initSafeVolumes() { Loading Loading @@ -864,14 +872,29 @@ public class SoundDoseHelper { mAudioHandler.obtainMessage(MSG_PERSIST_SAFE_VOLUME_STATE, persistedState, /*arg2=*/0, /*obj=*/null), /*delay=*/0); } boolean newEnableCsd = SystemProperties.getBoolean("audio.safemedia.force", false) || mContext.getResources().getBoolean( updateCsdEnabled(caller); } } private void updateCsdEnabled(String caller) { boolean newEnableCsd = SystemProperties.getBoolean("audio.safemedia.force", false); if (!newEnableCsd) { final String featureFlagEnableCsdValue = DeviceConfig.getProperty( DeviceConfig.NAMESPACE_MEDIA, FEATURE_FLAG_ENABLE_CSD); if (featureFlagEnableCsdValue != null) { newEnableCsd = Boolean.parseBoolean(featureFlagEnableCsdValue); } else { newEnableCsd = mContext.getResources().getBoolean( R.bool.config_safe_sound_dosage_enabled); if (mEnableCsd.compareAndSet(!newEnableCsd, newEnableCsd)) { initCsd(); } } if (mEnableCsd.compareAndSet(!newEnableCsd, newEnableCsd)) { Log.i(TAG, caller + ": enable CSD " + newEnableCsd); initCsd(); } } Loading Loading
services/core/java/com/android/server/audio/SoundDoseHelper.java +28 −5 Original line number Diff line number Diff line Loading @@ -34,11 +34,13 @@ import android.media.ISoundDose; import android.media.ISoundDoseCallback; import android.media.SoundDoseRecord; import android.os.Binder; import android.os.HandlerExecutor; import android.os.Message; import android.os.RemoteException; import android.os.SystemClock; import android.os.SystemProperties; import android.os.UserHandle; import android.provider.DeviceConfig; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; Loading Loading @@ -120,6 +122,8 @@ public class SoundDoseHelper { private static final int SAFE_MEDIA_VOLUME_UNINITIALIZED = -1; private static final String FEATURE_FLAG_ENABLE_CSD = "enable_csd"; private final EventLogger mLogger = new EventLogger(AudioService.LOG_NB_EVENTS_SOUND_DOSE, "CSD updates"); Loading Loading @@ -290,6 +294,10 @@ public class SoundDoseHelper { mAlarmManager = (AlarmManager) mContext.getSystemService( Context.ALARM_SERVICE); DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_MEDIA, new HandlerExecutor(mAudioHandler), p -> updateCsdEnabled("onPropertiesChanged")); } void initSafeVolumes() { Loading Loading @@ -864,14 +872,29 @@ public class SoundDoseHelper { mAudioHandler.obtainMessage(MSG_PERSIST_SAFE_VOLUME_STATE, persistedState, /*arg2=*/0, /*obj=*/null), /*delay=*/0); } boolean newEnableCsd = SystemProperties.getBoolean("audio.safemedia.force", false) || mContext.getResources().getBoolean( updateCsdEnabled(caller); } } private void updateCsdEnabled(String caller) { boolean newEnableCsd = SystemProperties.getBoolean("audio.safemedia.force", false); if (!newEnableCsd) { final String featureFlagEnableCsdValue = DeviceConfig.getProperty( DeviceConfig.NAMESPACE_MEDIA, FEATURE_FLAG_ENABLE_CSD); if (featureFlagEnableCsdValue != null) { newEnableCsd = Boolean.parseBoolean(featureFlagEnableCsdValue); } else { newEnableCsd = mContext.getResources().getBoolean( R.bool.config_safe_sound_dosage_enabled); if (mEnableCsd.compareAndSet(!newEnableCsd, newEnableCsd)) { initCsd(); } } if (mEnableCsd.compareAndSet(!newEnableCsd, newEnableCsd)) { Log.i(TAG, caller + ": enable CSD " + newEnableCsd); initCsd(); } } Loading