Merge "Check instance before casting"

This commit is contained in:
TreeHugger Robot
2018-10-02 23:41:35 +00:00
committed by Android (Google) Code Review
2 changed files with 21 additions and 2 deletions

View File

@@ -23,6 +23,7 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.datausage.AppStateDataUsageBridge; import com.android.settings.datausage.AppStateDataUsageBridge;
import com.android.settings.datausage.AppStateDataUsageBridge.DataUsageState;
import com.android.settings.datausage.DataSaverBackend; import com.android.settings.datausage.DataSaverBackend;
import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -108,8 +109,8 @@ public class SpecialAppAccessPreferenceController extends BasePreferenceControll
if (!ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER.filterApp(entry)) { if (!ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER.filterApp(entry)) {
continue; continue;
} }
if (entry.extraInfo != null && ((AppStateDataUsageBridge.DataUsageState) if (entry.extraInfo instanceof DataUsageState
entry.extraInfo).isDataSaverWhitelisted) { && ((DataUsageState) entry.extraInfo).isDataSaverWhitelisted) {
count++; count++;
} }
} }

View File

@@ -94,4 +94,22 @@ public class SpecialAppAccessPreferenceControllerTest {
.isEqualTo(mContext.getResources().getQuantityString( .isEqualTo(mContext.getResources().getQuantityString(
R.plurals.special_access_summary, 1, 1)); R.plurals.special_access_summary, 1, 1));
} }
@Test
public void updateState_wrongExtraInfo_shouldNotIncludeInSummary() {
final ArrayList<ApplicationsState.AppEntry> apps = new ArrayList<>();
final ApplicationsState.AppEntry entry = mock(ApplicationsState.AppEntry.class);
entry.hasLauncherEntry = true;
entry.info = new ApplicationInfo();
entry.extraInfo = new AppStateNotificationBridge.NotificationsSentState();
apps.add(entry);
when(mSession.getAllApps()).thenReturn(apps);
mController.displayPreference(mScreen);
mController.onExtraInfoUpdated();
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getResources().getQuantityString(
R.plurals.special_access_summary, 0, 0));
}
} }