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
|
@Override
|
||||||
public boolean filterApp(AppEntry info) {
|
public boolean filterApp(AppEntry info) {
|
||||||
if (info == null || info.extraInfo == null) {
|
if (info == null || info.extraInfo == null
|
||||||
|
|| !(info.extraInfo instanceof WifiSettingsState)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
WifiSettingsState wifiSettingsState = (WifiSettingsState) info.extraInfo;
|
WifiSettingsState wifiSettingsState = (WifiSettingsState) info.extraInfo;
|
||||||
|
@@ -22,6 +22,7 @@ import static org.mockito.Mockito.mock;
|
|||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.content.pm.PackageInfo;
|
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.AppEntry;
|
||||||
import com.android.settingslib.applications.ApplicationsState.AppFilter;
|
import com.android.settingslib.applications.ApplicationsState.AppFilter;
|
||||||
|
|
||||||
@@ -81,4 +82,11 @@ public class AppStateChangeWifiStateBridgeTest {
|
|||||||
mEntry.extraInfo = mState;
|
mEntry.extraInfo = mState;
|
||||||
assertThat(mFilter.filterApp(mEntry)).isFalse();
|
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