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

Commit 202ea82f authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 6828801 from a2da145f to rvc-qpr1-release

Change-Id: I693181e3d9efc95eed6889b77db9372c351739e8
parents a4a0444c a2da145f
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ import androidx.preference.PreferenceViewHolder;
import com.android.settingslib.R;
import com.android.settingslib.Utils;
import com.android.wifitrackerlib.WifiEntry;
import com.android.wifitrackerlib.WifiEntry.ConnectedInfo;

/**
 * Preference to display a WifiEntry in a wifi picker.
@@ -138,11 +137,7 @@ public class WifiEntryPreference extends Preference implements WifiEntry.WifiEnt
    public void refresh() {
        setTitle(mWifiEntry.getTitle());
        final int level = mWifiEntry.getLevel();
        final ConnectedInfo connectedInfo = mWifiEntry.getConnectedInfo();
        boolean showX = false;
        if (connectedInfo != null) {
            showX = !connectedInfo.isDefaultNetwork || !connectedInfo.isValidated;
        }
        final boolean showX = mWifiEntry.shouldShowXLevelIcon();
        if (level != mLevel || showX != mShowX) {
            mLevel = level;
            mShowX = showX;
+2 −38
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@ package com.android.settingslib.wifi;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import android.content.Context;
@@ -30,7 +29,6 @@ import androidx.preference.PreferenceViewHolder;

import com.android.settingslib.R;
import com.android.wifitrackerlib.WifiEntry;
import com.android.wifitrackerlib.WifiEntry.ConnectedInfo;

import org.junit.Before;
import org.junit.Test;
@@ -179,43 +177,9 @@ public class WifiEntryPreferenceTest {
    }

    @Test
    public void levelChanged_notDefaultWifiRefresh_shouldUpdateLevelIcon() {
    public void levelChanged_showXWifiRefresh_shouldUpdateLevelIcon() {
        final List<Drawable> iconList = new ArrayList<>();
        final ConnectedInfo mockConnectedInfo = mock(ConnectedInfo.class);
        mockConnectedInfo.isDefaultNetwork = false;
        when(mMockWifiEntry.getConnectedInfo()).thenReturn(mockConnectedInfo);
        final WifiEntryPreference pref =
                new WifiEntryPreference(mContext, mMockWifiEntry, mMockIconInjector);

        when(mMockWifiEntry.getLevel()).thenReturn(0);
        pref.refresh();
        iconList.add(pref.getIcon());
        when(mMockWifiEntry.getLevel()).thenReturn(1);
        pref.refresh();
        iconList.add(pref.getIcon());
        when(mMockWifiEntry.getLevel()).thenReturn(2);
        pref.refresh();
        iconList.add(pref.getIcon());
        when(mMockWifiEntry.getLevel()).thenReturn(3);
        pref.refresh();
        iconList.add(pref.getIcon());
        when(mMockWifiEntry.getLevel()).thenReturn(4);
        pref.refresh();
        iconList.add(pref.getIcon());
        when(mMockWifiEntry.getLevel()).thenReturn(-1);
        pref.refresh();
        iconList.add(pref.getIcon());

        assertThat(iconList).containsExactly(mMockShowXDrawable0, mMockShowXDrawable1,
                mMockShowXDrawable2, mMockShowXDrawable3, mMockShowXDrawable4, null);
    }

    @Test
    public void levelChanged_notValidatedWifiRefresh_shouldUpdateLevelIcon() {
        final List<Drawable> iconList = new ArrayList<>();
        final ConnectedInfo mockConnectedInfo = mock(ConnectedInfo.class);
        mockConnectedInfo.isValidated = false;
        when(mMockWifiEntry.getConnectedInfo()).thenReturn(mockConnectedInfo);
        when(mMockWifiEntry.shouldShowXLevelIcon()).thenReturn(true);
        final WifiEntryPreference pref =
                new WifiEntryPreference(mContext, mMockWifiEntry, mMockIconInjector);

+14 −1
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import static android.app.AppOpsManager.OP_FLAG_TRUSTED_PROXIED;
import static android.app.AppOpsManager.OP_NONE;
import static android.app.AppOpsManager.OP_PLAY_AUDIO;
import static android.app.AppOpsManager.OP_RECORD_AUDIO;
import static android.app.AppOpsManager.OP_RECORD_AUDIO_HOTWORD;
import static android.app.AppOpsManager.OpEventProxyInfo;
import static android.app.AppOpsManager.RestrictionBypass;
import static android.app.AppOpsManager.SAMPLING_STRATEGY_BOOT_TIME_SAMPLING;
@@ -3415,6 +3416,18 @@ public class AppOpsService extends IAppOpsService.Stub {
            return AppOpsManager.MODE_IGNORED;
        }

        // As a special case for OP_RECORD_AUDIO_HOTWORD, which we use only for attribution
        // purposes and not as a check, also make sure that the caller is allowed to access
        // the data gated by OP_RECORD_AUDIO.
        //
        // TODO: Revert this change before Android 12.
        if (code == OP_RECORD_AUDIO_HOTWORD) {
            int result = checkOperation(OP_RECORD_AUDIO, uid, packageName);
            if (result != AppOpsManager.MODE_ALLOWED) {
                return result;
            }
        }

        RestrictionBypass bypass;
        try {
            bypass = verifyAndGetBypass(uid, packageName, attributionTag);