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

Commit 4ad5f0a7 authored by Zoey Chen's avatar Zoey Chen
Browse files

[Telephony] Implement onDataEnabled callback

Bug: 147577230
Test: atest CtsTelephonyTestCases:PhoneStateListenerTest
Change-Id: I1b9fe50e4b805f5117fb6e03438dd0a09fbcfebc
parent 8740b1ea
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -786,6 +786,21 @@ public class TelephonyRegistryManager {
        }
    }

    /**
     * Notify that the data enabled has changed.
     *
     * @param enabled True if data is enabled, otherwise disabled.
     * @param reason Reason for data enabled/disabled. See {@code REASON_*} in
     * {@link TelephonyManager}.
     */
    public void notifyDataEnabled(boolean enabled, @TelephonyManager.DataEnabledReason int reason) {
        try {
            sRegistry.notifyDataEnabled(enabled, reason);
        } catch (RemoteException ex) {
            // system server crash
        }
    }

    public @NonNull Set<Integer> getEventsFromListener(@NonNull PhoneStateListener listener) {

        Set<Integer> eventList = new ArraySet<>();
+1 −0
Original line number Diff line number Diff line
@@ -95,4 +95,5 @@ interface ITelephonyRegistry {
    void notifyBarringInfoChanged(int slotIndex, int subId, in BarringInfo barringInfo);
    void notifyPhysicalChannelConfigForSubscriber(in int subId,
            in List<PhysicalChannelConfig> configs);
    void notifyDataEnabled(boolean enabled, int reason);
}
+36 −0
Original line number Diff line number Diff line
@@ -2362,6 +2362,40 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
        }
    }

    /**
     * Notify that the data enabled has changed.
     *
     * @param enabled True if data is enabled, otherwise disabled.
     * @param reason  Reason for data enabled/disabled. See {@code DATA_*} in
     *                {@link TelephonyManager}.
     */
    public void notifyDataEnabled(boolean enabled,
                                  @TelephonyManager.DataEnabledReason int reason) {
        if (!checkNotifyPermission("notifyDataEnabled()")) {
            return;
        }

        if (VDBG) {
            log("notifyDataEnabled: enabled=" + enabled + " reason=" + reason);
        }

        mIsDataEnabled = enabled;
        mDataEnabledReason = reason;
        synchronized (mRecords) {
            for (Record r : mRecords) {
                if (r.matchPhoneStateListenerEvent(
                        PhoneStateListener.EVENT_DATA_ENABLED_CHANGED)) {
                    try {
                        r.callback.onDataEnabledChanged(enabled, reason);
                    } catch (RemoteException ex) {
                        mRemoveList.add(r.binder);
                    }
                }
            }
            handleRemoveListLocked();
        }
    }

    @Override
    public void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
        final IndentingPrintWriter pw = new IndentingPrintWriter(writer, "  ");
@@ -2414,6 +2448,8 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
            pw.println("mDefaultPhoneId=" + mDefaultPhoneId);
            pw.println("mDefaultSubId=" + mDefaultSubId);
            pw.println("mPhysicalChannelConfigs=" + mPhysicalChannelConfigs);
            pw.println("mIsDataEnabled=" + mIsDataEnabled);
            pw.println("mDataEnabledReason=" + mDataEnabledReason);

            pw.decreaseIndent();