Merge "Update summary correctly in Settings dashboard." into nyc-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
e3f29e46b0
@@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.settings.dashboard;
|
package com.android.settings.dashboard;
|
||||||
|
|
||||||
import android.content.ComponentName;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
@@ -110,21 +109,6 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
|||||||
return mSuggestions;
|
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,
|
public void setCategoriesAndSuggestions(List<DashboardCategory> categories,
|
||||||
List<Tile> suggestions) {
|
List<Tile> suggestions) {
|
||||||
mSuggestions = suggestions;
|
mSuggestions = suggestions;
|
||||||
|
@@ -28,8 +28,10 @@ import android.os.Process;
|
|||||||
import android.util.ArrayMap;
|
import android.util.ArrayMap;
|
||||||
import android.util.ArraySet;
|
import android.util.ArraySet;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.settings.SettingsActivity;
|
import com.android.settings.SettingsActivity;
|
||||||
import com.android.settingslib.drawer.DashboardCategory;
|
import com.android.settingslib.drawer.DashboardCategory;
|
||||||
|
import com.android.settingslib.drawer.SettingsDrawerActivity;
|
||||||
import com.android.settingslib.drawer.Tile;
|
import com.android.settingslib.drawer.Tile;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@@ -87,9 +89,24 @@ public class SummaryLoader {
|
|||||||
public void run() {
|
public void run() {
|
||||||
// Since tiles are not always cached (like on locale change for instance),
|
// Since tiles are not always cached (like on locale change for instance),
|
||||||
// we need to always get the latest one.
|
// we need to always get the latest one.
|
||||||
Tile tile = mAdapter.getTile(component);
|
if (!(mActivity instanceof SettingsDrawerActivity)) {
|
||||||
if (tile == null) return;
|
if (DEBUG) {
|
||||||
if (DEBUG) Log.d(TAG, "setSummary " + tile.title + " - " + summary);
|
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;
|
tile.summary = summary;
|
||||||
mAdapter.notifyChanged(tile);
|
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 {
|
public interface SummaryProvider {
|
||||||
void setListening(boolean listening);
|
void setListening(boolean listening);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user