[TIMOB-1319] [PATCH] Class cast exception in TableViewRowProxy.java in fireEvent
| GitHub Issue | n/a |
|---|---|
| Type | Bug |
| Priority | Trivial |
| Status | Closed |
| Resolution | Fixed |
| Resolution Date | 2011-04-17T01:55:51.000+0000 |
| Affected Version/s | n/a |
| Fix Version/s | Release 1.4.0 |
| Components | Android |
| Labels | android, defect, tableview |
| Reporter | Joel Boehland |
| Assignee | Don Thorp |
| Created | 2011-04-15T02:49:15.000+0000 |
| Updated | 2011-04-17T01:55:51.000+0000 |
Description
TableViewRowProxy.fireEvent assumes that its parent is a TableViewProxy, when it can also be a TableViewSectionProxy object. If you fire an event from a row contained in a TableViewSection, it will cause a ClassCastException to be raised and the app will die. The following changes in my local repo fixed the problem:
diff --git
a/android/modules/ui/src/ti/modules/titanium/ui/TableViewRowProxy.java
b/android/modules/ui/src/ti/modules/titanium/ui/TableViewRowProxy.java
index a415c32..f1842db 100644
---
a/android/modules/ui/src/ti/modules/titanium/ui/TableViewRowProxy.java
+++
b/android/modules/ui/src/ti/modules/titanium/ui/TableViewRowProxy.java
@@ -87,8 +87,14 @@ public class TableViewRowProxy extends
TiViewProxy
@Override
public boolean fireEvent(String eventName, TiDict data) {
if (eventName.equals("click")) {
-
TableViewProxy table = null; // inject row click data for events coming from row children -
TableViewProxy table = (TableViewProxy)getParent(); -
if(getParent() instanceof TableViewProxy) { -
table = (TableViewProxy)getParent(); -
} -
if(getParent() instanceof TableViewSectionProxy) { -
table = (TableViewProxy)getParent().getParent(); -
} Item item = tableViewItem.getRowData(); if (table != null && item != null) { TableViewModel model = table.getTableView().getModel();
Attachments
| File | Date | Size |
|---|---|---|
| gdiff.txt | 2011-04-15T02:49:15.000+0000 | 1154 |
Apologies for the badly-formatted patch that I inlined in the original message. Please see the attached patch instead.
(from [c580ff0f0ed719c35f65a7db75236540b7d8b187]) go up the tree to find the row's TableView parent (sometimes the immediate parent is a section) [#1319 state:resolved] http://github.com/appcelerator/titanium_mobile/commit/c580ff0f0ed719c35f65a7db75236540b7d8b187"> http://github.com/appcelerator/titanium_mobile/commit/c580ff0f0ed71...