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

Commit 69330252 authored by Wilson Wu's avatar Wilson Wu Committed by Ming-Shin Lu
Browse files

Add SystemApi for vibration util APIs

Telecom will mainline in the future, adding SystemApi
for vibration utility APIs for mainline modules.

Flag: android.media.audio.ringtone_vibration_utils_api
Bug: 341310653
Bug: 399265235
Test: build
Change-Id: I516545c986db1ad4a32117889dcf0263b7bff1ea
parent 2133fcff
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -222,6 +222,12 @@ package android.media {
    method @Nullable public android.os.IBinder get();
  }

  @FlaggedApi("android.media.audio.ringtone_vibration_utils_api") public class Utils {
    method @FlaggedApi("android.media.audio.ringtone_vibration_utils_api") public static boolean hasVibrationParameter(@Nullable android.net.Uri);
    field @FlaggedApi("android.media.audio.ringtone_vibration_utils_api") public static final String SYNCHRONIZED_VIBRATION = "synchronized";
    field @FlaggedApi("android.media.audio.ringtone_vibration_utils_api") public static final String VIBRATION_URI_PARAM = "vibration_uri";
  }

}

package android.media.session {
+3 −4
Original line number Diff line number Diff line
@@ -2164,10 +2164,9 @@ package android.media {
    method public android.media.PlaybackParams setAudioStretchMode(int);
  }

  public class Utils {
    ctor public Utils();
    field public static final String SYNCHRONIZED_VIBRATION = "synchronized";
    field public static final String VIBRATION_URI_PARAM = "vibration_uri";
  @FlaggedApi("android.media.audio.ringtone_vibration_utils_api") public class Utils {
    field @FlaggedApi("android.media.audio.ringtone_vibration_utils_api") public static final String SYNCHRONIZED_VIBRATION = "synchronized";
    field @FlaggedApi("android.media.audio.ringtone_vibration_utils_api") public static final String VIBRATION_URI_PARAM = "vibration_uri";
  }

  public final class VolumePolicy implements android.os.Parcelable {
+1 −1
Original line number Diff line number Diff line
@@ -1091,7 +1091,7 @@ public class RingtoneManager {
        }

        if (Flags.enableRingtoneHapticsCustomization()
                && Utils.hasVibration(defaultRingtoneUri)) {
                && Utils.hasVibrationParameter(defaultRingtoneUri)) {
            // skip to check TYPE_ALARM because the customized haptic hasn't enabled in alarm
            if (defaultRingtoneUri.toString()
                    .contains(Settings.System.DEFAULT_RINGTONE_URI.toString())) {
+19 −4
Original line number Diff line number Diff line
@@ -16,14 +16,19 @@

package android.media;

import static android.annotation.SystemApi.Client.MODULE_LIBRARIES;

import android.annotation.FlaggedApi;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.content.ContentResolver;
import android.content.Context;
import android.content.res.Resources;
import android.database.Cursor;
import android.media.audio.Flags;
import android.net.Uri;
import android.os.Binder;
import android.os.Environment;
@@ -64,22 +69,30 @@ import java.util.concurrent.Executor;
 * @hide
 */
@TestApi
@SuppressLint({"UnflaggedApi", "StaticUtils"}) // Test API
@SuppressLint({"StaticUtils"})
@FlaggedApi(Flags.FLAG_RINGTONE_VIBRATION_UTILS_API)
@SystemApi(client = MODULE_LIBRARIES)
public class Utils {

    // Not instantiable.
    private Utils() {}

    private static final String TAG = "Utils";

    /** @hide
     * The vibration uri key parameter
     */
    @TestApi
    @SuppressLint("UnflaggedApi") // Test API
    @FlaggedApi(Flags.FLAG_RINGTONE_VIBRATION_UTILS_API)
    @SystemApi(client = MODULE_LIBRARIES)
    public static final String VIBRATION_URI_PARAM = "vibration_uri";

    /** @hide
     * Indicates the synchronized vibration
     */
    @TestApi
    @SuppressLint("UnflaggedApi") // Test API
    @FlaggedApi(Flags.FLAG_RINGTONE_VIBRATION_UTILS_API)
    @SystemApi(client = MODULE_LIBRARIES)
    public static final String SYNCHRONIZED_VIBRATION = "synchronized";

    /**
@@ -750,7 +763,9 @@ public class Utils {
     *
     * @hide
     */
    public static boolean hasVibration(Uri ringtoneUri) {
    @FlaggedApi(Flags.FLAG_RINGTONE_VIBRATION_UTILS_API)
    @SystemApi(client = MODULE_LIBRARIES)
    public static boolean hasVibrationParameter(@Nullable Uri ringtoneUri) {
        if (ringtoneUri == null) {
            return false;
        }
+1 −1
Original line number Diff line number Diff line
@@ -744,7 +744,7 @@ public class SettingsHelper {
    }

    private boolean hasVibrationSettings(String value, int type) {
        if (Utils.hasVibration(Uri.parse(value)) && mContext.getResources().getBoolean(
        if (Utils.hasVibrationParameter(Uri.parse(value)) && mContext.getResources().getBoolean(
                com.android.internal.R.bool.config_ringtoneVibrationSettingsSupported)) {
            if (type == RingtoneManager.TYPE_RINGTONE) {
                return android.media.audio.Flags.enableRingtoneHapticsCustomization();