Loading packages/SettingsLib/src/com/android/settingslib/wifi/WifiEntryPreference.java +1 −6 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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; Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiEntryPreferenceTest.java +2 −38 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); Loading services/core/java/com/android/server/appop/AppOpsService.java +14 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading
packages/SettingsLib/src/com/android/settingslib/wifi/WifiEntryPreference.java +1 −6 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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; Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiEntryPreferenceTest.java +2 −38 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); Loading
services/core/java/com/android/server/appop/AppOpsService.java +14 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading