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

Commit e3f29e46 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update summary correctly in Settings dashboard." into nyc-mr1-dev

parents fa41bf14 011362d9
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);
    }