Skip to content

feat: Android SDK update for version 25.0.0#128

Merged
ArnabChatterjee20k merged 3 commits into
mainfrom
dev
Jun 1, 2026
Merged

feat: Android SDK update for version 25.0.0#128
ArnabChatterjee20k merged 3 commits into
mainfrom
dev

Conversation

@ArnabChatterjee20k
Copy link
Copy Markdown
Member

@ArnabChatterjee20k ArnabChatterjee20k commented Jun 1, 2026

This PR contains updates to the Android SDK for version 25.0.0.

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Jun 1, 2026

Greptile Summary

This PR updates the Android SDK to version 25.0.0 with several breaking changes: Theme is renamed to BrowserTheme, Presence<T>/PresenceList<T> are de-generified to concrete types (metadata is now Any?), and convenience overloads in Presences are collapsed into single non-generic methods.

  • Document.kt and Row.kt fix a longstanding bug where a missing "data" key fell back to an empty map; it now falls back to the full document/row map, enabling correct flat-response deserialization.
  • Kotlin example docs are corrected: lowercase theme.LIGHT and timezone.AFRICA_ABIDJAN are replaced with the proper class-qualified forms BrowserTheme.LIGHT and Timezone.AFRICA_ABIDJAN.

Confidence Score: 5/5

The changes are a clean, self-contained SDK version bump — model and service simplifications with no critical logic paths affected.

All functional changes are straightforward: a rename, generic removal, a fallback fix, and version header bump. No data mutations, no auth paths, and no new runtime risks are introduced.

No files require special attention beyond the already-noted unused imports.

Important Files Changed

Filename Overview
library/src/main/java/io/appwrite/services/Presences.kt Generic type parameters removed; convenience overloads deleted; classOf() import now unused; @Throws(AppwriteException::class) no longer present on the new unified methods
library/src/main/java/io/appwrite/models/Presence.kt Converted from generic Presence<T> to concrete Presence; metadata field added as Any?; jsonCast import now unused
library/src/main/java/io/appwrite/models/PresenceList.kt Converted from generic PresenceList<T> to concrete type; jsonCast import now unused
library/src/main/java/io/appwrite/models/Document.kt Fallback for missing "data" key changed from empty map to full document map, enabling correct flat-document deserialization
library/src/main/java/io/appwrite/models/Row.kt Same fallback fix as Document.kt: missing "data" key now falls back to the full row map instead of an empty map
library/src/main/java/io/appwrite/enums/BrowserTheme.kt Renamed from Theme.kt to BrowserTheme.kt; enum class renamed accordingly; no logic changes
library/src/main/java/io/appwrite/Client.kt SDK version header bumped from 24.2.0 to 25.0.0

Reviews (2): Last reviewed commit: "chore: update Android SDK to 25.0.0" | Re-trigger Greptile

source = map["source"] as String,
expiresAt = map["expiresAt"] as? String,
metadata = map["metadata"]?.jsonCast(to = nestedType) ?: emptyMap<String, Any>().jsonCast(to = nestedType)
metadata = map["metadata"] as? Any,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 map["metadata"] already returns Any?, so as? Any is a safe cast that always succeeds and is effectively a no-op. The assignment can be simplified to just map["metadata"].

Suggested change
metadata = map["metadata"] as? Any,
metadata = map["metadata"],

@ArnabChatterjee20k ArnabChatterjee20k merged commit 3fd4f34 into main Jun 1, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants