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

Commit b8352ccc authored by Fan Zhang's avatar Fan Zhang Committed by android-build-merger
Browse files

Update summary correctly in Settings dashboard. am: 011362d9 am: 9ee54737

am: eafaaf39

Change-Id: I2c381a23b7cbe8f8f1a1947a0bdcac08b1ed5bd4
parents dd15ec98 eafaaf39
Loading
Loading
Loading
Loading
+0 −16
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@
 */
package com.android.settings.dashboard;

import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
@@ -110,21 +109,6 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
        return mSuggestions;
    }

    public Tile getTile(ComponentName component) {
        if (mCategories == null) {
            return null;
        }
        for (int i = 0; i < mCategories.size(); i++) {
            for (int j = 0; j < mCategories.get(i).tiles.size(); j++) {
                Tile tile = mCategories.get(i).tiles.get(j);
                if (component.equals(tile.intent.getComponent())) {
                    return tile;
                }
            }
        }
        return null;
    }

    public void setCategoriesAndSuggestions(List<DashboardCategory> categories,
            List<Tile> suggestions) {
        mSuggestions = suggestions;
+41 −3
Original line number Diff line number Diff line
@@ -28,8 +28,10 @@ import android.os.Process;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.Log;

import com.android.settings.SettingsActivity;
import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.SettingsDrawerActivity;
import com.android.settingslib.drawer.Tile;

import java.lang.reflect.Field;
@@ -87,9 +89,24 @@ public class SummaryLoader {
            public void run() {
                // Since tiles are not always cached (like on locale change for instance),
                // we need to always get the latest one.
                Tile tile = mAdapter.getTile(component);
                if (tile == null) return;
                if (DEBUG) Log.d(TAG, "setSummary " + tile.title + " - " + summary);
                if (!(mActivity instanceof SettingsDrawerActivity)) {
                    if (DEBUG) {
                        Log.d(TAG, "Can't get category list.");
                    }
                    return;
                }
                final List<DashboardCategory> categories =
                        ((SettingsDrawerActivity) mActivity).getDashboardCategories();
                final Tile tile = getTileFromCategory(categories, component);
                if (tile == null) {
                    if (DEBUG) {
                        Log.d(TAG, "Can't find tile for " + component);
                    }
                    return;
                }
                if (DEBUG) {
                    Log.d(TAG, "setSummary " + tile.title + " - " + summary);
                }
                tile.summary = summary;
                mAdapter.notifyChanged(tile);
            }
@@ -187,6 +204,27 @@ public class SummaryLoader {
        }
    }

    private Tile getTileFromCategory(List<DashboardCategory> categories, ComponentName component) {
        if (categories == null) {
            if (DEBUG) {
                Log.d(TAG, "Category is null, can't find tile");
            }
            return null;
        }
        final int categorySize = categories.size();
        for (int i = 0; i < categorySize; i++) {
            final DashboardCategory category = categories.get(i);
            final int tileCount = category.tiles.size();
            for (int j = 0; j < tileCount; j++) {
                final Tile tile = category.tiles.get(j);
                if (component.equals(tile.intent.getComponent())) {
                    return tile;
                }
            }
        }
        return null;
    }

    public interface SummaryProvider {
        void setListening(boolean listening);
    }