Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ group 'de.ffuf.in_app_update'
version '1.0-SNAPSHOT'

buildscript {
ext.kotlin_version = '1.6.21'
ext.kotlin_version = '1.7.10'
repositories {
google()
jcenter()
Expand Down
2 changes: 1 addition & 1 deletion android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,17 @@ class InAppUpdatePlugin : FlutterPlugin, MethodCallHandler,
private var appUpdateInfo: AppUpdateInfo? = null
private var appUpdateManager: AppUpdateManager? = null

private var flexibleUpdateProgress: Long = 0L
private var flexibleUpdateSize: Long = 0L

override fun onMethodCall(call: MethodCall, result: Result) {
when (call.method) {
"checkForUpdate" -> checkForUpdate(result)
"performImmediateUpdate" -> performImmediateUpdate(result)
"startFlexibleUpdate" -> startFlexibleUpdate(result)
"completeFlexibleUpdate" -> completeFlexibleUpdate(result)
"flexibleUpdateProgress" -> getFlexibleUpdateProgress(result)
"flexibleUpdateSize" -> getFlexibleUpdateSize(result)
else -> result.notImplemented()
}
}
Expand Down Expand Up @@ -200,7 +205,14 @@ class InAppUpdatePlugin : FlutterPlugin, MethodCallHandler,
REQUEST_CODE_START_UPDATE
)
appUpdateManager?.registerListener { state ->
if (state.installStatus() == InstallStatus.DOWNLOADED) {
if (state.installStatus() == InstallStatus.DOWNLOADING) {
val bytesDownloaded = state.bytesDownloaded()
val totalBytesToDownload = state.totalBytesToDownload()
flexibleUpdateSize = totalBytesToDownload
flexibleUpdateProgress = (bytesDownloaded * 100) / totalBytesToDownload
// Show update progress bar.
} else if (state.installStatus() == InstallStatus.DOWNLOADED) {
flexibleUpdateProgress = 100
updateResult?.success(null)
updateResult = null
} else if (state.installErrorCode() != InstallErrorCode.NO_ERROR) {
Expand All @@ -214,6 +226,14 @@ class InAppUpdatePlugin : FlutterPlugin, MethodCallHandler,
}
}

private fun getFlexibleUpdateProgress(result: Result) = checkAppState(result) {
result.success(flexibleUpdateProgress)

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a stream would be nicer, but this should be good enough - thanks! Will merge soon

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey, any timeline around merging this?

}

private fun getFlexibleUpdateSize(result: Result) = checkAppState(result) {
result.success(flexibleUpdateSize)
}

private fun completeFlexibleUpdate(result: Result) = checkAppState(result) {
appUpdateManager?.completeUpdate()
}
Expand Down
10 changes: 10 additions & 0 deletions lib/in_app_update.dart
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,16 @@ class InAppUpdate {
}
}

// App update progress in percentage (0 - 100)
static Future<int> getFlexibleUpdateProgress() async {
return await _channel.invokeMethod('flexibleUpdateProgress');
}

// App update size in bytes
static Future<int> getFlexibleUpdateSize() async {
return await _channel.invokeMethod('flexibleUpdateSize');
}

/// Installs the update downloaded via [startFlexibleUpdate].
///
/// [startFlexibleUpdate] has to be completed successfully.
Expand Down
83 changes: 54 additions & 29 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5,42 +5,48 @@ packages:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
url: "https://pub.dev"
source: hosted
version: "2.9.0"
version: "2.10.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
url: "https://pub.dev"
source: hosted
version: "1.2.1"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted
version: "1.1.1"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
url: "https://pub.dev"
source: hosted
version: "1.16.0"
version: "1.17.0"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted
version: "1.3.1"
flutter:
Expand All @@ -53,32 +59,44 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
js:
dependency: transitive
description:
name: js
sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
url: "https://pub.dev"
source: hosted
version: "0.6.5"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
url: "https://pub.dev"
source: hosted
version: "0.12.12"
version: "0.12.13"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
url: "https://pub.dartlang.org"
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
url: "https://pub.dev"
source: hosted
version: "0.1.5"
version: "0.2.0"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
url: "https://pub.dev"
source: hosted
version: "1.8.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
url: "https://pub.dev"
source: hosted
version: "1.8.2"
sky_engine:
Expand All @@ -90,51 +108,58 @@ packages:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
url: "https://pub.dev"
source: hosted
version: "1.9.0"
version: "1.9.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted
version: "1.10.0"
version: "1.11.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
version: "1.2.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted
version: "1.2.1"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
url: "https://pub.dev"
source: hosted
version: "0.4.12"
version: "0.4.16"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
version: "2.1.4"
sdks:
dart: ">=2.17.0 <3.0.0"
dart: ">=2.18.0 <3.0.0"
flutter: ">=1.20.0"