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

Commit ab13b378 authored by Matthew Fritze's avatar Matthew Fritze Committed by android-build-merger
Browse files

Merge "Only add icons to settings items with icons" into oc-dev

am: ec005731

Change-Id: I27166b54cd51b055d80a96afded31b2f55dbdb8e
parents 16bc088c ec005731
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.os.Build;
import android.provider.SearchIndexableData;
import android.provider.SearchIndexableResource;
import android.provider.SearchIndexablesContract;
import android.support.annotation.DrawableRes;
import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;
import android.util.AttributeSet;
@@ -525,8 +526,6 @@ public class DatabaseIndexingManager {
            final int count = cursor.getCount();
            if (count > 0) {
                while (cursor.moveToNext()) {
                    final int providerRank = cursor.getInt(COLUMN_INDEX_XML_RES_RANK);
                    // TODO remove provider rank
                    final int xmlResId = cursor.getInt(COLUMN_INDEX_XML_RES_RESID);

                    final String className = cursor.getString(COLUMN_INDEX_XML_RES_CLASS_NAME);
@@ -720,7 +719,6 @@ public class DatabaseIndexingManager {
            final AttributeSet attrs = Xml.asAttributeSet(parser);

            final String screenTitle = XmlParserUtils.getDataTitle(context, attrs);

            String key = XmlParserUtils.getDataKey(context, attrs);

            String title;
@@ -730,10 +728,11 @@ public class DatabaseIndexingManager {
            String keywords;
            String headerKeywords;
            String childFragment;
            @DrawableRes
            int iconResId;
            ResultPayload payload;
            boolean enabled;
            final String fragmentName = sir.className;
            final int iconResId = sir.iconResId;
            final int rank = sir.rank;
            final String intentAction = sir.intentAction;
            final String intentTargetPackage = sir.intentTargetPackage;
@@ -784,6 +783,7 @@ public class DatabaseIndexingManager {
                key = XmlParserUtils.getDataKey(context, attrs);
                enabled = ! nonIndexableKeys.contains(key);
                keywords = XmlParserUtils.getDataKeywords(context, attrs);
                iconResId = XmlParserUtils.getDataIcon(context, attrs);

                if (isHeaderUnique && TextUtils.equals(headerTitle, title)) {
                    isHeaderUnique = false;
@@ -853,7 +853,6 @@ public class DatabaseIndexingManager {
            List<String> nonIndexableKeys) {

        final String className = sir.className;
        final int iconResId = sir.iconResId;
        final int rank = sir.rank;

        if (provider == null) {
@@ -881,7 +880,7 @@ public class DatabaseIndexingManager {
                        .setEntries(raw.entries)
                        .setClassName(className)
                        .setScreenTitle(raw.screenTitle)
                        .setIconResId(iconResId)
                        .setIconResId(raw.iconResId)
                        .setRank(rank)
                        .setIntentAction(raw.intentAction)
                        .setIntentTargetPackage(raw.intentTargetPackage)
@@ -907,7 +906,6 @@ public class DatabaseIndexingManager {
                    continue;
                }

                item.iconResId = (item.iconResId == 0) ? iconResId : item.iconResId;
                item.className = (TextUtils.isEmpty(item.className)) ? className : item.className;

                indexFromResource(database, localeStr, item, nonIndexableKeys);
+2 −4
Original line number Diff line number Diff line
@@ -69,11 +69,9 @@ public abstract class SearchViewHolder extends RecyclerView.ViewHolder {
            AppSearchResult appResult = (AppSearchResult) result;
            PackageManager pm = fragment.getActivity().getPackageManager();
            iconView.setImageDrawable(appResult.info.loadIcon(pm));
        } else if (result.icon != null) {
            iconView.setImageDrawable(result.icon);
            // TODO set color of icon
        } else {
            iconView.setBackgroundResource(R.drawable.empty_icon);
            // Valid even when result.icon is null.
            iconView.setImageDrawable(result.icon);
        }

        bindBreadcrumbView(result);
+11 −11
Original line number Diff line number Diff line
@@ -71,6 +71,14 @@ public class XmlParserUtils {
        return getData(context, attrs, R.styleable.Preference, R.styleable.Preference_keywords);
    }

    public static int getDataIcon(Context context, AttributeSet attrs) {
        final TypedArray ta = context.obtainStyledAttributes(attrs,
                com.android.internal.R.styleable.Preference);
        final int dataIcon = ta.getResourceId(com.android.internal.R.styleable.Icon_icon, 0);
        ta.recycle();
        return dataIcon;
    }

    /**
     * Returns the fragment name if this preference launches a child fragment.
     */
@@ -80,17 +88,9 @@ public class XmlParserUtils {
    }

    private static String getData(Context context, AttributeSet set, int[] attrs, int resId) {
        final TypedArray sa = context.obtainStyledAttributes(set, attrs);
        final TypedValue tv = sa.peekValue(resId);

        CharSequence data = null;
        if (tv != null && tv.type == TypedValue.TYPE_STRING) {
            if (tv.resourceId != 0) {
                data = context.getText(tv.resourceId);
            } else {
                data = tv.string;
            }
        }
        final TypedArray ta = context.obtainStyledAttributes(set, attrs);
        String data = ta.getString(resId);
        ta.recycle();
        return (data != null) ? data.toString() : null;
    }

+15 −7
Original line number Diff line number Diff line
@@ -82,7 +82,7 @@ public class IntentSearchViewHolderTest {
    }

    @Test
    public void testConstructor_MembersNotNull() {
    public void testConstructor_membersNotNull() {
        assertThat(mHolder.titleView).isNotNull();
        assertThat(mHolder.summaryView).isNotNull();
        assertThat(mHolder.iconView).isNotNull();
@@ -90,8 +90,8 @@ public class IntentSearchViewHolderTest {
    }

    @Test
    public void testBindViewElements_AllUpdated() {
        SearchResult result = getSearchResult();
    public void testBindViewElements_allUpdated() {
        SearchResult result = getSearchResult(TITLE, SUMMARY, mIcon);
        mHolder.onBind(mFragment, result);
        mHolder.itemView.performClick();

@@ -109,6 +109,14 @@ public class IntentSearchViewHolderTest {
                any(Pair.class));
    }

    @Test
    public void testBindViewIcon_nullIcon_imageDrawableIsNull() {
        final SearchResult result = getSearchResult(TITLE, SUMMARY, null);
        mHolder.onBind(mFragment, result);

        assertThat(mHolder.iconView.getDrawable()).isNull();
    }

    @Test
    public void testBindViewElements_emptySummary_hideSummaryView() {
        final SearchResult result = new Builder()
@@ -155,15 +163,15 @@ public class IntentSearchViewHolderTest {
        assertThat(mHolder.summaryView.getVisibility()).isEqualTo(View.GONE);
    }

    private SearchResult getSearchResult() {
    private SearchResult getSearchResult(String title, String summary, Drawable icon) {
        Builder builder = new Builder();
        builder.addTitle(TITLE)
                .addSummary(SUMMARY)
        builder.addTitle(title)
                .addSummary(summary)
                .addRank(1)
                .addPayload(new IntentPayload(
                        new Intent().setComponent(new ComponentName("pkg", "class"))))
                .addBreadcrumbs(new ArrayList<>())
                .addIcon(mIcon);
                .addIcon(icon);

        return builder.build();
    }
+18 −5
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ public class DatabaseIndexingManagerTest {
    private final String screenTitle = "screen title";
    private final String className = "class name";
    private final int iconResId = 0xff;
    private final int noIcon = 0;
    private final String action = "action";
    private final String targetPackage = "target package";
    private final String targetClass = "target class";
@@ -388,7 +389,7 @@ public class DatabaseIndexingManagerTest {
        // Class Name
        assertThat(cursor.getString(11)).isEqualTo(className);
        // Icon
        assertThat(cursor.getInt(12)).isEqualTo(iconResId);
        assertThat(cursor.getInt(12)).isEqualTo(noIcon);
        // Intent Action
        assertThat(cursor.getString(13)).isEqualTo(action);
        // Target Package
@@ -442,7 +443,7 @@ public class DatabaseIndexingManagerTest {
        // Class Name
        assertThat(cursor.getString(11)).isEqualTo(className);
        // Icon
        assertThat(cursor.getInt(12)).isEqualTo(iconResId);
        assertThat(cursor.getInt(12)).isEqualTo(noIcon);
        // Intent Action
        assertThat(cursor.getString(13)).isEqualTo(action);
        // Target Package
@@ -496,7 +497,7 @@ public class DatabaseIndexingManagerTest {
        // Class Name
        assertThat(cursor.getString(11)).isEqualTo(className);
        // Icon
        assertThat(cursor.getInt(12)).isEqualTo(iconResId);
        assertThat(cursor.getInt(12)).isEqualTo(noIcon);
        // Intent Action
        assertThat(cursor.getString(13)).isEqualTo(action);
        // Target Package
@@ -515,6 +516,18 @@ public class DatabaseIndexingManagerTest {
        assertThat(cursor.getBlob(20)).isNull();
    }

    @Test
    public void testAddResource_iconAddedFromXml() {
        SearchIndexableResource resource = getFakeResource(R.xml.connected_devices);
        mManager.indexOneSearchIndexableData(mDb, localeStr, resource, new HashMap<>());

        Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index ORDER BY data_title", null);
        cursor.moveToPosition(0);

        // Icon
        assertThat(cursor.getInt(12)).isNotEqualTo(noIcon);
    }

    // Tests for the flow: IndexOneResource -> IndexFromProvider -> IndexFromResource ->
    //                     UpdateOneRowWithFilteredData -> UpdateOneRow

@@ -565,7 +578,7 @@ public class DatabaseIndexingManagerTest {
        assertThat(cursor.getString(11))
                .isEqualTo("com.android.settings.display.ScreenZoomSettings");
        // Icon
        assertThat(cursor.getInt(12)).isEqualTo(iconResId);
        assertThat(cursor.getInt(12)).isEqualTo(noIcon);
        // Intent Action
        assertThat(cursor.getString(13)).isNull();
        // Target Package
@@ -630,7 +643,7 @@ public class DatabaseIndexingManagerTest {
        assertThat(cursor.getString(11))
                .isEqualTo("com.android.settings.display.ScreenZoomSettings");
        // Icon
        assertThat(cursor.getInt(12)).isEqualTo(iconResId);
        assertThat(cursor.getInt(12)).isEqualTo(noIcon);
        // Intent Action
        assertThat(cursor.getString(13)).isNull();
        // Target Package