Skip to content

Commit a9b13f0

Browse files
authored
Bump Java SDK version
1 parent bb34804 commit a9b13f0

File tree

26 files changed

+87
-40
lines changed

26 files changed

+87
-40
lines changed

.github/workflows/android-build.yml

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ jobs:
1616
- name: Checkout code
1717
uses: actions/checkout@v3
1818

19-
- name: Set up JDK 11
19+
- name: Set up JDK 17
2020
uses: actions/setup-java@v3
2121
with:
2222
distribution: 'adopt'
23-
java-version: '11'
23+
java-version: '17'
2424

2525
- name: Setup Android SDK
2626
uses: android-actions/setup-android@v2
@@ -43,24 +43,37 @@ jobs:
4343
4444
- name: Create AVD
4545
run: |
46-
cd $ANDROID_HOME/cmdline-tools/latest/bin
47-
echo no | ./avdmanager create avd -n test -k "system-images;android-30;google_apis;x86" --force
46+
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
47+
echo "no" | avdmanager create avd -n test -k "system-images;android-30;google_apis;x86" --force
48+
49+
- name: List AVDs (debug)
50+
run: |
51+
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
52+
avdmanager list avd
4853
4954
- name: Start ADB Server
5055
run: adb start-server
5156

5257
- name: Start Emulator
5358
run: |
5459
echo "Starting emulator..."
55-
export PATH=$PATH:$ANDROID_HOME/emulator
56-
emulator -avd test -no-audio -no-window -no-boot-anim -no-metrics &
60+
export PATH=$PATH:$ANDROID_HOME/emulator:$ANDROID_HOME/cmdline-tools/latest/bin
61+
# Verify AVD exists before starting
62+
avdmanager list avd
63+
emulator -avd test -no-audio -no-window -no-boot-anim -no-metrics -verbose &
64+
65+
- name: Wait for emulator
66+
run: |
5767
# Wait for the emulator to start up
58-
sleep 120
68+
echo "Waiting for emulator to boot..."
69+
adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed | tr -d '\r') ]]; do sleep 1; done; input keyevent 82'
70+
adb devices
71+
echo "Emulator is ready"
5972
6073
- name: Export CLOUDINARY_URL
6174
run: |
6275
export CLOUDINARY_URL=$(bash tools/get_test_cloud.sh)
6376
echo "CLOUDINARY_URL=$CLOUDINARY_URL" >> $GITHUB_ENV
6477
6578
- name: Run tests
66-
run: ./gradlew clean connectedCheck --stacktrace
79+
run: ./gradlew clean connectedCheck --stacktrace

all/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
apply plugin: 'com.android.library'
22

33
android {
4+
namespace 'com.cloudinary.android.all'
45
compileSdk 34
56

67

all/src/main/AndroidManifest.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
<manifest package="com.cloudinary.android" />
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
2+
3+
<!-- rest of manifest -->
4+
</manifest>

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ allprojects {
88
}
99

1010
dependencies {
11-
classpath 'com.android.tools.build:gradle:7.1.2'
11+
classpath 'com.android.tools.build:gradle:8.3.0'
1212
classpath "de.marcphilipp.gradle:nexus-publish-plugin:0.4.0"
1313
classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.21.1"
1414
classpath 'digital.wup:android-maven-publish:3.6.2'

core/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
apply plugin: 'com.android.library'
22

33
android {
4+
namespace 'com.cloudinary.android.core'
5+
testNamespace 'com.cloudinary.android.test'
46
compileSdk 34
57

68

core/src/androidTest/AndroidManifest.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<!--suppress AndroidDomInspection -->
33
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
4-
package="com.cloudinary.android.test"
54
android:versionCode="1"
65
android:versionName="1.0">
76

core/src/androidTest/java/com/cloudinary/android/PayloadTest.java

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,17 @@
1111
import com.cloudinary.android.payload.Payload;
1212
import com.cloudinary.android.payload.PayloadFactory;
1313
import com.cloudinary.android.payload.PayloadNotFoundException;
14-
import com.cloudinary.android.payload.ResourcePayload;
1514

1615
import org.junit.BeforeClass;
1716
import org.junit.Test;
1817
import org.junit.runner.RunWith;
1918

2019
import java.io.File;
2120
import java.io.FileInputStream;
21+
import java.io.FileOutputStream;
2222
import java.io.IOException;
23+
import java.io.InputStream;
24+
import java.io.OutputStream;
2325

2426
import static junit.framework.Assert.assertEquals;
2527

@@ -64,11 +66,27 @@ public void testBytesPayload() throws PayloadNotFoundException, IOException {
6466
}
6567

6668
@Test
67-
public void testResourcePayload() throws PayloadNotFoundException {
68-
ResourcePayload payload = new ResourcePayload(com.cloudinary.android.core.test.R.raw.old_logo);
69+
public void testResourcePayload() throws PayloadNotFoundException, IOException {
70+
InputStream is = InstrumentationRegistry.getInstrumentation()
71+
.getContext()
72+
.getAssets()
73+
.open("images/old_logo.png");
74+
75+
File tempFile = File.createTempFile("old_logo", ".png");
76+
77+
try (OutputStream os = new FileOutputStream(tempFile)) {
78+
byte[] buffer = new byte[1024];
79+
int length;
80+
while ((length = is.read(buffer)) > 0) {
81+
os.write(buffer, 0, length); // ✅ the actual fix
82+
}
83+
}
84+
85+
Payload<String> payload = new FilePayload(tempFile.getAbsolutePath());
6986
verifyLengthAndRecreation(payload, 3381);
7087
}
7188

89+
7290
private void verifyLengthAndRecreation(Payload payload, long expectedLength) throws PayloadNotFoundException {
7391
assertEquals(expectedLength, payload.getLength(InstrumentationRegistry.getInstrumentation().getContext()));
7492

core/src/androidTest/java/com/cloudinary/android/ResponsiveTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public class ResponsiveTest extends AbstractTest {
2222
public static void setUp() throws Exception {
2323
String url = Utils.cloudinaryUrlFromContext(InstrumentationRegistry.getInstrumentation().getContext());
2424
cloudinary = new Cloudinary(url);
25+
cloudinary.config.analytics = false;
2526
}
2627

2728
/**

core/src/androidTest/java/com/cloudinary/android/UploaderTest.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ public class UploaderTest extends AbstractTest {
5050
public static void setUp() throws Exception {
5151
String url = Utils.cloudinaryUrlFromContext(InstrumentationRegistry.getInstrumentation().getContext());
5252
cloudinary = new Cloudinary(url);
53+
cloudinary.config.analytics = false;
54+
cloudinary.config.secure = false;
5355
if (StringUtils.isBlank(url)) {
5456
throw new IllegalArgumentException("UploaderTest - No cloudinary url configured");
5557
}
@@ -88,7 +90,7 @@ public void testUpload() throws Exception {
8890
Map<String, Object> to_sign = new HashMap<String, Object>();
8991
to_sign.put("public_id", result.getString("public_id"));
9092
to_sign.put("version", ObjectUtils.asString(result.get("version")));
91-
String expected_signature = cloudinary.apiSignRequest(to_sign, cloudinary.config.apiSecret);
93+
String expected_signature = cloudinary.apiSignRequest(to_sign, cloudinary.config.apiSecret, cloudinary.config.signatureVersion);
9294
Assert.assertEquals(result.get("signature"), expected_signature);
9395
}
9496

@@ -119,7 +121,7 @@ public void onProgress(long bytesUploaded, long totalBytes) {
119121
Map<String, Object> to_sign = new HashMap<String, Object>();
120122
to_sign.put("public_id", result.getString("public_id"));
121123
to_sign.put("version", ObjectUtils.asString(result.get("version")));
122-
String expected_signature = cloudinary.apiSignRequest(to_sign, cloudinary.config.apiSecret);
124+
String expected_signature = cloudinary.apiSignRequest(to_sign, cloudinary.config.apiSecret, cloudinary.config.signatureVersion);
123125
Assert.assertEquals(result.get("signature"), expected_signature);
124126
}
125127

@@ -135,7 +137,7 @@ public void testUnsignedUpload() throws Exception {
135137
to_sign.put("public_id", result.getString("public_id"));
136138
to_sign.put("version", ObjectUtils.asString(result.get("version")));
137139
Log.d("TestRunner", cloudinary.config.apiSecret);
138-
String expected_signature = cloudinary.apiSignRequest(to_sign, cloudinary.config.apiSecret);
140+
String expected_signature = cloudinary.apiSignRequest(to_sign, cloudinary.config.apiSecret, cloudinary.config.signatureVersion);
139141
Assert.assertEquals(result.get("signature"), expected_signature);
140142
}
141143

@@ -149,7 +151,7 @@ public void testUploadUrl() throws Exception {
149151
Map<String, Object> to_sign = new HashMap<String, Object>();
150152
to_sign.put("public_id", (String) result.get("public_id"));
151153
to_sign.put("version", ObjectUtils.asString(result.get("version")));
152-
String expected_signature = cloudinary.apiSignRequest(to_sign, cloudinary.config.apiSecret);
154+
String expected_signature = cloudinary.apiSignRequest(to_sign, cloudinary.config.apiSecret, cloudinary.config.signatureVersion);
153155
Assert.assertEquals(result.get("signature"), expected_signature);
154156
}
155157

@@ -167,7 +169,7 @@ public void testUploadDataUri() throws Exception {
167169
Map<String, Object> to_sign = new HashMap<String, Object>();
168170
to_sign.put("public_id", (String) result.get("public_id"));
169171
to_sign.put("version", ObjectUtils.asString(result.get("version")));
170-
String expected_signature = cloudinary.apiSignRequest(to_sign, cloudinary.config.apiSecret);
172+
String expected_signature = cloudinary.apiSignRequest(to_sign, cloudinary.config.apiSecret, cloudinary.config.signatureVersion);
171173
Assert.assertEquals(result.get("signature"), expected_signature);
172174
}
173175

@@ -182,15 +184,15 @@ public void testUploadExternalSignature() throws Exception {
182184

183185
Map<String, Object> params = new HashMap<String, Object>();
184186
params.put("timestamp", Long.valueOf(System.currentTimeMillis() / 1000L).toString());
185-
params.put("signature", this.cloudinary.apiSignRequest(params, apiSecret));
187+
params.put("signature", this.cloudinary.apiSignRequest(params, apiSecret, cloudinary.config.signatureVersion));
186188
Cloudinary emptyCloudinary = new Cloudinary(config);
187189
JSONObject result = new JSONObject(emptyCloudinary.uploader().upload(getAssetStream(TEST_IMAGE), params));
188190
Assert.assertEquals(result.getLong("width"), 241L);
189191
Assert.assertEquals(result.getLong("height"), 51L);
190192
Map<String, Object> to_sign = new HashMap<String, Object>();
191193
to_sign.put("public_id", result.getString("public_id"));
192194
to_sign.put("version", ObjectUtils.asString(result.get("version")));
193-
String expected_signature = cloudinary.apiSignRequest(to_sign, apiSecret);
195+
String expected_signature = cloudinary.apiSignRequest(to_sign, apiSecret, cloudinary.config.signatureVersion);
194196
Assert.assertEquals(result.get("signature"), expected_signature);
195197
}
196198

core/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2-
package="com.cloudinary.android.core">
2+
>
33

44
<uses-permission android:name="android.permission.INTERNET" />
55
<application />

0 commit comments

Comments
 (0)