From 9dd1f8a95cf9547f8862d50a84aac00a35cac07c Mon Sep 17 00:00:00 2001 From: Zeykit-Dev Date: Sat, 5 Aug 2017 23:46:36 +0200 Subject: [PATCH 1/2] Update RateThisApp.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • I've added dismissRateDialog() function. I've been need to change a very little piece of code to make this works. --- .../com/kobakei/ratethisapp/RateThisApp.java | 57 +++++++++---------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/ratethisapp/src/main/java/com/kobakei/ratethisapp/RateThisApp.java b/ratethisapp/src/main/java/com/kobakei/ratethisapp/RateThisApp.java index bd00812..1852b01 100644 --- a/ratethisapp/src/main/java/com/kobakei/ratethisapp/RateThisApp.java +++ b/ratethisapp/src/main/java/com/kobakei/ratethisapp/RateThisApp.java @@ -1,20 +1,3 @@ -/* - * Copyright 2013-2017 Keisuke Kobayashi - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.kobakei.ratethisapp; - import java.lang.ref.WeakReference; import java.util.Date; import java.util.concurrent.TimeUnit; @@ -62,6 +45,9 @@ public class RateThisApp { // Weak ref to avoid leaking the context private static WeakReference sDialogRef = null; + private static AlertDialog dialog; + private static AlertDialog.Builder builder; + /** * If true, print LogCat */ @@ -166,7 +152,7 @@ public static boolean shouldShowRateDialog() { } long threshold = TimeUnit.DAYS.toMillis(sConfig.mCriteriaInstallDays); // msec if (new Date().getTime() - mInstallDate.getTime() >= threshold && - new Date().getTime() - mAskLaterDate.getTime() >= threshold) { + new Date().getTime() - mAskLaterDate.getTime() >= threshold) { return true; } return false; @@ -178,7 +164,8 @@ public static boolean shouldShowRateDialog() { * @param context */ public static void showRateDialog(final Context context) { - AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder = new AlertDialog.Builder(context); + dialog = builder.create(); showRateDialog(context, builder); } @@ -188,10 +175,19 @@ public static void showRateDialog(final Context context) { * @param themeId */ public static void showRateDialog(final Context context, int themeId) { - AlertDialog.Builder builder = new AlertDialog.Builder(context, themeId); + builder = new AlertDialog.Builder(context, themeId); + dialog = builder.create(); showRateDialog(context, builder); } + /** + * Dismiss the rate dialog + */ + public static void dismissRateDialog() { + if (dialog != null) + dialog.dismiss(); + } + /** * Stop showing the rate dialog * @param context @@ -215,11 +211,11 @@ private static void showRateDialog(final Context context, AlertDialog.Builder bu return; } - int titleId = sConfig.mTitleId != 0 ? sConfig.mTitleId : R.string.rta_dialog_title; - int messageId = sConfig.mMessageId != 0 ? sConfig.mMessageId : R.string.rta_dialog_message; - int cancelButtonID = sConfig.mCancelButton != 0 ? sConfig.mCancelButton : R.string.rta_dialog_cancel; - int thanksButtonID = sConfig.mNoButtonId != 0 ? sConfig.mNoButtonId : R.string.rta_dialog_no; - int rateButtonID = sConfig.mYesButtonId != 0 ? sConfig.mYesButtonId : R.string.rta_dialog_ok; + int titleId = sConfig.mTitleId != 0 ? sConfig.mTitleId : R.string.rta_title; + int messageId = sConfig.mMessageId != 0 ? sConfig.mMessageId : R.string.rta_message; + int cancelButtonID = sConfig.mCancelButton != 0 ? sConfig.mCancelButton : R.string.rta_cancel; + int thanksButtonID = sConfig.mNoButtonId != 0 ? sConfig.mNoButtonId : R.string.rta_no; + int rateButtonID = sConfig.mYesButtonId != 0 ? sConfig.mYesButtonId : R.string.rta_yes; builder.setTitle(titleId); builder.setMessage(messageId); switch (sConfig.mCancelMode) { @@ -298,7 +294,10 @@ public void onDismiss(DialogInterface dialog) { sDialogRef.clear(); } }); - sDialogRef = new WeakReference<>(builder.show()); + + dialog = builder.create(); + sDialogRef = new WeakReference<>(dialog); + dialog.show(); } /** @@ -468,9 +467,9 @@ public void setUrl(String url) { } /** - * Set the cancel mode; namely, which ways the user can cancel the dialog. - * @param cancelMode - */ + * Set the cancel mode; namely, which ways the user can cancel the dialog. + * @param cancelMode + */ public void setCancelMode(int cancelMode) { this.mCancelMode = cancelMode; } From 7a149f94a68b326a0702b2b8aec573e5058da0c2 Mon Sep 17 00:00:00 2001 From: Zeykit-Dev Date: Sat, 5 Aug 2017 23:53:06 +0200 Subject: [PATCH 2/2] Update RateThisApp.java --- .../main/java/com/kobakei/ratethisapp/RateThisApp.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ratethisapp/src/main/java/com/kobakei/ratethisapp/RateThisApp.java b/ratethisapp/src/main/java/com/kobakei/ratethisapp/RateThisApp.java index 1852b01..c896c6f 100644 --- a/ratethisapp/src/main/java/com/kobakei/ratethisapp/RateThisApp.java +++ b/ratethisapp/src/main/java/com/kobakei/ratethisapp/RateThisApp.java @@ -211,11 +211,11 @@ private static void showRateDialog(final Context context, AlertDialog.Builder bu return; } - int titleId = sConfig.mTitleId != 0 ? sConfig.mTitleId : R.string.rta_title; - int messageId = sConfig.mMessageId != 0 ? sConfig.mMessageId : R.string.rta_message; - int cancelButtonID = sConfig.mCancelButton != 0 ? sConfig.mCancelButton : R.string.rta_cancel; - int thanksButtonID = sConfig.mNoButtonId != 0 ? sConfig.mNoButtonId : R.string.rta_no; - int rateButtonID = sConfig.mYesButtonId != 0 ? sConfig.mYesButtonId : R.string.rta_yes; + int titleId = sConfig.mTitleId != 0 ? sConfig.mTitleId : R.string.rta_dialog_title; + int messageId = sConfig.mMessageId != 0 ? sConfig.mMessageId : R.string.rta_dialog_message; + int cancelButtonID = sConfig.mCancelButton != 0 ? sConfig.mCancelButton : R.string.rta_dialog_cancel; + int thanksButtonID = sConfig.mNoButtonId != 0 ? sConfig.mNoButtonId : R.string.rta_dialog_no; + int rateButtonID = sConfig.mYesButtonId != 0 ? sConfig.mYesButtonId : R.string.rta_dialog_ok; builder.setTitle(titleId); builder.setMessage(messageId); switch (sConfig.mCancelMode) {