[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.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);
|
||||||
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)
|
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(
|
||||||
|
Reference in New Issue
Block a user