Skip to content

Commit d60006c

Browse files
AR Abdul Azeezcursoragent
andcommitted
fix: [SDK-5616] make the composite login types internal
OneSignalUserProfile, LoginData, and OneSignalResult are only used by the profile login, which is no longer public. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent d4f5307 commit d60006c

5 files changed

Lines changed: 13 additions & 81 deletions

File tree

‎OneSignalSDK/onesignal/core/api/core.api‎

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,6 @@ public final class com/onesignal/InitData : com/onesignal/OneSignalResultData {
8989
public fun toString ()Ljava/lang/String;
9090
}
9191

92-
public final class com/onesignal/LoginData : com/onesignal/OneSignalResultData {
93-
public final fun getEmailSubscriptionId ()Ljava/lang/String;
94-
public final fun getExternalId ()Ljava/lang/String;
95-
public final fun getOnesignalId ()Ljava/lang/String;
96-
public final fun getSmsSubscriptionId ()Ljava/lang/String;
97-
public fun toMap ()Ljava/util/Map;
98-
public fun toString ()Ljava/lang/String;
99-
}
100-
10192
public final class com/onesignal/LogoutData : com/onesignal/OneSignalResultData {
10293
public fun toMap ()Ljava/util/Map;
10394
public fun toString ()Ljava/lang/String;
@@ -169,45 +160,10 @@ public final class com/onesignal/OneSignalError$Detail {
169160
public fun toString ()Ljava/lang/String;
170161
}
171162

172-
public final class com/onesignal/OneSignalResult {
173-
public synthetic fun <init> (Lcom/onesignal/OneSignalResultData;Lcom/onesignal/OneSignalError;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
174-
public final fun getData ()Lcom/onesignal/OneSignalResultData;
175-
public final fun getError ()Lcom/onesignal/OneSignalError;
176-
public final fun isSuccess ()Z
177-
public final fun toMap ()Ljava/util/Map;
178-
public fun toString ()Ljava/lang/String;
179-
}
180-
181163
public abstract interface class com/onesignal/OneSignalResultData {
182164
public abstract fun toMap ()Ljava/util/Map;
183165
}
184166

185-
public final class com/onesignal/OneSignalUserProfile {
186-
public static final field Companion Lcom/onesignal/OneSignalUserProfile$Companion;
187-
public synthetic fun <init> (Lcom/onesignal/OneSignalUserProfile$Builder;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
188-
public static final fun builder ()Lcom/onesignal/OneSignalUserProfile$Builder;
189-
public fun equals (Ljava/lang/Object;)Z
190-
public final fun getAliases ()Ljava/util/Map;
191-
public final fun getEmail ()Ljava/lang/String;
192-
public final fun getSms ()Ljava/lang/String;
193-
public final fun getTags ()Ljava/util/Map;
194-
public fun hashCode ()I
195-
public fun toString ()Ljava/lang/String;
196-
}
197-
198-
public final class com/onesignal/OneSignalUserProfile$Builder {
199-
public fun <init> ()V
200-
public final fun build ()Lcom/onesignal/OneSignalUserProfile;
201-
public final fun setAliases (Ljava/util/Map;)Lcom/onesignal/OneSignalUserProfile$Builder;
202-
public final fun setEmail (Ljava/lang/String;)Lcom/onesignal/OneSignalUserProfile$Builder;
203-
public final fun setSms (Ljava/lang/String;)Lcom/onesignal/OneSignalUserProfile$Builder;
204-
public final fun setTags (Ljava/util/Map;)Lcom/onesignal/OneSignalUserProfile$Builder;
205-
}
206-
207-
public final class com/onesignal/OneSignalUserProfile$Companion {
208-
public final fun builder ()Lcom/onesignal/OneSignalUserProfile$Builder;
209-
}
210-
211167
public final class com/onesignal/SyncJobService : android/app/job/JobService {
212168
public fun <init> ()V
213169
public fun onStartJob (Landroid/app/job/JobParameters;)Z

‎OneSignalSDK/onesignal/core/src/main/java/com/onesignal/OneSignalResult.kt‎

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,10 @@ import com.onesignal.common.toMap
44
import org.json.JSONObject
55

66
/**
7-
* The outcome of an asynchronous OneSignal call: either a [data] payload or an [error], never both
8-
* and never neither.
9-
*
10-
* Every SDK returns the same envelope, so a wrapper can handle results uniformly regardless of the
11-
* platform underneath it:
12-
*
13-
* ```json
14-
* { "success": true, "data": { }, "error": null }
15-
* { "success": false, "data": null, "error": [ { "code": "STORAGE_LOCKED", ... } ] }
16-
* ```
17-
*
18-
* The presence of [error] is what defines the outcome; [isSuccess] and the wire-level `success`
19-
* flag are both derived from it, so the two can never disagree.
20-
*
21-
* Construct through [success], [failure], or [fromMap]. The internal companion is still reachable
22-
* from Java, so the either/or invariant is enforced in `init`, not by visibility.
23-
*
24-
* From Kotlin, inside a coroutine:
25-
* ```kotlin
26-
* if (result.isSuccess) println(result.data) else println(result.error?.first?.code)
27-
* ```
28-
*
29-
* From Java the generated accessors read naturally:
30-
* ```java
31-
* if (result.isSuccess()) { result.getData(); } else { result.getError().getDetails(); }
32-
* ```
7+
* Either [data] or [error], never both. [isSuccess] follows [error].
8+
* Build with [success], [failure], or [fromMap]. Java can reach the companion, so `init` enforces either/or.
339
*/
34-
class OneSignalResult<T : OneSignalResultData> private constructor(
10+
internal class OneSignalResult<T : OneSignalResultData> private constructor(
3511
/** The payload on success, `null` on failure. */
3612
val data: T?,
3713
/** The failure detail on failure, `null` on success. */

‎OneSignalSDK/onesignal/core/src/main/java/com/onesignal/OneSignalResultData.kt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ sealed interface OneSignalResultData {
2323
* Field names here are also the wire keys, so they are additive-only: never renamed, never removed.
2424
*/
2525

26-
/** The payload returned by a successful login. */
27-
class LoginData internal constructor(
26+
/** Payload from the internal profile login. */
27+
internal class LoginData internal constructor(
2828
/** The OneSignal ID the external ID is now associated with. */
2929
val onesignalId: String,
3030
/** The external ID that was logged in. */

‎OneSignalSDK/onesignal/core/src/main/java/com/onesignal/OneSignalUserProfile.kt‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import com.onesignal.common.hasNullByte
55
import java.util.Collections
66

77
/**
8-
* Profile applied at login. Email/SMS create or transfer that address onto this user; they do not replace other subscriptions.
9-
* Build one with [builder]. There is no public constructor, so adding a field never breaks compiled callers.
8+
* Email, SMS, tags, and aliases for the internal profile login.
9+
* Email and SMS create or transfer that address. They do not replace other subscriptions.
1010
*/
1111
// Takes the Builder so the synthetic accessor's JVM signature stays fixed as fields are added.
12-
class OneSignalUserProfile private constructor(builder: Builder) {
12+
internal class OneSignalUserProfile private constructor(builder: Builder) {
1313
val email: String? = builder.email?.takeIf { it.isNotBlank() }
1414
val sms: String? = builder.sms?.takeIf { it.isNotBlank() }
1515
val tags: Map<String, String> = Collections.unmodifiableMap(builder.tags.toMap())
@@ -65,16 +65,16 @@ class OneSignalUserProfile private constructor(builder: Builder) {
6565
internal var aliases: Map<String, String> = emptyMap()
6666
private set
6767

68-
/** Email to create or transfer onto this user at login. */
68+
/** Email to create or transfer onto this user. */
6969
fun setEmail(email: String?) = apply { this.email = email }
7070

71-
/** SMS to create or transfer onto this user at login. Must be E.164 (e.g. +14155552671). */
71+
/** SMS to create or transfer onto this user. Must be E.164 (e.g. +14155552671). */
7272
fun setSms(sms: String?) = apply { this.sms = sms }
7373

74-
/** Sets tags to apply at login. The map is copied. */
74+
/** Tags to include. The map is copied. */
7575
fun setTags(tags: Map<String, String>) = apply { this.tags = tags.toMap() }
7676

77-
/** Sets aliases to apply at login. The map is copied. */
77+
/** Aliases to include. The map is copied. */
7878
fun setAliases(aliases: Map<String, String>) = apply { this.aliases = aliases.toMap() }
7979

8080
/** Builds the profile. */

‎OneSignalSDK/onesignal/core/src/main/java/com/onesignal/user/internal/operations/LoginUserOperation.kt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ class LoginUserOperation() : Operation(LoginUserOperationExecutor.LOGIN_USER) {
7979
override val canStartExecute: Boolean get() = existingOnesignalId == null || !IDManager.isLocalId(existingOnesignalId!!)
8080
override val applyToRecordId: String get() = existingOnesignalId ?: onesignalId
8181

82-
constructor(
82+
internal constructor(
8383
appId: String,
8484
onesignalId: String,
8585
externalId: String?,

0 commit comments

Comments
 (0)