AndroidReplacementMode enum
Android Replacement Mode (formerly Proration Mode)
IMPORTANT: Replacement modes are ONLY for upgrading/downgrading EXISTING subscriptions. For NEW subscriptions, do NOT use any replacement mode.
To use replacement mode:
- User must have an active subscription
- You must provide the purchaseToken from the existing subscription
- Get the token using getAvailablePurchases()
Example:
// First, check for existing subscription
final purchases = await FlutterInappPurchase.instance.getAvailablePurchases();
if (purchases.isEmpty) {
  // User has no subscription - purchase new one WITHOUT replacement mode
  await FlutterInappPurchase.instance.requestPurchaseWithBuilder(
    build: (builder) {
      builder.type = ProductQueryType.Subs;
      builder.android.skus = ['premium_monthly'];
    },
  );
} else {
  // User has subscription - can upgrade/downgrade WITH replacement mode
  final existingSub = purchases.first;
  await FlutterInappPurchase.instance.requestPurchaseWithBuilder(
    build: (builder) {
      builder.type = ProductQueryType.Subs;
      builder.android
        ..skus = ['premium_yearly']
        ..purchaseTokenAndroid = existingSub.purchaseToken
        ..replacementModeAndroid =
            AndroidReplacementMode.withTimeProration.value;
    },
  );
}
- Inheritance
- Available extensions
Values
- unknownReplacementMode → const AndroidReplacementMode
- withTimeProration → const AndroidReplacementMode
- chargeProratedPrice → const AndroidReplacementMode
- withoutProration → const AndroidReplacementMode
- deferred → const AndroidReplacementMode
- chargeFullPrice → const AndroidReplacementMode
Properties
- hashCode → int
- 
  The hash code for this object.
  no setterinherited
- index → int
- 
  A numeric identifier for the enumerated value.
  no setterinherited
- name → String
- 
      Available on Enum, provided by the EnumName extension The name of the enum value.no setter
- runtimeType → Type
- 
  A representation of the runtime type of the object.
  no setterinherited
- value → int
- 
      Available on AndroidReplacementMode, provided by the AndroidReplacementModeValue extension no setter
Methods
- 
  noSuchMethod(Invocation invocation) → dynamic 
- 
  Invoked when a nonexistent method or property is accessed.
  inherited
- 
  toString() → String 
- 
  A string representation of this object.
  inherited
Operators
- 
  operator ==(Object other) → bool 
- 
  The equality operator.
  inherited
Constants
- 
    values
  → const List<AndroidReplacementMode> 
- A constant List of the values in this enum, in order of their declaration.