Merge "CSD: Add support for csd feature flag" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
7b66fd7a67
@@ -34,11 +34,13 @@ import android.media.ISoundDose;
|
|||||||
import android.media.ISoundDoseCallback;
|
import android.media.ISoundDoseCallback;
|
||||||
import android.media.SoundDoseRecord;
|
import android.media.SoundDoseRecord;
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
|
import android.os.HandlerExecutor;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
|
import android.provider.DeviceConfig;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -120,6 +122,8 @@ public class SoundDoseHelper {
|
|||||||
|
|
||||||
private static final int SAFE_MEDIA_VOLUME_UNINITIALIZED = -1;
|
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,
|
private final EventLogger mLogger = new EventLogger(AudioService.LOG_NB_EVENTS_SOUND_DOSE,
|
||||||
"CSD updates");
|
"CSD updates");
|
||||||
|
|
||||||
@@ -290,6 +294,10 @@ public class SoundDoseHelper {
|
|||||||
|
|
||||||
mAlarmManager = (AlarmManager) mContext.getSystemService(
|
mAlarmManager = (AlarmManager) mContext.getSystemService(
|
||||||
Context.ALARM_SERVICE);
|
Context.ALARM_SERVICE);
|
||||||
|
|
||||||
|
DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_MEDIA,
|
||||||
|
new HandlerExecutor(mAudioHandler),
|
||||||
|
p -> updateCsdEnabled("onPropertiesChanged"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void initSafeVolumes() {
|
void initSafeVolumes() {
|
||||||
@@ -864,16 +872,31 @@ public class SoundDoseHelper {
|
|||||||
mAudioHandler.obtainMessage(MSG_PERSIST_SAFE_VOLUME_STATE,
|
mAudioHandler.obtainMessage(MSG_PERSIST_SAFE_VOLUME_STATE,
|
||||||
persistedState, /*arg2=*/0,
|
persistedState, /*arg2=*/0,
|
||||||
/*obj=*/null), /*delay=*/0);
|
/*obj=*/null), /*delay=*/0);
|
||||||
|
}
|
||||||
|
|
||||||
boolean newEnableCsd = SystemProperties.getBoolean("audio.safemedia.force", false)
|
updateCsdEnabled(caller);
|
||||||
|| mContext.getResources().getBoolean(
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
R.bool.config_safe_sound_dosage_enabled);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (mEnableCsd.compareAndSet(!newEnableCsd, newEnableCsd)) {
|
if (mEnableCsd.compareAndSet(!newEnableCsd, newEnableCsd)) {
|
||||||
|
Log.i(TAG, caller + ": enable CSD " + newEnableCsd);
|
||||||
initCsd();
|
initCsd();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private int getTimeoutMsForWarning(@AudioManager.CsdWarning int csdWarning) {
|
private int getTimeoutMsForWarning(@AudioManager.CsdWarning int csdWarning) {
|
||||||
switch (csdWarning) {
|
switch (csdWarning) {
|
||||||
|
|||||||
Reference in New Issue
Block a user