Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2b4f4557 authored by Tim Peng's avatar Tim Peng Committed by tim peng
Browse files

Apply RangeBuilder amination for media transferring

-Replace transferring string with animation
-Set RANGE_MODE_INDETERMINATE mode when transferring
-Add padding parameter for indeterminate progress bar

Bug: 153615031
Test: make -j42 RunSettingsRoboTests
Change-Id: I11c99aaf0c9d585dc834b06919f062d44eefbf65
parent eef7b5e7
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -574,6 +574,10 @@
        <!-- Align text with slider -->
        <item name="titleStartPadding">11dp</item>
        <item name="subContentStartPadding">11dp</item>

        <!-- Padding for indeterminate progress bar -->
        <item name="progressBarStartPadding">12dp</item>
        <item name="progressBarEndPadding">16dp</item>
    </style>

    <style name="DisclaimerPositiveButton" parent="@style/SudGlifButton.Primary">
+22 −15
Original line number Diff line number Diff line
@@ -228,10 +228,14 @@ public class MediaOutputSlice implements CustomSliceable {
                }
                listBuilder.addRow(builder);
            }
        } else {
            if (device.getState() == LocalMediaManager.MediaDeviceState.STATE_CONNECTING) {
                listBuilder.addRange(getTransferringMediaDeviceRow(device));
            } else {
                listBuilder.addRow(getMediaDeviceRow(device));
            }
        }
    }

    private PendingIntent getSliderInputAction(int requestCode, String id) {
        final Intent intent = new Intent(getUri().toString())
@@ -279,6 +283,19 @@ public class MediaOutputSlice implements CustomSliceable {
        return devices;
    }

    private ListBuilder.RangeBuilder getTransferringMediaDeviceRow(MediaDevice device) {
        final IconCompat deviceIcon = getDeviceIconCompat(device);
        final SliceAction sliceAction = SliceAction.create(getBroadcastIntent(mContext,
                device.getId(), device.hashCode()), deviceIcon, ListBuilder.ICON_IMAGE,
                mContext.getText(R.string.media_output_switching));

        return new ListBuilder.RangeBuilder()
                .setTitleItem(deviceIcon, ListBuilder.ICON_IMAGE)
                .setMode(ListBuilder.RANGE_MODE_INDETERMINATE)
                .setTitle(device.getName())
                .setPrimaryAction(sliceAction);
    }

    private ListBuilder.RowBuilder getMediaDeviceRow(MediaDevice device) {
        final String deviceName = device.getName();
        final PendingIntent broadcastAction =
@@ -290,15 +307,11 @@ public class MediaOutputSlice implements CustomSliceable {
        if (device.getDeviceType() == MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE
                && !device.isConnected()) {
            final int state = device.getState();
            if (state == LocalMediaManager.MediaDeviceState.STATE_CONNECTING
                    || state == LocalMediaManager.MediaDeviceState.STATE_CONNECTING_FAILED) {
            if (state == LocalMediaManager.MediaDeviceState.STATE_CONNECTING_FAILED) {
                rowBuilder.setTitle(deviceName);
                rowBuilder.setPrimaryAction(SliceAction.create(broadcastAction, deviceIcon,
                        ListBuilder.ICON_IMAGE, deviceName));
                rowBuilder.setSubtitle(
                        (state == LocalMediaManager.MediaDeviceState.STATE_CONNECTING)
                                ? mContext.getText(R.string.media_output_switching)
                                : mContext.getText(R.string.bluetooth_connect_failed));
                rowBuilder.setSubtitle(mContext.getText(R.string.bluetooth_connect_failed));
            } else {
                // Append status to title only for the disconnected Bluetooth device.
                final SpannableString spannableTitle = new SpannableString(
@@ -316,14 +329,8 @@ public class MediaOutputSlice implements CustomSliceable {
            rowBuilder.setTitle(deviceName);
            rowBuilder.setPrimaryAction(SliceAction.create(broadcastAction, deviceIcon,
                    ListBuilder.ICON_IMAGE, deviceName));
            switch (device.getState()) {
                case LocalMediaManager.MediaDeviceState.STATE_CONNECTING:
                    rowBuilder.setSubtitle(mContext.getText(R.string.media_output_switching));
                    break;
                case LocalMediaManager.MediaDeviceState.STATE_CONNECTING_FAILED:
                    rowBuilder.setSubtitle(mContext.getText(
                            R.string.media_output_switch_error_text));
                    break;
            if (device.getState() == LocalMediaManager.MediaDeviceState.STATE_CONNECTING_FAILED) {
                rowBuilder.setSubtitle(mContext.getText(R.string.media_output_switch_error_text));
            }
        }