{
"id": "97737",
"key": "TIMOB-10066",
"fields": {
"issuetype": {
"id": "2",
"description": "A new feature of the product, which has yet to be developed.",
"name": "New Feature",
"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": "14700",
"description": "2012 Sprint 25",
"name": "2012 Sprint 25",
"archived": true,
"released": true,
"releaseDate": "2012-12-17"
},
{
"id": "14784",
"description": "2012 Sprint 25 API",
"name": "2012 Sprint 25 API",
"archived": true,
"released": true,
"releaseDate": "2012-12-17"
}
],
"resolution": {
"id": "6",
"description": "",
"name": "Hold"
},
"resolutiondate": "2012-12-11T18:40:41.000+0000",
"created": "2012-07-20T15:55:40.000+0000",
"priority": {
"name": "High",
"id": "2"
},
"labels": [
"api"
],
"versions": [
{
"id": "13271",
"description": "Release 2.1.0",
"name": "Release 2.1.0",
"archived": false,
"released": true,
"releaseDate": "2012-06-29"
}
],
"issuelinks": [
{
"id": "22754",
"type": {
"id": "10003",
"name": "Relates",
"inward": "relates to",
"outward": "relates to"
},
"inwardIssue": {
"id": "104401",
"key": "MOD-1006",
"fields": {
"summary": "Research possible module solution for transparent activity",
"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": "High",
"id": "2"
},
"issuetype": {
"id": "7",
"description": "gh.issue.story.desc",
"name": "Story",
"subtask": false
}
}
}
}
],
"assignee": {
"name": "krowley",
"key": "krowley",
"displayName": "Karl Rowley",
"active": true,
"timeZone": "America/Los_Angeles"
},
"updated": "2013-03-30T16:47:44.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": "We need a way to have a transparent activity on top of another app. Here is some information:\r\n\r\nhttp://abtandroid.blogspot.com/2011/08/small-tutorial-on-creating-transparent.html\r\nhttp://www.coderzheaven.com/2011/07/20/how-to-create-a-transparent-activity-in-android/\r\n\r\nAn app that does something similar to what the customer wants to do: https://play.google.com/store/apps/details?id=at.neiti.scribblesmart\r\nHere is the source: https://github.com/mneubrand/scribble-smart\r\n\r\nThis possibly is a module request or is even possible just with the theme manifests. If so I'll need some guidance on the best way to tackle this.",
"attachment": [
{
"id": "29978",
"filename": "Archive.zip",
"author": {
"name": "rblalock",
"key": "rblalock",
"displayName": "Rick Blalock",
"active": false,
"timeZone": "America/Havana"
},
"created": "2012-07-23T16:58:01.000+0000",
"size": 750636,
"mimeType": "application/zip"
},
{
"id": "29975",
"filename": "IMG_3009.MOV",
"author": {
"name": "rblalock",
"key": "rblalock",
"displayName": "Rick Blalock",
"active": false,
"timeZone": "America/Havana"
},
"created": "2012-07-23T15:38:13.000+0000",
"size": 1814938,
"mimeType": "video/quicktime"
}
],
"flagged": false,
"summary": "Android: Allow for transparent activities",
"creator": {
"name": "rblalock",
"key": "rblalock",
"displayName": "Rick Blalock",
"active": false,
"timeZone": "America/Havana"
},
"subtasks": [],
"reporter": {
"name": "rblalock",
"key": "rblalock",
"displayName": "Rick Blalock",
"active": false,
"timeZone": "America/Havana"
},
"environment": null,
"comment": {
"comments": [
{
"id": "213014",
"author": {
"name": "vduggal",
"key": "vduggal",
"displayName": "Vishal Duggal",
"active": false,
"timeZone": "America/Los_Angeles"
},
"body": "Moving to sprint 17. Trading for some 2.1.2 requests",
"updateAuthor": {
"name": "vduggal",
"key": "vduggal",
"displayName": "Vishal Duggal",
"active": false,
"timeZone": "America/Los_Angeles"
},
"created": "2012-08-06T15:32:12.000+0000",
"updated": "2012-08-06T15:32:12.000+0000"
},
{
"id": "213705",
"author": {
"name": "ngupta",
"key": "ngupta",
"displayName": "Neeraj Gupta",
"active": true,
"timeZone": "America/Los_Angeles"
},
"body": "De-prioritizing this feature based on the discussion with services team.",
"updateAuthor": {
"name": "ngupta",
"key": "ngupta",
"displayName": "Neeraj Gupta",
"active": true,
"timeZone": "America/Los_Angeles"
},
"created": "2012-08-09T17:31:04.000+0000",
"updated": "2012-08-09T17:31:04.000+0000"
},
{
"id": "225869",
"author": {
"name": "krowley",
"key": "krowley",
"displayName": "Karl Rowley",
"active": true,
"timeZone": "America/Los_Angeles"
},
"body": "Here's an example of a transparent activity. \r\n\r\n{code}\r\npackage com.alert;\r\n\r\nimport android.app.Activity;\r\nimport android.content.Intent;\r\nimport android.os.Bundle;\r\nimport android.util.Log;\r\nimport android.view.Gravity;\r\nimport android.view.View;\r\nimport android.view.View.OnClickListener;\r\nimport android.view.Window;\r\nimport android.view.WindowManager;\r\nimport android.widget.Button;\r\n\r\npublic class ServicesDemo extends Activity implements OnClickListener {\r\n private static final String TAG = \"ServicesDemo\";\r\n Button buttonStart, buttonStop;\r\n\r\n @Override\r\n public void onCreate(Bundle savedInstanceState) {\r\n super.onCreate(savedInstanceState);\r\n \r\n Window window = getWindow();\r\n \r\n window.setLayout(100, 100);\r\n window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,\r\n WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);\r\n window.setGravity(Gravity.LEFT);\r\n window.setContentView(R.layout.main)\r\n \r\n }\r\n\r\n@Override\r\npublic void onClick(View v) {\r\n\t// TODO Auto-generated method stub\r\n\t\r\n}\r\n \r\n}\r\n{code}\r\n\r\n\r\nlayout/main.xml:\r\n{code}\r\n\r\n\r\n\r\n \r\n\r\n\r\n{code}\r\n\r\nvalues/styles.xml:\r\n\r\n{code}\r\n\r\n\r\n \r\n \r\n\r\n{code}\r\n\r\nAndroidManifest.xml:\r\n{code}\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n{code}",
"updateAuthor": {
"name": "krowley",
"key": "krowley",
"displayName": "Karl Rowley",
"active": true,
"timeZone": "America/Los_Angeles"
},
"created": "2012-11-01T21:21:40.000+0000",
"updated": "2012-11-02T21:49:43.000+0000"
},
{
"id": "226046",
"author": {
"name": "krowley",
"key": "krowley",
"displayName": "Karl Rowley",
"active": true,
"timeZone": "America/Los_Angeles"
},
"body": "Here's a transparent activity that's started from a broadcast receiver\r\n(listening for changes to phone state):\r\n\r\n{code}\r\npackage com.phone;\r\n\r\nimport android.app.Activity;\r\nimport android.content.Intent;\r\nimport android.os.Bundle;\r\nimport android.util.Log;\r\nimport android.view.Gravity;\r\nimport android.view.View;\r\nimport android.view.View.OnClickListener;\r\nimport android.view.Window;\r\nimport android.view.WindowManager;\r\nimport android.widget.Button;\r\n\r\npublic class ButtonActivity extends Activity implements OnClickListener {\r\n private static final String TAG = \"ServicesDemo\";\r\n Button buttonStart, buttonStop;\r\n\r\n @Override\r\n public void onCreate(Bundle savedInstanceState) {\r\n super.onCreate(savedInstanceState);\r\n\r\n \r\n Window window = getWindow();\r\n \r\n window.setLayout(100, 100);\r\n window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,\r\n WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);\r\n window.setGravity(Gravity.LEFT);\r\n window.setContentView(R.layout.main);\r\n \r\n }\r\n\r\n@Override\r\npublic void onClick(View v) {\r\n\t// TODO Auto-generated method stub\r\n\t\r\n}\r\n \r\n}\r\n{code}\r\n\r\n{code}\r\npackage com.phone;\r\n\r\nimport android.app.Activity;\r\nimport android.content.BroadcastReceiver;\r\nimport android.content.Context;\r\nimport android.content.Intent;\r\nimport android.util.Log;\r\n\r\npublic class IncomingReceiver extends BroadcastReceiver {\r\n\r\n\t\r\n @Override\r\n public void onReceive(Context context, Intent intent) {\r\n \r\n \r\n Log.i(\"com.phone\", \"onReceive\");\r\n try {\r\n \t\r\n \r\n \tIntent activityIntent = new Intent(context, ButtonActivity.class);\r\n \tactivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\r\n \tcontext.startActivity(activityIntent);\r\n \tLog.i(\"com.phone\", \"Started activity\");\r\n }\r\n catch (Exception exp) {\r\n \tLog.i(\"com.phone\", \"Caught exception trying to start activity \" + exp.toString());\r\n }\r\n\r\n }\r\n\r\n\r\n}\r\n{code}\r\n\r\n{code}\r\n\r\n\r\n\r\n \r\n\r\n\r\n{code}\r\n\r\n{code}\r\n\r\n\r\n \r\n \r\n\r\n{code}\r\n\r\nAndroidManifest.xml\r\n{code}\r\n\r\n\r\n \r\n\r\n\t\t\r\n\t\t \r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n{code}",
"updateAuthor": {
"name": "krowley",
"key": "krowley",
"displayName": "Karl Rowley",
"active": true,
"timeZone": "America/Los_Angeles"
},
"created": "2012-11-02T21:55:49.000+0000",
"updated": "2012-11-02T21:58:06.000+0000"
},
{
"id": "226223",
"author": {
"name": "krowley",
"key": "krowley",
"displayName": "Karl Rowley",
"active": true,
"timeZone": "America/Los_Angeles"
},
"body": "A Javascript version of the transparent activity would look \nsomething like the following. A problem here is that the \nactivity in the background does not show through -- I am not \nsure how to bypass the splash screen here so that the existing \nactivity shows.\n\n{code}\nvar win = Titanium.UI.createWindow({\n id: \"propertyWindow\",\n title: \"My New Window\",\n modal: true,\n width:100,\n height: 100,\n top: 100,\n left: 0, \n full: false,\n opacity: 0.5,\n topMost: true,\n visible: true,\n transparentBackground: true,\n transparency: true\n });\n \n var button = Titanium.UI.createButton({title: \"Button\"});\n button.height=100;\n button.width=100;\n button.left=0;\n button.top=100;\n win.add(button);\n \nwin.width=100;\nwin.height=100;\nwin.left=0;\nwin.top=100;\nwin.open();\n\n{code}",
"updateAuthor": {
"name": "krowley",
"key": "krowley",
"displayName": "Karl Rowley",
"active": true,
"timeZone": "America/Los_Angeles"
},
"created": "2012-11-05T22:54:54.000+0000",
"updated": "2012-11-05T22:54:54.000+0000"
},
{
"id": "226398",
"author": {
"name": "ingo",
"key": "ingo",
"displayName": "Ingo Muschenetz",
"active": true,
"timeZone": "America/Los_Angeles"
},
"body": "Module needs to be be 2.1.X compatible (and should also work on 3.0.0). Once we've figured out for sure this is a module item, be can move the ticket and remove the merge tags.",
"updateAuthor": {
"name": "ingo",
"key": "ingo",
"displayName": "Ingo Muschenetz",
"active": true,
"timeZone": "America/Los_Angeles"
},
"created": "2012-11-06T22:52:54.000+0000",
"updated": "2012-11-06T22:52:54.000+0000"
},
{
"id": "227874",
"author": {
"name": "ingo",
"key": "ingo",
"displayName": "Ingo Muschenetz",
"active": true,
"timeZone": "America/Los_Angeles"
},
"body": "Should we resolve this ticket as \"on hold\" until the module is done?",
"updateAuthor": {
"name": "ingo",
"key": "ingo",
"displayName": "Ingo Muschenetz",
"active": true,
"timeZone": "America/Los_Angeles"
},
"created": "2012-11-19T17:44:11.000+0000",
"updated": "2012-11-19T17:44:11.000+0000"
},
{
"id": "244753",
"author": {
"name": "farfromrefuge",
"key": "farfromrefuge",
"displayName": "Martin Guillon",
"active": false,
"timeZone": "Europe/Berlin"
},
"body": "That's actually already possible. I already do it.\r\nYou only need to use android theming system.\r\nUse a style like this\r\n\r\n\r\n\r\nAnd it will give you a transparent window",
"updateAuthor": {
"name": "farfromrefuge",
"key": "farfromrefuge",
"displayName": "Martin Guillon",
"active": false,
"timeZone": "Europe/Berlin"
},
"created": "2013-03-30T16:47:44.000+0000",
"updated": "2013-03-30T16:47:44.000+0000"
}
],
"maxResults": 16,
"total": 16,
"startAt": 0
}
}
}