Skip to content
Titanium SDK

Titanium SDK 9.3.0.GA

Released

Titanium SDK 9.3.0.GA - 14 December 2020

About this release

Titanium SDK 9.3.0 is a minor release of the SDK, addressing high-priority issues from previous releases.

As of this release, Titanium SDK 9.2.x will not receive updates more than six months after the release of 9.3.0 (2021-05-14). Any needed fixes will be in 9.3.x or later supported releases within the 9.x branch. See Axway Appcelerator Deprecation Policy and Nominal Lifetimes documents for details.

::: danger ❗️ Warning With the release of Titanium SDK 9.0.0, we no longer support Node.js 8.X. Node 10.13.0 is the new minimum supported version. :::

Overview

Titanium SDK 9.3.0 is primarily focused on providing support for Android 11.

Community Credits

Features

Android platform

  • TIMOB-28045 - Android 11 Support

  • TIMOB-18069 - make ListSection.getItemCount() and/or getContentCount() public

  • TIMOB-24983 - Add "HTTPClient.responseHeaders" support (feature parity with iOS)

  • TIMOB-25556 - Extend drawerLockMode to set Gravity

  • TIMOB-25854 - Grant WebView permissions for Audio/Video WebRTC streams

  • TIMOB-25991 - RefreshControl in ListView only works when dragging content

  • TIMOB-27077 - Rewrite Ti.UI.TableView to use RecyclerView

  • TIMOB-27138 - Add photo/video capture support to WebView

  • TIMOB-27201 - Update "Ti.Filesystem.File" to support unimplemented APIs when wrapping a "content://" URL

  • TIMOB-27714 - Add "Material Components" theme support (eb46ca0)

  • TIMOB-27743 - Remove hidden API usage from SDK

  • TIMOB-27787 - Add C/C++ debugging to SDK test app builds

  • TIMOB-27838 - Style default tableViewSection headerTitle using XML

  • TIMOB-27859 - Add "badge" support to TabGroup

  • TIMOB-27873 - Remove "nineoldandroids" library from SDK

  • TIMOB-27887 - Support WebAssembly in V8

  • TIMOB-27934 - Update "ti.playservices" module to use 17.5.0

  • TIMOB-27948 - Use of wrong string operator in string comparison in TiJSService

  • TIMOB-27970 - Update V8 runtime to 8.4

  • TIMOB-28046 - Compile with SDK version 30 (Android 11)

  • TIMOB-28047 - Target API Level 30 (Android 11) by default (4490c3e)

  • TIMOB-28049 - Investigate "ACCESS_BACKGROUND_LOCATION" handling on Android 11

  • TIMOB-28050 - Investigate "package visibility" handling on Android 11

  • TIMOB-28051 - Add foreground service type constants for "camera" and "microphone" (8fcbd4a) (0e98584)

  • TIMOB-28057 - Modify WebView to use scoped storage for <input/> file selection

  • TIMOB-28058 - Change Ti.Filesystem "temp" APIs to use app's cache folder

  • TIMOB-28059 - Modify Ti.Media APIs to use scoped storage

  • TIMOB-28080 - Add "tapjacking" prevention features (34cbeea) (413da3e)

  • TIMOB-28084 - use material theme by default (00e2816)

  • TIMOB-28087 - Add "NoTitleBar" and "Fullscreen" themes which derive from custom app theme (00e2816)

  • TIMOB-28088 - Rewrite Ti.UI.ListView to use RecyclerView

  • TIMOB-28102 - Update module Kotlin language support to 1.4.x (5dc0872)

  • TIMOB-28140 - WebView should request location permission when HTML uses geolocation API

  • TIMOB-28146 - Ti.Filesystem.File rename() should support an absolute path in same directory

  • TIMOB-28173 - Update gradle to 6.7

  • TIMOB-28182 - Only add WRITE_EXTERNAL_STORAGE permission when needed

  • TIMOB-28183 - Add Ti.Media.requestPhotoGalleryPermissions() support

  • TIMOB-28214 - Remove dead "TiAuthenticator" Java code to avoid security warnings

  • TIMOB-28223 - Use vector graphics for list/table icons

  • TIMOB-28230 - Add Ti.Filesystem.externalCacheDirectory support

  • TIMOB-28231 - Change Ti.Filesystem.externalStorageDirectory to use scoped storage

  • TIMOB-28269 - Amend session event behaviour

  • MOD-2588 - add passcode fallback to ti.identity (7e7934d)

iOS platform

  • TIMOB-27984 - allow multiple photo selection (8b53023)

  • TIMOB-28195 - Add node-ios-device v1 support for Node 14

  • add iphone 12 models to Node.js os shim (69bf699)

  • add new constants for Ti.Media.VIDEO_MEDIA_TYPE_ (d85d6f8)

Multiple platforms

  • add "build.post.install" build hook (372bf70) (7186384)

  • emit 'create.module.app.finalize' build hook during module build before launching test app (8778f3f) (403d7e2)

Bug Fixes

Android platform

  • TIMOB-15015 - TableView.headerView cannot be set after setting data

  • TIMOB-16498 - Undesired tableView separatorColor is appearing in footerView

  • TIMOB-24874 - Selected row does not stay highlighted when using a TableView.

  • TIMOB-25333 - SearchBar height should default to Ti.UI.SIZE like iOS instead of FILL

  • TIMOB-26602 - Ti.Media.takePicture() will wrongly assign mp4 extension to image file if camera is configured for MEDIA_TYPE_VIDEO

  • TIMOB-26887 - TableView "headerTitle" and "footerTitle" cannot be changed after creation

  • TIMOB-27481 - Navigating back from camera overlay can wrongly close the app

  • TIMOB-27796 - TableViewSection does not scroll after a certain point

  • TIMOB-27948 - string reference equality in service (5ba35d3)

  • TIMOB-28027 - Build fails as duplicate string with "app_name" in i18n strings.xml file (98ff0e7) (d8d442e)

  • TIMOB-28048 - RefreshControl in TableView only works when dragging content

  • TIMOB-28079 - ACA module no longer loaded first on startup as of 8.1.0

  • TIMOB-28081 - App build fails if it includes an Apache "commons-logging" library

  • TIMOB-28084 - Modal/Translucent window ignores <navbar-hidden/> setting in "tiapp.xml"

  • TIMOB-28105 - AudioRecorder "recording" and "stopped" properties return the wrong state values (340bc36) (8e8d160)

  • TIMOB-28149 - App builds fail if it includes "Java-WebSocket" library

  • TIMOB-28161 - Modules built with 9.1.0 and using deprecated getter/setter property methods will crash on 9.0.x apps (6e025c5)

  • TIMOB-28162 - TableViewRow does not scale to height of parent

  • TIMOB-28163 - TableViewRow ignores borderRadius

  • TIMOB-28164 - TableViewRow displays incorrect background upon press

  • TIMOB-28165 - TableViewRow does not activate ripple effect from child views

  • TIMOB-28166 - TableViewRow does not apply opacity to child views

  • TIMOB-28167 - ListViewItem does not activate ripple effect from child views

  • TIMOB-28176 - createTempDirectory() does not create a directory

  • TIMOB-28177 - createTempFile() should create file under Ti.Filesystem.tempDirectory

  • TIMOB-28178 - Canceling out of Ti.Media.openPhotoGallery() causes a crash as of 9.1.0 (0e284e5)

  • TIMOB-28189 - Opening TabGroup crashes when using AppCompat theme as of 9.3.0 (6403da2)

  • TIMOB-28193 - Selecting multiple photos/videos via openPhotoGallery() can cause a crash as of 9.1.0 (0b1116f)

  • TIMOB-28212 - Listview modifies other rows on scroll

  • TIMOB-28220 - tintColor/activeTintColor or titleColor/activeTitleColor not respected for tabgroup with style TABS_STYLE_BOTTOM_NAVIGATION (f640850)

  • TIMOB-28222 - Ti.Android.R.transition doesn't exist (2773c51)

  • TIMOB-28240 - TableViewRow unable to change colour of row after a set time (Regression)

  • TIMOB-28246 - Ti.Media.previewImage() fails to display in-memory blobs as of 9.1.0 (984f811)

  • TIMOB-28252 - Modules built before 9.3.0 will return empty string instead of null

  • TIMOB-28271 - The searchBar border not shown in tableview/listview

  • TIMOB-28276 - ListView/TableView "headerView" may not show when setting height as of 9.3.0

  • TIMOB-28283 - Hyperloop based requires fail to load when using "remote" encryption policy

  • add accessor for Ti.Media.fullscreen property, default initialPlaybackTime to 0 (204827d)

  • allow overriding of toString() (f20ed51)

  • amend chevron vector icon color and size (8fde5bb)

  • amend icon color and size (8e63037)

  • amend size of more icon (ae23408)

  • amend Ti.UI.Shortcut implementation (975af13)

  • debug snapshot generation (dcfd0c7)

  • default to newer scalingMode constant default value (c151ff0)

  • draw outer border path correctly (e8c6d54)

  • formatting (db0cd77)

  • formatToParts() on Android 4.4 (2a2f0dc)

  • match static value for Ti.Media.MEDIA_TYPE_VIDEO to iOS (b0f6527)

  • null out Ti.UI.Window's navigationWindow property before close event (bdce8ae)

  • remove Ti.Media.VideoPlayer.contentURL property (5bf7826)

  • remove unnecessary v8 refs (4122858)

  • return empty array rather than null for Ti.Media.availableCameras if no cameras (48006b6)

  • snapshot template (3eab6b7)

  • start zip read, close zipfile when done (bdf7d36)

  • update more icon into down chevron (569dc77)

  • use manifest shortcuts for staticItems (79102ee)

  • window toString() (d1fd590)

Multiple platforms

  • TIMOB-28200 - Angular: Project created from template fails build with type errors

  • set prompt on project dir option (f5a4391)

  • return back userInfo.gid not guid (a70bbe3)

iOS platform

  • TIMOB-13903 - Reading TableView's "sectionCount" property crashes app (149eb4a)

  • TIMOB-27935 - TableViewRow does not return getRect methods

  • TIMOB-28111 - TabGroup focus event firing unexpectedly (5fa704d)

  • TIMOB-28148 - app crashes when updating tableview

  • TIMOB-28160 - "unrecognized selector sent to instance" logged for errors from native side

  • TIMOB-28207 - Packaging fails when Xcode path contains a space

  • TIMOB-28211 - The color property of Ti.UI.Button does not work when used in navbar (66e8d37)

  • TIMOB-28218 - Ti.UI.Clipboard example usage crashes on macOS

  • TIMOB-28219 - Ti.UI.Clipboard#remove() doesn't exist, but is documented

  • TIMOB-28221 - Default value of property Ti.Media.VideoPlayer.pictureInPictureEnabled should be true (ba7e5aa)

  • TIMOB-28232 - Several memory leaks in Titanium

  • TIMOB-28227 - Ti.UI.dateTimeColor is crashing on mac

  • fix Ti.Filesystem.getAsset and getFile on devices (3b2865d)

  • fix typo on Ti.Media.MUSIC_PLAYER_STATE_SEEK_FORWARD (de780ec)

  • gaurd code for MediaModule on xcode 11 to avoid compile issues (4144c96)

  • get rid of removed constants/properties (8a9a05e)

  • handle adding Ti.UI.Shortcut when existing array is nil (f967cf9)

  • modify BOOL to bool for return types to fix JS representation (43042cc)

  • set Ti.Codec.CHARSET_ISO_LATIN_1 to 'latin1' (4123b9b)

  • shortcut guard in Ti.UI module (7f44d8d)

SDK Module Versions

Module Android version iOS version
facebook 10.0.0 9.0.0
ti.cloudpush 7.1.0 n/a
ti.map 5.0.1 4.0.1
ti.webdialog 2.0.0 2.0.0
ti.playservices 17.5.0 n/a
ti.identity 3.0.2 3.0.0
urlSession n/a 3.0.0
ti.coremotion n/a 3.0.0
ti.applesignin n/a 2.0.0
ti.cloud 3.2.11 3.2.11
hyperloop 6.0.2 6.0.2