Merge "SSIN: Use the application's context to load icon resources." into qt-qpr1-dev

am: 0df74f4d32

Change-Id: I8d2e42641acec393343196acdf5ec96d26dba405
This commit is contained in:
Gustav Sennton
2019-09-19 15:20:48 -07:00
committed by android-build-merger
4 changed files with 24 additions and 18 deletions

View File

@@ -264,7 +264,7 @@ public class NotificationContentInflater {
mIsChildInGroup, mUsesIncreasedHeight, mUsesIncreasedHeadsUpHeight, mIsChildInGroup, mUsesIncreasedHeight, mUsesIncreasedHeadsUpHeight,
packageContext); packageContext);
result = inflateSmartReplyViews(result, reInflateFlags, mRow.getEntry(), result = inflateSmartReplyViews(result, reInflateFlags, mRow.getEntry(),
mRow.getContext(), mRow.getHeadsUpManager(), mRow.getContext(), packageContext, mRow.getHeadsUpManager(),
mRow.getExistingSmartRepliesAndActions()); mRow.getExistingSmartRepliesAndActions());
apply( apply(
inflateSynchronously, inflateSynchronously,
@@ -311,20 +311,21 @@ public class NotificationContentInflater {
private static InflationProgress inflateSmartReplyViews(InflationProgress result, private static InflationProgress inflateSmartReplyViews(InflationProgress result,
@InflationFlag int reInflateFlags, NotificationEntry entry, Context context, @InflationFlag int reInflateFlags, NotificationEntry entry, Context context,
HeadsUpManager headsUpManager, SmartRepliesAndActions previousSmartRepliesAndActions) { Context packageContext, HeadsUpManager headsUpManager,
SmartRepliesAndActions previousSmartRepliesAndActions) {
SmartReplyConstants smartReplyConstants = Dependency.get(SmartReplyConstants.class); SmartReplyConstants smartReplyConstants = Dependency.get(SmartReplyConstants.class);
SmartReplyController smartReplyController = Dependency.get(SmartReplyController.class); SmartReplyController smartReplyController = Dependency.get(SmartReplyController.class);
if ((reInflateFlags & FLAG_CONTENT_VIEW_EXPANDED) != 0 && result.newExpandedView != null) { if ((reInflateFlags & FLAG_CONTENT_VIEW_EXPANDED) != 0 && result.newExpandedView != null) {
result.expandedInflatedSmartReplies = result.expandedInflatedSmartReplies =
InflatedSmartReplies.inflate( InflatedSmartReplies.inflate(
context, entry, smartReplyConstants, smartReplyController, context, packageContext, entry, smartReplyConstants,
headsUpManager, previousSmartRepliesAndActions); smartReplyController, headsUpManager, previousSmartRepliesAndActions);
} }
if ((reInflateFlags & FLAG_CONTENT_VIEW_HEADS_UP) != 0 && result.newHeadsUpView != null) { if ((reInflateFlags & FLAG_CONTENT_VIEW_HEADS_UP) != 0 && result.newHeadsUpView != null) {
result.headsUpInflatedSmartReplies = result.headsUpInflatedSmartReplies =
InflatedSmartReplies.inflate( InflatedSmartReplies.inflate(
context, entry, smartReplyConstants, smartReplyController, context, packageContext, entry, smartReplyConstants,
headsUpManager, previousSmartRepliesAndActions); smartReplyController, headsUpManager, previousSmartRepliesAndActions);
} }
return result; return result;
} }
@@ -817,7 +818,7 @@ public class NotificationContentInflater {
recoveredBuilder, mIsLowPriority, mIsChildInGroup, mUsesIncreasedHeight, recoveredBuilder, mIsLowPriority, mIsChildInGroup, mUsesIncreasedHeight,
mUsesIncreasedHeadsUpHeight, packageContext); mUsesIncreasedHeadsUpHeight, packageContext);
return inflateSmartReplyViews(inflationProgress, mReInflateFlags, mRow.getEntry(), return inflateSmartReplyViews(inflationProgress, mReInflateFlags, mRow.getEntry(),
mRow.getContext(), mRow.getHeadsUpManager(), mRow.getContext(), packageContext, mRow.getHeadsUpManager(),
mRow.getExistingSmartRepliesAndActions()); mRow.getExistingSmartRepliesAndActions());
} catch (Exception e) { } catch (Exception e) {
mError = e; mError = e;

View File

@@ -80,6 +80,7 @@ public class InflatedSmartReplies {
*/ */
public static InflatedSmartReplies inflate( public static InflatedSmartReplies inflate(
Context context, Context context,
Context packageContext,
NotificationEntry entry, NotificationEntry entry,
SmartReplyConstants smartReplyConstants, SmartReplyConstants smartReplyConstants,
SmartReplyController smartReplyController, SmartReplyController smartReplyController,
@@ -108,9 +109,9 @@ public class InflatedSmartReplies {
} }
if (newSmartRepliesAndActions.smartActions != null) { if (newSmartRepliesAndActions.smartActions != null) {
suggestionButtons.addAll( suggestionButtons.addAll(
smartReplyView.inflateSmartActions(newSmartRepliesAndActions.smartActions, smartReplyView.inflateSmartActions(packageContext,
smartReplyController, entry, headsUpManager, newSmartRepliesAndActions.smartActions, smartReplyController, entry,
delayOnClickListener)); headsUpManager, delayOnClickListener));
} }
return new InflatedSmartReplies(smartReplyView, suggestionButtons, return new InflatedSmartReplies(smartReplyView, suggestionButtons,

View File

@@ -235,17 +235,17 @@ public class SmartReplyView extends ViewGroup {
* Add smart actions to be shown next to smart replies. Only the actions that fit into the * Add smart actions to be shown next to smart replies. Only the actions that fit into the
* notification are shown. * notification are shown.
*/ */
public List<Button> inflateSmartActions(@NonNull SmartActions smartActions, public List<Button> inflateSmartActions(Context packageContext,
SmartReplyController smartReplyController, NotificationEntry entry, @NonNull SmartActions smartActions, SmartReplyController smartReplyController,
HeadsUpManager headsUpManager, boolean delayOnClickListener) { NotificationEntry entry, HeadsUpManager headsUpManager, boolean delayOnClickListener) {
List<Button> buttons = new ArrayList<>(); List<Button> buttons = new ArrayList<>();
int numSmartActions = smartActions.actions.size(); int numSmartActions = smartActions.actions.size();
for (int n = 0; n < numSmartActions; n++) { for (int n = 0; n < numSmartActions; n++) {
Notification.Action action = smartActions.actions.get(n); Notification.Action action = smartActions.actions.get(n);
if (action.actionIntent != null) { if (action.actionIntent != null) {
buttons.add(inflateActionButton( buttons.add(inflateActionButton(
this, getContext(), n, smartActions, smartReplyController, entry, this, getContext(), packageContext, n, smartActions, smartReplyController,
headsUpManager, delayOnClickListener)); entry, headsUpManager, delayOnClickListener));
} }
} }
return buttons; return buttons;
@@ -327,7 +327,7 @@ public class SmartReplyView extends ViewGroup {
@VisibleForTesting @VisibleForTesting
static Button inflateActionButton(SmartReplyView smartReplyView, Context context, static Button inflateActionButton(SmartReplyView smartReplyView, Context context,
int actionIndex, SmartActions smartActions, Context packageContext, int actionIndex, SmartActions smartActions,
SmartReplyController smartReplyController, NotificationEntry entry, SmartReplyController smartReplyController, NotificationEntry entry,
HeadsUpManager headsUpManager, boolean useDelayedOnClickListener) { HeadsUpManager headsUpManager, boolean useDelayedOnClickListener) {
Notification.Action action = smartActions.actions.get(actionIndex); Notification.Action action = smartActions.actions.get(actionIndex);
@@ -335,7 +335,9 @@ public class SmartReplyView extends ViewGroup {
R.layout.smart_action_button, smartReplyView, false); R.layout.smart_action_button, smartReplyView, false);
button.setText(action.title); button.setText(action.title);
Drawable iconDrawable = action.getIcon().loadDrawable(context); // We received the Icon from the application - so use the Context of the application to
// reference icon resources.
Drawable iconDrawable = action.getIcon().loadDrawable(packageContext);
// Add the action icon to the Smart Action button. // Add the action icon to the Smart Action button.
int newIconSize = context.getResources().getDimensionPixelSize( int newIconSize = context.getResources().getDimensionPixelSize(
R.dimen.smart_action_button_icon_size); R.dimen.smart_action_button_icon_size);

View File

@@ -494,6 +494,7 @@ public class SmartReplyViewTest extends SysuiTestCase {
private void setSmartActions(String[] actionTitles, boolean useDelayedOnClickListener) { private void setSmartActions(String[] actionTitles, boolean useDelayedOnClickListener) {
mView.resetSmartSuggestions(mContainer); mView.resetSmartSuggestions(mContainer);
List<Button> actions = mView.inflateSmartActions( List<Button> actions = mView.inflateSmartActions(
getContext(),
new SmartReplyView.SmartActions(createActions(actionTitles), false), new SmartReplyView.SmartActions(createActions(actionTitles), false),
mLogger, mLogger,
mEntry, mEntry,
@@ -514,6 +515,7 @@ public class SmartReplyViewTest extends SysuiTestCase {
List<Button> smartSuggestions = inflateSmartReplies(choices, fromAssistant, List<Button> smartSuggestions = inflateSmartReplies(choices, fromAssistant,
useDelayedOnClickListener); useDelayedOnClickListener);
smartSuggestions.addAll(mView.inflateSmartActions( smartSuggestions.addAll(mView.inflateSmartActions(
getContext(),
new SmartReplyView.SmartActions(createActions(actionTitles), fromAssistant), new SmartReplyView.SmartActions(createActions(actionTitles), fromAssistant),
mLogger, mLogger,
mEntry, mEntry,
@@ -860,7 +862,7 @@ public class SmartReplyViewTest extends SysuiTestCase {
} }
private Button inflateActionButton(Notification.Action action) { private Button inflateActionButton(Notification.Action action) {
return SmartReplyView.inflateActionButton(mView, getContext(), 0, return SmartReplyView.inflateActionButton(mView, getContext(), getContext(), 0,
new SmartReplyView.SmartActions(Collections.singletonList(action), false), new SmartReplyView.SmartActions(Collections.singletonList(action), false),
mLogger, mEntry, mHeadsUpManager, true /* useDelayedOnClickListener */); mLogger, mEntry, mHeadsUpManager, true /* useDelayedOnClickListener */);
} }