이전 버전 업데이트 내역

v1.5.6 (2024-02-28)


v1.5.5 (2024-02-06)

Migration guide

@Deprecated("Use `ShopLiveHandler.handleShare(context: Context, data: ShopLivePlayerShareData)` instead.")
override fun handleShare(context: Context, shareUrl: String)

// Use this method
override fun handleShare(context: Context, data: ShopLivePlayerShareData)

v1.5.4 (2024-01-19)

Migration guide

@Deprecated("Use `ShopLiveHandler.handleCustomAction(context: Context, id: String, type: String, payload: JSONObject, callback: ShopLiveHandlerCallback)` instead.")
fun handleCustomAction(context: Context, id: String, type: String, payload: String, callback: ShopLiveHandlerCallback)

// Use this method
fun handleCustomAction(context: Context, id: String, type: String, payload: JSONObject, callback: ShopLiveHandlerCallback)

v1.5.3.1 (2024-01-15)

  • Live player
    • 플레이어의 성능이 개선되었습니다.
  • Short-form
    • Short-form 성능이 개선되었습니다.

v1.5.3 (2024-01-09)

Migration guide

@Deprecated("Use `Shortform.setNativeHandler(nativeHandler: ShopLiveShortformNativeHandler)` instead.")
fun setNativeHandler(activity: Activity, nativeHandler: ShopLiveShortformNativeHandler)

// Use this method
fun setNativeHandler(nativeHandler: ShopLiveShortformNativeHandler)

v1.5.2 (2023-12-04)

Migration guide

@Deprecated("Use `ShopLive.play(context: Context, data: ShopLivePlayerData)` instead.")
fun play(campaignKey: String)
@Deprecated("Use `ShopLive.play(context: Context, data: ShopLivePlayerData)` instead.")
fun play(campaignKey: String, referrer: String?)
@Deprecated("Use `ShopLive.play(context: Context, data: ShopLivePlayerData)` instead.")
fun play(context: Context, campaignKey: String)
@Deprecated("Use `ShopLive.play(context: Context, data: ShopLivePlayerData)` instead.")
fun play(context: Context, campaignKey: String, referrer: String?)
@Deprecated("Use `ShopLive.play(context: Context, data: ShopLivePlayerData)` instead.")
fun play(campaignKey: String, keepWindowStateOnPlayExecuted: Boolean)
@Deprecated("Use `ShopLive.play(context: Context, data: ShopLivePlayerData)` instead.")
fun play(campaignKey: String, keepWindowStateOnPlayExecuted: Boolean, referrer: String?)
@Deprecated("Use `ShopLive.play(context: Context, data: ShopLivePlayerData)` instead.")
fun play(context: Context, campaignKey: String, keepWindowStateOnPlayExecuted: Boolean)
@Deprecated("Use `ShopLive.play(context: Context, data: ShopLivePlayerData)` instead.")
fun play(context: Context, campaignKey: String, keepWindowStateOnPlayExecuted: Boolean, referrer: String?)

// Use this method
fun play(context: Context, data: ShopLivePlayerData)
@Deprecated("Use `ShopLive.showPreviewPopup(activity: Activity, data: ShopLivePreviewData)` instead.")
fun showPreviewPopup(
    activity: Activity,
    accessKey: String,
    campaignKey: String,
    canTransition: Boolean = true,
    canVibrated: Boolean = true,
    useCloseButton: Boolean = false,
    position: ShopLivePreviewPositionConfig = ShopLivePreviewPositionConfig.BOTTOM_RIGHT
)
@Deprecated("Use `ShopLive.showPreviewPopup(activity: Activity, data: ShopLivePreviewData)` instead.")
fun showPreviewPopup(data: ShopLivePreviewData)

// Use this method
fun showPreviewPopup(activity: Activity, data: ShopLivePreviewData)
@Deprecated("Use `ShopLive.intentPlay(context: Context, data: ShopLivePlayerData)` instead.")
fun intentPlay(context: Context, campaignKey: String): Intent
@Deprecated("Use `ShopLive.intentPlay(context: Context, data: ShopLivePlayerData)` instead.")
fun intentPlay(context: Context, campaignKey: String, referrer: String?): Intent

// Use this method
fun intentPlay(context: Context, data: ShopLivePlayerData): Intent
@Deprecated("Use `ShopLive.setLoadingAnimation(@DrawableRes drawableRes: Int)` instead.")
fun setLoadingProgressColor(hexColor: String?)

// Use this method
fun setLoadingProgressColor(@ColorInt colorInt: Int)
@Deprecated("Use `ShopLive.setSystemBarColor(ShopLivePlayerSystemBarColorData().apply { statusBarColor = Color.TRANSPARENT })` instead.")
fun setStatusBarTransparent(isEnabled: Boolean)

// Use this method
fun setSystemBarColor(data: ShopLivePlayerSystemBarColorData)
// Example
ShopLive.setSystemBarColor(ShopLivePlayerSystemBarColorData().apply {
    statusBarColor = Color.TRANSPARENT
})
  • ShopLive.init() 은 더 이상 필요하지 않습니다.

Migration to MaveCentral (2023-11-20)

  • Migration to repository
    • 더 이상 별도 maven repository를 추가 안 하셔도 됩니다.
allprojects {
    repositories
        ...
        maven { url 'https://shoplivesdk.jfrog.io/artifactory/shoplive-sdk/' } // Remove me
        ...
    }
}

v1.5.1 (2023-11-02)


v1.5.0 (2023-10-19)

  • Live player
    • Preview 움직임이 부드러워졌습니다.

v1.4.9 (2023-10-12)

dependencies {
    implementation "cloud.shoplive:shoplive-common:$shoplive_sdk_version" // must required
    implementation "cloud.shoplive:shoplive-exoplayer:$shoplive_exoplayer_version" // must required
    implementation "cloud.shoplive:shoplive-network:$shoplive_sdk_version" // must required
  
    implementation "cloud.shoplive:shoplive-sdk-core:$shoplive_sdk_version" // for live player
  
    implementation "cloud.shoplive:shoplive-short-form:$shoplive_sdk_version" // for short-form player
}

v1.4.8.1 (2023-09-25)

  • Live player
    • Preview 성능을 개선했습니다.

v1.4.8 (2023-09-15)


v1.4.7 (2023-08-09)


v1.4.6 (2023-08-04)


v1.4.5 (2023-07-27)


v1.4.4 (2023-07-25)


v1.4.3 (2023-07-04)

  • 플레이어의 재생 성능을 개선했습니다.

v1.4.2 (2023-06-16)

  • 플레이어의 재생 성능을 개선했습니다.

v1.4.1 (2023-06-05)


v1.4.0 (2023-05-15)

  • Preview swipe 하여 종료 시킬 지 여부를 설정할 수 있는 인터페이스를 추가하였습니다.
  • Preview interface 를 모듈화하였습니다.
  • 기존 다른 앱 위에 그리는 Preview는 Deprecated 됐습니다.
ShopLive.showPreviewPopup(ShopLivePreviewData(yourActivity, "{campaignKey}").apply {
	setUseCloseButton(true)
	setEnabledSwipeOut(true)
})

v1.3.4 (2023-04-13)

  • 광고 추적을 위한 광고 Id를 설정하는 인터페이스를 추가하였습니다.
ShopLive.setAdId(adId: String)
  • 플레이어를 실행하기 전에 커스텀 데이터를 설정 할 수 있는 인터페이스를 추가하였습니다.
ShopLive.addParameter(key: String, value: String)
ShopLive.removeParameter(key: String)

v1.3.3.1 (2023-03-09)

  • Preview에서 닫기 버튼을 안드로이드 스타일로 변경했습니다.
  • 일부 환경에서 안정성을 개선했습니다.

v1.3.3 (2023-02-23)

ShopLive.setMixWithOthers(isMixAudio: Boolean)
  • 진입경로 통계를 측정할 수 있는 파라미터를 추가했습니다.
ShopLive.play(campaignKey: String, referrer: String? = null)
ShopLive.play(context: Context, campaignKey: String, referrer: String? = null)
ShopLive.play(campaignKey: String, keepWindowStateOnPlayExecuted: Boolean, referrer: String? = null)
ShopLive.play(context: Context, campaignKey: String, keepWindowStateOnPlayExecuted: Boolean, referrer: String? = null)
  • 이제 Preview에서 닫기 버튼을 활성화할 수 있습니다.
ShopLivePreview.useCloseButton(use: Boolean = false)
  • 플레이어의 재생 성능을 개선했습니다.
  • 이제 Bluetooth 권한을 받지 않아도 오디오 제어가 가능합니다.

v1.3.2 (2022-11-30)

  • PIP 전환 인터페이스(startPictureInPicture, stopPictureInPicture)를 동시에 여러 번 호출 하더라도 한 번만 동작하도록 개선하였습니다.
  • 공유 버튼을 클릭했을 때 설정한 URL이 없으면 onError Handler로 에러코드를 전달하도록 개선하였습니다.
  • 딥링크로 Shoplive Player를 실행한 후 PIP로 전환할 때 고객사 앱의 생명주기에 영향을 줄 수 있는 문제를 수정하였습니다.
  • 채팅 입력창이 더 자연스럽게 올라오도록 애니메이션을 적용하였습니다.
  • 채팅입력창이 채팅을 가릴 수 있는 문제를 수정하였습니다.

v1.3.1 (2022-10-18)

  • 이제 방송 배경 이미지(방송 예고, 진행 중, 종료 후 이미지)에 애니메이션 이미지를 사용할 수 있습니다. (gif, apng, webp 등)

v1.3.0 (2022-09-22)

  • 가로모드 방송을 지원하도록 업데이트 되었습니다. 가로모드 방송을 사용하기 위해서는 Shoplive 담당자에게 문의해주시기 바랍니다.
  • 미리보기를 고객사에서 직접 구현할 수 있도록 ShopLivePreview(또는 ShopLiveSwipeView)를 제공합니다.
  • 사용자 정의 메시지를 적용할 수 있도록 setUiMessage 인터페이스가 추가 되었습니다.
  • 상태바 영역까지 영상을 확대(상태바를 투명하게) 할 수 있도록 setStatusBarTransparent 인터페이스가 추가 되었습니다.
  • 오디오 포커스를 핸들링 할 수 있도록 setSoundFocusHandling 인터페이스가 추가 되었습니다.
  • Shoplive Player의 이벤트 로그를 전달하는 log 인터페이스가 추가 되었습니다.
  • onChangedPlayerStatus callback에 "CLOSING" 이벤트가 추가 되었습니다.
  • 'android.permission.BLUETOOTH' 권한이 targetSDkVersion 30까지만 적용되도록 변경 되었습니다.

v1.2.7.1 (2022-07-01)

  • PIP의 상태를 체크하는 로직을 개선하였습니다.
  • 일부 디바이스에서 채팅 입력 버튼을 클릭할 경우 발생하는 UI 이슈를 개선하였습니다.

v1.2.7 (2022-05-26)

  • Shoplive player가 PIP 모드로 실행 중인 상태에서 사용자의 인증 정보가 업데이트 되면 (예, 비로그인 -> 로그인) player가 전체 화면 모드로 변경되는 이슈를 개선하였습니다. 인증 정보가 변경되더라도 PIP 모드를 그대로 유지할 수 있습니다.

v1.2.6 (2022-05-19)

  • 갤럭시 폴드 태블릿 모드에서의 UI 이슈를 수정하였습니다.

v1.2.5 (2022-05-12)

  • 특정 기기에서 발생하는 UI 이슈를 수정하였습니다.
  • 태블릿에서 이미지(e.g., 방송 예고 이미지, 방송 중 이미지 등) 비율을 9:16으로 설정해도 반영되지 않는 이슈를 수정하였습니다.
  • 태블릿에서의 비디오의 기본 화면 비율을 9:16으로 변경하였습니다. 만약 Full 화면으로 사용하고자 할 경우 ShopLive.setKeepAspectOnTabletPortrait(false)를 설정해야 합니다.
  • PIP와 관련된 일부 기능을 개선하였습니다.

v1.2.4 (2022-04-15)

  • 프리뷰 영역를 드래그하여 종료하는 기능을 추가하였습니다.
  • 음소거로 시작하기 기능을 추가하였습니다.
  • 딥링크를 열어주는 기능을 추가하였습니다.
    (이 기능을 추가하려면 Shoplive 담당자에게 문의하세요.)
  • 다른 앱 위에 표시 권한 요청 메시지를 Shoplive Android SDK에서 처리할 수 있도록 기능을 추가하였습니다.
  • 서버로 command와 payload를 전달하는 sendCommandMessage 인터페이스를 추가하였습니다.
  • 앱 버전을 설정하는 setAppVersion 인터페이스를 추가하였습니다.

v1.2.3 (2022-03-30)

  • Exoplayer Library 2.13.0 버전을 2.16.0 버전으로 업데이트하였습니다.
  • 채팅 입력창이 키보드에 가려지는 오류를 수정하였습니다. (일부 기기에서만 발생)

v1.2.2 (2022-03-10)

  • 진동, 효과음 등 퀴즈 기능을 연계할 수 있도록 개선하였습니다.
  • 미리보기 때 무음 재생하도록 개선하였습니다.
  • 상품 또는 공지사항을 사용자가 선택하였을 때 앱 내 PIP로 강제 전환되던 기능에 다음 동작을 선택할 수 있는 API를 추가하였습니다.
  • Endpoint를 설정할 수 있는 API를 추가하였습니다.

v1.2.1 (2022-01-13)

  • 라이브 방송 진입시 네트워크 환경에 따라 간헐적으로 영상 재생이 원활하지 않는 이슈 해결

v1.2.0 (2021-12-15)

  • ShopLive.getAuthToken() - JWT 인증키 가져오기
  • ShopLive.isSuccessCampaignJoin() - 방송에 성공적으로 진입했는지 확인
  • ShopLive.startPictureInPicture() - PIP 모드로 진입하기
  • ShopLive.stopPictureInPicture() - PIP 모드 해제(FULL 화면으로 복귀)

v1.1.2 (2021-11-15)

  • SDK의 web으로부터 수신된 command 정보를 전달하기 위한 onReceivedCommand 핸들러 함수 추가

v1.1.1 (2021-11-08)

  • coupon download와 custom action의 성공 또는 실패에 대한 콜백 추가
  • 사용자 이름 설정 또는 변경시 알림 추가
  • 영상 이벤트 동기화 지원

v1.0.15 (2021-11-03)

  • 이미지 애니메이션 프로그레스 인터페이스 추가
  • 루트 액티비티가 종료 되어도 방송이 자동으로 종료되지 않도록 옵션 추가

v1.0.13 (2021-10-14)

  • 프리뷰(다른 앱 위 표시 옵션 사용시) 재생중에 앱이 background/foreground 전환 시, 자동으로 hide/show 되도록 적용
  • 프리뷰(다른 앱 위 표시 옵션 사용시) 재생중에 잠시 숨길 수 있도록 ShopLive.hidePreview() 인터페이스 추가
  • 프리뷰가 재생도중 잠시 숨겨졌을 때, 다시 재개할 수 있도록 ShopLive.resumePreview() 인터페이스 추가

v1.0.11 (2021-09-30)

  • 태블릿 모드에서 화면 비율 설정하기 옵션 추가 (영상 꽉 채우기 또는 영상 비율에 맞추기)
  • userScore 추가
  • onChangedPlayerStatus interface 추가

v1.0.10 (2021-09-10)

  • onPause 이벤트를 받았을 때, 채팅 입력창과 키보드가 떠있는 경우에 채팅 입력창과 키보드를 숨김.

v1.0.9 (2021-09-08)

  • 방송 진입시에만 로딩 프로그레스 출력. 그 이후, 버퍼가 발생한 경우에는 로딩 프로그레스 출력하지 않도록 변경.

v1.0.8 (2021-09-06)

  • 방송 진입시, 로딩 프로그레스 출력 (색상 적용)

v1.0.7 (2021-09-01)

  • PIP 모드에서 Full 화면으로 올라오면서 백그라운드로 내려간 앱의 activity를 포그라운드로 올라오도록 함.

v1.0.6 (2021-08-31)

  • ShopLive.showPreview(campaignKey) 추가 (다른 앱 위에 표시 권한 필요)
  • ShopLive.showPreview(campaignKey, isOsPip = true) 추가 (방송 진입 후, PIP로 전환)
  • handlePreview(context, campaignKey) 인터페이스 추가
  • 오류 수정

v1.0.5 (2021-08-25)

  • handleDownloadCoupon(context, couponId, callback) 인터페이스 추가

v1.0.3 (2021-08-18)

  • 시청중인 방송에서 강제로 나가기 기능 추가

  • 방송 진입 시, 캠페인 정보 전달

  • 캠페인 상태 변경 시, 상태값 전달

  • 오류 상황 발생 시, 코드/메시지 전달

  • 통화 종료 후 영상 복귀 시, 기본값을 '영상 멈춤'에서 '영상 자동 재생'으로 변경


v1.0.2 (2021-08-09)

  • 이어폰/헤드셋 연결 끊겼을 때에 계속 재생과 함께 mute 옵션 추가

v1.0.1 (2021-08-05)

  • custom payload 전달 지원 (CUSTOM_ACTION)
  • 대화 입력창 폰트 세팅 지원

v1.0.0 (2021-08-04)

  • android SDK 런칭