[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.net.Uri;
import android.provider.SettingsSlicesContract;
import android.util.Log;
import androidx.core.graphics.drawable.IconCompat;
import androidx.slice.Slice;
@@ -36,10 +37,16 @@ import androidx.slice.builders.SliceAction;
import com.android.settings.R;
import com.android.settings.SubSettings;
import com.android.settings.connecteddevice.BluetoothDashboardFragment;
import com.android.settings.network.SatelliteRepository;
import com.android.settings.slices.CustomSliceRegistry;
import com.android.settings.slices.SliceBroadcastReceiver;
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.
*/
@@ -80,18 +87,34 @@ public class BluetoothSliceBuilder {
final PendingIntent primaryAction = getPrimaryAction(context);
final SliceAction primarySliceAction = SliceAction.createDeeplink(primaryAction, icon,
ListBuilder.ICON_IMAGE, title);
final SliceAction toggleSliceAction = SliceAction.createToggle(toggleAction,
null /* actionTitle */, isBluetoothEnabled);
RowBuilder rowBuilder = new RowBuilder();
rowBuilder.setTitle(title);
rowBuilder.setPrimaryAction(primarySliceAction);
if (!isSatelliteOn(context)) {
final SliceAction toggleSliceAction = SliceAction.createToggle(toggleAction,
null /* actionTitle */, isBluetoothEnabled);
rowBuilder.addEndItem(toggleSliceAction);
}
return new ListBuilder(context, CustomSliceRegistry.BLUETOOTH_URI, ListBuilder.INFINITY)
.setAccentColor(color)
.addRow(new RowBuilder()
.setTitle(title)
.addEndItem(toggleSliceAction)
.setPrimaryAction(primarySliceAction))
.addRow(rowBuilder)
.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) {
final String screenTitle = context.getText(R.string.bluetooth_settings_title).toString();
final Uri contentUri = new Uri.Builder().appendPath(