0 purchases
conditional trigger
Conditional Trigger #
This plugin will make it easier for you to set the conditions for specific method.
Usage #
final condition = ConditionalTrigger(
'SurveyBanner',
minDays: 3,
minCalls: 3,
);
copied to clipboard
Full parameters
/// Name of this contidion. This is also known as prefix of the SharedPreferences.
final String name;
/// Min days since this method is called
final int minDays;
/// Min calls of this method (increase counter when this method is executed)
/// If you add this line in your main(), it's same as app opening count
final int minCalls;
/// If the current version is satisfied with this than not showing the request
/// this value use plugin `satisfied_version` to compare.
final List<String> noRequestVersions;
/// List of version that allow the app to remind the in-app review.
final List<String> remindedVersions;
/// If true, it'll keep asking for the ConditionalTrigger on each new version
/// (and satisfied with all the above ConditionalTrigger). If false, it only requests
/// for the first time the ConditionalTrigger are satisfied.
final bool keepRemind;
/// Debug
final bool debugLog;
copied to clipboard
Use this method to check the conditions:
final state = await condition.check();
if (state == ConditionalState.satisfied) {
// Do something
}
copied to clipboard
You can get the state if you already ran check() somewhere else:
final state = condition.lastState;
copied to clipboard
This method will automatically return the conditions.lastState when it is set, so you can call it multiple times:
final stateOnce = await condition.checkOnce();
if (state == ConditionalState.satisfied) {
// Do something
}
copied to clipboard
Full ConditionalState
/// The conditions have been satisfied but the `keepRemind` was disabled
ConditionalState.keepRemindDisabled
/// This version is satisfied with `noRequestVersions` => Don't satisfied
ConditionalState.noRequestVersion
/// Don't satisfy with minCalls and minDays
ConditionalState.notSatisfiedWithMinCallsAndDays
/// Don't satisfy with minCalls condition
ConditionalState.notSatisfiedWithMinCalls
/// Don't satisfy with minDays condition
ConditionalState.notSatisfiedWithMinDays
/// Satisfied with all conditions
ConditionalState.satisfied
copied to clipboard
Or if you want to show a Widget
FutureBuilder(
future: ConditionalTrigger('SurveyBanner').check(),
build: (context, snapshot) {
if (snapshot.data != ConditionalState.satisfied) {
return SizedBox.shrink();
}
return SurveyBanner();
}
);
copied to clipboard
Testing #
/// Set mock values
condition.setMockInitialValues(ConditionalMock());
/// Remove mock values
condition.setMockInitialValues();
copied to clipboard
Contributions #
Contributions to this project are welcome! If you would like to contribute, please feel free to submit pull requests or open issues. However, please note that this project is in early development and may not have well-defined contribution guidelines yet. We appreciate your patience and understanding as we work to build a strong and inclusive community around this package.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.