Add remote volume slider conditionally.

Issue before this CL:
RemoteVolumePreferenceController only return available when
it is casting, otherwise return CONDITIONALLY_UNAVAILABLE.
However slice database only index available controllers and keep
this cache. So remote slider won't be indexed if it is not casting
at that time.

As a tmp fix, this CL make controller always return available
unsearchable to make it indexed by database. However only add
that slice if it is casting.

Bug: 130124950
Test: RunSettingsRoboTests
Change-Id: I191144844d6ba7ccbe3dc1c9d19801adb978abc6
This commit is contained in:
Lei Yu
2019-04-12 14:23:33 -07:00
parent fd3cf32ad8
commit c1dbd34b9d
3 changed files with 36 additions and 13 deletions

View File

@@ -30,6 +30,7 @@ import android.net.Uri;
import android.provider.Settings;
import com.android.settings.R;
import com.android.settings.notification.RemoteVolumePreferenceController;
import java.util.ArrayList;
import java.util.List;
@@ -54,7 +55,9 @@ public class VolumePanel implements PanelContent {
@Override
public List<Uri> getSlices() {
final List<Uri> uris = new ArrayList<>();
uris.add(VOLUME_REMOTE_MEDIA_URI);
if (RemoteVolumePreferenceController.getActiveRemoteToken(mContext) != null) {
uris.add(VOLUME_REMOTE_MEDIA_URI);
}
uris.add(VOLUME_MEDIA_URI);
uris.add(MEDIA_OUTPUT_INDICATOR_SLICE_URI);
uris.add(VOLUME_CALL_URI);