Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(418)

Side by Side Diff: ui/arc/notification/arc_custom_notification_item.cc

Issue 2765923003: Extend notifications.mojom for expandable notifications. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/arc/notification/arc_custom_notification_item.h ('k') | ui/message_center/notification.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/arc/notification/arc_custom_notification_item.h" 5 #include "ui/arc/notification/arc_custom_notification_item.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 43
44 private: 44 private:
45 // The destructor is private since this class is ref-counted. 45 // The destructor is private since this class is ref-counted.
46 ~ArcNotificationDelegate() override {} 46 ~ArcNotificationDelegate() override {}
47 47
48 ArcCustomNotificationItem* const item_; 48 ArcCustomNotificationItem* const item_;
49 49
50 DISALLOW_COPY_AND_ASSIGN(ArcNotificationDelegate); 50 DISALLOW_COPY_AND_ASSIGN(ArcNotificationDelegate);
51 }; 51 };
52 52
53 message_center::NotificationExpandState ToNotificationExpandState(
yoshiki 2017/03/24 10:47:27 I think it's enough to use the mojo enum values (m
54 mojom::ArcNotificationExpandState state) {
55 switch (state) {
56 case mojom::ArcNotificationExpandState::FIXED_SIZE:
57 return message_center::NotificationExpandState::FIXED_SIZE;
58 case mojom::ArcNotificationExpandState::COLLAPSED:
59 return message_center::NotificationExpandState::COLLAPSED;
60 case mojom::ArcNotificationExpandState::EXPANDED:
61 return message_center::NotificationExpandState::EXPANDED;
62 default:
63 NOTREACHED();
64 break;
65 }
66 NOTREACHED();
67 return message_center::NotificationExpandState::FIXED_SIZE;
68 }
69
53 } // namespace 70 } // namespace
54 71
55 ArcCustomNotificationItem::ArcCustomNotificationItem( 72 ArcCustomNotificationItem::ArcCustomNotificationItem(
56 ArcNotificationManager* manager, 73 ArcNotificationManager* manager,
57 message_center::MessageCenter* message_center, 74 message_center::MessageCenter* message_center,
58 const std::string& notification_key, 75 const std::string& notification_key,
59 const AccountId& profile_id) 76 const AccountId& profile_id)
60 : ArcNotificationItem(manager, 77 : ArcNotificationItem(manager,
61 message_center, 78 message_center,
62 notification_key, 79 notification_key,
(...skipping 10 matching lines...) Expand all
73 DCHECK(CalledOnValidThread()); 90 DCHECK(CalledOnValidThread());
74 DCHECK_EQ(notification_key(), data->key); 91 DCHECK_EQ(notification_key(), data->key);
75 92
76 if (HasPendingNotification()) { 93 if (HasPendingNotification()) {
77 CacheArcNotificationData(std::move(data)); 94 CacheArcNotificationData(std::move(data));
78 return; 95 return;
79 } 96 }
80 97
81 message_center::RichNotificationData rich_data; 98 message_center::RichNotificationData rich_data;
82 rich_data.pinned = (data->no_clear || data->ongoing_event); 99 rich_data.pinned = (data->no_clear || data->ongoing_event);
100 rich_data.expand_state = ToNotificationExpandState(data->expand_state);
83 rich_data.priority = ConvertAndroidPriority(data->priority); 101 rich_data.priority = ConvertAndroidPriority(data->priority);
84 if (data->small_icon) 102 if (data->small_icon)
85 rich_data.small_image = gfx::Image::CreateFrom1xBitmap(*data->small_icon); 103 rich_data.small_image = gfx::Image::CreateFrom1xBitmap(*data->small_icon);
86 if (data->accessible_name.has_value()) 104 if (data->accessible_name.has_value())
87 rich_data.accessible_name = base::UTF8ToUTF16(*data->accessible_name); 105 rich_data.accessible_name = base::UTF8ToUTF16(*data->accessible_name);
88 106
89 message_center::NotifierId notifier_id( 107 message_center::NotifierId notifier_id(
90 message_center::NotifierId::SYSTEM_COMPONENT, kNotifierId); 108 message_center::NotifierId::SYSTEM_COMPONENT, kNotifierId);
91 notifier_id.profile_id = profile_id().GetUserEmail(); 109 notifier_id.profile_id = profile_id().GetUserEmail();
92 110
93 auto notification = base::MakeUnique<message_center::Notification>( 111 auto notification = base::MakeUnique<message_center::Notification>(
94 message_center::NOTIFICATION_TYPE_CUSTOM, notification_id(), 112 message_center::NOTIFICATION_TYPE_CUSTOM, notification_id(),
95 base::UTF8ToUTF16(data->title), base::UTF8ToUTF16(data->message), 113 base::UTF8ToUTF16(data->title), base::UTF8ToUTF16(data->message),
96 gfx::Image(), 114 gfx::Image(),
97 base::UTF8ToUTF16("arc"), // display source 115 base::UTF8ToUTF16("arc"), // display source
98 GURL(), // empty origin url, for system component 116 GURL(), // empty origin url, for system component
99 notifier_id, rich_data, new ArcNotificationDelegate(this)); 117 notifier_id, rich_data, new ArcNotificationDelegate(this));
100 notification->set_timestamp(base::Time::FromJavaTime(data->time)); 118 notification->set_timestamp(base::Time::FromJavaTime(data->time));
101 SetNotification(std::move(notification)); 119 SetNotification(std::move(notification));
102 120
103 pinned_ = rich_data.pinned; 121 pinned_ = rich_data.pinned;
122 expand_state_ = rich_data.expand_state;
104 123
105 if (!data->snapshot_image || data->snapshot_image->isNull()) { 124 if (!data->snapshot_image || data->snapshot_image->isNull()) {
106 snapshot_ = gfx::ImageSkia(); 125 snapshot_ = gfx::ImageSkia();
107 } else { 126 } else {
108 snapshot_ = gfx::ImageSkia(gfx::ImageSkiaRep( 127 snapshot_ = gfx::ImageSkia(gfx::ImageSkiaRep(
109 *data->snapshot_image, data->snapshot_image_scale)); 128 *data->snapshot_image, data->snapshot_image_scale));
110 } 129 }
111 130
112 for (auto& observer : observers_) 131 for (auto& observer : observers_)
113 observer.OnItemUpdated(); 132 observer.OnItemUpdated();
(...skipping 16 matching lines...) Expand all
130 } 149 }
131 150
132 void ArcCustomNotificationItem::DecrementWindowRefCount() { 151 void ArcCustomNotificationItem::DecrementWindowRefCount() {
133 DCHECK_GT(window_ref_count_, 0); 152 DCHECK_GT(window_ref_count_, 0);
134 --window_ref_count_; 153 --window_ref_count_;
135 if (window_ref_count_ == 0) 154 if (window_ref_count_ == 0)
136 manager()->CloseNotificationWindow(notification_key()); 155 manager()->CloseNotificationWindow(notification_key());
137 } 156 }
138 157
139 } // namespace arc 158 } // namespace arc
OLDNEW
« no previous file with comments | « ui/arc/notification/arc_custom_notification_item.h ('k') | ui/message_center/notification.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698