From 988a76f5bbc68a18d514e79633fc1eeb66005a1f Mon Sep 17 00:00:00 2001 From: LuK1337 Date: Tue, 14 Jun 2022 10:16:34 +0200 Subject: [PATCH] Settings: Make NetworkScanHelper max search time customizable Default max search time (300) fails on some devices. Test: Network scan works on OnePlus 9 after overlaying max network scan search time to 254. Change-Id: Ia0038fac6d2000748e0aa08fd6a53f11876728d7 --- res/values/config.xml | 3 +++ .../network/telephony/NetworkScanHelper.java | 13 ++++++++++++- .../network/telephony/NetworkSelectSettings.java | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/res/values/config.xml b/res/values/config.xml index 987eaf97254..5ccbaa60f7d 100755 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -557,4 +557,7 @@ false + + + 300 diff --git a/src/com/android/settings/network/telephony/NetworkScanHelper.java b/src/com/android/settings/network/telephony/NetworkScanHelper.java index 740b6bba2bc..ddbad3b6c97 100644 --- a/src/com/android/settings/network/telephony/NetworkScanHelper.java +++ b/src/com/android/settings/network/telephony/NetworkScanHelper.java @@ -17,6 +17,7 @@ package com.android.settings.network.telephony; import android.annotation.IntDef; +import android.content.Context; import android.telephony.AccessNetworkConstants.AccessNetworkType; import android.telephony.CellInfo; import android.telephony.NetworkScan; @@ -31,6 +32,8 @@ import androidx.annotation.VisibleForTesting; import com.android.internal.telephony.CellNetworkScanResult; +import com.android.settings.R; + import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; @@ -129,6 +132,7 @@ public class NetworkScanHelper { private final TelephonyScanManager.NetworkScanCallback mInternalNetworkScanCallback; private final Executor mExecutor; + private int mMaxSearchTimeSec = MAX_SEARCH_TIME_SEC; private NetworkScan mNetworkScanRequester; /** Callbacks for sync network scan */ @@ -141,6 +145,13 @@ public class NetworkScanHelper { mExecutor = executor; } + public NetworkScanHelper(Context context, TelephonyManager tm, NetworkScanCallback callback, + Executor executor) { + this(tm, callback, executor); + mMaxSearchTimeSec = context.getResources().getInteger( + R.integer.config_network_scan_helper_max_search_time_sec); + } + @VisibleForTesting NetworkScanRequest createNetworkScanForPreferredAccessNetworks() { long networkTypeBitmap3gpp = mTelephonyManager.getPreferredNetworkTypeBitmask() @@ -183,7 +194,7 @@ public class NetworkScanHelper { radioAccessSpecifiers.toArray( new RadioAccessSpecifier[radioAccessSpecifiers.size()]), SEARCH_PERIODICITY_SEC, - MAX_SEARCH_TIME_SEC, + mMaxSearchTimeSec, INCREMENTAL_RESULTS, INCREMENTAL_RESULTS_PERIODICITY_SEC, null /* List of PLMN ids (MCC-MNC) */); diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java index 9faecbb1805..4e231813861 100644 --- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java +++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java @@ -112,7 +112,7 @@ public class NetworkSelectSettings extends DashboardFragment { mTelephonyManager = getContext().getSystemService(TelephonyManager.class) .createForSubscriptionId(mSubId); mNetworkScanHelper = new NetworkScanHelper( - mTelephonyManager, mCallback, mNetworkScanExecutor); + getContext(), mTelephonyManager, mCallback, mNetworkScanExecutor); PersistableBundle bundle = ((CarrierConfigManager) getContext().getSystemService( Context.CARRIER_CONFIG_SERVICE)).getConfigForSubId(mSubId); if (bundle != null) {