mirror of
https://github.com/android/skills.git
synced 2026-09-14 20:07:09 +08:00
Updates skills (2026-06-04 10:51)
This commit is contained in:
@@ -6,7 +6,7 @@ description: Helps developers integrate, debug, and resolve Play Engage SDK impl
|
||||
license: Complete terms in LICENSE.txt
|
||||
metadata:
|
||||
author: Google LLC
|
||||
last-updated: '2026-05-15'
|
||||
last-updated: '2026-06-02'
|
||||
keywords:
|
||||
- android
|
||||
- engage
|
||||
|
||||
@@ -6,7 +6,7 @@ description: Use this skill when upgrading or migrating an Android project from
|
||||
license: Complete terms in LICENSE.txt
|
||||
metadata:
|
||||
author: Google LLC
|
||||
last-updated: '2026-05-20'
|
||||
last-updated: '2026-06-02'
|
||||
keywords:
|
||||
- android
|
||||
- play billing
|
||||
@@ -33,7 +33,7 @@ upgrade Play Billing Library to the latest version."
|
||||
Version"** ---defined as the version where those specific APIs were **last
|
||||
available**, not when they were introduced.
|
||||
- **Example** : If `SkuDetails` is present, treat the baseline as **PBL v7** or earlier (regardless of the version string in `build.gradle`).
|
||||
4. **Identify Target \& Path:** Access the version tool or release notes to find the latest stable version and calculate a \[Direct/Stepped\] migration path based on the **Effective Version** baseline.
|
||||
4. **Identify Target \& Path** : Access the version tool or release notes to find the latest stable version and calculate a \[Direct/Stepped\] migration path based on the **Effective Version** baseline.
|
||||
|
||||
- **Calculate Migration Path** :
|
||||
- If the **Effective Version** is within 2 major versions of the target: Plan a **Direct Migration**.
|
||||
@@ -59,7 +59,7 @@ accomplished afterwards.*
|
||||
|
||||
### Step 1: SDK \& Environment Alignment
|
||||
|
||||
- **Action** : Update `build.gradle` to meet SDK requirements (e.g., "PBL 8 requires `compileSdk` 35").
|
||||
- **Action** : Update `build.gradle` to meet SDK requirements (e.g., "PBL 9 requires `compileSdk` 35").
|
||||
- **Gradle Version**: Verify if the new library requires a newer Android Gradle Plugin (AGP) or Kotlin version.
|
||||
|
||||
### Step 2: Intent-based Refactoring
|
||||
@@ -78,7 +78,7 @@ string replacement.
|
||||
|
||||
### Step 4: Final Validation Checklist
|
||||
|
||||
1. **Smart Checklist Verification:**
|
||||
1. **Smart Checklist Verification**:
|
||||
2. Open [references/version-checklist.md](references/version-checklist.md) and locate the **Smart Version-Specific Checklist**.
|
||||
3. **Action**: For every version between your \[Detected Effective Version\] and \[Detected New Version\], verify that every item has been addressed in the code using "Find in Files" or structural analysis.
|
||||
4. **Tests** : Run all unit and implementation tests (`./gradlew test`).
|
||||
|
||||
@@ -63,7 +63,8 @@ checks.
|
||||
### 6. SDK \& Environment Requirements
|
||||
|
||||
- **PBL 7.0** : Requires `compileSdk 34` or higher.
|
||||
- **PBL 8.0** : Requires `compileSdk 35`.
|
||||
- **PBL 8.0** : Requires `compileSdk 34` or higher.
|
||||
- **PBL 9.0** : Requires `compileSdk 35` or higher.
|
||||
- **Kotlin** : Verify that `kotlin-stdlib` is updated to at least 1.9.x to support new library coroutine extensions.
|
||||
|
||||
### 7. User-Facing Features (Post-Upgrade Recommendations)
|
||||
@@ -73,4 +74,5 @@ versions:
|
||||
|
||||
- **v7** : **Installments** (Monthly payments for annual plans).
|
||||
- **v8** : **Prepaid Plans** (Users can top-up time without auto-renewing).
|
||||
- **v8** : **Personalized Pricing** (Show legal disclosure if price varies by user).
|
||||
- **v8** : **Personalized Pricing** (Show legal disclosure if price varies by user).
|
||||
- **v9** : **In-App Price Reviews** (Users can accept upcoming subscription price increases directly inside the app without leaving for the Play Store; capped by Google at a maximum of once every 7 days).
|
||||
@@ -34,13 +34,21 @@ Use this checklist to verify that every technical requirement between your
|
||||
|
||||
## PBL v8.x Series
|
||||
|
||||
- \[ \] **SDK Compliance** : `compileSdk` is set to 35.
|
||||
- \[ \] **SDK Compliance** : `compileSdk` is set to 34 or higher.
|
||||
- \[ \] **Terminology Shift**: Rename "in-app items" to "one-time products" in UI/strings.
|
||||
- \[ \] **Signature Enforcement** : `onProductDetailsResponse` signature MUST be `(BillingResult, QueryProductDetailsResult)`.
|
||||
- \[ \] **SUBS Offer Token** : For `SUBS` type, `ProductDetailsParams` MUST include an `offerToken`.
|
||||
- \[ \] **Auto-Reconnection** : Verify `enableAutoServiceReconnection()` is used in the builder.
|
||||
- \[ \] **Min SDK Increase** : Verify `minSdkVersion` is at least 23.
|
||||
|
||||
## Future Versions (PBL 9.0.0+)
|
||||
## PBL v9.x Series
|
||||
|
||||
- \[ \] **Dynamic Checklist Generation** : For any version \>=9.0.0, you **MUST** synthesize a new checklist for each new version header found in the [Release Notes](https://developer.android.com/google/play/billing/release-notes).
|
||||
- \[ \] **SDK Compliance** : `compileSdk` is set to 35 or higher.
|
||||
- \[ \] **API Removals** : Ensure all usages of `SkuDetails`, `SkuDetailsParams`, and `SkuDetailsResponseListener` are removed and replaced with their `ProductDetails` equivalents.
|
||||
- \[ \] **Blocked Store Error Handling** : If targeting restricted device modes (e.g., kids modes), ensure `androidx.core` is at v1.9+ and update error logic to catch `BILLING_UNAVAILABLE` instead of `ERROR`.
|
||||
- \[ \] **External Payment Program Null-Safety** : If using developer-provided billing, update `DeveloperProvidedBillingDetails.getLinkUri()` logic to explicitly check for both `null` and empty string (`""`) values before parsing.
|
||||
|
||||
## Future Versions (PBL 10.0.0+)
|
||||
|
||||
- \[ \] **Dynamic Checklist Generation** : For any version \>=10.0.0, you **MUST** synthesize a new checklist for each new version header found in the [Release Notes](https://developer.android.com/google/play/billing/release-notes).
|
||||
- \[ \] **Identify Version Delta** : Review "Breaking Changes" and "Removed APIs" for the new version and create a list of terms to `grep`.
|
||||
Reference in New Issue
Block a user