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

Commit 100faf18 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Adopt the last data profile that works for internet as preferred" am:...

Merge "Adopt the last data profile that works for internet as preferred" am: d1b3d3c6 am: 70882b06 am: 7be454dd am: eb8db06e

Original change: https://android-review.googlesource.com/c/platform/frameworks/opt/telephony/+/2210097



Change-Id: I9ee866202ae575cd5d50c63699369060e0f69f48
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents bd787a58 eb8db06e
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -106,6 +106,9 @@ public class DataProfileManager extends Handler {
    /** The preferred data profile used for internet. */
    private @Nullable DataProfile mPreferredDataProfile = null;

    /** The last data profile that's successful for internet connection. */
    private @Nullable DataProfile mLastInternetDataProfile = null;

    /** Preferred data profile set id. */
    private int mPreferredDataProfileSetId = Telephony.Carriers.NO_APN_SET_ID;

@@ -166,7 +169,12 @@ public class DataProfileManager extends Handler {
                    public void onInternetDataNetworkConnected(
                            @NonNull List<DataProfile> dataProfiles) {
                        DataProfileManager.this.onInternetDataNetworkConnected(dataProfiles);
                    }});
                    }
                    @Override
                    public void onInternetDataNetworkDisconnected() {
                        DataProfileManager.this.onInternetDataNetworkDisconnected();
                    }
                });
        mDataConfigManager.registerCallback(new DataConfigManagerCallback(this::post) {
            @Override
            public void onCarrierConfigChanged() {
@@ -410,11 +418,19 @@ public class DataProfileManager extends Handler {
        DataProfile dataProfile = dataProfiles.stream()
                .max(Comparator.comparingLong(DataProfile::getLastSetupTimestamp).reversed())
                .orElse(null);
        mLastInternetDataProfile = dataProfile;
        // Save the preferred data profile into database.
        setPreferredDataProfile(dataProfile);
        updateDataProfiles(ONLY_UPDATE_IA_IF_CHANGED);
    }

    /**
     * Called when internet data is disconnected.
     */
    private void onInternetDataNetworkDisconnected() {
        mLastInternetDataProfile = null;
    }

    /**
     * Get the preferred data profile for internet data.
     *
@@ -498,12 +514,12 @@ public class DataProfileManager extends Handler {
                    setPreferredDataProfile(preferredDataProfile);
                } else {
                    preferredDataProfile = mAllDataProfiles.stream()
                            .filter(dp -> areDataProfileSharingApn(dp, mPreferredDataProfile))
                            .filter(dp -> areDataProfileSharingApn(dp, mLastInternetDataProfile))
                            .findFirst()
                            .orElse(null);
                    if (preferredDataProfile != null) {
                        log("updatePreferredDataProfile: preferredDB is empty and no carrier "
                                + "default configured, setting preferred to be prev preferred DP.");
                                + "default configured, setting preferred to be prev internet DP.");
                        setPreferredDataProfile(preferredDataProfile);
                    }
                }
+13 −1
Original line number Diff line number Diff line
@@ -938,10 +938,22 @@ public class DataProfileManagerTest extends TelephonyTest {
        mDataProfileManagerUT.obtainMessage(2 /*EVENT_APN_DATABASE_CHANGED*/).sendToTarget();
        processAllMessages();

        // preferred APN should set to be the prev preferred
        // preferred APN should set to be the last data profile that succeeded for internet setup
        assertThat(mDataProfileManagerUT.isAnyPreferredDataProfileExisting()).isTrue();
        assertThat(mDataProfileManagerUT.isDataProfilePreferred(dataProfile)).isTrue();

        // no active internet, expect no preferred APN after reset
        mDataNetworkControllerCallback.onInternetDataNetworkDisconnected();
        mPreferredApnId = -1;
        mDataProfileManagerUT.obtainMessage(2 /*EVENT_APN_DATABASE_CHANGED*/).sendToTarget();
        processAllMessages();

        assertThat(mDataProfileManagerUT.isAnyPreferredDataProfileExisting()).isFalse();
        assertThat(mDataProfileManagerUT.isDataProfilePreferred(dataProfile)).isFalse();

        // setup internet again
        mDataNetworkControllerCallback.onInternetDataNetworkConnected(List.of(dataProfile));
        processAllMessages();
        //APN reset and removed GENERAL_PURPOSE_APN(as if user created) from APN DB
        mPreferredApnId = -1;
        mApnSettingContentProvider.removeApnByApnId(1);