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
|
// Only check title and summary for dashboard tile
|
||||||
return TextUtils.equals(localTile.title, targetTile.title)
|
return TextUtils.equals(localTile.title, targetTile.title)
|
||||||
&& TextUtils.equals(localTile.summary, targetTile.summary);
|
&& 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:
|
default:
|
||||||
return entity == null ? targetItem.entity == null
|
return entity == null ? targetItem.entity == null
|
||||||
: entity.equals(targetItem.entity);
|
: 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.dashboard.DashboardAdapter.IconCache;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.drawer.Tile;
|
import com.android.settingslib.drawer.Tile;
|
||||||
|
import com.android.settingslib.drawer.TileUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@@ -73,6 +75,7 @@ public class SuggestionAdapter extends RecyclerView.Adapter<DashboardItemHolder>
|
|||||||
mSuggestionsShownLogged.add(suggestionId);
|
mSuggestionsShownLogged.add(suggestionId);
|
||||||
}
|
}
|
||||||
if (suggestion.remoteViews != null) {
|
if (suggestion.remoteViews != null) {
|
||||||
|
TileUtils.updateTileUsingSummaryUri(mContext, suggestion);
|
||||||
final ViewGroup itemView = (ViewGroup) holder.itemView;
|
final ViewGroup itemView = (ViewGroup) holder.itemView;
|
||||||
itemView.removeAllViews();
|
itemView.removeAllViews();
|
||||||
itemView.addView(suggestion.remoteViews.apply(itemView.getContext(), itemView));
|
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.annotation.NonNull;
|
||||||
import android.support.v7.util.DiffUtil;
|
import android.support.v7.util.DiffUtil;
|
||||||
import android.support.v7.util.ListUpdateCallback;
|
import android.support.v7.util.ListUpdateCallback;
|
||||||
|
import android.widget.RemoteViews;
|
||||||
|
|
||||||
import com.android.settings.TestConfig;
|
import com.android.settings.TestConfig;
|
||||||
import com.android.settings.dashboard.conditional.AirplaneModeCondition;
|
import com.android.settings.dashboard.conditional.AirplaneModeCondition;
|
||||||
@@ -35,6 +36,7 @@ import org.robolectric.RobolectricTestRunner;
|
|||||||
import org.robolectric.annotation.Config;
|
import org.robolectric.annotation.Config;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -224,6 +226,28 @@ public class DashboardDataTest {
|
|||||||
testDiffUtil(mDashboardDataWithOneConditions, mDashboardDataWithNoItems, testResultData);
|
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
|
* Test when using the
|
||||||
* {@link com.android.settings.dashboard.DashboardData.ItemsDataDiffCallback}
|
* {@link com.android.settings.dashboard.DashboardData.ItemsDataDiffCallback}
|
||||||
|
Reference in New Issue
Block a user