1
0
Fork 0
mirror of https://github.com/ninjamuffin99/Funkin.git synced 2025-09-01 03:15:53 +00:00
Funkin/source/funkin/mobile/util/InAppReviewUtil.hx

73 lines
1.7 KiB
Haxe

package funkin.mobile.util;
#if FEATURE_MOBILE_IAR
#if android
import extension.iarcore.android.IARAndroid as IAR;
#elseif ios
import extension.iarcore.ios.IARIOS as IAR;
#end
#end
/**
* Provides utility functions for working with in-app reviews.
* @see https://developer.android.com/guide/playcore/in-app-review
*/
@:nullSafety
class InAppReviewUtil
{
/**
* Chance for exiting the Results screen to display a prompt to review the game, as a percent.
*/
public static var ODDS:UInt = 5;
/**
* Initializes callbacks tied to the In-App Review functionality.
*/
public static function init():Void
{
#if FEATURE_MOBILE_IAR
#if android
trace('[IAR] Initializing callbacks...');
IAR.onLog.add(function(message:String):Void {
trace('[IAR] Error occurred: "$message"');
});
IAR.onReviewCompleted.add(function(success:Bool):Void {
trace('[IAR] Review completed: "${success ? 'Success' : 'Failure'}"');
});
IAR.onReviewError.add(function(message:String):Void {
trace('[IAR] Review failed: "$message"');
});
#end
#else
trace('[IAR] IAR is disabled...');
#end
}
/**
* When called, displays a card which prompts the user to provide a review of the game,
* which will be posted to the respective app store.
*
* Google Play will throttle this for us t
*/
public static function requestReview():Void
{
#if FEATURE_MOBILE_IAR
trace('[IAR] Sending in-app review request...');
#if android
IAR.init();
#if FEATURE_DEBUG_FUNCTIONS
IAR.requestAndLaunchFakeReviewFlow();
#else
IAR.requestAndLaunchReviewFlow();
#end
#else
IAR.requestReview();
#end
#else
trace('[IAR] IAR is disabled...');
#end
}
}