Fix exception when filtering the APPs which can CHANGE_WIFI_STATE
When filtering AppEntry, only allow the extraInfo type of WifiSettingsState. Bug: 148486719 Test: make RunSettingsRoboTests ROBOTEST_FILTER=AppStateChangeWifiStateBridgeTest Change-Id: I486e88629aec8cfecf6174de8987d37394043743
This commit is contained in:
@@ -83,7 +83,8 @@ public class AppStateChangeWifiStateBridge extends AppStateAppOpsBridge {
|
||||
|
||||
@Override
|
||||
public boolean filterApp(AppEntry info) {
|
||||
if (info == null || info.extraInfo == null) {
|
||||
if (info == null || info.extraInfo == null
|
||||
|| !(info.extraInfo instanceof WifiSettingsState)) {
|
||||
return false;
|
||||
}
|
||||
WifiSettingsState wifiSettingsState = (WifiSettingsState) info.extraInfo;
|
||||
|
@@ -22,6 +22,7 @@ import static org.mockito.Mockito.mock;
|
||||
import android.Manifest;
|
||||
import android.content.pm.PackageInfo;
|
||||
|
||||
import com.android.settings.datausage.AppStateDataUsageBridge.DataUsageState;
|
||||
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
||||
import com.android.settingslib.applications.ApplicationsState.AppFilter;
|
||||
|
||||
@@ -81,4 +82,11 @@ public class AppStateChangeWifiStateBridgeTest {
|
||||
mEntry.extraInfo = mState;
|
||||
assertThat(mFilter.filterApp(mEntry)).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFilterApp_filterWrongTypeExtraInfo_returnFalse() {
|
||||
mEntry.extraInfo = mock(DataUsageState.class);
|
||||
|
||||
assertThat(mFilter.filterApp(mEntry)).isFalse();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user