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

Commit 79c21c07 authored by Yanting Yang's avatar Yanting Yang Committed by Android (Google) Code Review
Browse files

Merge "Override homepage tile positions for silky home"

parents 613ad3f8 b3381de2
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -473,4 +473,10 @@

    <!-- Authority of advanced device battery prediction -->
    <string name="config_battery_prediction_authority" translatable="false"></string>

    <!-- Packages for overriding tile positions on the homepage -->
    <string-array name="config_homepage_tile_packages" translatable="false"/>

    <!-- Orders for overriding tile positions on the homepage -->
    <integer-array name="config_homepage_tile_orders"/>
</resources>
+24 −0
Original line number Diff line number Diff line
@@ -184,6 +184,9 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
                pref.setOrder(order + baseOrder);
            }
        }

        overrideTilePosition(tile, pref);

        return outObservers.isEmpty() ? null : outObservers;
    }

@@ -457,4 +460,25 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
        }
        return eligibleUsers;
    }

    private void overrideTilePosition(Tile tile, Preference pref) {
        if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.SILKY_HOME)
                && TextUtils.equals(tile.getCategory(), CategoryKey.CATEGORY_HOMEPAGE)) {
            final String[] homepageTilePackages = mContext.getResources().getStringArray(
                    R.array.config_homepage_tile_packages);
            final int[] homepageTileOrders = mContext.getResources().getIntArray(
                    R.array.config_homepage_tile_orders);
            if (homepageTilePackages.length == 0
                    || homepageTilePackages.length != homepageTileOrders.length) {
                return;
            }

            for (int i = 0; i < homepageTilePackages.length; i++) {
                if (TextUtils.equals(tile.getPackageName(), homepageTilePackages[i])) {
                    pref.setOrder(homepageTileOrders[i]);
                    return;
                }
            }
        }
    }
}
+10 −0
Original line number Diff line number Diff line
@@ -100,4 +100,14 @@

    <!-- Uri to query non-public Slice Uris. -->
    <string name="config_non_public_slice_query_uri" translatable="false">content://com.android.settings.slices/test</string>

    <!-- Packages for overriding tile positions on the homepage -->
    <string-array name="config_homepage_tile_packages" translatable="false">
        <item>com.android.settings</item>
    </string-array>

    <!-- Orders for overriding tile positions on the homepage -->
    <integer-array name="config_homepage_tile_orders">
        <item>100</item>
    </integer-array>
</resources>
+14 −0
Original line number Diff line number Diff line
@@ -707,4 +707,18 @@ public class DashboardFeatureProviderImplTest {
        assertThat(preference.getSummary()).isEqualTo(
                mContext.getText(R.string.about_settings_summary));
    }

    @Test
    @Config(qualifiers = "mcc999")
    public void bindPreference_specificHomepageTile_shouldOverridePosition() {
        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.SILKY_HOME, true);
        final Preference preference = new Preference(RuntimeEnvironment.application);
        final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);

        mImpl.bindPreferenceToTileAndGetObservers(mActivity, mForceRoundedIcon,
                MetricsEvent.VIEW_UNKNOWN, preference, tile, null /*key */,
                Preference.DEFAULT_ORDER);

        assertThat(preference.getOrder()).isEqualTo(100);
    }
}