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

Commit 0011604f authored by Jason Monk's avatar Jason Monk Committed by Android (Google) Code Review
Browse files

Merge "Clean up settings shortcuts" into mnc-dev

parents 5f7560f8 2acff556
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -767,7 +767,6 @@
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="com.android.settings.SHORTCUT" />
            </intent-filter>
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                android:value="com.android.settings.notification.ZenModeScheduleRuleSettings" />
@@ -787,7 +786,6 @@
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="com.android.settings.SHORTCUT" />
            </intent-filter>
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                android:value="com.android.settings.notification.ZenModeEventRuleSettings" />
@@ -807,7 +805,6 @@
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="com.android.settings.SHORTCUT" />
            </intent-filter>
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                android:value="com.android.settings.notification.ZenModeExternalRuleSettings" />
@@ -926,6 +923,19 @@
                android:value="true" />
        </activity>

        <activity android:name="Settings$MemorySettingsActivity"
                android:label="@string/memory_settings_title"
                android:taskAffinity="">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="com.android.settings.SHORTCUT" />
            </intent-filter>
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                android:value="com.android.settings.applications.ProcessStatsSummary" />
            <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
                android:resource="@id/manage_memory" />
        </activity>

        <activity android:name="Settings$AllApplicationsActivity"
                android:label="@string/applications_settings"
                android:taskAffinity="">
+8.51 KiB
Loading image diff...
+34 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2015 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="@dimen/shortcut_size"
    android:layout_height="@dimen/shortcut_size">

    <ImageView
        android:layout_width="@dimen/shortcut_size"
        android:layout_height="@dimen/shortcut_size"
        android:scaleType="fitXY"
        android:src="@drawable/shortcut_base" />

    <ImageView
        android:id="@android:id/icon"
        android:layout_width="@dimen/shortcut_size"
        android:layout_height="@dimen/shortcut_size"
        android:padding="12dp"
        android:scaleType="fitXY" />

</RelativeLayout>
+3 −0
Original line number Diff line number Diff line
@@ -244,4 +244,7 @@
    <dimen name="mdm_app_info_height">72dp</dimen>
    <dimen name="mdm_app_info_padding_top_bottom">8dp</dimen>
    <dimen name="mdm_app_name_padding_left">16dp</dimen>

    <dimen name="shortcut_size">40dp</dimen>
    <dimen name="badge_size">10dp</dimen>
</resources>
+52 −1
Original line number Diff line number Diff line
@@ -17,18 +17,33 @@
package com.android.settings;

import android.app.LauncherActivity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.MeasureSpec;
import android.widget.ImageView;
import android.widget.ListView;

import com.android.settings.Settings.TetherSettingsActivity;
import com.android.settings.dashboard.DashboardCategory;
import com.android.settings.dashboard.DashboardTile;
import com.android.settingslib.TetherUtil;

import java.util.ArrayList;
import java.util.List;

public class CreateShortcut extends LauncherActivity {

    private static final String TOP_LEVEL_HEADER = "com.android.settings.TOP_LEVEL_HEADER_ID";

    @Override
    protected Intent getTargetIntent() {
        Intent targetIntent = new Intent(Intent.ACTION_MAIN, null);
@@ -46,10 +61,45 @@ public class CreateShortcut extends LauncherActivity {
                Intent.ShortcutIconResource.fromContext(this, R.mipmap.ic_launcher_settings));
        intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
        intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, itemForPosition(position).label);
        ResolveInfo resolveInfo = itemForPosition(position).resolveInfo;
        ActivityInfo activityInfo = resolveInfo.activityInfo;
        if (activityInfo.metaData != null && activityInfo.metaData.containsKey(TOP_LEVEL_HEADER)) {
            int topLevelId = activityInfo.metaData.getInt(TOP_LEVEL_HEADER);
            int resourceId = getDrawableResource(topLevelId);
            intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, createIcon(resourceId));
        }
        setResult(RESULT_OK, intent);
        finish();
    }

    private Bitmap createIcon(int resource) {
        Context context = new ContextThemeWrapper(this, android.R.style.Theme_Material_Light);
        View view = LayoutInflater.from(context).inflate(R.layout.shortcut_badge, null);
        ((ImageView) view.findViewById(android.R.id.icon)).setImageResource(resource);

        int spec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
        view.measure(spec, spec);
        Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(),
                Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
        view.draw(canvas);
        return bitmap;
    }

    private int getDrawableResource(int topLevelId) {
        ArrayList<DashboardCategory> categories = new ArrayList<>();
        SettingsActivity.loadCategoriesFromResource(R.xml.dashboard_categories, categories, this);
        for (DashboardCategory category : categories) {
            for (DashboardTile tile : category.tiles) {
                if (tile.id == topLevelId) {
                    return tile.iconRes;
                }
            }
        }
        return 0;
    }

    @Override
    protected boolean onEvaluateShowIcons() {
        return false;
@@ -60,7 +110,8 @@ public class CreateShortcut extends LauncherActivity {
     * implementation queries for activities.
     */
    protected List<ResolveInfo> onQueryPackageManager(Intent queryIntent) {
        List<ResolveInfo> activities = super.onQueryPackageManager(queryIntent);
        List<ResolveInfo> activities = getPackageManager().queryIntentActivities(queryIntent,
                PackageManager.GET_META_DATA);
        if (activities == null) return null;
        for (int i = activities.size() - 1; i >= 0; i--) {
            ResolveInfo info = activities.get(i);
Loading