Releases: Temasys/skylink-android-sample
Releases · Temasys/skylink-android-sample
2.3.1
Sample app 2.2.0
Update sample app to use Android SDK 2.2.0
Screensharing for Android X
- Updated to Skylink Android 2.1.5, which adds a new screensharing implementation for devices using Android 29+, and targetSdkVersion 29+
- Added application level code required for the new screensharing logic
- compileSdkVersion moved to 29
- targetSdkVersion moved to 29
- minSdkVersion moved to 21
2.1.2
2.1.0
What's New
- Improve UI, logic for video resolution separation between video camera and video screen
- Include mediaType in video resolution APIs to separate the camera and screen video resolution
- Update CustomSeekBar class to draw correct dividers in VideoResFragment
- Implement stored message and asynchronous message feature
- Add button for user to get stored message
- Display stored messages in the message collection
- Change UI in ChatFragment to display the message with 3 values: messageContent, userName, timeStamp
- Create MessageModel to bind to the ListView in ChatFragment
- Update ChatListAdapter to use the MessageModel for the ListView and display message row type properly
- Add UI and logic for user freely to choose options when sending messages : toPersist message, add, delete + and choose encryption key, message format
- Add UI in setting page for user to set timeout for getting stored message
- Add more advanced config settings on UI
- Add UI for setting all SkylinkConfig's public properties in SettingFragment
- Save all setting values to app share preferences for using multiple sessions
- Setting all default values for SkylinkConfig in the SDK base on the default setting page
- Add reset to default value button on Common Settings and Room Settings fragments
- Improve UI for Room Settings Fragments
- Add the ability to provide a common room and user name for all demos
- Add network transport default value as null in the Setting UI
- Fix some issues
- Correct timeout for file transfer
- Correct selecting 5th, 6th, 7th remote peer when user clicks on the peer button in the menu bar on FileTransferFragment, DataTransferFragment
- Fix issue that SA crash when user deny the permission for screen sharing
- Change demos names: Video to One to 1 Media, Data transfer to Data Streaming, MultiVideos to Multiparty
- Add permission android.permission.ACCESS_NETWORK_STATE in Manifest for checking networks status
2.0.0
What's New
- Adopted an MVP architecture to better separate Skylink SDK usage from UI and demo logic. See SAArch.md for more details.
- Added default configuration settings for audio output as headset or speaker, video device and video resolution
- Improved UI for all demos for better UI and performance
- Customised the action bar to display room info and participants
- Added UI and function for audio output as headset or speaker in the audio demo and the video demo
- Added UI for lock room functionality for the video demo
- Added UI for independently control of audio, video and screen share media inclusion in the video demo
- Added UI to initiate and stop screen share from Mobile in the video demo
- Provided full-screen mode function and switchable as well as movable views in the video demo
- Changed UI for video resolution display
- Added functionalities to preview files for file/data transfer demo and allow browsing to identify file/data to be sent
- Increased maximum remote connected peers for audio to 5 and for chat/file/data transfer to 7
- Added a Temasys image banner, which, when clicked, directs to the Temasys Website.
0.11.0
- Upgraded to the newly released Skylink SDK for Android 0.11.0.
- Used new SkylinkConnection API(s)
- In all samples:
- getSkylinkState
- In VideoCallFragment, MultiPartyVideoCallFragment:
- getInputVideoResolution
- getReceivedVideoResolution
- getSentVideoResolution
- In VideoCallFragment:
- getCurrentCameraName
- getCaptureFormat
- getCaptureFormats
- getCurrentVideoDevice
- setInputVideoResolution
- In all samples:
- Implemented new MediaListener methods.
- In AudioCallFragment, VideoCallFragment, MultiPartyVideoCallFragment.
- Handled the methods of MediaListener:
- onInputVideoResolutionObtained
- onReceivedVideoResolutionObtained
- onSentVideoResolutionObtained
- Used new SkylinkConfig API(s)
- In VideoCallFragment, MultiPartyVideoCallFragment:
- setReportVideoResolutionOnChange
- Set to true to enable video resolution to be automatically reported when video dimension changes.
- setReportVideoResolutionOnChange
- In VideoCallFragment, MultiPartyVideoCallFragment:
- Added Utils method isConnectingOrConnected.
- Determines if we are currently connected or at least in process of connecting, by checking current SkylinkConnection.SkylinkState.
- Added ability to adjust (input) and display input, sent, and received video resolution in VideoCallFragment.
- Added SeekBars and TextViews for controlling resolution dimensions (width, height in pixels) and framerate in fps, frame per second).
- TextViews display input, sent and received video resolution.
- Change SeekBars position to change resolution dimensions and framerate.
- SeekBars logic for setting new video resolutions:
- onProgressChanged: Update TextView UI value.
- onStopTrackingTouch: Call SDK to update resolution via setInputVideoResolution.
- SeekBars logic for setting new video resolutions:
- Added SeekBars and TextViews for controlling resolution dimensions (width, height in pixels) and framerate in fps, frame per second).
- Added ability to trigger display of input, sent, and received video resolution in MultiPartyVideoCallFragment.
- To get current input video resolutions:
- Tap on local Peer video.
- In Pop up menu, select "INPUT VIDEO RESOLUTIONS".
- This will call Skylink APIs to get the input video resolution.
- To get current sent and received video resolutions to a specific remote Peer:
- Tap on specific remote Peer video.
- In Pop up menu, select either "Video Res: Sent" or "Video Res: Recv".
- This will call Skylink APIs to get the video resolution sent to or received from the remote Peer.
- To get current input video resolutions:
- Improved UIs in VideoCallFragment and MultiPartyVideoCallFragment:
- Both local and remote views show true aspect ratios.
- Allowed entire local and remote views to be shown.
- Added compileOptions to build.gradle for Java 8, due to requirement of new libWebRTC.
- sourceCompatibility 1.8
- targetCompatibility 1.8
- Fixes:
- Fixed error in getting file path when file path is manually entered on FileTransferFragment UI.
0.10.0
- Upgraded to the newly released Skylink SDK for Android 0.10.0.
- Updated targetSdkVersion to 23, compileSdkVersion to 25.
- Supports Android Runtime permissions on Android 6.0 and above.
- Used new SkylinkConnection API(s)
- processPermissionsResult
- Called in Utils#onRequestPermissionsResultHandler to handle Android's onRequestPermissionsResult.
- processPermissionsResult
- Implemented new Listener, OsListener.
- In fragments VideoCall, MultiPartyVideoCall, AudioCall, FileTransfer.
- Handled the methods of OsListener using methods provided in SA Utils:
- onPermissionRequired via onPermissionRequiredHandler
- onPermissionGranted via onPermissionGrantedHandler
- onPermissionDenied via onPermissionDeniedHandler
- Created means in Utils to put permission requests in a queue and process them one at a time from the queue.
- This is to avoid Android giving empty permissions results array at the onRequestPermissionsResult callback when more than 1 permission is processed at the same time.
- Each request is handled by a new class PermRequester that stores parameters required for making permission request and have methods to perform permission request.
- PermRequesters are queued in ArrayDeque permQ.
- Request is created when handling OsListener#onPermissionRequired.
- Request is considered completed when cancelled or when onRequestPermissionsResult is called.
- Used new SkylinkConnection API(s)
- getWebrtcStats
- Called in MultiPartyVideoCallFragment to request for WebRTC statistics of the specified media streams
- getTransferSpeeds
- Called in MultiPartyVideoCallFragment to request for transfer speeds of the specified media streams.
- getWebrtcStats
- Implemented new Listener, StatsListener.
- In MultiPartyVideoCallFragment.
- Handled the methods of StatsListener:
- onTransferSpeedReceived
- onWebrtcStatsReceived
- Added ability to log WebRTC stats and transfer speeds in MultiPartyVideoCallFragment.
- Tap on remote Peer video.
- In Pop up menu,
- To log WebRTC stats for this Peer, select "WebRTC stats (OFF)".
- WebRTC stats will be logged for this Peer (both sending and receiving).
- Via new SkylinkConnection API getWebrtcStats.
- To turn off logging, in the same Pop up menu, select "WebRTC stats (ON)".
- If not turned off, logging of WebRTC stats will continue to occur at regular intervals.
- To log transfer speeds for this Peer, select "Transfer speed".
- Transfer speeds for all media streams with this Peer will be logged in kilobit per second (kbps).
- Via new SkylinkConnection API getTransferSpeeds.
- To log WebRTC stats for this Peer, select "WebRTC stats (OFF)".
- Enhanced FileTransferFragment to enable manual selection of file to send.
- After selecting Peer(s) to send to, click on file path and enter desired file path.
- File path will be validated to be a file before change is accepted.
- Improved usage of Info and Errors.
- Errors will be delivered via lifeCycleListener.onWarning instead of lifeCycleListener.onReceiveLog.
- New Errors.VIDEO_UNABLE_TO_START_CAMERA_ERROR replaced:
- Info.CAM_START_NO and Errors.VIDEO_UNABLE_TO_START
- New Errors.VIDEO_UNABLE_TO_SWITCH_CAMERA_ERROR replaced:
- Info.CAM_SWITCH_NO and Errors.VIDEO_SWITCH_CAMERA_ERROR
0.9.8.1
- Upgraded to the newly released Skylink SDK for Android 0.9.8.1.
- Used new SkylinkConnection APIs
- getRoomId [NEW]
- Ensures connectionString components (appKey, roomName, dateString) are url safe.
- Improved logging or display of self userId, nick, roomName, and roomId for all samples.
- In VideoCallFragment and MultiPartyVideoCallFragment, simply tap self view for these info.
- Enable selecting of text for greater ease of use:
- Self and room info.
- Received chat message.
- Fixed display of self view on VideoCallFragment when remote Peer leaves.
0.9.8
- Upgraded to the newly released Skylink SDK for Android 0.9.8.
- Used new SkylinkConnection APIs
- refreshConnection [NEW]
- Used new/changed Listener methods
- onRemotePeerConnectionRefreshed [NEW]
- onRemotePeerLeave
- Added Popup menu for each remote Peer frame for actions in MultiPartyVideoCallFragment.
- Added Configuration page that allows setting various values without recompiling the Sample App.
- Values that can be set:
- Room names.
- User names.
- App Keys - including key ids, secrets and descriptions, and whether each is Skylink Media Relay (SMR) enabled.
- Can be accessed by:
- Click on action overflow icon (at top right).
- Select "Configuration".
- Select the rooms or App key tab for accessing room/user names or App key values respectively.
- Configuration page values are stored and loaded from Preferences.
- Selected App Key
- An App key becomes the selected App key by tapping on the radio button on its left at the App keys Config page.
- If Selected App key is deleted, Default key of the same SMR status becomes Selected App key.
- Manipulation of App key lists.
- Can Add, Edit, Delete.
- No duplication of key id allowed.
- If new key id entered (via adding or editing) already exists
- Existing key is removed.
- Except where existing key is Default key, in which case operation is abandoned.
- If new key id entered (via adding or editing) already exists
- Room and user name values:
- Writen and loaded from Preferences.
- Able to revert to Default room and user names by either:
- Deleting current value.
- Clicking button to reset to Default.
- Will reset all values on the page!
- Values that can be set:
- config.xml now provides Default values for:
- App key and App key's secret.
- 2 sets of this - one with Skylink Media Relay (SMR) Enabled and the other with it disabled.
- If not provided and that App key was selected to connect to room, an error would occur in the attempt to connect.
- SMR enabled or not (is_app_key_smr).
- If Default key is used, this value will be used to choose (out of the two) the Default key with this value of SMR status.
- Note that this file can be created by making a copy of the Config_example.xml at src/main/res/values.
- Further instructions are given in Config_example.xml.
- App key and App key's secret.