Skip Wi-Fi hotspot in Settings Widgets

- Do not show Wi-Fi hotspots in Settings Widgets if the config is not set to show

Bug: 275268676
Test: Manual test
atest -c CreateShortcutPreferenceControllerTest

Change-Id: I5d86a78c9d48c9b63faff50d46f1254dbefd94cf
This commit is contained in:
Weng Su
2023-06-02 03:27:44 +08:00
parent 8e13abebc0
commit ef81179538
2 changed files with 37 additions and 12 deletions

View File

@@ -46,10 +46,12 @@ import androidx.preference.PreferenceGroup;
import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settings.Settings.TetherSettingsActivity;
import com.android.settings.Settings.WifiTetherSettingsActivity;
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.gestures.OneHandedSettingsUtils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.wifi.WifiUtils;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import java.util.ArrayList;
@@ -192,6 +194,12 @@ public class CreateShortcutPreferenceController extends BasePreferenceController
continue;
}
}
if (info.activityInfo.name.endsWith(WifiTetherSettingsActivity.class.getSimpleName())) {
if (!canShowWifiHotspot()) {
Log.d(TAG, "Skipping Wi-Fi hotspot settings:" + info.activityInfo);
continue;
}
}
if (!info.activityInfo.applicationInfo.isSystemApp()) {
Log.d(TAG, "Skipping non-system app: " + info.activityInfo);
continue;
@@ -202,6 +210,11 @@ public class CreateShortcutPreferenceController extends BasePreferenceController
return shortcuts;
}
@VisibleForTesting
boolean canShowWifiHotspot() {
return WifiUtils.canShowWifiHotspot(mContext);
}
private void logCreateShortcut(ResolveInfo info) {
if (info == null || info.activityInfo == null) {
return;