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

Commit 6065db36 authored by Ahmad Khalil's avatar Ahmad Khalil
Browse files

Add a flag to enable RingtoneV2

We are replacing the existing SystemProperties flag "persist.audio.ringtone.use_v2" with a new flag "haptics_customization_ringtone_v2_enabled". This flag will be used to obscure the usage of RingtoneV2 class until it is officially released.

Bug: 293846645
Test: N/A
Change-Id: Ib92a93b845100e8183a36e3a4ca52fe8bbd0c780
parent 54975542
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -13,3 +13,10 @@ flag {
    description: "Enables the haptics customization feature"
    bug: "241918098"
}

flag {
    namespace: "haptics"
    name: "haptics_customization_ringtone_v2_enabled"
    description: "Enables the usage of the new RingtoneV2 class"
    bug: "241918098"
}
 No newline at end of file
+0 −12
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ import android.database.Cursor;
import android.media.audiofx.HapticGenerator;
import android.net.Uri;
import android.os.RemoteException;
import android.os.SystemProperties;
import android.os.Trace;
import android.os.VibrationEffect;
import android.os.Vibrator;
@@ -767,15 +766,4 @@ public class Ringtone {
        @RingtoneMedia int getEnabledMedia();
        VibrationEffect getVibrationEffect();
    }

    /**
     * Switch for using the new ringtone implementation (RingtoneV1 vs RingtoneV2). This may be
     * called from both system server and app-side sdk.
     *
     * @hide
     */
    public static boolean useRingtoneV2() {
        // TODO(b/293846645): chang eto new flagging infra
        return SystemProperties.getBoolean("persist.audio.ringtone.use_v2", false);
    }
}
+4 −3
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import android.os.FileUtils;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
import android.os.vibrator.Flags;
import android.os.vibrator.persistence.VibrationXmlParser;
import android.provider.BaseColumns;
import android.provider.MediaStore;
@@ -607,7 +608,7 @@ public class RingtoneManager {

        Ringtone ringtone;
        Uri positionUri = getRingtoneUri(position);
        if (Ringtone.useRingtoneV2()) {
        if (Flags.hapticsCustomizationRingtoneV2Enabled()) {
            mPreviousRingtone = new Ringtone.Builder(
                    mContext, mMediaType, getDefaultAudioAttributes(mType))
                    .setUri(positionUri)
@@ -953,7 +954,7 @@ public class RingtoneManager {
     * @return A {@link Ringtone} for the given URI, or null.
     */
    public static Ringtone getRingtone(final Context context, Uri ringtoneUri) {
        if (Ringtone.useRingtoneV2()) {
        if (Flags.hapticsCustomizationRingtoneV2Enabled()) {
            return new Ringtone.Builder(
                    context, Ringtone.MEDIA_SOUND, getDefaultAudioAttributes(-1))
                    .setUri(ringtoneUri)
@@ -970,7 +971,7 @@ public class RingtoneManager {
            @Nullable VolumeShaper.Configuration volumeShaperConfig,
            AudioAttributes audioAttributes) {
        // TODO: move caller(s) away from this method: inline the builder call.
        if (Ringtone.useRingtoneV2()) {
        if (Flags.hapticsCustomizationRingtoneV2Enabled()) {
            return new Ringtone.Builder(context, Ringtone.MEDIA_SOUND, audioAttributes)
                    .setUri(ringtoneUri)
                    .setVolumeShaperConfig(volumeShaperConfig)
+2 −1
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserHandle;
import android.os.VibrationEffect;
import android.os.vibrator.Flags;
import android.provider.MediaStore;
import android.util.Log;

@@ -111,7 +112,7 @@ public class RingtonePlayer implements CoreStartable {
        @Override
        public void play(IBinder token, Uri uri, AudioAttributes aa, float volume, boolean looping)
                throws RemoteException {
            if (Ringtone.useRingtoneV2()) {
            if (Flags.hapticsCustomizationRingtoneV2Enabled()) {
                playRemoteRingtone(token, uri, aa, true, Ringtone.MEDIA_SOUND,
                        null, volume, looping, /* hapticGenerator= */ false,
                        null);