Merge lp:~nik90/telegram-app/settings-listitemlayouts into lp:telegram-app
- settings-listitemlayouts
- Merge into telegram
Status: | Needs review |
---|---|
Proposed branch: | lp:~nik90/telegram-app/settings-listitemlayouts |
Merge into: | lp:telegram-app |
Diff against target: |
412 lines (+122/-145) 5 files modified
README.md (+1/-1) telegram/app/qml/AccountSettings.qml (+102/-82) telegram/app/qml/ProfilePage.qml (+2/-6) telegram/app/qml/components/SubtitledListItem.qml (+15/-53) telegram/manifest.json.in (+2/-3) |
To merge this branch: | bzr merge lp:~nik90/telegram-app/settings-listitemlayouts |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Jin (community) | Needs Information | ||
Review via email: mp+288200@code.launchpad.net |
Commit message
- migrated settings listitem to listitemlayouts
- updated framework to ubuntu-sdk-15.04.3 (available since OTA-9)
- fixed chroot dependency typo in README.md
- Refactored SubtitledListItem
Description of the change
This MP,
- migrates settings listitem to listitemlayouts
- updated framework to ubuntu-sdk-15.04.3 (available since OTA-9)
- fixed chroot dependency typo in README.md
- Refactored SubtitledListItem
Jin (jindallo) : | # |
Nekhelesh Ramananthan (nik90) wrote : | # |
Hmm I don't get email notifications when you just add diff comments without actually adding a comment in the MP. Strange.
Anyway, I updated the framework to keep up with the OTA version after all telegram is one of the core apps shipped on the phone. I would expect it to be up to date when it comes to framework versions.
Tim Peeters (tpeeters) wrote : | # |
IF this goes in first: https:/
Unmerged revisions
- 160. By Nekhelesh Ramananthan
-
Refactored SubtitledListItem and reverted back to ListItem.Header
- 159. By Nekhelesh Ramananthan
-
Updated framework to ubuntu-sdk-15.04.3
- 158. By Nekhelesh Ramananthan
-
Converted settings page listitems to ListItemLayout
- 157. By Nekhelesh Ramananthan
-
Fixed dependency typo in README.md
Preview Diff
1 | === modified file 'README.md' | |||
2 | --- README.md 2015-10-12 14:07:59 +0000 | |||
3 | +++ README.md 2016-03-05 12:47:04 +0000 | |||
4 | @@ -11,7 +11,7 @@ | |||
5 | 11 | #### Get and build dependencies. | 11 | #### Get and build dependencies. |
6 | 12 | 12 | ||
7 | 13 | In the above click chroot, install: | 13 | In the above click chroot, install: |
9 | 14 | libthumbnailer-qt-dev libthumbnailer-qt1.0:armhf thumbnailer-service:armhf | 14 | libthumbnailer-qt-dev:armhf libthumbnailer-qt1.0:armhf thumbnailer-service:armhf |
10 | 15 | 15 | ||
11 | 16 | This app requires: | 16 | This app requires: |
12 | 17 | - libqtelegram-aseman-edition library and | 17 | - libqtelegram-aseman-edition library and |
13 | 18 | 18 | ||
14 | === modified file 'telegram/app/qml/AccountSettings.qml' | |||
15 | --- telegram/app/qml/AccountSettings.qml 2015-11-16 11:26:36 +0000 | |||
16 | +++ telegram/app/qml/AccountSettings.qml 2016-03-05 12:47:04 +0000 | |||
17 | @@ -1,9 +1,8 @@ | |||
18 | 1 | import QtQuick 2.4 | 1 | import QtQuick 2.4 |
19 | 2 | import Ubuntu.Components 1.3 | 2 | import Ubuntu.Components 1.3 |
22 | 3 | import Ubuntu.Components.ListItems 0.1 as ListItem | 3 | import Ubuntu.Components.Popups 1.3 as Popup |
21 | 4 | import Ubuntu.Components.Popups 1.0 as Popup | ||
23 | 5 | import Ubuntu.Content 1.0 | 4 | import Ubuntu.Content 1.0 |
25 | 6 | 5 | import Ubuntu.Components.ListItems 1.3 as ListItems | |
26 | 7 | import TelegramQML 1.0 | 6 | import TelegramQML 1.0 |
27 | 8 | 7 | ||
28 | 9 | import "components" | 8 | import "components" |
29 | @@ -33,8 +32,10 @@ | |||
30 | 33 | ] | 32 | ] |
31 | 34 | 33 | ||
32 | 35 | objectName: "settingsPage" | 34 | objectName: "settingsPage" |
35 | 36 | title: i18n.tr("Settings") | 35 | header: PageHeader { |
36 | 37 | head.actions: actions | 36 | title: i18n.tr("Settings") |
37 | 37 | trailingActionBar.actions: actions | ||
38 | 38 | } | ||
39 | 38 | 39 | ||
40 | 39 | function changeFullName() { | 40 | function changeFullName() { |
41 | 40 | var properties = { "telegram": telegram, "firstName": user.firstName, "lastName": user.lastName }; | 41 | var properties = { "telegram": telegram, "firstName": user.firstName, "lastName": user.lastName }; |
42 | @@ -89,119 +90,142 @@ | |||
43 | 89 | VisualItemModel { | 90 | VisualItemModel { |
44 | 90 | id: model | 91 | id: model |
45 | 91 | 92 | ||
47 | 92 | ListItem.Header { | 93 | ListItems.Header { |
48 | 93 | // TRANSLATORS: Settings section header, visible above phone and username fields. | 94 | // TRANSLATORS: Settings section header, visible above phone and username fields. |
49 | 94 | text: i18n.tr("Info") | 95 | text: i18n.tr("Info") |
50 | 95 | } | 96 | } |
51 | 96 | 97 | ||
58 | 97 | ListItem.Subtitled { | 98 | ListItem { |
59 | 98 | text: telegram.phoneNumber | 99 | divider.visible: false |
60 | 99 | // TRANSLATORS: Visible right under phone number in settings page. | 100 | height: units.gu(6) |
61 | 100 | subText: i18n.tr("Phone") | 101 | ListItemLayout { |
62 | 101 | showDivider: false | 102 | id: phoneNumberLayout |
63 | 102 | highlightWhenPressed: false | 103 | title.text: telegram.phoneNumber |
64 | 104 | // TRANSLATORS: Visible right under phone number in settings page. | ||
65 | 105 | subtitle.text: i18n.tr("Phone") | ||
66 | 106 | padding.bottom: units.gu(1) | ||
67 | 107 | padding.top: units.gu(1) | ||
68 | 108 | } | ||
69 | 103 | } | 109 | } |
70 | 104 | 110 | ||
76 | 105 | ListItem.Subtitled { | 111 | ListItem { |
77 | 106 | text: user.username | 112 | divider.visible: false |
78 | 107 | // TRANSLATORS: Visible right under username in settings page. | 113 | height: units.gu(6) |
79 | 108 | subText: i18n.tr("Username") | 114 | ListItemLayout { |
80 | 109 | showDivider: false | 115 | id: usernameLayout |
81 | 116 | title.text: user.username | ||
82 | 117 | // TRANSLATORS: Visible right under username in settings page. | ||
83 | 118 | subtitle.text: i18n.tr("Username") | ||
84 | 119 | padding.bottom: units.gu(1) | ||
85 | 120 | padding.top: units.gu(1) | ||
86 | 121 | } | ||
87 | 110 | onClicked: changeUsername() | 122 | onClicked: changeUsername() |
88 | 111 | } | 123 | } |
89 | 112 | 124 | ||
91 | 113 | ListItem.Header { | 125 | ListItems.Header { |
92 | 114 | // TRANSLATORS: Settings section header. | 126 | // TRANSLATORS: Settings section header. |
93 | 115 | text: i18n.tr("Messages") | 127 | text: i18n.tr("Messages") |
94 | 116 | } | 128 | } |
95 | 117 | 129 | ||
122 | 118 | ListItem.Standard { | 130 | ListItem { |
123 | 119 | // TRANSLATORS: Text of notifications switch in settings. | 131 | divider.visible: false |
124 | 120 | text: i18n.tr("Notifications") | 132 | height: visible ? units.gu(6) : 0 |
125 | 121 | height: visible ? implicitHeight : 0 | 133 | visible: (Cutegram.pushNumber === telegram.phoneNumber) |
126 | 122 | visible: (Cutegram.pushNumber == telegram.phoneNumber) | 134 | |
127 | 123 | showDivider: false | 135 | ListItemLayout { |
128 | 124 | 136 | id: notificationLayout | |
129 | 125 | Switch { | 137 | // TRANSLATORS: Text of notifications switch in settings. |
130 | 126 | checked: Cutegram.pushNotifications | 138 | title.text: i18n.tr("Notifications") |
131 | 127 | anchors { | 139 | |
132 | 128 | right: parent.right | 140 | Switch { |
133 | 129 | rightMargin: units.gu(2) | 141 | checked: Cutegram.pushNotifications |
134 | 130 | verticalCenter: parent.verticalCenter | 142 | SlotsLayout.position: SlotsLayout.Last |
135 | 131 | } | 143 | |
136 | 132 | 144 | onCheckedChanged: { | |
137 | 133 | onCheckedChanged: { | 145 | Cutegram.pushNotifications = checked; |
138 | 134 | Cutegram.pushNotifications = checked; | 146 | |
139 | 135 | 147 | if (pushClient.token == "") { | |
140 | 136 | if (pushClient.token == "") { | 148 | if (checked) { |
141 | 137 | if (checked) { | 149 | Cutegram.pushNotifications = false; |
142 | 138 | Cutegram.pushNotifications = false; | 150 | mainView.openPushDialog(); |
143 | 139 | mainView.openPushDialog(); | 151 | } |
118 | 140 | } | ||
119 | 141 | } else { | ||
120 | 142 | if (checked) { | ||
121 | 143 | pushClient.registerForPush(); | ||
144 | 144 | } else { | 152 | } else { |
146 | 145 | pushClient.unregisterFromPush(); | 153 | if (checked) { |
147 | 154 | pushClient.registerForPush(); | ||
148 | 155 | } else { | ||
149 | 156 | pushClient.unregisterFromPush(); | ||
150 | 157 | } | ||
151 | 146 | } | 158 | } |
152 | 147 | } | 159 | } |
153 | 148 | } | 160 | } |
154 | 149 | } | 161 | } |
155 | 150 | } | 162 | } |
156 | 151 | 163 | ||
160 | 152 | ListItem.Standard { | 164 | ListItem { |
161 | 153 | text: i18n.tr("Send by Enter") | 165 | divider.visible: false |
162 | 154 | showDivider: false | 166 | height: units.gu(6) |
163 | 167 | ListItemLayout { | ||
164 | 168 | title.text: i18n.tr("Send by Enter") | ||
165 | 155 | 169 | ||
172 | 156 | Switch { | 170 | Switch { |
173 | 157 | checked: Cutegram.sendWithEnter | 171 | checked: Cutegram.sendWithEnter |
174 | 158 | anchors { | 172 | SlotsLayout.position: SlotsLayout.Last |
175 | 159 | right: parent.right | 173 | onCheckedChanged: Cutegram.sendWithEnter = checked |
170 | 160 | rightMargin: units.gu(2) | ||
171 | 161 | verticalCenter: parent.verticalCenter | ||
176 | 162 | } | 174 | } |
177 | 163 | |||
178 | 164 | onCheckedChanged: Cutegram.sendWithEnter = checked | ||
179 | 165 | } | 175 | } |
180 | 166 | } | 176 | } |
181 | 167 | 177 | ||
182 | 168 | // TODO Terminate all sessions | 178 | // TODO Terminate all sessions |
183 | 169 | 179 | ||
185 | 170 | ListItem.Header { | 180 | ListItems.Header { |
186 | 171 | // TRANSLATORS: Settings section header. | 181 | // TRANSLATORS: Settings section header. |
187 | 172 | text: i18n.tr("Support") | 182 | text: i18n.tr("Support") |
188 | 173 | } | 183 | } |
189 | 174 | 184 | ||
194 | 175 | ListItem.Standard { | 185 | ListItem { |
195 | 176 | showDivider: false | 186 | height: units.gu(6) |
196 | 177 | // TRANSLATORS: Text of settings item visible in the Support section. | 187 | divider.visible: false |
197 | 178 | text: i18n.tr("Ask a Question") | 188 | ListItemLayout { |
198 | 189 | // TRANSLATORS: Text of settings item visible in the Support section. | ||
199 | 190 | title.text: i18n.tr("Ask a Question") | ||
200 | 191 | } | ||
201 | 179 | onClicked: Qt.openUrlExternally("http://askubuntu.com/search?q=telegram") | 192 | onClicked: Qt.openUrlExternally("http://askubuntu.com/search?q=telegram") |
202 | 180 | } | 193 | } |
203 | 181 | 194 | ||
208 | 182 | ListItem.Standard { | 195 | ListItem { |
209 | 183 | showDivider: false | 196 | height: units.gu(6) |
210 | 184 | // TRANSLATORS: Text of settings item visible in the Support section | 197 | divider.visible: false |
211 | 185 | text: i18n.tr("Telegram FAQ") | 198 | ListItemLayout { |
212 | 199 | // TRANSLATORS: Text of settings item visible in the Support section | ||
213 | 200 | title.text: i18n.tr("Telegram FAQ") | ||
214 | 201 | } | ||
215 | 186 | onClicked: Qt.openUrlExternally("https://telegram.org/faq") | 202 | onClicked: Qt.openUrlExternally("https://telegram.org/faq") |
216 | 187 | } | 203 | } |
217 | 188 | 204 | ||
221 | 189 | ListItem.Header { | 205 | ListItem { |
222 | 190 | // TRANSLATORS: Settings section header. | 206 | height: units.gu(4) |
223 | 191 | text: i18n.tr("Account") | 207 | ListItemLayout { |
224 | 208 | // TRANSLATORS: Settings section header. | ||
225 | 209 | title.text: i18n.tr("Account") | ||
226 | 210 | title.font.weight: Font.DemiBold | ||
227 | 211 | padding.bottom: units.gu(1) | ||
228 | 212 | padding.top: units.gu(1) | ||
229 | 213 | } | ||
230 | 192 | } | 214 | } |
231 | 193 | 215 | ||
235 | 194 | ListItem.Standard { | 216 | ListItem { |
236 | 195 | showDivider: true | 217 | height: units.gu(6) |
237 | 196 | text: i18n.tr("Log out") + " | " + telegram.phoneNumber | 218 | ListItemLayout { |
238 | 219 | title.text: i18n.tr("Log out") + " | " + telegram.phoneNumber | ||
239 | 220 | } | ||
240 | 197 | onClicked: PopupUtils.open(logout_dialog_component) | 221 | onClicked: PopupUtils.open(logout_dialog_component) |
241 | 198 | } | 222 | } |
242 | 199 | 223 | ||
246 | 200 | ListItem.SingleControl { | 224 | ListItem { |
247 | 201 | showDivider: false | 225 | divider.visible: false |
248 | 202 | control: Label { | 226 | Label { |
249 | 203 | width: parent.width | 227 | width: parent.width |
251 | 204 | height: units.gu(5) | 228 | height: units.gu(6) |
252 | 205 | horizontalAlignment: Text.AlignHCenter | 229 | horizontalAlignment: Text.AlignHCenter |
253 | 206 | verticalAlignment: Text.AlignVCenter | 230 | verticalAlignment: Text.AlignVCenter |
254 | 207 | // TRANSLATORS: Visible at bottom of settings screen. The argument is application version. | 231 | // TRANSLATORS: Visible at bottom of settings screen. The argument is application version. |
255 | @@ -222,7 +246,7 @@ | |||
256 | 222 | ClickableContactImage { | 246 | ClickableContactImage { |
257 | 223 | id: profile_image | 247 | id: profile_image |
258 | 224 | anchors { | 248 | anchors { |
260 | 225 | top: parent.top | 249 | top: page.header.bottom |
261 | 226 | topMargin: units.gu(2) | 250 | topMargin: units.gu(2) |
262 | 227 | left: parent.left | 251 | left: parent.left |
263 | 228 | leftMargin: units.gu(2) | 252 | leftMargin: units.gu(2) |
264 | @@ -247,13 +271,9 @@ | |||
265 | 247 | right: parent.right | 271 | right: parent.right |
266 | 248 | verticalCenter: profile_image.verticalCenter | 272 | verticalCenter: profile_image.verticalCenter |
267 | 249 | } | 273 | } |
268 | 250 | highlightWhenPressed: false | ||
269 | 251 | divider.visible: false | ||
270 | 252 | 274 | ||
275 | 253 | title: user.firstName + " " + user.lastName | 275 | title.text: user.firstName + " " + user.lastName |
276 | 254 | titleIsBold: true | 276 | subtitle.text: { |
273 | 255 | titleMaxLineCount: 2 | ||
274 | 256 | subtitle: { | ||
277 | 257 | var result = ""; | 277 | var result = ""; |
278 | 258 | switch(user.status.classType) | 278 | switch(user.status.classType) |
279 | 259 | { | 279 | { |
280 | 260 | 280 | ||
281 | === modified file 'telegram/app/qml/ProfilePage.qml' | |||
282 | --- telegram/app/qml/ProfilePage.qml 2015-11-16 11:26:59 +0000 | |||
283 | +++ telegram/app/qml/ProfilePage.qml 2016-03-05 12:47:04 +0000 | |||
284 | @@ -202,10 +202,8 @@ | |||
285 | 202 | right: parent.right | 202 | right: parent.right |
286 | 203 | verticalCenter: profile_image.verticalCenter | 203 | verticalCenter: profile_image.verticalCenter |
287 | 204 | } | 204 | } |
288 | 205 | highlightWhenPressed: false | ||
289 | 206 | divider.visible: false | ||
290 | 207 | 205 | ||
292 | 208 | title: { | 206 | title.text: { |
293 | 209 | if (!dialog) return ""; | 207 | if (!dialog) return ""; |
294 | 210 | 208 | ||
295 | 211 | if (isChat) | 209 | if (isChat) |
296 | @@ -214,9 +212,7 @@ | |||
297 | 214 | return user ? user.firstName + " " + user.lastName : ""//emojis.textToEmojiText(user ? user.firstName + " " + user.lastName : "", 18, true); | 212 | return user ? user.firstName + " " + user.lastName : ""//emojis.textToEmojiText(user ? user.firstName + " " + user.lastName : "", 18, true); |
298 | 215 | } | 213 | } |
299 | 216 | 214 | ||
303 | 217 | titleIsBold: true | 215 | subtitle.text: { |
301 | 218 | titleMaxLineCount: 2 | ||
302 | 219 | subtitle: { | ||
304 | 220 | //groupModel.count + " " + i18n.tr("members") | 216 | //groupModel.count + " " + i18n.tr("members") |
305 | 221 | 217 | ||
306 | 222 | var result = "" | 218 | var result = "" |
307 | 223 | 219 | ||
308 | === modified file 'telegram/app/qml/components/SubtitledListItem.qml' | |||
309 | --- telegram/app/qml/components/SubtitledListItem.qml 2015-09-30 14:55:01 +0000 | |||
310 | +++ telegram/app/qml/components/SubtitledListItem.qml 2016-03-05 12:47:04 +0000 | |||
311 | @@ -1,59 +1,21 @@ | |||
312 | 1 | import QtQuick 2.4 | 1 | import QtQuick 2.4 |
313 | 2 | import Ubuntu.Components 1.3 | 2 | import Ubuntu.Components 1.3 |
314 | 3 | import Ubuntu.Components.ListItems 1.0 as ListItem | ||
315 | 4 | 3 | ||
317 | 5 | ListItem.Empty { | 4 | ListItem { |
318 | 6 | id: item | 5 | id: item |
370 | 7 | width: parent.width | 6 | |
371 | 8 | height: units.gu(8) | 7 | property alias title: itemLayout.title |
372 | 9 | 8 | property alias subtitle: itemLayout.subtitle | |
373 | 10 | property string title: "" | 9 | |
374 | 11 | property string titleColor: UbuntuColors.darkGrey | 10 | height: itemLayout.height |
375 | 12 | property bool titleIsBold: false | 11 | divider.visible: false |
376 | 13 | property int titleMaxLineCount: 1 | 12 | |
377 | 14 | property string subtitle: "" | 13 | ListItemLayout { |
378 | 15 | property string subtitleColor: UbuntuColors.lightGrey | 14 | id: itemLayout |
379 | 16 | property bool subtitleIsBold: false | 15 | |
380 | 17 | 16 | title.font.bold: true | |
381 | 18 | Text { | 17 | title.wrapMode: Text.Wrap |
382 | 19 | id: title | 18 | title.textSize: Label.Large |
383 | 20 | anchors { | 19 | title.maximumLineCount: 2 |
333 | 21 | top: parent.top | ||
334 | 22 | topMargin: units.gu(1) | ||
335 | 23 | left: parent.left | ||
336 | 24 | leftMargin: units.gu(2) | ||
337 | 25 | right: parent.right | ||
338 | 26 | rightMargin: units.gu(2) | ||
339 | 27 | } | ||
340 | 28 | width: parent.width | ||
341 | 29 | verticalAlignment: TextInput.AlignVCenter | ||
342 | 30 | |||
343 | 31 | maximumLineCount: item.titleMaxLineCount | ||
344 | 32 | wrapMode: Text.Wrap | ||
345 | 33 | elide: Text.ElideRight | ||
346 | 34 | font.pixelSize: FontUtils.sizeToPixels("large") | ||
347 | 35 | font.weight: item.titleIsBold ? Font.Bold : Font.Light | ||
348 | 36 | color: item.titleColor | ||
349 | 37 | text: item.title | ||
350 | 38 | } | ||
351 | 39 | |||
352 | 40 | Text { | ||
353 | 41 | id: subtitle | ||
354 | 42 | anchors { | ||
355 | 43 | top: title.bottom | ||
356 | 44 | topMargin: units.dp(4) | ||
357 | 45 | left: title.left | ||
358 | 46 | bottom: parent.bottom | ||
359 | 47 | bottomMargin: units.gu(1) | ||
360 | 48 | right: title.right | ||
361 | 49 | } | ||
362 | 50 | width: parent.width | ||
363 | 51 | verticalAlignment: TextInput.AlignVCenter | ||
364 | 52 | |||
365 | 53 | elide: Text.ElideRight | ||
366 | 54 | font.pixelSize: FontUtils.sizeToPixels("medium") | ||
367 | 55 | font.weight: item.subtitleIsBold ? Font.Bold : Font.Light | ||
368 | 56 | color: item.subtitleColor | ||
369 | 57 | text: item.subtitle | ||
384 | 58 | } | 20 | } |
385 | 59 | } | 21 | } |
386 | 60 | 22 | ||
387 | === modified file 'telegram/manifest.json.in' | |||
388 | --- telegram/manifest.json.in 2016-03-03 04:17:25 +0000 | |||
389 | +++ telegram/manifest.json.in 2016-03-05 12:47:04 +0000 | |||
390 | @@ -1,7 +1,7 @@ | |||
391 | 1 | { | 1 | { |
392 | 2 | "name": "com.ubuntu.telegram", | 2 | "name": "com.ubuntu.telegram", |
393 | 3 | "description": "Telegram for Ubuntu Phone", | 3 | "description": "Telegram for Ubuntu Phone", |
395 | 4 | "framework" : "ubuntu-sdk-15.04.1", | 4 | "framework": "ubuntu-sdk-15.04.3", |
396 | 5 | "architecture": "@CLICK_ARCH@", | 5 | "architecture": "@CLICK_ARCH@", |
397 | 6 | "title": "Telegram", | 6 | "title": "Telegram", |
398 | 7 | "hooks": { | 7 | "hooks": { |
399 | @@ -9,7 +9,7 @@ | |||
400 | 9 | "account-application": "telegram.application", | 9 | "account-application": "telegram.application", |
401 | 10 | "apparmor": "apparmor-telegram.json", | 10 | "apparmor": "apparmor-telegram.json", |
402 | 11 | "content-hub": "content-hub.json", | 11 | "content-hub": "content-hub.json", |
404 | 12 | "desktop": "telegram.desktop", | 12 | "desktop": "telegram.desktop", |
405 | 13 | "urls": "urls.json" | 13 | "urls": "urls.json" |
406 | 14 | }, | 14 | }, |
407 | 15 | "push": { | 15 | "push": { |
408 | @@ -24,4 +24,3 @@ | |||
409 | 24 | "version": "2.0.8.1", | 24 | "version": "2.0.8.1", |
410 | 25 | "maintainer": "Ubuntu Telegram team <libqtelegram-team@lists.launchpad.net>" | 25 | "maintainer": "Ubuntu Telegram team <libqtelegram-team@lists.launchpad.net>" |
411 | 26 | } | 26 | } |
412 | 27 |
Hello buddy,
Please kindly feedback us what you think about the comment we left,
and feel free to contact us when you are available.
Now this merge request is on hold.