{
	"id": "175706",
	"key": "TIMOB-28231",
	"fields": {
		"issuetype": {
			"id": "4",
			"description": "An improvement or enhancement to an existing feature or task.",
			"name": "Improvement",
			"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": "21052",
				"description": "",
				"name": "Release 9.3.0",
				"archived": false,
				"released": true,
				"releaseDate": "2020-12-14"
			}
		],
		"resolution": {
			"id": "1",
			"description": "A fix for this issue is checked into the tree and tested.",
			"name": "Fixed"
		},
		"resolutiondate": "2020-11-16T21:39:39.000+0000",
		"created": "2020-11-06T04:33:16.000+0000",
		"epic": {
			"id": 175371,
			"key": "TIMOB-28045",
			"name": "Android 11: Implement Support",
			"summary": "Android 11: Implement Support",
			"color": {
				"key": "color_3"
			},
			"done": false
		},
		"priority": {
			"name": "High",
			"id": "2"
		},
		"labels": [
			"android",
			"externalstorage",
			"filesystem"
		],
		"versions": [],
		"issuelinks": [],
		"assignee": {
			"name": "jquick",
			"key": "jquick",
			"displayName": "Joshua Quick",
			"active": true,
			"timeZone": "America/Los_Angeles"
		},
		"updated": "2020-11-16T21:39:39.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": "*Summary:*\r\nThe Android [externalStorageDirectory|https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Filesystem-property-externalStorageDirectory] is currently set to a location outside of \"scoped storage\". As of Android 10, you cannot write to this location unless you set \"AndroidManfiest.xml\" {{}} attribute {{requestLegacyExternalStorage}} to {{true}}.\r\nhttps://developer.android.com/about/versions/11/privacy/storage\r\n\r\n*Solution:*\r\nUse the folder location returned by the Java [Context.getExternalFilesDir()|https://developer.android.com/reference/android/content/Context#getExternalFilesDir(java.lang.String)] method. This is a private sandboxed directory for the app that falls under scoped storage.\r\n\r\n*Note 1:*\r\nWith this change, you do *+NOT+* need the following permissions anymore.\r\n* READ_EXTERNAL_STORAGE\r\n* WRITE_EXTERNAL_STORAGE\r\n\r\n*Note 2:*\r\nWith this change, you do *+NOT+* need to use the following APIs anymore.\r\n* [Ti.Filesystem.hasStoragePermissions()|https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Filesystem-method-hasStoragePermissions]\r\n* [Ti.Filesystem.requestStoragePermissions()|https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Filesystem-method-requestStoragePermissions]\r\n\r\n*Note 3:*\r\nThe new folder location supports automatic back-up by the Android OS. This means when you uninstall and re-install the app, the files you've written to external storage will be restored.\r\n\r\n*Work-Around:*\r\nFor apps built with Titanium 8.3.0 - 9.2x, you can read/write to {{externalStorageDirectory}} by doing the following in your \"tiapp.xml\" file.\r\n{code:xml}\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n{code}\r\n",
		"attachment": [
			{
				"id": "67638",
				"filename": "FileExternalTest.js",
				"author": {
					"name": "jquick",
					"key": "jquick",
					"displayName": "Joshua Quick",
					"active": true,
					"timeZone": "America/Los_Angeles"
				},
				"created": "2020-11-09T22:04:46.000+0000",
				"size": 1447,
				"mimeType": "application/x-javascript"
			}
		],
		"flagged": false,
		"summary": "Android: Change Ti.Filesystem.externalStorageDirectory to use scoped storage",
		"creator": {
			"name": "jquick",
			"key": "jquick",
			"displayName": "Joshua Quick",
			"active": true,
			"timeZone": "America/Los_Angeles"
		},
		"subtasks": [],
		"reporter": {
			"name": "jquick",
			"key": "jquick",
			"displayName": "Joshua Quick",
			"active": true,
			"timeZone": "America/Los_Angeles"
		},
		"environment": null,
		"closedSprints": [
			{
				"id": 1210,
				"state": "closed",
				"name": "2020 Sprint 23",
				"startDate": "2020-11-09T17:49:00.000Z",
				"endDate": "2020-11-20T17:49:00.000Z",
				"completeDate": "2020-11-20T17:46:00.641Z",
				"originBoardId": 114
			}
		],
		"comment": {
			"comments": [
				{
					"id": "457475",
					"author": {
						"name": "jquick",
						"key": "jquick",
						"displayName": "Joshua Quick",
						"active": true,
						"timeZone": "America/Los_Angeles"
					},
					"body": "PR (master): https://github.com/appcelerator/titanium_mobile/pull/12253",
					"updateAuthor": {
						"name": "jquick",
						"key": "jquick",
						"displayName": "Joshua Quick",
						"active": true,
						"timeZone": "America/Los_Angeles"
					},
					"created": "2020-11-07T06:27:53.000+0000",
					"updated": "2020-11-07T06:27:53.000+0000"
				},
				{
					"id": "457521",
					"author": {
						"name": "lchoudhary",
						"key": "lchoudhary",
						"displayName": "Lokesh Choudhary",
						"active": true,
						"timeZone": "America/Los_Angeles"
					},
					"body": "FR Passed.\r\nPR Merged.",
					"updateAuthor": {
						"name": "lchoudhary",
						"key": "lchoudhary",
						"displayName": "Lokesh Choudhary",
						"active": true,
						"timeZone": "America/Los_Angeles"
					},
					"created": "2020-11-16T21:39:00.000+0000",
					"updated": "2020-11-16T21:39:00.000+0000"
				}
			],
			"maxResults": 2,
			"total": 2,
			"startAt": 0
		}
	}
}