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

Commit 6c93f8d1 authored by Nathan Harold's avatar Nathan Harold Committed by android-build-merger
Browse files

Merge changes from topic "cellinfocallback-error" am: 360e2528 am: ed0c722a

am: 28d31b21

Change-Id: Ib2f14771f9788f954b30ee6ef3981b9a1b714793
parents f54c3920 28d31b21
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -44778,6 +44778,9 @@ package android.telephony {
  public static abstract class TelephonyManager.CellInfoCallback {
    ctor public TelephonyManager.CellInfoCallback();
    method public abstract void onCellInfo(java.util.List<android.telephony.CellInfo>);
    method public void onError(int, java.lang.Throwable);
    field public static final int ERROR_MODEM_ERROR = 2; // 0x2
    field public static final int ERROR_TIMEOUT = 1; // 0x1
  }
  public static abstract class TelephonyManager.UssdResponseCallback {
+2 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.telephony;

import android.os.ParcelableException;
import android.telephony.CellInfo;

import java.util.List;
@@ -27,4 +28,5 @@ import java.util.List;
oneway interface ICellInfoCallback
{
    void onCellInfo(in List<CellInfo> state);
    void onError(in int errorCode, in ParcelableException detail);
}
+50 −4
Original line number Diff line number Diff line
@@ -4898,19 +4898,53 @@ public class TelephonyManager {
    /** Callback for providing asynchronous {@link CellInfo} on request */
    public abstract static class CellInfoCallback {
        /**
         * Response to
         * Success response to
         * {@link android.telephony.TelephonyManager#requestCellInfoUpdate requestCellInfoUpdate()}.
         *
         * <p>Invoked when there is a response to
         * Invoked when there is a response to
         * {@link android.telephony.TelephonyManager#requestCellInfoUpdate requestCellInfoUpdate()}
         * to provide a list of {@link CellInfo}. If no {@link CellInfo} is available then an empty
         * list will be provided. If an error occurs, null will be provided.
         * list will be provided. If an error occurs, null will be provided unless the onError
         * callback is overridden.
         *
         * @param cellInfo a list of {@link CellInfo}, an empty list, or null.
         *
         * {@see android.telephony.TelephonyManager#getAllCellInfo getAllCellInfo()}
         */
        public abstract void onCellInfo(List<CellInfo> cellInfo);
        public abstract void onCellInfo(@NonNull List<CellInfo> cellInfo);

        /** @hide */
        @Retention(RetentionPolicy.SOURCE)
        @IntDef(prefix = {"ERROR_"}, value = {ERROR_TIMEOUT, ERROR_MODEM_ERROR})
        public @interface CellInfoCallbackError {}

        /**
         * The system timed out waiting for a response from the Radio.
         */
        public static final int ERROR_TIMEOUT = 1;

        /**
         * The modem returned a failure.
         */
        public static final int ERROR_MODEM_ERROR = 2;

        /**
         * Error response to
         * {@link android.telephony.TelephonyManager#requestCellInfoUpdate requestCellInfoUpdate()}.
         *
         * Invoked when an error condition prevents updated {@link CellInfo} from being fetched
         * and returned from the modem. Callers of requestCellInfoUpdate() should override this
         * function to receive detailed status information in the event of an error. By default,
         * this function will invoke onCellInfo() with null.
         *
         * @param errorCode an error code indicating the type of failure.
         * @param detail a Throwable object with additional detail regarding the failure if
         *     available, otherwise null.
         */
        public void onError(@CellInfoCallbackError int errorCode, @Nullable Throwable detail) {
            // By default, simply invoke the success callback with an empty list.
            onCellInfo(new ArrayList<CellInfo>());
        }
    };

    /**
@@ -4937,6 +4971,12 @@ public class TelephonyManager {
                            Binder.withCleanCallingIdentity(() ->
                                    executor.execute(() -> callback.onCellInfo(cellInfo)));
                        }

                        public void onError(int errorCode, android.os.ParcelableException detail) {
                            Binder.withCleanCallingIdentity(() ->
                                    executor.execute(() -> callback.onError(
                                            errorCode, detail.getCause())));
                        }
                    }, getOpPackageName());

        } catch (RemoteException ex) {
@@ -4971,6 +5011,12 @@ public class TelephonyManager {
                            Binder.withCleanCallingIdentity(() ->
                                    executor.execute(() -> callback.onCellInfo(cellInfo)));
                        }

                        public void onError(int errorCode, android.os.ParcelableException detail) {
                            Binder.withCleanCallingIdentity(() ->
                                    executor.execute(() -> callback.onError(
                                            errorCode, detail.getCause())));
                        }
                    }, getOpPackageName(), workSource);
        } catch (RemoteException ex) {
        }