1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
/*
* Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the License);
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an AS IS BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
namespace Tizen.Applications.NotificationEventListener
{
using System;
internal static class NotificationReplyActionArgBinder
{
private const string LogTag = "Tizen.Applications.NotificationEventListener";
internal static void BindObject(NotificationEventArgs eventargs)
{
string text;
int max;
bool isExisted = false;
SafeAppControlHandle appcontrol = null;
Bundle bundle;
NotificationEventArgs.ReplyActionArgs reply = new NotificationEventArgs.ReplyActionArgs();
NotificationEventArgs.ButtonActionArgs button = new NotificationEventArgs.ButtonActionArgs();
string replyKey = "__PARENT_INDEX__";
Interop.NotificationEventListener.GetImage(eventargs.Handle, NotificationImage.TextInputButton, out text);
if (string.IsNullOrEmpty(text) == false)
{
isExisted = true;
button.ImagePath = text;
}
Interop.NotificationEventListener.GetText(eventargs.Handle, NotificationText.InputButton, out text);
if (string.IsNullOrEmpty(text) == false)
{
isExisted = true;
button.Text = text;
}
Interop.NotificationEventListener.GetEventHandler(eventargs.Handle, (int)ClickEventType.InputButton, out appcontrol);
if (appcontrol != null && appcontrol.IsInvalid == false)
{
button.Action = new AppControl(appcontrol);
isExisted = true;
}
reply.Button = button;
Interop.NotificationEventListener.GetText(eventargs.Handle, NotificationText.PlaceHolder, out text);
if (string.IsNullOrEmpty(text) == false)
{
isExisted = true;
reply.PlaceHolderText = text;
}
Interop.NotificationEventListener.GetPlaceHolderLength(eventargs.Handle, out max);
reply.ReplyMax = max;
if (max > 0)
{
isExisted = true;
}
if (eventargs.Extender.TryGetValue(replyKey, out bundle))
{
if (bundle.Contains(replyKey))
{
string parentIndex;
if (bundle.TryGetItem(replyKey, out parentIndex))
{
try
{
reply.ParentIndex = (ButtonIndex)int.Parse(parentIndex);
isExisted = true;
}
catch (Exception ex)
{
Log.Error(LogTag, "unable to get ParentIndex " + ex.Message);
}
}
}
}
if (isExisted)
{
(eventargs.Style["Active"] as NotificationEventArgs.ActiveStyleArgs).Reply = reply;
}
}
}
}
|