1407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkelpackage com.xtremelabs.robolectric.shadows; 2407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel 3407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel 4962dfc938fd6829f96079d4749f050da9118b8cbJan Berkelimport com.xtremelabs.robolectric.Robolectric; 5407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkelimport com.xtremelabs.robolectric.internal.Implementation; 6407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkelimport com.xtremelabs.robolectric.internal.Implements; 7407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkelimport com.xtremelabs.robolectric.internal.RealObject; 8407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel 9407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkelimport android.os.Bundle; 10e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shahimport android.os.Handler; 11407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkelimport android.os.Message; 12407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel 13407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel@Implements(Message.class) 14407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkelpublic class ShadowMessage { 15407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel private Bundle data; 16e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah private Handler target; 17962dfc938fd6829f96079d4749f050da9118b8cbJan Berkel private long when; 18407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel 19407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel @RealObject 20407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel private Message message; 21407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel 22407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel @Implementation 23407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel public void setData(Bundle data) { 24407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel this.data = data; 25407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel } 2640674c5041023f9b5cb5570b8c5b81b5968ec585Jon Boekenoogen 27e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah @Implementation 28e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah public void setTarget(Handler target) { 29e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah this.target = target; 30e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah } 31407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel 32407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel @Implementation 33407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel public Bundle peekData() { 349e4cb8aa5c4ddef5bfb6f6f1274904699ecda4bdJan Berkel return data; 35407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel } 36407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel 37407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel @Implementation 38407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel public Bundle getData() { 399e4cb8aa5c4ddef5bfb6f6f1274904699ecda4bdJan Berkel if (data == null) { 409e4cb8aa5c4ddef5bfb6f6f1274904699ecda4bdJan Berkel data = new Bundle(); 419e4cb8aa5c4ddef5bfb6f6f1274904699ecda4bdJan Berkel } 42407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel return data; 43407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel } 4440674c5041023f9b5cb5570b8c5b81b5968ec585Jon Boekenoogen 45e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah @Implementation 46e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah public Handler getTarget() { 47e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah return target; 48e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah } 49407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel 50407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel @Implementation 51407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel public void copyFrom(Message m) { 52407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel message.arg1 = m.arg1; 53407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel message.arg2 = m.arg2; 54407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel message.obj = m.obj; 55310172c610d61b650ebb66934947d791057e8e3eJon Boekenoogen message.what = m.what; 56407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel message.setData(m.getData()); 57407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel } 58e642e4520ac02d9b194b31ea865e885078887a75Dave Shah 59e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah @Implementation 60e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah public static Message obtain() { 61e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah return new Message(); 62e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah } 63e642e4520ac02d9b194b31ea865e885078887a75Dave Shah 64e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah @Implementation 65e642e4520ac02d9b194b31ea865e885078887a75Dave Shah public static Message obtain(Handler h) { 66e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah Message m = new Message(); 67e642e4520ac02d9b194b31ea865e885078887a75Dave Shah m.setTarget(h); 68e642e4520ac02d9b194b31ea865e885078887a75Dave Shah return m; 69e642e4520ac02d9b194b31ea865e885078887a75Dave Shah } 70e642e4520ac02d9b194b31ea865e885078887a75Dave Shah 71e642e4520ac02d9b194b31ea865e885078887a75Dave Shah @Implementation 72e642e4520ac02d9b194b31ea865e885078887a75Dave Shah public static Message obtain(Handler h, int what) { 73e642e4520ac02d9b194b31ea865e885078887a75Dave Shah Message m = obtain(h); 74e642e4520ac02d9b194b31ea865e885078887a75Dave Shah m.what = what; 75e642e4520ac02d9b194b31ea865e885078887a75Dave Shah return m; 76e642e4520ac02d9b194b31ea865e885078887a75Dave Shah } 77e642e4520ac02d9b194b31ea865e885078887a75Dave Shah 78e642e4520ac02d9b194b31ea865e885078887a75Dave Shah @Implementation 79e642e4520ac02d9b194b31ea865e885078887a75Dave Shah public static Message obtain(Handler h, int what, Object obj) { 80e642e4520ac02d9b194b31ea865e885078887a75Dave Shah Message m = obtain(h, what); 81e642e4520ac02d9b194b31ea865e885078887a75Dave Shah m.obj = obj; 82e642e4520ac02d9b194b31ea865e885078887a75Dave Shah return m; 83e642e4520ac02d9b194b31ea865e885078887a75Dave Shah } 84e642e4520ac02d9b194b31ea865e885078887a75Dave Shah 85e642e4520ac02d9b194b31ea865e885078887a75Dave Shah @Implementation 86e642e4520ac02d9b194b31ea865e885078887a75Dave Shah public static Message obtain(Handler h, int what, int arg1, int arg2) { 87e642e4520ac02d9b194b31ea865e885078887a75Dave Shah Message m = obtain(h, what); 88e642e4520ac02d9b194b31ea865e885078887a75Dave Shah m.arg1 = arg1; 89e642e4520ac02d9b194b31ea865e885078887a75Dave Shah m.arg2 = arg2; 90e642e4520ac02d9b194b31ea865e885078887a75Dave Shah return m; 91e642e4520ac02d9b194b31ea865e885078887a75Dave Shah } 92e642e4520ac02d9b194b31ea865e885078887a75Dave Shah 93e642e4520ac02d9b194b31ea865e885078887a75Dave Shah @Implementation 94e642e4520ac02d9b194b31ea865e885078887a75Dave Shah public static Message obtain(Handler h, int what, int arg1, int arg2, Object obj) { 95e642e4520ac02d9b194b31ea865e885078887a75Dave Shah Message m = obtain(h, what, arg1, arg2); 96e642e4520ac02d9b194b31ea865e885078887a75Dave Shah m.obj = obj; 97e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah return m; 98e0ab12af2b5fdbad89c6892f77accb9b52797a48Dave Shah } 994c309b17fd2b0b1fbf094edc84ca99745dc96002Jan Berkel 1004c309b17fd2b0b1fbf094edc84ca99745dc96002Jan Berkel @Implementation 10171310032ef4ece873debd2d8b7f5d86ff2bb1c37Jon Boekenoogen public static Message obtain(Message msg) { 10271310032ef4ece873debd2d8b7f5d86ff2bb1c37Jon Boekenoogen Message m = new Message(); 10371310032ef4ece873debd2d8b7f5d86ff2bb1c37Jon Boekenoogen m.copyFrom(msg); 10471310032ef4ece873debd2d8b7f5d86ff2bb1c37Jon Boekenoogen m.setTarget(msg.getTarget()); 10571310032ef4ece873debd2d8b7f5d86ff2bb1c37Jon Boekenoogen return m; 10671310032ef4ece873debd2d8b7f5d86ff2bb1c37Jon Boekenoogen } 10771310032ef4ece873debd2d8b7f5d86ff2bb1c37Jon Boekenoogen 10871310032ef4ece873debd2d8b7f5d86ff2bb1c37Jon Boekenoogen @Implementation 1094c309b17fd2b0b1fbf094edc84ca99745dc96002Jan Berkel public void sendToTarget() { 1104c309b17fd2b0b1fbf094edc84ca99745dc96002Jan Berkel target.sendMessage(message); 1114c309b17fd2b0b1fbf094edc84ca99745dc96002Jan Berkel } 112962dfc938fd6829f96079d4749f050da9118b8cbJan Berkel 113962dfc938fd6829f96079d4749f050da9118b8cbJan Berkel @Implementation 114962dfc938fd6829f96079d4749f050da9118b8cbJan Berkel public long getWhen() { 115962dfc938fd6829f96079d4749f050da9118b8cbJan Berkel return when; 116962dfc938fd6829f96079d4749f050da9118b8cbJan Berkel } 117962dfc938fd6829f96079d4749f050da9118b8cbJan Berkel 118962dfc938fd6829f96079d4749f050da9118b8cbJan Berkel public void setWhen(long when) { 119962dfc938fd6829f96079d4749f050da9118b8cbJan Berkel this.when = when; 120962dfc938fd6829f96079d4749f050da9118b8cbJan Berkel } 121407d29789bdc3ef4e50edbcf51eb8c30641cbd99Jan Berkel} 122