133873d2b41a5cd2597b20a4e88eb8942944c0f23Tyler Schultzpackage com.xtremelabs.robolectric.shadows; 26eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 36fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richardimport android.content.ComponentName; 41f217d5155921f43c88908c0939f05880901c249Joe Moore & Tyler Schultzimport android.content.Context; 51f217d5155921f43c88908c0939f05880901c249Joe Moore & Tyler Schultzimport android.content.Intent; 603837114e33fda10c8e1394543d909aebfe15cabJoe Moore & Tyler Schultzimport android.net.Uri; 71f217d5155921f43c88908c0939f05880901c249Joe Moore & Tyler Schultzimport android.os.Bundle; 86fb5d4828313a611b33b9bdd0cc6152d51b67347Zhihong Xuimport android.os.Parcel; 91f217d5155921f43c88908c0939f05880901c249Joe Moore & Tyler Schultzimport android.os.Parcelable; 10064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogenimport android.os.Parcelable.Creator; 11064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen 1275d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richardimport com.xtremelabs.robolectric.Robolectric; 1322c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implementation; 1422c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implements; 1522c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.RealObject; 16a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzimport com.xtremelabs.robolectric.util.Join; 176eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 1873030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Planteimport java.io.*; 1973030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Planteimport java.util.*; 20af7d6ec8c4d4701125eca89b4a95fdb63aa8a8ebHarry Ugol & Tyler Schultz 21214518e4959583a61690b22306133ee923f625e0Tyler Schultzimport static android.content.Intent.*; 22a8486da7c7a0b6a10e943c55992f34d9c256456dChristian Williamsimport static com.xtremelabs.robolectric.Robolectric.shadowOf; 23a8486da7c7a0b6a10e943c55992f34d9c256456dChristian Williams 246eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz@SuppressWarnings({"UnusedDeclaration"}) 250b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher@Implements(Intent.class) 26afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williamspublic class ShadowIntent { 2775d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard @RealObject private Intent realIntent; 28e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz 2951cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen private final Bundle extras = new Bundle(); 3075d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard private String action; 3175d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard private ComponentName componentName; 32b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams private String type; 3375d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard private Uri data; 3475d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard private int flags; 35eb645dd6f075c4c7d6d61193fde416739adb7fc1Gregg Van Hove & Phil Goodwin private Class<?> intentClass; 3672ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard private String packageName; 3751cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen private final Set<String> categories = new HashSet<String>(); 38e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz 39e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz public void __constructor__(Context packageContext, Class cls) { 406fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard componentName = new ComponentName(packageContext, cls); 41a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz intentClass = cls; 42e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz } 43e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz 44dcd89b431a3a852aec1f7ec2f5f60111f3800656Christian Williams & Joe Moore public void __constructor__(String action, Uri uri) { 45dcd89b431a3a852aec1f7ec2f5f60111f3800656Christian Williams & Joe Moore this.action = action; 46dcd89b431a3a852aec1f7ec2f5f60111f3800656Christian Williams & Joe Moore data = uri; 47dcd89b431a3a852aec1f7ec2f5f60111f3800656Christian Williams & Joe Moore } 48dcd89b431a3a852aec1f7ec2f5f60111f3800656Christian Williams & Joe Moore 494cedbc6959d784ba9cb59e0e7f4e59460f3d5075Christian Williams & Ryan Richard public void __constructor__(String action) { 504cedbc6959d784ba9cb59e0e7f4e59460f3d5075Christian Williams & Ryan Richard __constructor__(action, null); 514cedbc6959d784ba9cb59e0e7f4e59460f3d5075Christian Williams & Ryan Richard } 524cedbc6959d784ba9cb59e0e7f4e59460f3d5075Christian Williams & Ryan Richard 53c3833a7a3f753b82d5b18e7d583704f08137477dPhil Goodwin & Ryan Richard public void __constructor__(Intent intent) { 54c3833a7a3f753b82d5b18e7d583704f08137477dPhil Goodwin & Ryan Richard ShadowIntent other = shadowOf(intent); 55c3833a7a3f753b82d5b18e7d583704f08137477dPhil Goodwin & Ryan Richard extras.putAll(other.extras); 56c3833a7a3f753b82d5b18e7d583704f08137477dPhil Goodwin & Ryan Richard action = other.action; 57c3833a7a3f753b82d5b18e7d583704f08137477dPhil Goodwin & Ryan Richard componentName = other.componentName; 58c3833a7a3f753b82d5b18e7d583704f08137477dPhil Goodwin & Ryan Richard type = other.type; 59c3833a7a3f753b82d5b18e7d583704f08137477dPhil Goodwin & Ryan Richard data = other.data; 60c3833a7a3f753b82d5b18e7d583704f08137477dPhil Goodwin & Ryan Richard flags = other.flags; 61c3833a7a3f753b82d5b18e7d583704f08137477dPhil Goodwin & Ryan Richard intentClass = other.intentClass; 62c3833a7a3f753b82d5b18e7d583704f08137477dPhil Goodwin & Ryan Richard packageName = other.packageName; 63c3833a7a3f753b82d5b18e7d583704f08137477dPhil Goodwin & Ryan Richard categories.addAll(other.categories); 64c3833a7a3f753b82d5b18e7d583704f08137477dPhil Goodwin & Ryan Richard } 65c3833a7a3f753b82d5b18e7d583704f08137477dPhil Goodwin & Ryan Richard 66de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 67214518e4959583a61690b22306133ee923f625e0Tyler Schultz public static Intent createChooser(Intent target, CharSequence title) { 68214518e4959583a61690b22306133ee923f625e0Tyler Schultz Intent intent = new Intent(Intent.ACTION_CHOOSER); 69214518e4959583a61690b22306133ee923f625e0Tyler Schultz intent.putExtra(Intent.EXTRA_INTENT, target); 70214518e4959583a61690b22306133ee923f625e0Tyler Schultz if (title != null) { 71214518e4959583a61690b22306133ee923f625e0Tyler Schultz intent.putExtra(Intent.EXTRA_TITLE, title); 72214518e4959583a61690b22306133ee923f625e0Tyler Schultz } 73214518e4959583a61690b22306133ee923f625e0Tyler Schultz return intent; 74214518e4959583a61690b22306133ee923f625e0Tyler Schultz } 75214518e4959583a61690b22306133ee923f625e0Tyler Schultz 76214518e4959583a61690b22306133ee923f625e0Tyler Schultz @Implementation 77e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz public Intent setAction(String action) { 78e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz this.action = action; 79e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz return realIntent; 80e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz } 816eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 82de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 831f217d5155921f43c88908c0939f05880901c249Joe Moore & Tyler Schultz public String getAction() { 841f217d5155921f43c88908c0939f05880901c249Joe Moore & Tyler Schultz return action; 851f217d5155921f43c88908c0939f05880901c249Joe Moore & Tyler Schultz } 8603837114e33fda10c8e1394543d909aebfe15cabJoe Moore & Tyler Schultz 87de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 88b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams public Intent setType(String type) { 89b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams this.type = type; 90eb1008a3b163f0e330cd74fa628ce0004969e673Phil Goodwin & Rick Kawala this.data = null; 91eb1008a3b163f0e330cd74fa628ce0004969e673Phil Goodwin & Rick Kawala return realIntent; 92eb1008a3b163f0e330cd74fa628ce0004969e673Phil Goodwin & Rick Kawala } 93eb1008a3b163f0e330cd74fa628ce0004969e673Phil Goodwin & Rick Kawala 94eb1008a3b163f0e330cd74fa628ce0004969e673Phil Goodwin & Rick Kawala @Implementation 95eb1008a3b163f0e330cd74fa628ce0004969e673Phil Goodwin & Rick Kawala public Intent setDataAndType(Uri data, String type) { 96eb1008a3b163f0e330cd74fa628ce0004969e673Phil Goodwin & Rick Kawala this.data = data; 97eb1008a3b163f0e330cd74fa628ce0004969e673Phil Goodwin & Rick Kawala this.type = type; 98b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams return realIntent; 99b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams } 100b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams 101b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams @Implementation 102b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams public String getType() { 103b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams return type; 104b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams } 10551cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 106c35bcd8d89b0dd74e6b0846beb47f0a6badc63c8Michael Portuesi @Implementation 107c35bcd8d89b0dd74e6b0846beb47f0a6badc63c8Michael Portuesi public Intent addCategory(String category) { 10856ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder categories.add(category); 10956ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder return realIntent; 110c35bcd8d89b0dd74e6b0846beb47f0a6badc63c8Michael Portuesi } 11151cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 112c35bcd8d89b0dd74e6b0846beb47f0a6badc63c8Michael Portuesi @Implementation 113c35bcd8d89b0dd74e6b0846beb47f0a6badc63c8Michael Portuesi public void removeCategory(String category) { 11456ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder categories.remove(category); 115c35bcd8d89b0dd74e6b0846beb47f0a6badc63c8Michael Portuesi } 11651cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 117c35bcd8d89b0dd74e6b0846beb47f0a6badc63c8Michael Portuesi @Implementation 118c35bcd8d89b0dd74e6b0846beb47f0a6badc63c8Michael Portuesi public boolean hasCategory(String category) { 11956ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder return categories.contains(category); 120c35bcd8d89b0dd74e6b0846beb47f0a6badc63c8Michael Portuesi } 12151cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 122c35bcd8d89b0dd74e6b0846beb47f0a6badc63c8Michael Portuesi @Implementation 123c35bcd8d89b0dd74e6b0846beb47f0a6badc63c8Michael Portuesi public Set<String> getCategories() { 12456ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder return categories; 125c35bcd8d89b0dd74e6b0846beb47f0a6badc63c8Michael Portuesi } 126b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams 127b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams @Implementation 12872ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard public Intent setPackage(String packageName) { 12972ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard this.packageName = packageName; 13072ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard return realIntent; 13172ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard } 13272ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard 13372ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard @Implementation 13472ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard public String getPackage() { 13572ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard return packageName; 13672ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard } 13772ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard 13872ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard @Implementation 1393e7c90e4093dbb6b80b4f41861d3afa3f2f280bdJoe Moore & Phil Goodwin public Uri getData() { 1403e7c90e4093dbb6b80b4f41861d3afa3f2f280bdJoe Moore & Phil Goodwin return data; 1413e7c90e4093dbb6b80b4f41861d3afa3f2f280bdJoe Moore & Phil Goodwin } 142eb645dd6f075c4c7d6d61193fde416739adb7fc1Gregg Van Hove & Phil Goodwin 14347277624dc760bb2716ca43fa9302117cc591b63Michael Portuesi @Implementation 144eb645dd6f075c4c7d6d61193fde416739adb7fc1Gregg Van Hove & Phil Goodwin public Intent setClass(Context packageContext, Class<?> cls) { 145eb645dd6f075c4c7d6d61193fde416739adb7fc1Gregg Van Hove & Phil Goodwin this.intentClass = cls; 146eb645dd6f075c4c7d6d61193fde416739adb7fc1Gregg Van Hove & Phil Goodwin return realIntent; 14747277624dc760bb2716ca43fa9302117cc591b63Michael Portuesi } 1483e7c90e4093dbb6b80b4f41861d3afa3f2f280bdJoe Moore & Phil Goodwin 1493e7c90e4093dbb6b80b4f41861d3afa3f2f280bdJoe Moore & Phil Goodwin @Implementation 150af7d6ec8c4d4701125eca89b4a95fdb63aa8a8ebHarry Ugol & Tyler Schultz public Intent setClassName(String packageName, String className) { 1516fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard componentName = new ComponentName(packageName, className); 152f1599e62d961fb47b74d0500396187cc748e200cAaron VonderHaar & Chris Perry try { 153f1599e62d961fb47b74d0500396187cc748e200cAaron VonderHaar & Chris Perry this.intentClass = Class.forName(className); 154f1599e62d961fb47b74d0500396187cc748e200cAaron VonderHaar & Chris Perry } catch (ClassNotFoundException e) { 155f1599e62d961fb47b74d0500396187cc748e200cAaron VonderHaar & Chris Perry // ignore 156f1599e62d961fb47b74d0500396187cc748e200cAaron VonderHaar & Chris Perry } 157af7d6ec8c4d4701125eca89b4a95fdb63aa8a8ebHarry Ugol & Tyler Schultz return realIntent; 158af7d6ec8c4d4701125eca89b4a95fdb63aa8a8ebHarry Ugol & Tyler Schultz } 159af7d6ec8c4d4701125eca89b4a95fdb63aa8a8ebHarry Ugol & Tyler Schultz 160de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 16172ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard public Intent setClassName(Context packageContext, String className) { 16272ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard componentName = new ComponentName(packageContext.getPackageName(), className); 16372ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard return realIntent; 16472ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard } 16572ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard 16672ca49dced475c55926dbad730c306184bb6a68eDavid Farber & Ryan Richard @Implementation 16703837114e33fda10c8e1394543d909aebfe15cabJoe Moore & Tyler Schultz public Intent setData(Uri data) { 16803837114e33fda10c8e1394543d909aebfe15cabJoe Moore & Tyler Schultz this.data = data; 169eb1008a3b163f0e330cd74fa628ce0004969e673Phil Goodwin & Rick Kawala this.type = null; 17003837114e33fda10c8e1394543d909aebfe15cabJoe Moore & Tyler Schultz return realIntent; 17103837114e33fda10c8e1394543d909aebfe15cabJoe Moore & Tyler Schultz } 17203837114e33fda10c8e1394543d909aebfe15cabJoe Moore & Tyler Schultz 173de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 17475d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard public int getFlags() { 17575d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard return flags; 17675d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard } 17775d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard 17875d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard @Implementation 1799092c542b0ddd74739bf100cddffd2d991911077Tyler Schultz public Intent setFlags(int flags) { 18075d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard this.flags = flags; 1819092c542b0ddd74739bf100cddffd2d991911077Tyler Schultz return realIntent; 18275d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard } 18351cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 18475d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard @Implementation 1852be30fc6c9a761d9738c736685ff1b0db6b4d131Jan Berkel public Intent addFlags(int flags) { 18656ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder this.flags |= flags; 18756ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder return realIntent; 1882be30fc6c9a761d9738c736685ff1b0db6b4d131Jan Berkel } 1892be30fc6c9a761d9738c736685ff1b0db6b4d131Jan Berkel 1902be30fc6c9a761d9738c736685ff1b0db6b4d131Jan Berkel @Implementation 191048ad2d82def96f61e36e9ae8eace000022a264csorack public Intent putExtras(Bundle src) { 19251cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putAll(src); 193048ad2d82def96f61e36e9ae8eace000022a264csorack return realIntent; 194048ad2d82def96f61e36e9ae8eace000022a264csorack } 19551cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 196048ad2d82def96f61e36e9ae8eace000022a264csorack @Implementation 197f8d3ea0e4553f6f391543eccb99485f9603c5804Christian Williams & Jay Phillips public Intent putExtras(Intent src) { 198a8486da7c7a0b6a10e943c55992f34d9c256456dChristian Williams ShadowIntent srcShadowIntent = shadowOf(src); 19951cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putAll(srcShadowIntent.extras); 200f8d3ea0e4553f6f391543eccb99485f9603c5804Christian Williams & Jay Phillips return realIntent; 201f8d3ea0e4553f6f391543eccb99485f9603c5804Christian Williams & Jay Phillips } 202f8d3ea0e4553f6f391543eccb99485f9603c5804Christian Williams & Jay Phillips 203bbf6ae3d37d2303d8463094096ef0bb9906fd658Christian Williams @Implementation 2046eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public Bundle getExtras() { 20551cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras != null ? new Bundle(extras) : null; 2066eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 20751cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 208de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 2096fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard public Intent putExtra(String key, int value) { 21051cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putInt(key, value); 2116fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard return realIntent; 212c0c6b892cbf19922e445f6278321b94357acdc16Joe Moore & Tyler Schultz } 213c0c6b892cbf19922e445f6278321b94357acdc16Joe Moore & Tyler Schultz 214de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 215b8d6d9f0d4fb7f9d8fe4ecf3e3526b4aa1db0c7dJan Berkel public Intent putExtra(String key, double value) { 21651cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putDouble(key, value); 217b8d6d9f0d4fb7f9d8fe4ecf3e3526b4aa1db0c7dJan Berkel return realIntent; 218b8d6d9f0d4fb7f9d8fe4ecf3e3526b4aa1db0c7dJan Berkel } 219b8d6d9f0d4fb7f9d8fe4ecf3e3526b4aa1db0c7dJan Berkel 220b8d6d9f0d4fb7f9d8fe4ecf3e3526b4aa1db0c7dJan Berkel @Implementation 2216491deb5788e0a7b7372e27ccdd22e8765e83a48Jan Berkel public Intent putExtra(String key, float value) { 22251cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putFloat(key, value); 2236491deb5788e0a7b7372e27ccdd22e8765e83a48Jan Berkel return realIntent; 2246491deb5788e0a7b7372e27ccdd22e8765e83a48Jan Berkel } 2256491deb5788e0a7b7372e27ccdd22e8765e83a48Jan Berkel 2266491deb5788e0a7b7372e27ccdd22e8765e83a48Jan Berkel @Implementation 2276fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard public Intent putExtra(String key, long value) { 22851cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putLong(key, value); 2296fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard return realIntent; 2306eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 2316eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 232de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 2336fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard public Intent putExtra(String key, Serializable value) { 23451cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putSerializable(key, serializeCycle(value)); 2356fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard return realIntent; 2366eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 2376eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 238de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 2396fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard public Intent putExtra(String key, Parcelable value) { 24051cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putParcelable(key, value); 2416fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard return realIntent; 242fbcb1c89ac5b25271d4fb33b64e15521c03da524Matt DuVall & Tyler Schultz } 243fbcb1c89ac5b25271d4fb33b64e15521c03da524Matt DuVall & Tyler Schultz 244de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 245a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz public Intent putExtra(String key, Parcelable[] value) { 24651cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putParcelableArray(key, value); 247a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz return realIntent; 248a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } 249a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 250a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz @Implementation 2516fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard public Intent putExtra(String key, String value) { 25251cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putString(key, value); 2536fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard return realIntent; 2546eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 2556eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 256de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 257b38fc2077a6ef0880426abc6bba8b10fb4a27933Yuan Mai public Intent putExtra(String key, String[] value) { 25851cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putStringArray(key, value); 259b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams return realIntent; 260b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams } 26151cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 262b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams @Implementation 263990d13551f7666b813ab84644291c5b37cfa4c58Logdog public Intent putExtra(String key, Bundle value) { 26451cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putBundle(key, value); 265990d13551f7666b813ab84644291c5b37cfa4c58Logdog return realIntent; 266990d13551f7666b813ab84644291c5b37cfa4c58Logdog } 26751cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 268990d13551f7666b813ab84644291c5b37cfa4c58Logdog @Implementation 269b38fc2077a6ef0880426abc6bba8b10fb4a27933Yuan Mai public Intent putExtra(String key, boolean value) { 27051cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putBoolean(key, value); 271b38fc2077a6ef0880426abc6bba8b10fb4a27933Yuan Mai return realIntent; 272b38fc2077a6ef0880426abc6bba8b10fb4a27933Yuan Mai } 273b38fc2077a6ef0880426abc6bba8b10fb4a27933Yuan Mai 274b38fc2077a6ef0880426abc6bba8b10fb4a27933Yuan Mai @Implementation 27549c1a88482f79cea39c398b4c7759440bd69e968Sebastien Plisson public Intent putExtra(String key, int[] value) { 27651cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putIntArray(key, value); 27749c1a88482f79cea39c398b4c7759440bd69e968Sebastien Plisson return realIntent; 27849c1a88482f79cea39c398b4c7759440bd69e968Sebastien Plisson } 27951cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 28056ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder @Implementation 28156ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder public Intent putExtra(String key, long[] value) { 28251cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putLongArray(key, value); 28356ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder return realIntent; 28456ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder } 28549c1a88482f79cea39c398b4c7759440bd69e968Sebastien Plisson 28649c1a88482f79cea39c398b4c7759440bd69e968Sebastien Plisson @Implementation 28749c1a88482f79cea39c398b4c7759440bd69e968Sebastien Plisson public int[] getIntArrayExtra(String name) { 28851cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getIntArray(name); 28949c1a88482f79cea39c398b4c7759440bd69e968Sebastien Plisson } 29051cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 29156ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder @Implementation 29256ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder public long[] getLongArrayExtra(String name) { 29351cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getLongArray(name); 29456ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder } 29549c1a88482f79cea39c398b4c7759440bd69e968Sebastien Plisson 29649c1a88482f79cea39c398b4c7759440bd69e968Sebastien Plisson @Implementation 297b38fc2077a6ef0880426abc6bba8b10fb4a27933Yuan Mai public boolean getBooleanExtra(String name, boolean defaultValue) { 29851cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getBoolean(name, defaultValue); 299b38fc2077a6ef0880426abc6bba8b10fb4a27933Yuan Mai } 300b38fc2077a6ef0880426abc6bba8b10fb4a27933Yuan Mai 301b38fc2077a6ef0880426abc6bba8b10fb4a27933Yuan Mai @Implementation 302b38fc2077a6ef0880426abc6bba8b10fb4a27933Yuan Mai public String[] getStringArrayExtra(String name) { 30351cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getStringArray(name); 304b38fc2077a6ef0880426abc6bba8b10fb4a27933Yuan Mai } 305b38fc2077a6ef0880426abc6bba8b10fb4a27933Yuan Mai 306b38fc2077a6ef0880426abc6bba8b10fb4a27933Yuan Mai @Implementation 307b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams public Intent putExtra(String key, CharSequence value) { 30851cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putCharSequence(key, value); 309b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams return realIntent; 3106eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 31151cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 312015b696fc090c9be4ce0f219f4c8a7b2c0a10702Michael Portuesi @Implementation 313015b696fc090c9be4ce0f219f4c8a7b2c0a10702Michael Portuesi public CharSequence getCharSequenceExtra(String name) { 31451cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getCharSequence(name); 315015b696fc090c9be4ce0f219f4c8a7b2c0a10702Michael Portuesi } 3166eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 317de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 318f8d3ea0e4553f6f391543eccb99485f9603c5804Christian Williams & Jay Phillips public void putExtra(String key, byte[] value) { 31951cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putByteArray(key, value); 320f8d3ea0e4553f6f391543eccb99485f9603c5804Christian Williams & Jay Phillips } 32128307faed142337b147ba17851e24ad3535f36e4Glenn Jahnke & Michael Haddad 32228307faed142337b147ba17851e24ad3535f36e4Glenn Jahnke & Michael Haddad @Implementation 32328307faed142337b147ba17851e24ad3535f36e4Glenn Jahnke & Michael Haddad public Intent putStringArrayListExtra(String key, ArrayList<String> value) { 32451cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putStringArrayList(key, value); 32528307faed142337b147ba17851e24ad3535f36e4Glenn Jahnke & Michael Haddad return realIntent; 32628307faed142337b147ba17851e24ad3535f36e4Glenn Jahnke & Michael Haddad } 32728307faed142337b147ba17851e24ad3535f36e4Glenn Jahnke & Michael Haddad 32831bb03584315509be6fa21299fbef7dc24a202f6adriancowham @Implementation 32941d4f21d0192e327046cac0b881cf8f437189140Jan Berkel public ArrayList<String> getStringArrayListExtra(String name) { 33051cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getStringArrayList(name); 33141d4f21d0192e327046cac0b881cf8f437189140Jan Berkel } 33251cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 3338e477be24e84c02459a26c616641065fe379ec05Chris Perry @Implementation 3348e477be24e84c02459a26c616641065fe379ec05Chris Perry public Intent putIntegerArrayListExtra(String key, ArrayList<Integer> value) { 33551cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putIntegerArrayList(key, value); 3368e477be24e84c02459a26c616641065fe379ec05Chris Perry return realIntent; 3378e477be24e84c02459a26c616641065fe379ec05Chris Perry } 3388e477be24e84c02459a26c616641065fe379ec05Chris Perry 3398e477be24e84c02459a26c616641065fe379ec05Chris Perry @Implementation 3408e477be24e84c02459a26c616641065fe379ec05Chris Perry public ArrayList<Integer> getIntegerArrayListExtra(String name) { 34151cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getIntegerArrayList(name); 3428e477be24e84c02459a26c616641065fe379ec05Chris Perry } 34341d4f21d0192e327046cac0b881cf8f437189140Jan Berkel 34441d4f21d0192e327046cac0b881cf8f437189140Jan Berkel @Implementation 34531bb03584315509be6fa21299fbef7dc24a202f6adriancowham public Intent putParcelableArrayListExtra(String key, ArrayList<Parcelable> value) { 34651cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen extras.putParcelableArrayList(key, value); 34756ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder return realIntent; 34831bb03584315509be6fa21299fbef7dc24a202f6adriancowham } 349f8d3ea0e4553f6f391543eccb99485f9603c5804Christian Williams & Jay Phillips 350de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 35131bb03584315509be6fa21299fbef7dc24a202f6adriancowham public ArrayList<Parcelable> getParcelableArrayListExtra(String key) { 35251cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getParcelableArrayList(key); 35331bb03584315509be6fa21299fbef7dc24a202f6adriancowham } 35451cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 35531bb03584315509be6fa21299fbef7dc24a202f6adriancowham @Implementation 3567598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz public boolean hasExtra(String name) { 35756ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder return extras.containsKey(name); 35856ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder } 35901abb0af19b206cfce991e851b8b4f0a61ced433Graeme Duncan 36056ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder @Implementation 361f8d3ea0e4553f6f391543eccb99485f9603c5804Christian Williams & Jay Phillips public String getStringExtra(String name) { 36251cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getString(name); 363f8d3ea0e4553f6f391543eccb99485f9603c5804Christian Williams & Jay Phillips } 364f8d3ea0e4553f6f391543eccb99485f9603c5804Christian Williams & Jay Phillips 365de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 3666eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public Parcelable getParcelableExtra(String name) { 36751cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getParcelable(name); 3686eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 3696eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 370de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 371a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz public Parcelable[] getParcelableArrayExtra(String name) { 37251cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getParcelableArray(name); 373a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } 374a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 375a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz @Implementation 376d23602293cf5a5f5a83788b4c5d94cdfe8d924beRyan Richard & Tyler Schultz public int getIntExtra(String name, int defaultValue) { 37751cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getInt(name, defaultValue); 378d23602293cf5a5f5a83788b4c5d94cdfe8d924beRyan Richard & Tyler Schultz } 3795320a83d4cb11a8d94e06a5d638c54df4fab96acHarry Ugol 380de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 381d11e8433a8cda65b5e1dbc72fdb08c5c89d4ae0fGlenn Jahnke & Rick Kawala public long getLongExtra(String name, long defaultValue) { 38251cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getLong(name, defaultValue); 383d11e8433a8cda65b5e1dbc72fdb08c5c89d4ae0fGlenn Jahnke & Rick Kawala } 384b8d6d9f0d4fb7f9d8fe4ecf3e3526b4aa1db0c7dJan Berkel 385b8d6d9f0d4fb7f9d8fe4ecf3e3526b4aa1db0c7dJan Berkel @Implementation 386b8d6d9f0d4fb7f9d8fe4ecf3e3526b4aa1db0c7dJan Berkel public double getDoubleExtra(String name, double defaultValue) { 38751cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getDouble(name, defaultValue); 388b8d6d9f0d4fb7f9d8fe4ecf3e3526b4aa1db0c7dJan Berkel } 38951cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 390990d13551f7666b813ab84644291c5b37cfa4c58Logdog @Implementation 39151cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen public Bundle getBundleExtra(String name) { 39251cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getBundle(name); 393990d13551f7666b813ab84644291c5b37cfa4c58Logdog } 394b8d6d9f0d4fb7f9d8fe4ecf3e3526b4aa1db0c7dJan Berkel 395d11e8433a8cda65b5e1dbc72fdb08c5c89d4ae0fGlenn Jahnke & Rick Kawala @Implementation 3966491deb5788e0a7b7372e27ccdd22e8765e83a48Jan Berkel public float getFloatExtra(String name, float defaultValue) { 39751cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getFloat(name, defaultValue); 3986491deb5788e0a7b7372e27ccdd22e8765e83a48Jan Berkel } 3996491deb5788e0a7b7372e27ccdd22e8765e83a48Jan Berkel 4006491deb5788e0a7b7372e27ccdd22e8765e83a48Jan Berkel @Implementation 401f8d3ea0e4553f6f391543eccb99485f9603c5804Christian Williams & Jay Phillips public byte[] getByteArrayExtra(String name) { 40251cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getByteArray(name); 403f8d3ea0e4553f6f391543eccb99485f9603c5804Christian Williams & Jay Phillips } 404dcd89b431a3a852aec1f7ec2f5f60111f3800656Christian Williams & Joe Moore 405de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 4065320a83d4cb11a8d94e06a5d638c54df4fab96acHarry Ugol public Serializable getSerializableExtra(String name) { 40751cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen return extras.getSerializable(name); 4085320a83d4cb11a8d94e06a5d638c54df4fab96acHarry Ugol } 40951cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 41001abb0af19b206cfce991e851b8b4f0a61ced433Graeme Duncan @Implementation 41101abb0af19b206cfce991e851b8b4f0a61ced433Graeme Duncan public void removeExtra(String name) { 41256ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder extras.remove(name); 41301abb0af19b206cfce991e851b8b4f0a61ced433Graeme Duncan } 4145320a83d4cb11a8d94e06a5d638c54df4fab96acHarry Ugol 415d25f4d2346b1e5c188f25dc2b6e254eade5337c2Phil Goodwin @Implementation 416b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams public Intent setComponent(ComponentName componentName) { 417b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams this.componentName = componentName; 418b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams return realIntent; 419b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams } 420b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams 421b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams @Implementation 422d25f4d2346b1e5c188f25dc2b6e254eade5337c2Phil Goodwin public ComponentName getComponent() { 423daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin return componentName; 424daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin } 425daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin 426fb136d1fd04112d8941084739f26876ce8a3866dPhil Goodwin & Rick Kawala @Implementation 427015b696fc090c9be4ce0f219f4c8a7b2c0a10702Michael Portuesi public int fillIn(Intent otherIntent, int flags) { 42856ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder int changes = 0; 42956ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder ShadowIntent other = shadowOf(otherIntent); 43051cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 43156ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder if (other.action != null && (action == null || (flags & FILL_IN_ACTION) != 0)) { 43256ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder action = other.action; 43356ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder changes |= FILL_IN_ACTION; 43456ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder } 43556ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder if ((other.data != null || other.type != null) 43656ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder && ((data == null && type == null) || (flags & FILL_IN_DATA) != 0)) { 43756ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder data = other.data; 43856ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder type = other.type; 43956ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder changes |= FILL_IN_DATA; 44056ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder } 44156ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder if (!other.categories.isEmpty() 44256ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder && (categories.isEmpty() || (flags & FILL_IN_CATEGORIES) != 0)) { 44356ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder categories.addAll(other.categories); 44456ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder changes |= FILL_IN_CATEGORIES; 44556ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder } 44651cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen if (other.packageName != null 44756ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder && (packageName == null || (flags & FILL_IN_PACKAGE) != 0)) { 44856ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder packageName = other.packageName; 44956ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder changes |= FILL_IN_PACKAGE; 45056ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder } 45156ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder if (other.componentName != null && (flags & FILL_IN_COMPONENT) != 0) { 45256ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder componentName = other.componentName; 45356ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder changes |= FILL_IN_COMPONENT; 45456ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder } 45551cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 45656ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder extras.putAll(other.extras); 45756ea1b1a733d39e0f13c3ba89885456a34047c63Christian Rackerseder return changes; 458015b696fc090c9be4ce0f219f4c8a7b2c0a10702Michael Portuesi } 459fb136d1fd04112d8941084739f26876ce8a3866dPhil Goodwin & Rick Kawala 46073030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante @Implementation 46173030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante // cribbed from Android source 46273030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante public boolean filterEquals(Intent other) { 46373030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (other == null) { 46473030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante return false; 46573030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 46673030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (getAction() != other.getAction()) { 46773030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (getAction() != null) { 46873030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (!getAction().equals(other.getAction())) { 46973030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante return false; 47073030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 47173030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } else { 47273030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (!other.getAction().equals(getAction())) { 47373030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante return false; 47473030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 47573030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 47673030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 47773030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (getData() != other.getData()) { 47873030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (getData() != null) { 47973030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (!getData().equals(other.getData())) { 48073030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante return false; 48173030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 48273030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } else { 48373030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (!other.getData().equals(getData())) { 48473030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante return false; 48573030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 48673030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 48773030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 48873030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (getType() != other.getType()) { 48973030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (getType() != null) { 49073030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (!getType().equals(other.getType())) { 49173030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante return false; 49273030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 49373030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } else { 49473030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (!other.getType().equals(getType())) { 49573030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante return false; 49673030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 49773030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 49873030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 49973030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (getPackage() != other.getPackage()) { 50073030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (getPackage() != null) { 50173030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (!getPackage().equals(other.getPackage())) { 50273030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante return false; 50373030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 50473030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } else { 50573030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (!other.getPackage().equals(getPackage())) { 50673030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante return false; 50773030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 50873030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 50973030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 51073030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (getComponent() != other.getComponent()) { 51173030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (getComponent() != null) { 51273030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (!getComponent().equals(other.getComponent())) { 51373030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante return false; 51473030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 51573030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } else { 51673030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (!other.getComponent().equals(getComponent())) { 51773030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante return false; 51873030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 51973030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 52073030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 52173030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (getCategories() != other.getCategories()) { 52273030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (getCategories() != null) { 52373030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (!getCategories().equals(other.getCategories())) { 52473030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante return false; 52573030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 52673030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } else { 52773030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante if (!other.getCategories().equals(getCategories())) { 52873030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante return false; 52973030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 53073030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 53173030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 53273030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante 53373030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante return true; 53473030ff2e934582cbbec4b4b34632ecc72f1863fGlenn Jahnke & Phil Plante } 53551cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 536daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin /** 537daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin * Compares an {@code Intent} with a {@code ShadowIntent} (obtained via a call to 538daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin * {@link Robolectric#shadowOf(android.content.Intent)}) 539daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin * 540daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin * @param o a {@code ShadowIntent} 541daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin * @return whether they are equivalent 542daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin */ 543daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin @Deprecated 544afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams public boolean realIntentEquals(ShadowIntent o) { 545dcd89b431a3a852aec1f7ec2f5f60111f3800656Christian Williams & Joe Moore if (this == o) return true; 546dcd89b431a3a852aec1f7ec2f5f60111f3800656Christian Williams & Joe Moore if (o == null || getClass() != o.getClass()) return false; 547dcd89b431a3a852aec1f7ec2f5f60111f3800656Christian Williams & Joe Moore 548dcd89b431a3a852aec1f7ec2f5f60111f3800656Christian Williams & Joe Moore if (action != null ? !action.equals(o.action) : o.action != null) return false; 5496fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard if (componentName != null ? !componentName.equals(o.componentName) : o.componentName != null) 550dcd89b431a3a852aec1f7ec2f5f60111f3800656Christian Williams & Joe Moore return false; 551dcd89b431a3a852aec1f7ec2f5f60111f3800656Christian Williams & Joe Moore if (data != null ? !data.equals(o.data) : o.data != null) return false; 552dcd89b431a3a852aec1f7ec2f5f60111f3800656Christian Williams & Joe Moore if (extras != null ? !extras.equals(o.extras) : o.extras != null) return false; 553b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams if (type != null ? !type.equals(o.type) : o.type != null) return false; 554e955bad0fcce60545a0d3ee54ca3006493947518Michael Portuesi if (categories != null ? !categories.equals(o.categories) : o.categories != null) return false; 555dcd89b431a3a852aec1f7ec2f5f60111f3800656Christian Williams & Joe Moore 556dcd89b431a3a852aec1f7ec2f5f60111f3800656Christian Williams & Joe Moore return true; 5575320a83d4cb11a8d94e06a5d638c54df4fab96acHarry Ugol } 5585320a83d4cb11a8d94e06a5d638c54df4fab96acHarry Ugol 559a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz @Override 560a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz @Implementation 561b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams public int hashCode() { 562b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams int result = extras != null ? extras.hashCode() : 0; 563b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams result = 31 * result + (action != null ? action.hashCode() : 0); 564b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams result = 31 * result + (componentName != null ? componentName.hashCode() : 0); 565b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams result = 31 * result + (data != null ? data.hashCode() : 0); 566b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams result = 31 * result + (type != null ? type.hashCode() : 0); 567b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams result = 31 * result + flags; 568b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams return result; 569b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams } 57051cda5c5f3f81b63c168cf1574ec0c90a7b99abfJon Boekenoogen 571a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz @Override 572a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz @Implementation 573b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams public boolean equals(Object o) { 574b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams if (!(o instanceof Intent)) return false; 575b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams return realIntentEquals(shadowOf((Intent) o)); 576b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams } 577b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams 578daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin /** 579daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin * Non-Android accessor that returns the {@code Class} object set by 580daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin * {@link #setClass(android.content.Context, Class)} 581daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin * 582daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin * @return the {@code Class} object set by 583b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams * {@link #setClass(android.content.Context, Class)} 584daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin */ 585daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin public Class<?> getIntentClass() { 586daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin return intentClass; 5875320a83d4cb11a8d94e06a5d638c54df4fab96acHarry Ugol } 58808a7328fa8fb47a682db59e53189b067b6374411Christian Williams & Tyler Schultz 589a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz @Override 590a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz @Implementation 59108a7328fa8fb47a682db59e53189b067b6374411Christian Williams & Tyler Schultz public String toString() { 59208a7328fa8fb47a682db59e53189b067b6374411Christian Williams & Tyler Schultz return "Intent{" + 59308a7328fa8fb47a682db59e53189b067b6374411Christian Williams & Tyler Schultz Join.join( 59408a7328fa8fb47a682db59e53189b067b6374411Christian Williams & Tyler Schultz ", ", 5956fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard ifWeHave(componentName, "componentName"), 59608a7328fa8fb47a682db59e53189b067b6374411Christian Williams & Tyler Schultz ifWeHave(action, "action"), 59708a7328fa8fb47a682db59e53189b067b6374411Christian Williams & Tyler Schultz ifWeHave(extras, "extras"), 598b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams ifWeHave(data, "data"), 599b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams ifWeHave(type, "type") 60008a7328fa8fb47a682db59e53189b067b6374411Christian Williams & Tyler Schultz ) + 60108a7328fa8fb47a682db59e53189b067b6374411Christian Williams & Tyler Schultz '}'; 60208a7328fa8fb47a682db59e53189b067b6374411Christian Williams & Tyler Schultz } 603eb645dd6f075c4c7d6d61193fde416739adb7fc1Gregg Van Hove & Phil Goodwin 6046fb5d4828313a611b33b9bdd0cc6152d51b67347Zhihong Xu @Implementation 6056fb5d4828313a611b33b9bdd0cc6152d51b67347Zhihong Xu public void writeToParcel(Parcel out, int flags) { 606f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu out.writeString(action); 607f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu if (data != null) { 608f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu out.writeInt(1); 609f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu Uri.writeToParcel(out, data); 610f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu } else { 611064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen out.writeInt(-1); 612f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu } 613f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu out.writeString(type); 614f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu out.writeInt(flags); 615f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu out.writeString(packageName); 616f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu ComponentName.writeToParcel(componentName, out); 617f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu out.writeInt(categories.size()); 618064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen 619f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu for (String category : categories) { 620f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu out.writeString(category); 621f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu } 622f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu out.writeBundle(extras); 6236fb5d4828313a611b33b9bdd0cc6152d51b67347Zhihong Xu } 6246fb5d4828313a611b33b9bdd0cc6152d51b67347Zhihong Xu 6256fb5d4828313a611b33b9bdd0cc6152d51b67347Zhihong Xu @Implementation 6266fb5d4828313a611b33b9bdd0cc6152d51b67347Zhihong Xu public void readFromParcel(Parcel in) { 627f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu setAction(in.readString()); 628064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen if (in.readInt() == 1) { 629f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu data = Uri.CREATOR.createFromParcel(in); 630f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu } 631f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu type = in.readString(); 632f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu flags = in.readInt(); 633f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu packageName = in.readString(); 634f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu componentName = ComponentName.readFromParcel(in); 635f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu int N = in.readInt(); 636f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu for (int i = 0; i < N; i++) { 637f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu categories.add(in.readString().intern()); 638f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu } 639f139aa4fee979823b0a806347f64a08a6a2477bbZhihong Xu extras.putAll(in.readBundle()); 6406fb5d4828313a611b33b9bdd0cc6152d51b67347Zhihong Xu } 6416fb5d4828313a611b33b9bdd0cc6152d51b67347Zhihong Xu 642daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin private Serializable serializeCycle(Serializable serializable) { 643daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin try { 644daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 645daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin ObjectOutputStream output = new ObjectOutputStream(byteArrayOutputStream); 646daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin output.writeObject(serializable); 647daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin output.close(); 648daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin 649daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin byte[] bytes = byteArrayOutputStream.toByteArray(); 650daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin ObjectInputStream input = new ObjectInputStream(new ByteArrayInputStream(bytes)); 651daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin return (Serializable) input.readObject(); 652daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin } catch (IOException e) { 653daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin throw new RuntimeException(e); 654daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin } catch (ClassNotFoundException e) { 655daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin throw new RuntimeException(e); 656daf25ec537e02fbf526434474a591f14c48218f5Phil Goodwin } 657eb645dd6f075c4c7d6d61193fde416739adb7fc1Gregg Van Hove & Phil Goodwin } 65808a7328fa8fb47a682db59e53189b067b6374411Christian Williams & Tyler Schultz 659eb645dd6f075c4c7d6d61193fde416739adb7fc1Gregg Van Hove & Phil Goodwin private String ifWeHave(Object o, String name) { 66008a7328fa8fb47a682db59e53189b067b6374411Christian Williams & Tyler Schultz if (o == null) return null; 661eb645dd6f075c4c7d6d61193fde416739adb7fc1Gregg Van Hove & Phil Goodwin if (o instanceof Map && ((Map) o).isEmpty()) return null; 66208a7328fa8fb47a682db59e53189b067b6374411Christian Williams & Tyler Schultz return name + "=" + o; 66308a7328fa8fb47a682db59e53189b067b6374411Christian Williams & Tyler Schultz } 664fb136d1fd04112d8941084739f26876ce8a3866dPhil Goodwin & Rick Kawala 665064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen public static final Creator<Intent> CREATOR = 666064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen new Creator<Intent>() { 667064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen @Override 668064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen public Intent createFromParcel(Parcel source) { 669064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen Intent intent = new Intent(); 670064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen intent.readFromParcel(source); 671064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen return intent; 672064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen } 673064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen 674064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen @Override 675064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen public Intent[] newArray(int size) { 676064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen return new Intent[size]; 677064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen } 678064f86b8dad1300e99457c9672a9ebbb6694ae4eJon Boekenoogen }; 679fb82eae187c0cdff8efd2d93209e775cd0ed6a39Jon Boekenoogen 680fb82eae187c0cdff8efd2d93209e775cd0ed6a39Jon Boekenoogen public static void reset() { 681fb82eae187c0cdff8efd2d93209e775cd0ed6a39Jon Boekenoogen Robolectric.Reflection.setFinalStaticField(Intent.class, "CREATOR", CREATOR); 682fb82eae187c0cdff8efd2d93209e775cd0ed6a39Jon Boekenoogen } 6836eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz} 684