Skip to content

Releases: Temasys/skylink-android-sample

2.3.1

30 Aug 09:01
Compare
Choose a tag to compare
  • Updated Temasys SDK for Android to the latest - 2.3.1.
  • Integrated message caching feature into Skylink Chat sample.

Sample app 2.2.0

18 Jan 02:47
Compare
Choose a tag to compare

Update sample app to use Android SDK 2.2.0

Screensharing for Android X

06 Nov 03:54
Compare
Choose a tag to compare
  • 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

25 May 05:55
Compare
Choose a tag to compare

Fix audio echo issue happens on some specific devices like Nokia, Xiaomi

2.1.0

10 Mar 08:09
Compare
Choose a tag to compare

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

14 Feb 04:26
Compare
Choose a tag to compare

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

20 Apr 10:39
Compare
Choose a tag to compare
  • 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
  • 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.
  • 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.
  • 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.
  • 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

19 Jul 14:03
Compare
Choose a tag to compare
  • 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.
  • 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.
  • 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.
  • 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

18 Apr 05:13
Compare
Choose a tag to compare
  • 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

06 Mar 20:39
Compare
Choose a tag to compare
  • 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.
    • 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!
  • 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.