Home | History | Annotate | Download | only in device
      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 
     80