Skip to content

Commit

Permalink
[tidev#2065 state:fixed-in-qa] Check if first arg to setData is Objec…
Browse files Browse the repository at this point in the history
…t[] whose first element is Object[], meaning all args are being put into an array (rather than binding out to the 2nd parameter)
  • Loading branch information
billdawson committed Nov 15, 2010
1 parent ef7ff31 commit 3e271c1
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 3 deletions.
Expand Up @@ -364,14 +364,18 @@ public void processData(Object[] data) {
@Kroll.setProperty @Kroll.method
public void setData(Object[] data, @Kroll.argument(optional=true) KrollDict options) {
TiContext ctx = getTiContext();
Object[] actualData = data;
if (data != null && data.length > 0 && data[0] instanceof Object[]) {
actualData = (Object[]) data[0];
}
if (ctx == null) {
Log.w(LCAT, "Context has been GC'd, not setting table data.");
return;
}
if (ctx.isUIThread()) {
handleSetData(data);
handleSetData(actualData);
} else {
AsyncResult result = new AsyncResult(data);
AsyncResult result = new AsyncResult(actualData);
Message msg = getUIHandler().obtainMessage(MSG_SET_DATA, result);
msg.sendToTarget();
result.getResult();
Expand Down
Expand Up @@ -82,7 +82,9 @@ public void setProperty(String key, Object value) {
@Override
public boolean handleMessage(Message msg) {
if (msg.what == MSG_SET_DATA) {
tableViewItem.setRowData(this);
if (tableViewItem != null) {
tableViewItem.setRowData(this);
}
return true;
}
return super.handleMessage(msg);
Expand Down
15 changes: 15 additions & 0 deletions drillbit/tests/android/android.ui.js
Expand Up @@ -13,6 +13,21 @@ describe("Ti.UI.Android tests", {
uniqueTagTableViewException: function() {
Ti.UI.createTableView({top:0});
// If it doesn't crash, then you're ok
},

// https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets/2065-android-behavior-change-in-set-row-data-test-case#ticket-2065-5
tableviewSetDataWithAnimationProps: function() {
var w = Ti.UI.createWindow();
w.open();
var tv = Ti.UI.createTableView();
w.add(tv);
var data = [];
for (var i = 0; i < 3; i++) {
data.push( Ti.UI.createTableViewRow({title: 'test'}) );
}
tv.setData(data, {animationStyle:Titanium.UI.iPhone.RowAnimationStyle.NONE});
valueOf(tv.data[0].rowCount).shouldBe(data.length);
w.close();
}


Expand Down

0 comments on commit 3e271c1

Please sign in to comment.