[Satellite] Hide BT switch in Settings search when started Satellite.

Flag: EXEMPT bugfix
fix: 360142029
Test: Manual test passed.
Change-Id: Id1e52a80e86ce6bab1eab3708588208d7981b3aa
This commit is contained in:
tomhsu
2024-09-20 07:27:33 +00:00
parent 2b9e976cbb
commit 0af43e2609

View File

@@ -26,6 +26,7 @@ import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.net.Uri; import android.net.Uri;
import android.provider.SettingsSlicesContract; import android.provider.SettingsSlicesContract;
import android.util.Log;
import androidx.core.graphics.drawable.IconCompat; import androidx.core.graphics.drawable.IconCompat;
import androidx.slice.Slice; import androidx.slice.Slice;
@@ -36,10 +37,16 @@ import androidx.slice.builders.SliceAction;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SubSettings; import com.android.settings.SubSettings;
import com.android.settings.connecteddevice.BluetoothDashboardFragment; import com.android.settings.connecteddevice.BluetoothDashboardFragment;
import com.android.settings.network.SatelliteRepository;
import com.android.settings.slices.CustomSliceRegistry; import com.android.settings.slices.CustomSliceRegistry;
import com.android.settings.slices.SliceBroadcastReceiver; import com.android.settings.slices.SliceBroadcastReceiver;
import com.android.settings.slices.SliceBuilderUtils; import com.android.settings.slices.SliceBuilderUtils;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
/** /**
* Utility class to build a Bluetooth Slice, and handle all associated actions. * Utility class to build a Bluetooth Slice, and handle all associated actions.
*/ */
@@ -80,18 +87,34 @@ public class BluetoothSliceBuilder {
final PendingIntent primaryAction = getPrimaryAction(context); final PendingIntent primaryAction = getPrimaryAction(context);
final SliceAction primarySliceAction = SliceAction.createDeeplink(primaryAction, icon, final SliceAction primarySliceAction = SliceAction.createDeeplink(primaryAction, icon,
ListBuilder.ICON_IMAGE, title); ListBuilder.ICON_IMAGE, title);
RowBuilder rowBuilder = new RowBuilder();
rowBuilder.setTitle(title);
rowBuilder.setPrimaryAction(primarySliceAction);
if (!isSatelliteOn(context)) {
final SliceAction toggleSliceAction = SliceAction.createToggle(toggleAction, final SliceAction toggleSliceAction = SliceAction.createToggle(toggleAction,
null /* actionTitle */, isBluetoothEnabled); null /* actionTitle */, isBluetoothEnabled);
rowBuilder.addEndItem(toggleSliceAction);
}
return new ListBuilder(context, CustomSliceRegistry.BLUETOOTH_URI, ListBuilder.INFINITY) return new ListBuilder(context, CustomSliceRegistry.BLUETOOTH_URI, ListBuilder.INFINITY)
.setAccentColor(color) .setAccentColor(color)
.addRow(new RowBuilder() .addRow(rowBuilder)
.setTitle(title)
.addEndItem(toggleSliceAction)
.setPrimaryAction(primarySliceAction))
.build(); .build();
} }
private static boolean isSatelliteOn(Context context) {
boolean result = false;
SatelliteRepository satelliteRepository = new SatelliteRepository(context);
try {
result = satelliteRepository.requestIsSessionStarted(
Executors.newSingleThreadExecutor()).get(3000, TimeUnit.MILLISECONDS);
} catch (InterruptedException | ExecutionException | TimeoutException e) {
Log.e(TAG, "Error to get satellite status : " + e);
}
return result;
}
public static Intent getIntent(Context context) { public static Intent getIntent(Context context) {
final String screenTitle = context.getText(R.string.bluetooth_settings_title).toString(); final String screenTitle = context.getText(R.string.bluetooth_settings_title).toString();
final Uri contentUri = new Uri.Builder().appendPath( final Uri contentUri = new Uri.Builder().appendPath(