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

Commit c0461e64 authored by Jenhou (Alan) Huang's avatar Jenhou (Alan) Huang Committed by Automerger Merge Worker
Browse files

Merge "[VolumePanel] Redirect volume panel action to SystemUI" into tm-qpr-dev...

Merge "[VolumePanel] Redirect volume panel action to SystemUI" into tm-qpr-dev am: 95912773 am: 6983f586

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/19459988



Change-Id: Ic5ec27462b8472b1f1ac7fd268be64764ed139c2
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 196f517c 6983f586
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings;
import android.util.FeatureFlagUtils;

public class PanelFeatureProviderImpl implements PanelFeatureProvider {

@@ -49,8 +50,18 @@ public class PanelFeatureProviderImpl implements PanelFeatureProvider {
            case Settings.Panel.ACTION_WIFI:
                return WifiPanel.create(context);
            case Settings.Panel.ACTION_VOLUME:
                if (FeatureFlagUtils.isEnabled(context,
                        FeatureFlagUtils.SETTINGS_VOLUME_PANEL_IN_SYSTEMUI)) {
                    // Redirect to the volume panel in SystemUI.
                    Intent volumeIntent = new Intent(Settings.Panel.ACTION_VOLUME);
                    volumeIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND).setPackage(
                            SYSTEMUI_PACKAGE_NAME);
                    context.sendBroadcast(volumeIntent);
                    return null;
                } else {
                    return VolumePanel.create(context);
                }
        }

        throw new IllegalStateException("No matching panel for: " + panelType);
    }
+19 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings;
import android.util.FeatureFlagUtils;

import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -35,6 +36,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;

@RunWith(AndroidJUnit4.class)
public class PanelFeatureProviderImplTest {
@@ -66,11 +68,27 @@ public class PanelFeatureProviderImplTest {
    }

    @Test
    public void getPanel_volume_returnsCorrectPanel() {
    public void getPanel_volumePanel_returnsCorrectPanel() {
        FeatureFlagUtils.setEnabled(mContext, FeatureFlagUtils.SETTINGS_VOLUME_PANEL_IN_SYSTEMUI,
                false);
        mBundle.putString(KEY_PANEL_TYPE_ARGUMENT, Settings.Panel.ACTION_VOLUME);

        final PanelContent panel = mProvider.getPanel(mContext, mBundle);

        assertThat(panel).isInstanceOf(VolumePanel.class);
    }

    @Test
    public void getPanel_volumePanelFlagEnabled_sendRedirectIntent() {
        FeatureFlagUtils.setEnabled(mContext, FeatureFlagUtils.SETTINGS_VOLUME_PANEL_IN_SYSTEMUI,
                true);
        mBundle.putString(KEY_PANEL_TYPE_ARGUMENT, Settings.Panel.ACTION_VOLUME);
        final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);

        mProvider.getPanel(mContext, mBundle);

        verify(mContext).sendBroadcast(intentCaptor.capture());
        assertThat(intentCaptor.getValue().getAction()).isEqualTo(Settings.Panel.ACTION_VOLUME);
        assertThat(intentCaptor.getValue().getPackage()).isEqualTo(SYSTEMUI_PACKAGE_NAME);
    }
}