Coverage for kea/intent.py: 67%
87 statements
« prev ^ index » next coverage.py v7.6.9, created at 2024-12-22 16:05 +0800
« prev ^ index » next coverage.py v7.6.9, created at 2024-12-22 16:05 +0800
1class Intent(object):
2 """
3 this class describes a intent event
4 """
6 def __init__(self, prefix="start", action=None, data_uri=None, mime_type=None, category=None,
7 component=None, flag=None, extra_keys=None, extra_string=None, extra_boolean=None,
8 extra_int=None, extra_long=None, extra_float=None, extra_uri=None, extra_component=None,
9 extra_array_int=None, extra_array_long=None, extra_array_float=None, flags=None, suffix="", is_harmonyos=False):
10 self.event_type = 'intent'
11 self.prefix = prefix
12 self.action = action
13 self.data_uri = data_uri
14 self.mime_type = mime_type
15 self.category = category
16 self.component = component
17 self.flag = flag
18 self.extra_keys = extra_keys
19 self.extra_string = extra_string
20 self.extra_boolean = extra_boolean
21 self.extra_int = extra_int
22 self.extra_long = extra_long
23 self.extra_float = extra_float
24 self.extra_uri = extra_uri
25 self.extra_component = extra_component
26 self.extra_array_int = extra_array_int
27 self.extra_array_long = extra_array_long
28 self.extra_array_float = extra_array_float
29 self.flags = flags
30 self.suffix = suffix
31 self.cmd = None
32 self.is_harmonyos = is_harmonyos
33 self.get_cmd()
35 def get_cmd(self):
36 """
37 convert this intent to cmd string
38 :rtype : object
39 :return: str, cmd string
40 """
41 if self.cmd is not None:
42 return self.cmd
44 if not self.is_harmonyos:
45 cmd = "am "
46 else:
47 # HarmonyOS intent form
48 cmd = "aa "
50 if self.prefix:
51 cmd += self.prefix
52 if self.action is not None:
53 cmd += " -a " + self.action
54 if self.data_uri is not None:
55 cmd += " -d " + self.data_uri
56 if self.mime_type is not None:
57 cmd += " -t " + self.mime_type
58 if self.category is not None:
59 cmd += " -c " + self.category
60 if self.component is not None:
61 cmd += " -n " + self.component
62 if self.flag is not None:
63 cmd += " -f " + self.flag
64 if self.extra_keys:
65 for key in self.extra_keys:
66 cmd += " --esn '%s'" % key
67 if self.extra_string:
68 for key in list(self.extra_string.keys()):
69 cmd += " -e '%s' '%s'" % (key, self.extra_string[key])
70 if self.extra_boolean:
71 for key in list(self.extra_boolean.keys()):
72 cmd += " -ez '%s' %s" % (key, self.extra_boolean[key])
73 if self.extra_int:
74 for key in list(self.extra_int.keys()):
75 cmd += " -ei '%s' %s" % (key, self.extra_int[key])
76 if self.extra_long:
77 for key in list(self.extra_long.keys()):
78 cmd += " -el '%s' %s" % (key, self.extra_long[key])
79 if self.extra_float:
80 for key in list(self.extra_float.keys()):
81 cmd += " -ef '%s' %s" % (key, self.extra_float[key])
82 if self.extra_uri:
83 for key in list(self.extra_uri.keys()):
84 cmd += " -eu '%s' '%s'" % (key, self.extra_uri[key])
85 if self.extra_component:
86 for key in list(self.extra_component.keys()):
87 cmd += " -ecn '%s' %s" % (key, self.extra_component[key])
88 if self.extra_array_int:
89 for key in list(self.extra_array_int.keys()):
90 cmd += " -eia '%s' %s" % (key, ",".join(self.extra_array_int[key]))
91 if self.extra_array_long:
92 for key in list(self.extra_array_long.keys()):
93 cmd += " -ela '%s' %s" % (key, ",".join(self.extra_array_long[key]))
94 if self.extra_array_float:
95 for key in list(self.extra_array_float.keys()):
96 cmd += " -efa '%s' %s" % (key, ",".join(self.extra_array_float[key]))
97 if self.flags:
98 cmd += " " + " ".join(self.flags)
99 if self.suffix:
100 cmd += " " + self.suffix
101 self.cmd = cmd
102 return self.cmd
104 def __str__(self):
105 return self.get_cmd()