Attemp to fix a concurrent modify exception

Change-Id: I039091d43ba8c378066c26dcca416534d0f52d21
Fix: 36347434
Test: existing tests pass
This commit is contained in:
Fan Zhang
2017-03-17 12:54:24 -07:00
parent 6b58b5c9f7
commit 7c8f8a0a41

View File

@@ -68,7 +68,6 @@ import com.android.settings.wfd.WifiDisplaySettings;
import com.android.settings.widget.SwitchBar; import com.android.settings.widget.SwitchBar;
import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.SettingsDrawerActivity; import com.android.settingslib.drawer.SettingsDrawerActivity;
import com.android.settingslib.drawer.Tile;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -879,8 +878,10 @@ public class SettingsActivity extends SettingsDrawerActivity
final List<DashboardCategory> categories = mDashboardFeatureProvider.getAllCategories(); final List<DashboardCategory> categories = mDashboardFeatureProvider.getAllCategories();
synchronized (categories) { synchronized (categories) {
for (DashboardCategory category : categories) { for (DashboardCategory category : categories) {
for (Tile tile : category.tiles) { final int tileCount = category.getTilesCount();
ComponentName component = tile.intent.getComponent(); for (int i = 0; i < tileCount; i++) {
final ComponentName component = category.getTile(i).intent.getComponent();
final String name = component.getClassName(); final String name = component.getClassName();
final boolean isEnabledForRestricted = ArrayUtils.contains( final boolean isEnabledForRestricted = ArrayUtils.contains(
SettingsGateway.SETTINGS_FOR_RESTRICTED, name); SettingsGateway.SETTINGS_FOR_RESTRICTED, name);