Skip to content

Commit 65b3b8a

Browse files
authored
Merge pull request #598 from adjust/v4383
Version 4.38.3
2 parents e4222a8 + 809e72e commit 65b3b8a

File tree

28 files changed

+409
-100
lines changed

28 files changed

+409
-100
lines changed

Adjust/build.gradle

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@ ext {
99
coreMinSdkVersion = 9
1010
coreCompileSdkVersion = 34
1111
coreTargetSdkVersion = 34
12-
coreVersionName = '4.38.2'
12+
coreVersionName = '4.38.3'
1313
defaultVersionCode = 1
1414
webbridgeMinSdkVersion = 17
1515
samsungReferrerMinSdkVersion = 18
1616
vivoReferrerMinSdkVersion = 23
17+
samsungCloudDevMinSdkVersion = 23
1718

1819
// POM.
1920
adjustGroupId = 'com.adjust.sdk'

Adjust/sdk-core/src/main/java/com/adjust/sdk/Adjust.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ private Adjust() {
3434
*/
3535
public static synchronized AdjustInstance getDefaultInstance() {
3636
@SuppressWarnings("unused")
37-
String VERSION = "!SDK-VERSION-STRING!:com.adjust.sdk:adjust-android:4.38.2";
37+
String VERSION = "!SDK-VERSION-STRING!:com.adjust.sdk:adjust-android:4.38.3";
3838

3939
if (defaultInstance == null) {
4040
defaultInstance = new AdjustInstance();

Adjust/sdk-core/src/main/java/com/adjust/sdk/Constants.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public interface Constants {
3030

3131
String SCHEME = "https";
3232
String AUTHORITY = "app.adjust.com";
33-
String CLIENT_SDK = "android4.38.2";
33+
String CLIENT_SDK = "android4.38.3";
3434
String LOGTAG = "Adjust";
3535
String REFTAG = "reftag";
3636
String INSTALL_REFERRER = "install_referrer";

Adjust/sdk-core/src/main/java/com/adjust/sdk/DeviceInfo.java

+10
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ class DeviceInfo {
9292
int uiMode;
9393
String appSetId;
9494
boolean isGooglePlayGamesForPC;
95+
Boolean isSamsungCloudEnvironment;
9596

9697
Map<String, String> imeiParameters;
9798
Map<String, String> oaidParameters;
@@ -134,12 +135,21 @@ class DeviceInfo {
134135
appInstallTime = getAppInstallTime(packageInfo);
135136
appUpdateTime = getAppUpdateTime(packageInfo);
136137
uiMode = getDeviceUiMode(configuration);
138+
if (Reflection.isAppRunningInSamsungCloudEnvironment(context, adjustConfig.logger)) {
139+
isSamsungCloudEnvironment = true;
140+
playAdId = Reflection.getSamsungCloudDevGoogleAdId(context, adjustConfig.logger);
141+
playAdIdSource = "samsung_cloud_sdk";
142+
}
137143
if (Util.canReadPlayIds(adjustConfig)) {
138144
appSetId = Reflection.getAppSetId(context);
139145
}
140146
}
141147

142148
void reloadPlayIds(final AdjustConfig adjustConfig) {
149+
if (isSamsungCloudEnvironment != null && isSamsungCloudEnvironment) {
150+
return;
151+
}
152+
143153
if (!Util.canReadPlayIds(adjustConfig)) {
144154
return;
145155
}

Adjust/sdk-core/src/main/java/com/adjust/sdk/Reflection.java

+26
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,32 @@ public static String getAppSetId(Context context) {
123123
}
124124
}
125125

126+
public static String getSamsungCloudDevGoogleAdId(Context context, ILogger logger) {
127+
String googleAdId = null;
128+
try {
129+
googleAdId = (String) invokeStaticMethod("com.adjust.sdk.samsung.clouddev.Util",
130+
"getGoogleAdId",
131+
new Class[]{Context.class, ILogger.class},
132+
context, logger);
133+
} catch (Exception e) {
134+
logger.info("invoke getGoogleAdId : " + e.getMessage());
135+
}
136+
return googleAdId;
137+
}
138+
139+
public static boolean isAppRunningInSamsungCloudEnvironment(Context context, ILogger logger) {
140+
boolean isCloudEnvironment = false;
141+
try {
142+
isCloudEnvironment = (boolean) invokeStaticMethod("com.adjust.sdk.samsung.clouddev.Util",
143+
"isAppRunningInCloudEnvironment",
144+
new Class[]{Context.class, ILogger.class},
145+
context, logger);
146+
} catch (Exception e) {
147+
logger.info("invoke isAppRunningInCloudEnvironment : " + e.getMessage());
148+
}
149+
return isCloudEnvironment;
150+
}
151+
126152
public static Class forName(String className) {
127153
try {
128154
Class classObject = Class.forName(className);

Adjust/sdk-plugin-criteo/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ dependencies {
3030
// Add SDK via module.
3131
compileOnly project(':sdk-core')
3232
// Add SDK via Maven.
33-
// implementation 'com.adjust.sdk:adjust-android:4.38.2'
33+
// implementation 'com.adjust.sdk:adjust-android:4.38.3'
3434
}
3535

3636
// read local properties

Adjust/sdk-plugin-imei/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ dependencies {
3030
// Add SDK via module.
3131
compileOnly project(':sdk-core')
3232
// Add SDK via Maven.
33-
// implementation 'com.adjust.sdk:adjust-android:4.38.2'
33+
// implementation 'com.adjust.sdk:adjust-android:4.38.3'
3434
}
3535

3636
// read local properties

Adjust/sdk-plugin-oaid/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ dependencies {
3333
// Add SDK via module.
3434
compileOnly project(':sdk-core')
3535
// Add SDK via Maven.
36-
// implementation 'com.adjust.sdk:adjust-android:4.38.2'
36+
// implementation 'com.adjust.sdk:adjust-android:4.38.3'
3737
implementation 'com.huawei.hms:ads-identifier:3.4.56.300'
3838
}
3939

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/build
2+
/libs
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,223 @@
1+
apply plugin: 'com.android.library'
2+
apply plugin: 'maven-publish'
3+
apply plugin: 'signing'
4+
5+
repositories {
6+
maven {
7+
url "https://oss.sonatype.org/content/repositories/staging/"
8+
}
9+
}
10+
11+
android {
12+
compileSdkVersion rootProject.ext.coreCompileSdkVersion
13+
publishing {
14+
multipleVariants {
15+
allVariants()
16+
withJavadocJar()
17+
}
18+
}
19+
defaultConfig {
20+
minSdkVersion rootProject.ext.samsungCloudDevMinSdkVersion
21+
targetSdkVersion rootProject.ext.coreTargetSdkVersion
22+
}
23+
namespace 'com.adjust.sdk.samsung.clouddev'
24+
}
25+
26+
dependencies {
27+
// Add SDK via module.
28+
compileOnly project(':sdk-core')
29+
// Add SDK via Maven.
30+
// implementation 'com.adjust.sdk:adjust-android:4.38.3'
31+
32+
// Add Samsung clouddev lib.
33+
compileOnly fileTree(include: ['*.aar'], dir: 'libs')
34+
}
35+
36+
// read local properties
37+
File localPropsFile = project.rootProject.file('local.properties')
38+
if (localPropsFile.exists()) {
39+
Properties p = new Properties()
40+
new FileInputStream(localPropsFile).withCloseable { is ->
41+
p.load(is)
42+
}
43+
p.each { name, value ->
44+
ext[name] = value
45+
}
46+
}
47+
48+
task adjustSamsungCloudDevPluginAar(type: Copy) {
49+
dependsOn 'assembleRelease'
50+
51+
from('build/outputs/aar/')
52+
include 'sdk-plugin-samsung-clouddev-release.aar'
53+
destinationDir file('build/libs/')
54+
rename 'sdk-plugin-samsung-clouddev-release.aar', "${project.name}.aar"
55+
56+
}
57+
58+
task adjustSamsungCloudDevPluginJar(type: Jar) {
59+
dependsOn 'packageReleaseAssets'
60+
dependsOn 'compileReleaseJavaWithJavac'
61+
62+
from('build/intermediates/library_assets/release/packageReleaseAssets/out/') {
63+
into('assets')
64+
}
65+
from('build/intermediates/javac/release/classes/')
66+
67+
archiveFileName = project.provider { "${project.name}.jar" }
68+
}
69+
70+
71+
task adjustSamsungCloudDevPluginSourcesJar(type: Jar) {
72+
setArchiveClassifier('sources')
73+
from android.sourceSets.main.java.srcDirs
74+
}
75+
76+
artifacts {
77+
archives adjustSamsungCloudDevPluginJar
78+
archives adjustSamsungCloudDevPluginSourcesJar
79+
}
80+
81+
afterEvaluate {
82+
publishing {
83+
publications {
84+
/*
85+
mavenAndroidSamsungCloudDevJar(MavenPublication) {
86+
customizePomForJar(pom)
87+
groupId rootProject.ext.adjustGroupId
88+
artifactId 'adjust-android-samsung-clouddev'
89+
version rootProject.ext.coreVersionName
90+
91+
artifact adjustSamsungCloudDevPluginJar
92+
artifact adjustSamsungCloudDevPluginSourcesJar
93+
}
94+
*/
95+
mavenAndroidSamsungCloudDevAar(MavenPublication) {
96+
customizePomForAar(pom)
97+
groupId rootProject.ext.adjustGroupId
98+
artifactId 'adjust-android-samsung-clouddev'
99+
version rootProject.ext.coreVersionName
100+
101+
artifact("$buildDir/outputs/aar/sdk-plugin-samsung-clouddev-release.aar") {
102+
builtBy tasks.getByPath("adjustSamsungCloudDevPluginAar")
103+
}
104+
artifact adjustSamsungCloudDevPluginSourcesJar
105+
}
106+
}
107+
108+
repositories {
109+
maven {
110+
url "https://oss.sonatype.org/service/local/staging/deploy/maven2"
111+
if (project.hasProperty("sonatypeUsername")) {
112+
credentials {
113+
username sonatypeUsername
114+
password sonatypePassword
115+
}
116+
}
117+
}
118+
}
119+
}
120+
signing {
121+
// sign publishing.publications.mavenAndroidSamsungCloudDevJar
122+
sign publishing.publications.mavenAndroidSamsungCloudDevAar
123+
}
124+
}
125+
126+
def customizePomForJar(pom) {
127+
pom.withXml {
128+
def root = asNode()
129+
130+
// Add all items necessary for maven central publication.
131+
root.children().last() + {
132+
resolveStrategy = Closure.DELEGATE_FIRST
133+
description 'The Samsung CloudDev plugin for Adjust SDK for Android'
134+
name 'Adjust Android SDK Samsung CloudDev plugin'
135+
url 'https://github.com/adjust/android_sdk'
136+
137+
organization {
138+
name 'adjust GmbH'
139+
url 'http://www.adjust.com'
140+
}
141+
licenses {
142+
license {
143+
name 'MIT License'
144+
url 'http://www.opensource.org/licenses/mit-license.php'
145+
}
146+
}
147+
scm {
148+
url '[email protected]:adjust/android_sdk.git'
149+
connection 'scm:git:[email protected]:adjust/android_sdk.git'
150+
developerConnection 'scm:git:[email protected]:adjust/android_sdk.git'
151+
}
152+
developers {
153+
developer {
154+
name 'Pedro Silva'
155+
156+
}
157+
developer {
158+
name 'Ugljesa Erceg'
159+
160+
}
161+
}
162+
}
163+
}
164+
}
165+
166+
def customizePomForAar(pom) {
167+
pom.withXml {
168+
def root = asNode()
169+
170+
// Add all items necessary for maven central publication.
171+
root.children().last() + {
172+
resolveStrategy = Closure.DELEGATE_FIRST
173+
description 'The Samsung CloudDev plugin for Adjust SDK for Android'
174+
name 'Adjust Android SDK Samsung CloudDev plugin'
175+
url 'https://github.com/adjust/android_sdk'
176+
177+
organization {
178+
name 'adjust GmbH'
179+
url 'http://www.adjust.com'
180+
}
181+
licenses {
182+
license {
183+
name 'MIT License'
184+
url 'http://www.opensource.org/licenses/mit-license.php'
185+
}
186+
}
187+
scm {
188+
url '[email protected]:adjust/android_sdk.git'
189+
connection 'scm:git:[email protected]:adjust/android_sdk.git'
190+
developerConnection 'scm:git:[email protected]:adjust/android_sdk.git'
191+
}
192+
developers {
193+
developer {
194+
name 'Pedro Silva'
195+
196+
}
197+
developer {
198+
name 'Ugljesa Erceg'
199+
200+
}
201+
}
202+
}
203+
}
204+
}
205+
206+
model {
207+
// tasks.generatePomFileForMavenAndroidSamsungCloudDevJarPublication {
208+
// destination = file("${project.buildDir}/generated-pom.xml")
209+
// }
210+
/* TODO check if/how to replace this tasks
211+
tasks.publishMavenAndroidSamsungCloudDevPublicationToMavenLocal {
212+
dependsOn project.tasks.signArchives
213+
}
214+
tasks.publishMavenAndroidSamsungCloudDevPublicationToMavenRepository {
215+
dependsOn project.tasks.signArchives
216+
}
217+
*/
218+
tasks.generatePomFileForMavenAndroidSamsungCloudDevAarPublication {
219+
destination = file("${project.buildDir}/generated-pom.xml")
220+
}
221+
}
222+
223+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Add project specific ProGuard rules here.
2+
# You can control the set of applied configuration files using the
3+
# proguardFiles setting in build.gradle.
4+
#
5+
# For more details, see
6+
# http://developer.android.com/guide/developing/tools/proguard.html
7+
8+
# If your project uses WebView with JS, uncomment the following
9+
# and specify the fully qualified class name to the JavaScript interface
10+
# class:
11+
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12+
# public *;
13+
#}
14+
15+
# Uncomment this to preserve the line number information for
16+
# debugging stack traces.
17+
#-keepattributes SourceFile,LineNumberTable
18+
19+
# If you keep the line number information, uncomment this to
20+
# hide the original source file name.
21+
#-renamesourcefileattribute SourceFile
22+
23+
-keepclassmembers, includecode class com.samsung.android.game.cloudgame.dev.sdk.* { *;}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
2+
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
3+
</manifest>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.adjust.sdk.samsung.clouddev;
2+
3+
import android.content.Context;
4+
5+
public class AdjustSamsungCloudDev {
6+
7+
static boolean shouldUseSamsungCloudDevSdk = true;
8+
9+
public static void useSamsungCloudDevSdk(Context context) {
10+
shouldUseSamsungCloudDevSdk = true;
11+
}
12+
13+
public static void doNotUseSamsungCloudDevSdk() {
14+
shouldUseSamsungCloudDevSdk = false;
15+
}
16+
}

0 commit comments

Comments
 (0)