com.google.android.play.core.ktx
Classes
AppUpdateResult |
Result type that will be emitted from requestUpdateFlow for various stages of the update. |
Top-level functions summary
SplitInstallStateUpdatedListener |
SplitInstallStateUpdatedListener(onRequiresConfirmation: (SplitInstallSessionState) -> Unit, onInstalled: (SplitInstallSessionState) -> Unit, onFailed: (SplitInstallSessionState) -> Unit = {}, onPending: (SplitInstallSessionState) -> Unit = {}, onDownloaded: (SplitInstallSessionState) -> Unit = {}, onDownloading: (SplitInstallSessionState) -> Unit = {}, onInstalling: (SplitInstallSessionState) -> Unit = {}, onCanceling: (SplitInstallSessionState) -> Unit = {}, onCanceled: (SplitInstallSessionState) -> Unit = {}, onNonTerminalStatus: (SplitInstallSessionState) -> Unit = {}, onTerminalStatus: (SplitInstallSessionState) -> Unit = {}) A convenience function for creating a SplitInstallStateUpdatedListener. |
Extension functions summary
For com.google.android.play.core.appupdate.AppUpdateManager | |
suspend AppUpdateInfo |
Requests the update availability for the current app |
suspend Unit |
For a flexible update flow, triggers the completion of the update. |
Flow<AppUpdateResult> |
Entry point for monitoring the availability and progress of updates. |
Boolean |
AppUpdateManager.startUpdateFlowForResult(appUpdateInfo: AppUpdateInfo, appUpdateType: Int, fragment: Fragment, requestCode: Int) A version of AppUpdateManager.startUpdateFlowForResult that accepts an AndroidX Fragment for returning the result. |
For com.google.android.play.core.assetpacks.AssetPackManager | |
suspend Int |
Suspend version of AssetPackManager.showCellularDataConfirmation |
suspend AssetPackStates |
AssetPackManager.requestFetch(packs: List<String>) Requests to download the specified asset packs. |
suspend AssetPackStates |
AssetPackManager.requestPackStates(packs: List<String>) Suspend version of AssetPackManager.getPackStates |
Flow<AssetPackState> |
AssetPackManager.requestProgressFlow(packs: List<String>) Creates and returns a Flow with a Channel.UNLIMITED buffer that will deliver all progress events for the specified asset packs installations. |
suspend Unit |
AssetPackManager.requestRemovePack(packName: String) Suspend version of AssetPackManager.removePack |
For com.google.android.play.core.review.ReviewManager | |
suspend Unit |
ReviewManager.launchReview(activity: Activity, reviewInfo: ReviewInfo) Suspending version of ReviewManager.launchReviewFlow. |
suspend ReviewInfo |
Suspending version of ReviewManager.requestReviewFlow. |
Extension properties summary
For com.google.android.play.core.appupdate.AppUpdateInfo | |
Long |
The number of bytes downloaded so far. |
Int? |
If an update is available or in progress, this method returns the number of days since the Google Play Store app on the user's device has learnt about an available update. |
Int |
Returns the progress status of the update. |
Boolean |
Returns |
Boolean |
Returns |
Long |
The total number of bytes to be downloaded for this update. |
Int |
Returns the in-app update priority for this update, as defined by the developer in the Google Play Developer API. |
For com.google.android.play.core.assetpacks.AssetLocation | |
Long |
The file offset where the asset starts, in bytes. |
String |
The path to the file containing the asset. |
Long |
The size of the asset, in bytes. |
For com.google.android.play.core.assetpacks.AssetPackLocation | |
String? |
The file path to the folder containing the asset pack's unpackaged assets, if the storage method is AssetPackStorageMethod.STORAGE_FILES. |
Int |
Whether the pack is installed as an APK or unpackaged into a folder on the filesystem. |
String? |
Returns the file path to the folder containing the unpackaged asset pack, if the storage method is AssetPackStorageMethod.STORAGE_FILES. |
For com.google.android.play.core.assetpacks.AssetPackState | |
Long |
The total number of bytes already downloaded for the pack. |
Int |
The error code for the pack, if Play has failed to download the pack. |
String |
The name of the pack. |
Int |
The download status of the pack. |
Long |
The total size of the pack in bytes. |
Int |
Returns the percentage of the asset pack already transferred to the app. |
For com.google.android.play.core.assetpacks.AssetPackStates | |
Map<String, AssetPackState> |
Map from pack name to AssetPackState. |
Long |
Total size of all requested packs in bytes. |
For com.google.android.play.core.install.InstallState | |
Long |
The number of bytes downloaded so far. |
Boolean |
This signifies that this is a terminal status (there will be no more updates) and should be handled accordingly (success, cancellation or failure). |
Int |
Returns the error code for an install, or {@link InstallErrorCode#NO_ERROR}. |
Int |
Returns the status of an install. |
String |
Returns the package name for the app being installed. |
Long |
The total number of bytes to be downloaded for this update. |
For com.google.android.play.core.splitinstall.SplitInstallSessionState | |
Long |
The bytes downloaded by this update. |
Int |
The error code of this update. |
Boolean |
Signifies that this update is terminal, meaning there will be no more updates for this session. |
List<String> |
The languages included by this update. |
List<String> |
The modules included by this update. |
Int |
The session id of this update. |
Int |
The status code of this update. |
Long |
The total bytes to download by this update. |
Top-level functions
SplitInstallStateUpdatedListener
fun SplitInstallStateUpdatedListener(
onRequiresConfirmation: (SplitInstallSessionState) -> Unit,
onInstalled: (SplitInstallSessionState) -> Unit,
onFailed: (SplitInstallSessionState) -> Unit = {},
onPending: (SplitInstallSessionState) -> Unit = {},
onDownloaded: (SplitInstallSessionState) -> Unit = {},
onDownloading: (SplitInstallSessionState) -> Unit = {},
onInstalling: (SplitInstallSessionState) -> Unit = {},
onCanceling: (SplitInstallSessionState) -> Unit = {},
onCanceled: (SplitInstallSessionState) -> Unit = {},
onNonTerminalStatus: (SplitInstallSessionState) -> Unit = {},
onTerminalStatus: (SplitInstallSessionState) -> Unit = {}
): SplitInstallStateUpdatedListener
A convenience function for creating a SplitInstallStateUpdatedListener.
The required states to handle are onRequiresConfirmation, where you should start a confirmation request using SplitInstallManager.startConfirmationDialogForResult, and onInstalled where you can start using the installed module.
All other arguments are optional and correspond with the SplitInstallSessionStatus codes.
There are two special arguments (also optional): onNonTerminalStatus and onTerminalStatus, which will be called in addition to the normal status codes. The first is called for all progress (non-terminal) status codes, while the latter for statuses that would return true for SplitInstallSessionState.hasTerminalStatus, i.e. failure, cancellation and completion.
Extension functions
launchReview
suspend fun ReviewManager.launchReview(
activity: Activity,
reviewInfo: ReviewInfo
): Unit
Suspending version of ReviewManager.launchReviewFlow.
Launches and displays the review flow to the user.
In some circumstances the review flow will not be shown to the user, e.g. they have already seen it recently, so do not assume that calling this method will always display the review dialog.
App should resume when this returns.
See Also
requestAppUpdateInfo
suspend fun AppUpdateManager.requestAppUpdateInfo(): AppUpdateInfo
Requests the update availability for the current app
See Also
requestCancelInstall
suspend fun SplitInstallManager.requestCancelInstall(sessionId: Int): Unit
Suspend version of SplitInstallManager.cancelInstall
See Also
requestCellularDataConfirmation
suspend fun AssetPackManager.requestCellularDataConfirmation(activity: Activity): Int
Suspend version of AssetPackManager.showCellularDataConfirmation
requestCompleteUpdate
suspend fun AppUpdateManager.requestCompleteUpdate(): Unit
For a flexible update flow, triggers the completion of the update.
See Also
requestDeferredInstall
suspend fun SplitInstallManager.requestDeferredInstall(moduleNames: List<String>): Unit
Suspend version of SplitInstallManager.deferredInstall
See Also
requestDeferredLanguageInstall
suspend fun SplitInstallManager.requestDeferredLanguageInstall(languages: List<Locale>): Unit
Suspend version of SplitInstallManager.deferredLanguageInstall
requestDeferredLanguageUninstall
suspend fun SplitInstallManager.requestDeferredLanguageUninstall(languages: List<Locale>): Unit
Suspend version of SplitInstallManager.deferredLanguageUninstall
requestDeferredUninstall
suspend fun SplitInstallManager.requestDeferredUninstall(moduleNames: List<String>): Unit
Suspend version of SplitInstallManager.deferredUninstall
requestFetch
suspend fun AssetPackManager.requestFetch(packs: List<String>): AssetPackStates
Requests to download the specified asset packs.
Return | |
---|---|
the | AssetPackStates for the requested asset packs |
Exceptions | |
---|---|
AssetPackException |
in case of errors |
See Also
requestInstall
suspend fun SplitInstallManager.requestInstall(
modules: List<String> = listOf(),
languages: List<String> = listOf()
): Int
Initiates installation of the requested modules/languages.
Return | |
---|---|
the sessionId for the installation if successful |
Exceptions | |
---|---|
com.google.android.play.core.splitinstall.SplitInstallException |
in case of errors |
See Also
requestPackStates
suspend fun AssetPackManager.requestPackStates(packs: List<String>): AssetPackStates
Suspend version of AssetPackManager.getPackStates
See Also
requestProgressFlow
fun AssetPackManager.requestProgressFlow(packs: List<String>): Flow<AssetPackState>
Creates and returns a Flow with a Channel.UNLIMITED buffer that will deliver all progress events for the specified asset packs installations.
Exceptions | |
---|---|
AssetPackException |
in case of errors |
Return | |
---|---|
Flow | that emits progress events for asset pack installations |
requestProgressFlow
fun SplitInstallManager.requestProgressFlow(): Flow<SplitInstallSessionState>
Creates and returns a Flow with a Channel.UNLIMITED buffer that will deliver all progress events for ongoing split installations.
Will clean up any listeners on the SplitInstallManager when cancelled.
Exceptions | |
---|---|
com.google.android.play.core.splitinstall.SplitInstallException |
in case of errors |
Return | |
---|---|
Flow | that emits progress events for split installations |
requestRemovePack
suspend fun AssetPackManager.requestRemovePack(packName: String): Unit
Suspend version of AssetPackManager.removePack
See Also
requestReview
suspend fun ReviewManager.requestReview(): ReviewInfo
Suspending version of ReviewManager.requestReviewFlow.
Retrieves all the needed information to launch the review flow.
Needs to be called before launchReview to obtain an ReviewInfo object which is used to launch the review flow.
See Also
requestSessionState
suspend fun SplitInstallManager.requestSessionState(sessionId: Int): SplitInstallSessionState
Suspend version of SplitInstallManager.getSessionState
See Also
requestSessionStates
suspend fun SplitInstallManager.requestSessionStates(): List<SplitInstallSessionState>
Suspend version of SplitInstallManager.getSessionStates
See Also
requestUpdateFlow
fun AppUpdateManager.requestUpdateFlow(): Flow<AppUpdateResult>
Entry point for monitoring the availability and progress of updates. Creates and returns a Flow that will emit events of type AppUpdateResult, which can be one of:
- com.google.android.play.core.ktx.AppUpdateResult.Available - when there is an update
- com.google.android.play.core.ktx.AppUpdateResult.InProgress - when an update is in progress
- com.google.android.play.core.ktx.AppUpdateResult.Downloaded - when an update has been downloaded and is waiting for completion.
- com.google.android.play.core.ktx.AppUpdateResult.NotAvailable - when no update is available
The returned Flow is using Channel.CONFLATED, meaning it will emit only the latest status.
Exceptions | |
---|---|
InstallException |
when there was a problem getting or installing updates |
startConfirmationDialogForResult
fun SplitInstallManager.startConfirmationDialogForResult(
sessionState: SplitInstallSessionState,
fragment: Fragment,
requestCode: Int
): Boolean
A version of SplitInstallManager.startConfirmationDialogForResult that accepts an AndroidX Fragment for returning the result.
startUpdateFlowForResult
fun AppUpdateManager.startUpdateFlowForResult(
appUpdateInfo: AppUpdateInfo,
appUpdateType: Int,
fragment: Fragment,
requestCode: Int
): Boolean
A version of AppUpdateManager.startUpdateFlowForResult that accepts an AndroidX Fragment for returning the result.
Parameters | |
---|---|
appUpdateInfo: AppUpdateInfo | An intent you use start an update. You get this using AppUpdateManager.getAppUpdateInfo. |
appUpdateType: Int | A value from AppUpdateType that determines the type of update flow. |
fragment: Fragment | the Fragment that will be used for Fragment.onActivityResult |
requestCode: Int | the request code that will be used for Fragment.onActivityResult |
Extension properties
assetsPath
val AssetPackLocation.assetsPath: String?
The file path to the folder containing the asset pack's unpackaged assets, if the storage method is AssetPackStorageMethod.STORAGE_FILES.
The files found in this path should not be modified.
If the storage method is AssetPackStorageMethod.APK_ASSETS, this contains
null
. To access assets from packs installed as APKs, use Asset Manager.
See Also
bytesDownloaded
val AppUpdateInfo.bytesDownloaded: Long
The number of bytes downloaded so far.
The return value is defined only if installStatus returns InstallStatus.DOWNLOADING
See Also
bytesDownloaded
val AssetPackState.bytesDownloaded: Long
The total number of bytes already downloaded for the pack.
See Also
bytesDownloaded
val InstallState.bytesDownloaded: Long
The number of bytes downloaded so far.
The return value is defined only if installStatus returns InstallStatus.DOWNLOADING
See Also
bytesDownloaded
val SplitInstallSessionState.bytesDownloaded: Long
The bytes downloaded by this update.
clientVersionStalenessDays
val AppUpdateInfo.clientVersionStalenessDays: Int?
If an update is available or in progress, this method returns the number of days since the Google Play Store app on the user's device has learnt about an available update.
If update is not available, or if staleness information is unavailable, this method returns
null
.
errorCode
val AssetPackState.errorCode: Int
The error code for the pack, if Play has failed to download the pack.
AssetPackErrorCode.NO_ERROR if the download was successful or is in progress or has not been attempted.
hasTerminalStatus
val InstallState.hasTerminalStatus: Boolean
This signifies that this is a terminal status (there will be no more updates) and should be handled accordingly (success, cancellation or failure).
hasTerminalStatus
val SplitInstallSessionState.hasTerminalStatus: Boolean
Signifies that this update is terminal, meaning there will be no more updates for this session.
It should be handled appropriately (cancellation, failure or completion).
installErrorCode
val InstallState.installErrorCode: Int
Returns the error code for an install, or {@link InstallErrorCode#NO_ERROR}.
See Also
Return | |
---|---|
a value from | {@link InstallStatus} |
installStatus
val AppUpdateInfo.installStatus: Int
Returns the progress status of the update.
See Also
installStatus
val InstallState.installStatus: Int
Returns the status of an install.
See Also
Return | |
---|---|
a value from | {@link InstallStatus} |
isFlexibleUpdateAllowed
val AppUpdateInfo.isFlexibleUpdateAllowed: Boolean
Returns true
if flexible update is allowed.
See Also
isImmediateUpdateAllowed
val AppUpdateInfo.isImmediateUpdateAllowed: Boolean
Returns true
if immediate update is allowed.
See Also
languages
val SplitInstallSessionState.languages: List<String>
The languages included by this update.
See Also
moduleNames
val SplitInstallSessionState.moduleNames: List<String>
The modules included by this update.
See Also
packStates
val AssetPackStates.packStates: Map<String, AssetPackState>
Map from pack name to AssetPackState.
packStorageMethod
val AssetPackLocation.packStorageMethod: Int
Whether the pack is installed as an APK or unpackaged into a folder on the filesystem.
packageName
val InstallState.packageName: String
Returns the package name for the app being installed.
See Also
path
val AssetPackLocation.path: String?
Returns the file path to the folder containing the unpackaged asset pack, if the storage method is AssetPackStorageMethod.STORAGE_FILES.
The files found in this path should not be modified.
If the storage method is AssetPackStorageMethod.APK_ASSETS, this method will return
null
. To access assets from packs installed as APKs, use Asset Manager.
See Also
totalBytesToDownload
val AppUpdateInfo.totalBytesToDownload: Long
The total number of bytes to be downloaded for this update.
The return value is defined only if installStatus returns InstallStatus.DOWNLOADING
See Also
totalBytesToDownload
val AssetPackState.totalBytesToDownload: Long
The total size of the pack in bytes.
See Also
totalBytesToDownload
val InstallState.totalBytesToDownload: Long
The total number of bytes to be downloaded for this update.
The return value is defined only if installStatus returns InstallStatus.DOWNLOADING
See Also
totalBytesToDownload
val SplitInstallSessionState.totalBytesToDownload: Long
The total bytes to download by this update.
transferProgressPercentage
val AssetPackState.transferProgressPercentage: Int
Returns the percentage of the asset pack already transferred to the app.
This value is only defined when the status is AssetPackStatus.TRANSFERRING
updatePriority
val AppUpdateInfo.updatePriority: Int
Returns the in-app update priority for this update, as defined by the developer in the Google Play Developer API.
The return value is defined only if updateAvailability returns UpdateAvailability.UPDATE_AVAILABLE.