diff --git a/app/build.gradle b/app/build.gradle index 0c24d0b..c5f8518 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,14 +3,14 @@ plugins { } android { - compileSdk 32 + compileSdk 33 defaultConfig { applicationId "asgardius.page.s3manager" minSdk 24 targetSdk 33 - versionCode 15 - versionName "0.1.13" + versionCode 16 + versionName "0.1.14" setProperty("archivesBaseName", "s3-manager-$versionName") testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/asgardius/page/s3manager/ObjectInfo.java b/app/src/main/java/asgardius/page/s3manager/ObjectInfo.java index ffbc132..4f13a83 100644 --- a/app/src/main/java/asgardius/page/s3manager/ObjectInfo.java +++ b/app/src/main/java/asgardius/page/s3manager/ObjectInfo.java @@ -91,14 +91,21 @@ public class ObjectInfo extends AppCompatActivity { orequest = new ListObjectsRequest().withBucketName(bucket).withPrefix(object).withMaxKeys(8000); } ObjectListing result = s3client.listObjects(orequest); - do { - for (S3ObjectSummary objectSummary : result.getObjectSummaries()) { - totalSize += objectSummary.getSize(); + List objects = result.getObjectSummaries(); + boolean nextbatch = false; + while (result.isTruncated() || !nextbatch) { + if (nextbatch) { + result = s3client.listNextBatchOfObjects (result); + objects = result.getObjectSummaries(); + } else { + nextbatch = true; + } + for (S3ObjectSummary os : objects) { + totalSize += os.getSize(); totalItems++; } - result = s3client.listNextBatchOfObjects (result); - } while (result.isTruncated()); + } runOnUiThread(new Runnable() {