1 package expo.modules.updates
2 
3 import android.content.Context
4 import expo.modules.core.ExportedModule
5 import expo.modules.core.Promise
6 import expo.modules.core.interfaces.ExpoMethod
7 import java.util.*
8 
9 class UpdatesE2ETestModule(context: Context) : ExportedModule(context) {
10   override fun getName() = "ExpoUpdatesE2ETest"
11 
12   @ExpoMethod
13   fun clearInternalAssetsFolderAsync(promise: Promise) {
14     try {
15       val assetsFolder = UpdatesController.instance.updatesDirectory
16       assetsFolder!!.deleteRecursively()
17       promise.resolve(null)
18     } catch (e: Throwable) {
19       promise.reject(e)
20     }
21   }
22 
23   @ExpoMethod
24   fun readInternalAssetsFolderAsync(promise: Promise) {
25     try {
26       val assetsFolder = UpdatesController.instance.updatesDirectory
27       if (!assetsFolder!!.exists()) {
28         return promise.resolve(0)
29       }
30       val count = assetsFolder.walk().count() - 1 // subtract one for the folder itself, which is included in walk()
31       promise.resolve(count)
32     } catch (e: Throwable) {
33       promise.reject(e)
34     }
35   }
36 }
37