Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / build / android / pylib / device / intent.py
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 """Manages intents and associated information.
6
7 This is generally intended to be used with functions that calls Android's
8 Am command.
9 """
10
11 class Intent(object):
12
13   def __init__(self, action='android.intent.action.VIEW', activity=None,
14                category=None, component=None, data=None, extras=None,
15                flags=None, package=None):
16     """Creates an Intent.
17
18     Args:
19       action: A string containing the action.
20       activity: A string that, with |package|, can be used to specify the
21                 component.
22       category: A string or list containing any categories.
23       component: A string that specifies the component to send the intent to.
24       data: A string containing a data URI.
25       extras: A dict containing extra parameters to be passed along with the
26               intent.
27       flags: A string containing flags to pass.
28       package: A string that, with activity, can be used to specify the
29                component.
30     """
31     self._action = action
32     self._activity = activity
33     if isinstance(category, list) or category is None:
34       self._category = category
35     else:
36       self._category = [category]
37     self._component = component
38     self._data = data
39     self._extras = extras
40     self._flags = flags
41     self._package = package
42
43     if self._component and '/' in component:
44       self._package, self._activity = component.split('/', 1)
45     elif self._package and self._activity:
46       self._component = '%s/%s' % (package, activity)
47
48   @property
49   def action(self):
50     return self._action
51
52   @property
53   def activity(self):
54     return self._activity
55
56   @property
57   def category(self):
58     return self._category
59
60   @property
61   def component(self):
62     return self._component
63
64   @property
65   def data(self):
66     return self._data
67
68   @property
69   def extras(self):
70     return self._extras
71
72   @property
73   def flags(self):
74     return self._flags
75
76   @property
77   def package(self):
78     return self._package
79