{ "id": "168312", "key": "TIMOB-24799", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "19572", "description": "Important fixes for 6.1.0", "name": "Release 6.1.1", "archived": false, "released": true, "releaseDate": "2017-06-16" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-06-12T20:49:06.000+0000", "created": "2017-06-08T21:31:14.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [], "versions": [ { "id": "17608", "name": "Release 6.1.0", "archived": false, "released": true, "releaseDate": "2017-05-26" }, { "id": "19333", "description": "Patch release for important items that did not make it into 6.0.3", "name": "Release 6.0.4", "archived": false, "released": true, "releaseDate": "2017-04-27" } ], "issuelinks": [ { "id": "55452", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "169002", "key": "TIMOB-24987", "fields": { "summary": "Android: TextField and TextView elements in SDK 6.1.1.GA do not fire focus events / trigger keyboard when using custom theme", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "updated": "2017-07-20T20:33:46.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "h5. Issue Description \r\n\r\nCreating an Appcelerator project targeting Android that uses the Titanium theme using 6.2.2.GA causes certain UI elements to not work. In some cases, this results in warning messages being logged and no activity, in others, errors are logged and an error dialog appears in the app, and in others, the app crashes entirely.\r\n\r\nThe cases that we have identified so far are: optionDialogs, alertDialogs, and switches; however, considering the theming of many items also appears to have been changed unexpectedly, it seems likely that there are issues occurring with other elements that we have not noticed.\r\n\r\nh5. Steps to replicate\r\n\r\nHere's a github link to a project that recreates the issues I've mentioned: https://github.com/bbuehler-axway-support/android-titanium-theme\r\n\r\nPlease note that in this project, for the switch element, we are adding this via JavaScript in the controller, rather than creating an XML version. This is because creating an XML version causes the app to crash immediately on loading the page, which isn't terribly useful for testing. Additionally, as I do not see any changes to the Titanium Theme mentioned in the release notes, I would expect that rather than the Titanium Theme changing, other changes to Android in this SDK version have caused compatibility issues with the theme.", "attachment": [], "flagged": false, "summary": "Android: Theme Causing Issues in SDK 6.2.2.GA", "creator": { "name": "rramirez", "key": "rramirez", "displayName": " Ricardo Ramirez", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "rramirez", "key": "rramirez", "displayName": " Ricardo Ramirez", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "SDK 6.2.2.GA \r\nCLI = 5.0.12\r\nnode-appc = 0.2.41\r\nTested on Android 6.0.0 [Simulator]\r\nTested on Android 5.0.0 [Simulator]", "comment": { "comments": [ { "id": "421610", "author": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "body": "I can reproduce this issue on the below environment. If I comment out the code in [this commit|https://github.com/appcelerator/titanium_mobile/pull/8911/commits/0ebe4cc66866cea2966f5a9b7fc73d320059b51b] the issue does not occur\r\n\r\nOnePlus 3: 7.1.1\r\nTi SDK: 6.0.4.GA, 6.1.0.GA, 6.1.1.v20170608162457\r\n\r\nh5.Steps to reproduce \r\n\r\n# Download the application in the descripton\r\n# Run the application to Android device\r\n# Tap a button\r\n\r\nh5.Actual\r\n\r\nWhen I tap on Add Switch, the below error is thrown\r\n\r\n{code}\r\n[ERROR] TiApplication: (main) [5679,5679] Sending event: exception on thread: main msg:java.lang.NullPointerException: Attempt to invoke interface method 'int java.lang.CharSequence.length()' on a null object reference; Titanium 6.0.4,2017/04/26 14:02,undefined\r\n[ERROR] TiApplication: java.lang.NullPointerException: Attempt to invoke interface method 'int java.lang.CharSequence.length()' on a null object reference\r\n[ERROR] TiApplication: at android.text.StaticLayout.(StaticLayout.java:432)\r\n[ERROR] TiApplication: at android.support.v7.widget.SwitchCompat.makeLayout(SwitchCompat.java:602)\r\n[ERROR] TiApplication: at android.support.v7.widget.SwitchCompat.onMeasure(SwitchCompat.java:522)\r\n[ERROR] TiApplication: at android.view.View.measure(View.java:19955)\r\n[ERROR] TiApplication: at org.appcelerator.titanium.view.TiCompositeLayout.constrainChild(TiCompositeLayout.java:445)\r\n[ERROR] TiApplication: at org.appcelerator.titanium.view.TiCompositeLayout.onMeasure(TiCompositeLayout.java:303)\r\n[ERROR] TiApplication: at android.view.View.measure(View.java:19955)\r\n[ERROR] TiApplication: at org.appcelerator.titanium.view.TiCompositeLayout.constrainChild(TiCompositeLayout.java:445)\r\n[ERROR] TiApplication: at org.appcelerator.titanium.view.TiCompositeLayout.onMeasure(TiCompositeLayout.java:303)\r\n[ERROR] TiApplication: at android.view.View.measure(View.java:19955)\r\n[ERROR] TiApplication: at org.appcelerator.titanium.view.TiCompositeLayout.constrainChild(TiCompositeLayout.java:445)\r\n[ERROR] TiApplication: at org.appcelerator.titanium.view.TiCompositeLayout.onMeasure(TiCompositeLayout.java:303)\r\n[ERROR] TiApplication: at android.view.View.measure(View.java:19955)\r\n[ERROR] TiApplication: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)\r\n[ERROR] TiApplication: at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)\r\n[ERROR] TiApplication: at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)\r\n[ERROR] TiApplication: at android.view.View.measure(View.java:19955)\r\n[ERROR] TiApplication: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)\r\n[ERROR] TiApplication: at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)\r\n[ERROR] TiApplication: at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)\r\n[ERROR] TiApplication: at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)\r\n[ERROR] TiApplication: at android.view.View.measure(View.java:19955)\r\n[ERROR] TiApplication: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)\r\n[ERROR] TiApplication: at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)\r\n[ERROR] TiApplication: at android.view.View.measure(View.java:19955)\r\n[ERROR] TiApplication: at android.widget.LinearLayout.measureVertical(LinearLayout.java:911)\r\n[ERROR] TiApplication: at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)\r\n[ERROR] TiApplication: at android.view.View.measure(View.java:19955)\r\n[ERROR] TiApplication: at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6087)\r\n[ERROR] TiApplication: at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)\r\n[ERROR] TiApplication: at com.android.internal.policy.DecorView.onMeasure(DecorView.java:689)\r\n[ERROR] TiApplication: at android.view.View.measure(View.java:19955)\r\n[ERROR] TiApplication: at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2309)\r\n[ERROR] TiApplication: at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1392)\r\n[ERROR] TiApplication: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1645)\r\n[ERROR] TiApplication: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1280)\r\n[ERROR] TiApplication: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6432)\r\n[ERROR] TiApplication: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)\r\n[ERROR] TiApplication: at android.view.Choreographer.doCallbacks(Choreographer.java:686)\r\n[ERROR] TiApplication: at android.view.Choreographer.doFrame(Choreographer.java:621)\r\n[ERROR] TiApplication: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)\r\n[ERROR] TiApplication: at android.os.Handler.handleCallback(Handler.java:751)\r\n[ERROR] TiApplication: at android.os.Handler.dispatchMessage(Handler.java:95)\r\n[ERROR] TiApplication: at android.os.Looper.loop(Looper.java:154)\r\n[ERROR] TiApplication: at android.app.ActivityThread.main(ActivityThread.java:6290)\r\n[ERROR] TiApplication: at java.lang.reflect.Method.invoke(Native Method)\r\n[ERROR] TiApplication: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)\r\n[ERROR] TiApplication: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)\r\n{code}\r\n\r\nh5.Expected\r\n\r\nThe UI element corresponding to the button tapped should be added, i.e Add switch adds a switch", "updateAuthor": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "created": "2017-06-09T13:04:57.000+0000", "updated": "2017-06-09T15:08:32.000+0000" }, { "id": "421611", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~rramirez] {{Theme.Titanium}} inherits the theme set in {{\r\n{code}\r\n\r\nSo {{Theme.Titanium}} is inheriting itself, which is bad. Just remove that line, or use a different name for your theme.\r\n\r\nWe should add validation to prevent this from happening.", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-06-09T13:17:40.000+0000", "updated": "2017-06-09T13:23:58.000+0000" }, { "id": "421612", "author": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "body": "Master: https://github.com/appcelerator/titanium_mobile/pull/9134\r\n6_1_X: https://github.com/appcelerator/titanium_mobile/issues/9135\r\n-I believe this should be backported to 6_1_X, will set up the backport once permission is granted-", "updateAuthor": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "created": "2017-06-09T13:29:04.000+0000", "updated": "2017-06-09T15:53:53.000+0000" }, { "id": "421814", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "FR passed for both master & backport PR.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-06-12T20:49:06.000+0000", "updated": "2017-06-12T20:49:06.000+0000" }, { "id": "421838", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix with SDK 6.1.1.v20170612141743.\r\nWaiting for master SDK from jenkins to close.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-06-12T23:34:15.000+0000", "updated": "2017-06-12T23:34:15.000+0000" }, { "id": "421892", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix with SDK 6.2.0.v20170613091505.\r\n\r\nClosing.\r\n\r\nStudio Ver: 4.9.0.201705302345\r\nOS Ver: 10.12.3\r\nXcode Ver: Xcode 8.3.3\r\nAppc NPM: 4.2.9\r\nAppc CLI: 6.2.2\r\nTi CLI Ver: 5.0.14\r\nAlloy Ver: 1.9.11\r\nNode Ver: 6.10.1\r\nJava Ver: 1.8.0_101\r\nDevices: ⇨ google Nexus 5 --- Android 6.0.1\r\n⇨ google Pixel --- Android 7.1.1\r\nEmulator: Android 4.4.2", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-06-13T18:56:38.000+0000", "updated": "2017-06-13T18:56:38.000+0000" } ], "maxResults": 7, "total": 7, "startAt": 0 } } }