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

Commit 55a0aebe authored by Lais Andrade's avatar Lais Andrade
Browse files

Introduce SystemVibratorManager

Add default system implementation of vibrator manager service that uses
IVibratorManagerService to access the device vibrators.

Change implementation of SystemVibrator to use VibratorManagerService
and delete local service VibratorService.

Introduce missing public APIs for VibratorManager and Vibrator.getId.

Bug: 167946816
Test: VibratorManagerServiceTest, VibratorTest, VibrationEffectTest
Change-Id: I55cdeb72c7ca39ccf0c7b2fda60b16de1031801e
parent c4f27f30
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -204,7 +204,6 @@ Landroid/os/IRemoteCallback$Stub;-><init>()V
Landroid/os/IUpdateEngine$Stub;-><init>()V
Landroid/os/IUserManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
Landroid/os/IVibratorService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IVibratorService;
Landroid/os/storage/IObbActionListener$Stub;-><init>()V
Landroid/os/storage/IStorageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
Landroid/os/storage/IStorageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IStorageManager;
+5 −1
Original line number Diff line number Diff line
@@ -10424,6 +10424,7 @@ package android.content {
    field public static final String USAGE_STATS_SERVICE = "usagestats";
    field public static final String USB_SERVICE = "usb";
    field public static final String USER_SERVICE = "user";
    field public static final String VIBRATOR_MANAGER_SERVICE = "vibrator_manager";
    field public static final String VIBRATOR_SERVICE = "vibrator";
    field public static final String VPN_MANAGEMENT_SERVICE = "vpn_management";
    field public static final String WALLPAPER_SERVICE = "wallpaper";
@@ -31608,6 +31609,7 @@ package android.os {
    method @NonNull public int[] areEffectsSupported(@NonNull int...);
    method @NonNull public boolean[] arePrimitivesSupported(@NonNull int...);
    method @RequiresPermission(android.Manifest.permission.VIBRATE) public abstract void cancel();
    method public int getId();
    method public abstract boolean hasAmplitudeControl();
    method public abstract boolean hasVibrator();
    method @Deprecated @RequiresPermission(android.Manifest.permission.VIBRATE) public void vibrate(long);
@@ -31622,10 +31624,12 @@ package android.os {
  }
  public abstract class VibratorManager {
    method @RequiresPermission(android.Manifest.permission.VIBRATE) public abstract void cancel();
    method @NonNull public abstract android.os.Vibrator getDefaultVibrator();
    method @NonNull public abstract android.os.Vibrator getVibrator(int);
    method @NonNull public abstract int[] getVibratorIds();
    method public abstract void vibrate(@NonNull android.os.CombinedVibrationEffect);
    method @RequiresPermission(android.Manifest.permission.VIBRATE) public final void vibrate(@NonNull android.os.CombinedVibrationEffect);
    method @RequiresPermission(android.Manifest.permission.VIBRATE) public final void vibrate(@NonNull android.os.CombinedVibrationEffect, @Nullable android.os.VibrationAttributes);
  }
  public class WorkSource implements android.os.Parcelable {
+26 −0
Original line number Diff line number Diff line
@@ -1369,6 +1369,32 @@ package android.os {
    field public static final int RESOURCES_SDK_INT;
  }

  public abstract class CombinedVibrationEffect implements android.os.Parcelable {
    method public abstract long getDuration();
  }

  public static final class CombinedVibrationEffect.Mono extends android.os.CombinedVibrationEffect {
    method public long getDuration();
    method @NonNull public android.os.VibrationEffect getEffect();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.os.CombinedVibrationEffect.Mono> CREATOR;
  }

  public static final class CombinedVibrationEffect.Sequential extends android.os.CombinedVibrationEffect {
    method @NonNull public java.util.List<java.lang.Integer> getDelays();
    method public long getDuration();
    method @NonNull public java.util.List<android.os.CombinedVibrationEffect> getEffects();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.os.CombinedVibrationEffect.Sequential> CREATOR;
  }

  public static final class CombinedVibrationEffect.Stereo extends android.os.CombinedVibrationEffect {
    method public long getDuration();
    method @NonNull public android.util.SparseArray<android.os.VibrationEffect> getEffects();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.os.CombinedVibrationEffect.Stereo> CREATOR;
  }

  public class DeviceIdleManager {
    method @NonNull public String[] getSystemPowerWhitelist();
    method @NonNull public String[] getSystemPowerWhitelistExceptIdle();
+9 −0
Original line number Diff line number Diff line
@@ -167,9 +167,11 @@ import android.os.StatsFrameworkInitializer;
import android.os.SystemConfigManager;
import android.os.SystemUpdateManager;
import android.os.SystemVibrator;
import android.os.SystemVibratorManager;
import android.os.UserHandle;
import android.os.UserManager;
import android.os.Vibrator;
import android.os.VibratorManager;
import android.os.health.SystemHealthManager;
import android.os.image.DynamicSystemManager;
import android.os.image.IDynamicSystemService;
@@ -699,6 +701,13 @@ public final class SystemServiceRegistry {
                    }
                });

        registerService(Context.VIBRATOR_MANAGER_SERVICE, VibratorManager.class,
                new CachedServiceFetcher<VibratorManager>() {
                    @Override
                    public VibratorManager createService(ContextImpl ctx) {
                        return new SystemVibratorManager(ctx);
                    }});

        registerService(Context.VIBRATOR_SERVICE, Vibrator.class,
                new CachedServiceFetcher<Vibrator>() {
            @Override
+20 −4
Original line number Diff line number Diff line
@@ -3479,6 +3479,7 @@ public abstract class Context {
            STORAGE_STATS_SERVICE,
            WALLPAPER_SERVICE,
            TIME_ZONE_RULES_MANAGER_SERVICE,
            VIBRATOR_MANAGER_SERVICE,
            VIBRATOR_SERVICE,
            //@hide: STATUS_BAR_SERVICE,
            CONNECTIVITY_SERVICE,
@@ -3625,9 +3626,11 @@ public abstract class Context {
     *   (e.g., GPS) updates.
     *  <dt> {@link #SEARCH_SERVICE} ("search")
     *  <dd> A {@link android.app.SearchManager} for handling search.
     *  <dt> {@link #VIBRATOR_MANAGER_SERVICE} ("vibrator_manager")
     *  <dd> A {@link android.os.VibratorManager} for accessing the device vibrators, interacting
     *  with individual ones and playing synchronized effects on multiple vibrators.
     *  <dt> {@link #VIBRATOR_SERVICE} ("vibrator")
     *  <dd> A {@link android.os.Vibrator} for interacting with the vibrator
     *  hardware.
     *  <dd> A {@link android.os.Vibrator} for interacting with the vibrator hardware.
     *  <dt> {@link #CONNECTIVITY_SERVICE} ("connectivity")
     *  <dd> A {@link android.net.ConnectivityManager ConnectivityManager} for
     *  handling management of network connections.
@@ -3707,6 +3710,8 @@ public abstract class Context {
     * @see android.hardware.SensorManager
     * @see #STORAGE_SERVICE
     * @see android.os.storage.StorageManager
     * @see #VIBRATOR_MANAGER_SERVICE
     * @see android.os.VibratorManager
     * @see #VIBRATOR_SERVICE
     * @see android.os.Vibrator
     * @see #CONNECTIVITY_SERVICE
@@ -4034,8 +4039,19 @@ public abstract class Context {
    public static final String WALLPAPER_SERVICE = "wallpaper";

    /**
     * Use with {@link #getSystemService(String)} to retrieve a {@link
     * android.os.Vibrator} for interacting with the vibration hardware.
     * Use with {@link #getSystemService(String)} to retrieve a {@link android.os.VibratorManager}
     * for accessing the device vibrators, interacting with individual ones and playing synchronized
     * effects on multiple vibrators.
     *
     * @see #getSystemService(String)
     * @see android.os.VibratorManager
     */
    @SuppressLint("ServiceName")
    public static final String VIBRATOR_MANAGER_SERVICE = "vibrator_manager";

    /**
     * Use with {@link #getSystemService(String)} to retrieve a {@link android.os.Vibrator} for
     * interacting with the vibration hardware.
     *
     * @see #getSystemService(String)
     * @see android.os.Vibrator
Loading