intent.py revision 116680a4aac90f2aa7413d9095a592090648e557
1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch# Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch# Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch# found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch"""Manages intents and associated information. 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 7116680a4aac90f2aa7413d9095a592090648e557Ben MurdochThis is generally intended to be used with functions that calls Android's 8116680a4aac90f2aa7413d9095a592090648e557Ben MurdochAm command. 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch""" 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass Intent(object): 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch def __init__(self, action='android.intent.action.VIEW', activity=None, 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch category=None, component=None, data=None, extras=None, 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch flags=None, package=None): 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch """Creates an Intent. 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch Args: 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch action: A string containing the action. 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch activity: A string that, with |package|, can be used to specify the 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch component. 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch category: A string or list containing any categories. 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch component: A string that specifies the component to send the intent to. 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch data: A string containing a data URI. 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch extras: A dict containing extra parameters to be passed along with the 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch intent. 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch flags: A string containing flags to pass. 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch package: A string that, with activity, can be used to specify the 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch component. 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch """ 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._action = action 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._activity = activity 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch if isinstance(category, list) or category is None: 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._category = category 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch else: 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._category = [category] 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._component = component 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._data = data 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._extras = extras 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._flags = flags 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._package = package 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch if self._component and '/' in component: 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._package, self._activity = component.split('/', 1) 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch elif self._package and self._activity: 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch self._component = '%s/%s' % (package, activity) 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch @property 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch def action(self): 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return self._action 51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch @property 53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch def activity(self): 54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return self._activity 55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 56116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch @property 57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch def category(self): 58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return self._category 59116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch @property 61116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch def component(self): 62116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return self._component 63116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 64116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch @property 65116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch def data(self): 66116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return self._data 67116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 68116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch @property 69116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch def extras(self): 70116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return self._extras 71116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 72116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch @property 73116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch def flags(self): 74116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return self._flags 75116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 76116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch @property 77116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch def package(self): 78116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return self._package 79116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 80