Merge "Set title in remote views if present in bundle" into oc-mr1-dev
am: 4ce113d6f8
Change-Id: Iaa650a18bd4efb74e6b903efad0ad1a02865429c
This commit is contained in:
@@ -460,6 +460,17 @@ public class DashboardData {
|
||||
// Only check title and summary for dashboard tile
|
||||
return TextUtils.equals(localTile.title, targetTile.title)
|
||||
&& TextUtils.equals(localTile.summary, targetTile.summary);
|
||||
case TYPE_SUGGESTION_CONDITION_CONTAINER:
|
||||
// If entity is suggestion and contains remote view, force refresh
|
||||
final List entities = (List) entity;
|
||||
if (!entities.isEmpty()) {
|
||||
Object firstEntity = entities.get(0);
|
||||
if (firstEntity instanceof Tile
|
||||
&& ((Tile) firstEntity).remoteViews != null) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// Otherwise Fall through to default
|
||||
default:
|
||||
return entity == null ? targetItem.entity == null
|
||||
: entity.equals(targetItem.entity);
|
||||
|
@@ -29,6 +29,8 @@ import com.android.settings.dashboard.DashboardAdapter.DashboardItemHolder;
|
||||
import com.android.settings.dashboard.DashboardAdapter.IconCache;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settingslib.drawer.Tile;
|
||||
import com.android.settingslib.drawer.TileUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -73,6 +75,7 @@ public class SuggestionAdapter extends RecyclerView.Adapter<DashboardItemHolder>
|
||||
mSuggestionsShownLogged.add(suggestionId);
|
||||
}
|
||||
if (suggestion.remoteViews != null) {
|
||||
TileUtils.updateTileUsingSummaryUri(mContext, suggestion);
|
||||
final ViewGroup itemView = (ViewGroup) holder.itemView;
|
||||
itemView.removeAllViews();
|
||||
itemView.addView(suggestion.remoteViews.apply(itemView.getContext(), itemView));
|
||||
|
@@ -19,6 +19,7 @@ package com.android.settings.dashboard;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.util.DiffUtil;
|
||||
import android.support.v7.util.ListUpdateCallback;
|
||||
import android.widget.RemoteViews;
|
||||
|
||||
import com.android.settings.TestConfig;
|
||||
import com.android.settings.dashboard.conditional.AirplaneModeCondition;
|
||||
@@ -35,6 +36,7 @@ import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
@@ -224,6 +226,28 @@ public class DashboardDataTest {
|
||||
testDiffUtil(mDashboardDataWithOneConditions, mDashboardDataWithNoItems, testResultData);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDiffUtil_typeSuggestedContainer_ResultDataNothingChanged() {
|
||||
//Build testResultData
|
||||
final List<ListUpdateResult.ResultData> testResultData = new ArrayList<>();
|
||||
testResultData.add(new ListUpdateResult.ResultData(
|
||||
ListUpdateResult.ResultData.TYPE_OPERATION_CHANGE, 0, 1));
|
||||
Tile tile = new Tile();
|
||||
tile.remoteViews = mock(RemoteViews.class);
|
||||
|
||||
DashboardData prevData = new DashboardData.Builder()
|
||||
.setConditions(null)
|
||||
.setCategory(null)
|
||||
.setSuggestions(Arrays.asList(tile))
|
||||
.build();
|
||||
DashboardData currentData = new DashboardData.Builder()
|
||||
.setConditions(null)
|
||||
.setCategory(null)
|
||||
.setSuggestions(Arrays.asList(tile))
|
||||
.build();
|
||||
testDiffUtil(prevData, currentData, testResultData);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test when using the
|
||||
* {@link com.android.settings.dashboard.DashboardData.ItemsDataDiffCallback}
|
||||
|
Reference in New Issue
Block a user