Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3311dc17 authored by Pavel Maltsev's avatar Pavel Maltsev Committed by Android (Google) Code Review
Browse files

Merge "Fix indexOutOfBound exception in SystemUI"

parents 19ba7050 04a22a26
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.systemui.statusbar.phone.ActivityStarter;

import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
@@ -62,8 +63,8 @@ class CarNavigationBarController {
    private SimpleArrayMap<String, Integer> mFacetPackageMap
            = new SimpleArrayMap<String, Integer>();

    private List<Intent> mIntents = new ArrayList<Intent>();
    private List<Intent> mLongPressIntents = new ArrayList<Intent>();
    private List<Intent> mIntents;
    private List<Intent> mLongPressIntents;

    private List<CarNavigationButton> mNavButtons = new ArrayList<CarNavigationButton>();

@@ -112,16 +113,19 @@ class CarNavigationBarController {
            throw new RuntimeException("car_facet array lengths do not match");
        }

        mIntents = createEmptyIntentList(icons.length());
        mLongPressIntents = createEmptyIntentList(icons.length());

        for (int i = 0; i < icons.length(); i++) {
            Drawable icon = icons.getDrawable(i);
            try {
                mIntents.add(i,
                mIntents.set(i,
                        Intent.parseUri(intents.getString(i), Intent.URI_INTENT_SCHEME));

                String longpressUri = longpressIntents.getString(i);
                boolean hasLongpress = !longpressUri.isEmpty();
                if (hasLongpress) {
                    mLongPressIntents.add(i,
                    mLongPressIntents.set(i,
                            Intent.parseUri(longpressUri, Intent.URI_INTENT_SCHEME));
                }

@@ -299,4 +303,8 @@ class CarNavigationBarController {
        setCurrentFacet(index);
        startActivity(mLongPressIntents.get(index));
    }

    private List<Intent> createEmptyIntentList(int size) {
        return Arrays.asList(new Intent[size]);
    }
}