[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:
@@ -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(
|
||||
|
Reference in New Issue
Block a user