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

Commit f983e442 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Updating Satellite Optimized apps api's info." into main

parents 463f3b2f 121e42f0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -48743,6 +48743,7 @@ package android.telephony.satellite {
  @FlaggedApi("com.android.internal.telephony.flags.satellite_state_change_listener") public final class SatelliteManager {
    method @FlaggedApi("com.android.internal.telephony.flags.satellite_state_change_listener") @RequiresPermission(anyOf={android.Manifest.permission.READ_BASIC_PHONE_STATE, "android.permission.READ_PRIVILEGED_PHONE_STATE", android.Manifest.permission.READ_PHONE_STATE, "carrier privileges"}) public void registerStateChangeListener(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.satellite.SatelliteStateChangeListener);
    method @FlaggedApi("com.android.internal.telephony.flags.satellite_state_change_listener") @RequiresPermission(anyOf={android.Manifest.permission.READ_BASIC_PHONE_STATE, "android.permission.READ_PRIVILEGED_PHONE_STATE", android.Manifest.permission.READ_PHONE_STATE, "carrier privileges"}) public void unregisterStateChangeListener(@NonNull android.telephony.satellite.SatelliteStateChangeListener);
    field @FlaggedApi("com.android.internal.telephony.flags.satellite_25q4_apis") public static final String PROPERTY_SATELLITE_DATA_OPTIMIZED = "android.telephony.PROPERTY_SATELLITE_DATA_OPTIMIZED";
  }
  @FlaggedApi("com.android.internal.telephony.flags.satellite_state_change_listener") public interface SatelliteStateChangeListener {
+1 −0
Original line number Diff line number Diff line
@@ -18584,6 +18584,7 @@ package android.telephony.satellite {
    method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void deprovisionSatellite(@NonNull java.util.List<android.telephony.satellite.SatelliteSubscriberInfo>, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<java.lang.Void,android.telephony.satellite.SatelliteManager.SatelliteException>);
    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void deprovisionService(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
    method @FlaggedApi("com.android.internal.telephony.flags.carrier_enabled_satellite_flag") @NonNull @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public java.util.Set<java.lang.Integer> getAttachRestrictionReasonsForCarrier(int);
    method @FlaggedApi("com.android.internal.telephony.flags.satellite_25q4_apis") @NonNull @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public java.util.List<java.lang.String> getSatelliteDataOptimizedApps();
    method @FlaggedApi("com.android.internal.telephony.flags.satellite_system_apis") @NonNull @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public int[] getSatelliteDisallowedReasons();
    method @FlaggedApi("com.android.internal.telephony.flags.carrier_enabled_satellite_flag") @NonNull @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public java.util.List<java.lang.String> getSatellitePlmnsForCarrier(int);
    method @FlaggedApi("com.android.internal.telephony.flags.oem_enabled_satellite_flag") @RequiresPermission(android.Manifest.permission.SATELLITE_COMMUNICATION) public void pollPendingDatagrams(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+48 −0
Original line number Diff line number Diff line
@@ -820,6 +820,25 @@ public final class SatelliteManager {
    public static final String METADATA_SATELLITE_MANUAL_CONNECT_P2P_SUPPORT =
            "android.telephony.METADATA_SATELLITE_MANUAL_CONNECT_P2P_SUPPORT";

    /**
     * A boolean value indicating whether application is optimized to utilize low bandwidth
     * satellite data.
     * The applications that are optimized for low bandwidth satellite data should set this
     * property to {@code true} in the manifest to indicate to platform about the same.
     * {@code
     * <application>
     *   <meta-data
     *     android:name="android.telephony.PROPERTY_SATELLITE_DATA_OPTIMIZED"
     *     android:value="true"/>
     * </application>
     * }
     * <p>
     * When {@code true}, satellite data optimized network is available for applications.
     */
    @FlaggedApi(Flags.FLAG_SATELLITE_25Q4_APIS)
    public static final String PROPERTY_SATELLITE_DATA_OPTIMIZED =
            "android.telephony.PROPERTY_SATELLITE_DATA_OPTIMIZED";

    /**
     * Registers a {@link SatelliteStateChangeListener} to receive callbacks when the satellite
     * state may have changed.
@@ -3840,6 +3859,35 @@ public final class SatelliteManager {
        }
    }

    /**
     * Get list of application packages name that are optimized for low bandwidth satellite data.
     *
     * @return List of application packages name with data optimized network property.
     *
     * {@link #PROPERTY_SATELLITE_DATA_OPTIMIZED}
     *
     * @hide
     */
    @SystemApi
    @RequiresPermission(Manifest.permission.SATELLITE_COMMUNICATION)
    @FlaggedApi(Flags.FLAG_SATELLITE_25Q4_APIS)
    public @NonNull List<String> getSatelliteDataOptimizedApps() {
        List<String> appsNames = new ArrayList<>();
        try {
            ITelephony telephony = getITelephony();
            if (telephony != null) {
                appsNames = telephony.getSatelliteDataOptimizedApps();
            } else {
                throw new IllegalStateException("telephony service is null.");
            }
        } catch (RemoteException ex) {
            loge("getSatelliteDataOptimizedApps() RemoteException:" + ex);
            ex.rethrowAsRuntimeException();
        }

        return appsNames;
    }

    @Nullable
    private static ITelephony getITelephony() {
        ITelephony binder = ITelephony.Stub.asInterface(TelephonyFrameworkInitializer
+11 −0
Original line number Diff line number Diff line
@@ -3596,4 +3596,15 @@ interface ITelephony {
     * @hide
     */
    int getCarrierIdFromIdentifier(in CarrierIdentifier carrierIdentifier);


    /**
     * Get list of applications that are optimized for low bandwidth satellite data.
     *
     * @return List of Application Name with data optimized network property.
     * {@link #PROPERTY_SATELLITE_DATA_OPTIMIZED}
     */
    @JavaPassthrough(annotation="@android.annotation.RequiresPermission("
                      + "android.Manifest.permission.SATELLITE_COMMUNICATION)")
    List<String> getSatelliteDataOptimizedApps();
}