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
This commit is contained in:
LuK1337
2022-06-14 10:16:34 +02:00
committed by Alexander Koskovich
parent 6a043ec5dc
commit 988a76f5bb
3 changed files with 16 additions and 2 deletions

View File

@@ -557,4 +557,7 @@
<!-- Whether to aggregate for network selection list--> <!-- Whether to aggregate for network selection list-->
<bool name="config_network_selection_list_aggregation_enabled">false</bool> <bool name="config_network_selection_list_aggregation_enabled">false</bool>
<!-- Max network scan search time in seconds -->
<integer name="config_network_scan_helper_max_search_time_sec">300</integer>
</resources> </resources>

View File

@@ -17,6 +17,7 @@
package com.android.settings.network.telephony; package com.android.settings.network.telephony;
import android.annotation.IntDef; import android.annotation.IntDef;
import android.content.Context;
import android.telephony.AccessNetworkConstants.AccessNetworkType; import android.telephony.AccessNetworkConstants.AccessNetworkType;
import android.telephony.CellInfo; import android.telephony.CellInfo;
import android.telephony.NetworkScan; import android.telephony.NetworkScan;
@@ -31,6 +32,8 @@ import androidx.annotation.VisibleForTesting;
import com.android.internal.telephony.CellNetworkScanResult; import com.android.internal.telephony.CellNetworkScanResult;
import com.android.settings.R;
import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListenableFuture;
@@ -129,6 +132,7 @@ public class NetworkScanHelper {
private final TelephonyScanManager.NetworkScanCallback mInternalNetworkScanCallback; private final TelephonyScanManager.NetworkScanCallback mInternalNetworkScanCallback;
private final Executor mExecutor; private final Executor mExecutor;
private int mMaxSearchTimeSec = MAX_SEARCH_TIME_SEC;
private NetworkScan mNetworkScanRequester; private NetworkScan mNetworkScanRequester;
/** Callbacks for sync network scan */ /** Callbacks for sync network scan */
@@ -141,6 +145,13 @@ public class NetworkScanHelper {
mExecutor = executor; 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 @VisibleForTesting
NetworkScanRequest createNetworkScanForPreferredAccessNetworks() { NetworkScanRequest createNetworkScanForPreferredAccessNetworks() {
long networkTypeBitmap3gpp = mTelephonyManager.getPreferredNetworkTypeBitmask() long networkTypeBitmap3gpp = mTelephonyManager.getPreferredNetworkTypeBitmask()
@@ -183,7 +194,7 @@ public class NetworkScanHelper {
radioAccessSpecifiers.toArray( radioAccessSpecifiers.toArray(
new RadioAccessSpecifier[radioAccessSpecifiers.size()]), new RadioAccessSpecifier[radioAccessSpecifiers.size()]),
SEARCH_PERIODICITY_SEC, SEARCH_PERIODICITY_SEC,
MAX_SEARCH_TIME_SEC, mMaxSearchTimeSec,
INCREMENTAL_RESULTS, INCREMENTAL_RESULTS,
INCREMENTAL_RESULTS_PERIODICITY_SEC, INCREMENTAL_RESULTS_PERIODICITY_SEC,
null /* List of PLMN ids (MCC-MNC) */); null /* List of PLMN ids (MCC-MNC) */);

View File

@@ -112,7 +112,7 @@ public class NetworkSelectSettings extends DashboardFragment {
mTelephonyManager = getContext().getSystemService(TelephonyManager.class) mTelephonyManager = getContext().getSystemService(TelephonyManager.class)
.createForSubscriptionId(mSubId); .createForSubscriptionId(mSubId);
mNetworkScanHelper = new NetworkScanHelper( mNetworkScanHelper = new NetworkScanHelper(
mTelephonyManager, mCallback, mNetworkScanExecutor); getContext(), mTelephonyManager, mCallback, mNetworkScanExecutor);
PersistableBundle bundle = ((CarrierConfigManager) getContext().getSystemService( PersistableBundle bundle = ((CarrierConfigManager) getContext().getSystemService(
Context.CARRIER_CONFIG_SERVICE)).getConfigForSubId(mSubId); Context.CARRIER_CONFIG_SERVICE)).getConfigForSubId(mSubId);
if (bundle != null) { if (bundle != null) {