Merge sc-qpr1 to aosp-master - DO NOT MERGE

Merged-In: Id5612dfa82e11037cd95b0ef0f5a507d9c86dd48
Merged-In: I4f51c80cf4e32c384afad849c04c7c6afa065767
Change-Id: Ie466180309fcfe540492967e8bf3587b34928ded
This commit is contained in:
Bill Yi
2022-01-06 18:39:02 -08:00
90 changed files with 43268 additions and 30231 deletions

View File

@@ -19,12 +19,15 @@ import android.app.settings.SettingsEnums;
import android.content.Context;
import android.net.Uri;
import android.provider.DeviceConfig;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.core.SettingsUIDeviceConfig;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.password.PasswordUtils;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.slices.SlicePreferenceController;
import com.android.settingslib.search.SearchIndexable;
@@ -33,6 +36,9 @@ import com.android.settingslib.search.SearchIndexable;
public class ConnectedDeviceDashboardFragment extends DashboardFragment {
private static final String TAG = "ConnectedDeviceFrag";
private static final String SETTINGS_PACKAGE_NAME = "com.android.settings";
private static final String SYSTEMUI_PACKAGE_NAME = "com.android.systemui";
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
@VisibleForTesting
static final String KEY_CONNECTED_DEVICES = "connected_device_list";
@@ -64,12 +70,20 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment {
super.onAttach(context);
final boolean nearbyEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
SettingsUIDeviceConfig.BT_NEAR_BY_SUGGESTION_ENABLED, true);
String callingAppPackageName = PasswordUtils.getCallingAppPackageName(
getActivity().getActivityToken());
if (DEBUG) {
Log.d(TAG, "onAttach() calling package name is : " + callingAppPackageName);
}
use(AvailableMediaDeviceGroupController.class).init(this);
use(ConnectedDeviceGroupController.class).init(this);
use(PreviouslyConnectedDevicePreferenceController.class).init(this);
use(SlicePreferenceController.class).setSliceUri(nearbyEnabled
? Uri.parse(getString(R.string.config_nearby_devices_slice_uri))
: null);
use(DiscoverableFooterPreferenceController.class).setAlwaysDiscoverable(
TextUtils.equals(SETTINGS_PACKAGE_NAME, callingAppPackageName)
|| TextUtils.equals(SYSTEMUI_PACKAGE_NAME, callingAppPackageName));
}
/**

View File

@@ -52,6 +52,7 @@ public class DiscoverableFooterPreferenceController extends BasePreferenceContro
private BluetoothAdapter mBluetoothAdapter;
private AlwaysDiscoverable mAlwaysDiscoverable;
private FooterPreference mPreference;
private boolean mIsAlwaysDiscoverable;
public DiscoverableFooterPreferenceController(Context context, String key) {
super(context, key);
@@ -84,7 +85,9 @@ public class DiscoverableFooterPreferenceController extends BasePreferenceContro
}
mContext.registerReceiver(mBluetoothChangedReceiver,
new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
mAlwaysDiscoverable.start();
if (mIsAlwaysDiscoverable) {
mAlwaysDiscoverable.start();
}
updateFooterPreferenceTitle(mBluetoothAdapter.getState());
}
@@ -94,7 +97,19 @@ public class DiscoverableFooterPreferenceController extends BasePreferenceContro
return;
}
mContext.unregisterReceiver(mBluetoothChangedReceiver);
mAlwaysDiscoverable.stop();
if (mIsAlwaysDiscoverable) {
mAlwaysDiscoverable.stop();
}
}
/**
* Set whether the device can be discovered. By default the value will be {@code false}.
*
* @param isAlwaysDiscoverable {@code true} if the device can be discovered,
* otherwise {@code false}
*/
public void setAlwaysDiscoverable(boolean isAlwaysDiscoverable) {
mIsAlwaysDiscoverable = isAlwaysDiscoverable;
}
private void updateFooterPreferenceTitle(int bluetoothState) {

View File

@@ -27,6 +27,7 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.LocationManager;
import android.net.NetworkTemplate;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
@@ -756,7 +757,10 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
if (context == null) {
return;
}
if (isWifiEnabled || !mWifiManager.isScanAlwaysAvailable()) {
final LocationManager locationManager = context.getSystemService(LocationManager.class);
if (isWifiEnabled || !locationManager.isLocationEnabled()
|| !mWifiManager.isScanAlwaysAvailable()) {
mWifiStatusMessagePreference.setVisible(false);
return;
}