forked from organicmaps/organicmaps
Fix of rate dialogs display logic.
This commit is contained in:
parent
35b6cf169d
commit
94feed33e0
3 changed files with 29 additions and 4 deletions
|
@ -3,6 +3,7 @@ package com.mapswithme.maps.ads;
|
|||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
|
@ -21,9 +22,20 @@ public class GooglePlusDialogFragment extends DialogFragment
|
|||
{
|
||||
super.onResume();
|
||||
|
||||
PlusOneButton plusButton = (PlusOneButton) getDialog().findViewById(R.id.btn__gplus);
|
||||
final PlusOneButton plusButton = (PlusOneButton) getDialog().findViewById(R.id.btn__gplus);
|
||||
if (plusButton != null)
|
||||
plusButton.initialize(Constants.Url.PLAY_MARKET_HTTPS_APP_PREFIX + Constants.Package.MWM_PRO_PACKAGE, 0);
|
||||
{
|
||||
plusButton.initialize(Constants.Url.PLAY_MARKET_HTTPS_APP_PREFIX + Constants.Package.MWM_PRO_PACKAGE, new PlusOneButton.OnPlusOneClickListener()
|
||||
{
|
||||
@Override
|
||||
public void onPlusOneClick(Intent intent)
|
||||
{
|
||||
LikesManager.setRatingApplied(GooglePlusDialogFragment.class, true);
|
||||
dismiss();
|
||||
startActivityForResult(intent, 0);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
|
|
@ -27,13 +27,14 @@ public class LikesManager
|
|||
private WeakReference<FragmentActivity> mActivityRef;
|
||||
|
||||
public static final String LAST_RATED_SESSION = "LastRatedSession";
|
||||
public static final String RATED_DIALOG = "RatedDialog";
|
||||
|
||||
public LikesManager(FragmentActivity activity)
|
||||
{
|
||||
mHandler = new Handler(activity.getMainLooper());
|
||||
mActivityRef = new WeakReference<>(activity);
|
||||
|
||||
mIsNewUser = MWMApplication.get().getFirstInstallVersion() >= 430;
|
||||
mIsNewUser = MWMApplication.get().getFirstInstallVersion() >= 422;
|
||||
mSessionNum = MWMApplication.get().getSessionsNumber();
|
||||
}
|
||||
|
||||
|
@ -60,7 +61,7 @@ public class LikesManager
|
|||
|
||||
private void displayLikeDialog(final Class<? extends DialogFragment> dialogFragmentClass)
|
||||
{
|
||||
if (isSessionRated())
|
||||
if (isSessionRated() || isRatingApplied(dialogFragmentClass))
|
||||
return;
|
||||
setSessionRated();
|
||||
|
||||
|
@ -105,4 +106,14 @@ public class LikesManager
|
|||
{
|
||||
MWMApplication.get().nativeSetInt(LAST_RATED_SESSION, mSessionNum);
|
||||
}
|
||||
|
||||
public static boolean isRatingApplied(final Class<? extends DialogFragment> dialogFragmentClass)
|
||||
{
|
||||
return MWMApplication.get().nativeGetBoolean(RATED_DIALOG + dialogFragmentClass.getSimpleName(), false);
|
||||
}
|
||||
|
||||
public static void setRatingApplied(final Class<? extends DialogFragment> dialogFragmentClass, boolean applied)
|
||||
{
|
||||
MWMApplication.get().nativeSetBoolean(RATED_DIALOG + dialogFragmentClass.getSimpleName(), applied);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,6 +61,7 @@ public class RateStoreDialogFragment extends DialogFragment implements View.OnCl
|
|||
mRating = rating;
|
||||
if (rating == 5.0f)
|
||||
{
|
||||
LikesManager.setRatingApplied(RateStoreDialogFragment.class, true);
|
||||
dismiss();
|
||||
Utils.openAppInMarket(getActivity(), BuildConfig.REVIEW_URL);
|
||||
}
|
||||
|
@ -103,6 +104,7 @@ public class RateStoreDialogFragment extends DialogFragment implements View.OnCl
|
|||
switch (v.getId())
|
||||
{
|
||||
case R.id.btn__explain_bad_rating:
|
||||
LikesManager.setRatingApplied(GooglePlusDialogFragment.class, true);
|
||||
dismiss();
|
||||
final Intent intent = new Intent(Intent.ACTION_SENDTO);
|
||||
final PackageInfo info;
|
||||
|
|
Loading…
Add table
Reference in a new issue