forked from organicmaps/organicmaps
Added statistics for onboarding screens
This commit is contained in:
parent
a958806294
commit
0d2bdcf20e
4 changed files with 119 additions and 15 deletions
|
@ -1,47 +1,105 @@
|
|||
package com.mapswithme.maps.news;
|
||||
|
||||
import androidx.annotation.DrawableRes;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.StringRes;
|
||||
import com.mapswithme.maps.R;
|
||||
import com.mapswithme.util.UiUtils;
|
||||
import com.mapswithme.util.statistics.StatisticValueConverter;
|
||||
|
||||
public enum OnboardingStep
|
||||
public enum OnboardingStep implements StatisticValueConverter<String>
|
||||
{
|
||||
CHECK_OUT_SIGHTS(R.string.visible,
|
||||
R.string.visible,
|
||||
R.string.view_campaign_button,
|
||||
R.string.visible,
|
||||
R.drawable.img_check_sights_out),
|
||||
R.drawable.img_check_sights_out)
|
||||
{
|
||||
@NonNull
|
||||
@Override
|
||||
public String toStatisticValue()
|
||||
{
|
||||
return "sample_discovery";
|
||||
}
|
||||
},
|
||||
SUBSCRIBE_TO_CATALOG(R.string.visible,
|
||||
R.string.visible,
|
||||
R.string.view_campaign_button,
|
||||
R.string.visible,
|
||||
R.drawable.img_discover_guides),
|
||||
R.drawable.img_discover_guides)
|
||||
{
|
||||
@NonNull
|
||||
@Override
|
||||
public String toStatisticValue()
|
||||
{
|
||||
return "buy_subscription";
|
||||
}
|
||||
},
|
||||
DISCOVER_GUIDES(R.string.visible,
|
||||
R.string.visible,
|
||||
R.string.view_campaign_button,
|
||||
R.string.visible,
|
||||
R.drawable.img_discover_guides),
|
||||
R.drawable.img_discover_guides)
|
||||
{
|
||||
@NonNull
|
||||
@Override
|
||||
public String toStatisticValue()
|
||||
{
|
||||
return "catalog_discovery";
|
||||
}
|
||||
},
|
||||
SHARE_EMOTIONS(R.string.visible,
|
||||
UiUtils.NO_ID,
|
||||
R.string.view_campaign_button,
|
||||
R.string.visible,
|
||||
R.drawable.img_share_emptions, false),
|
||||
R.drawable.img_share_emptions, false)
|
||||
{
|
||||
@NonNull
|
||||
@Override
|
||||
public String toStatisticValue()
|
||||
{
|
||||
return "share_emotions";
|
||||
}
|
||||
},
|
||||
EXPERIENCE(R.string.visible,
|
||||
UiUtils.NO_ID,
|
||||
R.string.view_campaign_button,
|
||||
R.string.visible,
|
||||
R.drawable.img_experience, false),
|
||||
R.drawable.img_experience, false)
|
||||
{
|
||||
@NonNull
|
||||
@Override
|
||||
public String toStatisticValue()
|
||||
{
|
||||
return "experience";
|
||||
}
|
||||
},
|
||||
DREAM_AND_PLAN(R.string.visible,
|
||||
UiUtils.NO_ID,
|
||||
R.string.view_campaign_button,
|
||||
R.string.visible,
|
||||
R.drawable.img_dream_and_plan, false),
|
||||
R.drawable.img_dream_and_plan, false)
|
||||
{
|
||||
@NonNull
|
||||
@Override
|
||||
public String toStatisticValue()
|
||||
{
|
||||
return "dream_and_plan";
|
||||
}
|
||||
},
|
||||
PERMISSION_EXPLANATION(R.string.visible,
|
||||
R.string.visible,
|
||||
R.string.view_campaign_button,
|
||||
R.string.visible,
|
||||
R.drawable.img_welcome);
|
||||
R.drawable.img_welcome)
|
||||
{
|
||||
@NonNull
|
||||
@Override
|
||||
public String toStatisticValue()
|
||||
{
|
||||
return "permissions";
|
||||
}
|
||||
};
|
||||
|
||||
@StringRes
|
||||
private final int mAcceptButtonResId;
|
||||
|
@ -75,7 +133,6 @@ public enum OnboardingStep
|
|||
mDeclinedButton = hasDeclinedButton;
|
||||
}
|
||||
|
||||
|
||||
@StringRes
|
||||
public int getAcceptButtonResId()
|
||||
{
|
||||
|
|
|
@ -25,12 +25,14 @@ import android.widget.ImageView;
|
|||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.mapswithme.maps.BuildConfig;
|
||||
import com.mapswithme.maps.MwmApplication;
|
||||
import com.mapswithme.maps.R;
|
||||
import com.mapswithme.maps.base.BaseMwmDialogFragment;
|
||||
import com.mapswithme.util.ThemeUtils;
|
||||
import com.mapswithme.util.UiUtils;
|
||||
import com.mapswithme.util.Utils;
|
||||
import com.mapswithme.util.statistics.Statistics;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
@ -348,6 +350,7 @@ public abstract class BaseNewsFragment extends BaseMwmDialogFragment
|
|||
@Override
|
||||
public void onClick(View v)
|
||||
{
|
||||
trackStatistic(Statistics.ParamValue.NEXT);
|
||||
mPager.setCurrentItem(mPager.getCurrentItem() + 1, true);
|
||||
}
|
||||
});
|
||||
|
@ -362,15 +365,27 @@ public abstract class BaseNewsFragment extends BaseMwmDialogFragment
|
|||
});
|
||||
|
||||
update();
|
||||
|
||||
trackStatistic(Statistics.ParamValue.OPEN);
|
||||
return res;
|
||||
}
|
||||
|
||||
private void trackStatistic(@NonNull String value)
|
||||
{
|
||||
Statistics.ParameterBuilder builder = Statistics
|
||||
.params()
|
||||
.add(Statistics.EventParam.ACTION, value)
|
||||
.add(Statistics.EventParam.VERSION, BuildConfig.VERSION_NAME);
|
||||
Statistics.INSTANCE.trackEvent(Statistics.EventName.WHATS_NEW_ACTION, builder);
|
||||
}
|
||||
|
||||
@CallSuper
|
||||
protected void onDoneClick()
|
||||
{
|
||||
dismissAllowingStateLoss();
|
||||
if (mListener != null)
|
||||
mListener.onDialogDone();
|
||||
trackStatistic(Statistics.ParamValue.CLOSE);
|
||||
}
|
||||
|
||||
@SuppressWarnings("TryWithIdenticalCatches")
|
||||
|
|
|
@ -26,6 +26,7 @@ import com.mapswithme.util.Counters;
|
|||
import com.mapswithme.util.SharedPropertiesUtils;
|
||||
import com.mapswithme.util.ThemeUtils;
|
||||
import com.mapswithme.util.UiUtils;
|
||||
import com.mapswithme.util.statistics.Statistics;
|
||||
|
||||
import java.util.Stack;
|
||||
|
||||
|
@ -33,6 +34,7 @@ public class WelcomeDialogFragment extends BaseMwmDialogFragment implements View
|
|||
{
|
||||
private static final String ARG_HAS_SPECIFIC_STEP = "welcome_screen_type";
|
||||
private static final String ARG_HAS_MANY_STEPS = "show_onboarding_steps";
|
||||
private static final String DEF_STATISTICS_VALUE = "agreement";
|
||||
|
||||
@NonNull
|
||||
private final Stack<OnboardingStep> mOnboardingSteps = new Stack<>();
|
||||
|
@ -175,7 +177,7 @@ public class WelcomeDialogFragment extends BaseMwmDialogFragment implements View
|
|||
|
||||
initUserAgreementViews();
|
||||
bindWelcomeScreenType();
|
||||
|
||||
trackStatisticEvent(Statistics.EventName.ONBOARDING_SCREEN_SHOW);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
@ -255,6 +257,8 @@ public class WelcomeDialogFragment extends BaseMwmDialogFragment implements View
|
|||
if (!isAgreementGranted)
|
||||
return;
|
||||
|
||||
trackStatisticEvent(Statistics.EventName.ONBOARDING_SCREEN_ACCEPT);
|
||||
|
||||
if (mPolicyAgreementListener != null)
|
||||
mPolicyAgreementListener.onPolicyAgreementApplied();
|
||||
dismissAllowingStateLoss();
|
||||
|
@ -282,18 +286,36 @@ public class WelcomeDialogFragment extends BaseMwmDialogFragment implements View
|
|||
mTitle.setText(mOnboardinStep.getTitle());
|
||||
mImage.setImageResource(mOnboardinStep.getImage());
|
||||
mAcceptBtn.setText(mOnboardinStep.getAcceptButtonResId());
|
||||
declineBtn.setOnClickListener(v -> {});
|
||||
declineBtn.setOnClickListener(v -> onDeclineBtnClicked());
|
||||
mSubtitle.setText(mOnboardinStep.getSubtitle());
|
||||
}
|
||||
|
||||
private void onDeclineBtnClicked()
|
||||
{
|
||||
Counters.setFirstStartDialogSeen(requireContext());
|
||||
trackStatisticEvent(Statistics.EventName.ONBOARDING_SCREEN_DECLINE);
|
||||
}
|
||||
|
||||
private void trackStatisticEvent(@NonNull String event)
|
||||
{
|
||||
Statistics.ParameterBuilder builder = Statistics
|
||||
.params().add(Statistics.EventParam.TYPE, getModeStatsValue());
|
||||
Statistics.INSTANCE.trackEvent(event, builder);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private String getModeStatsValue()
|
||||
{
|
||||
return mOnboardinStep == null ? DEF_STATISTICS_VALUE : mOnboardinStep.toStatisticValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v)
|
||||
{
|
||||
if (v.getId() != R.id.accept_btn)
|
||||
{
|
||||
Counters.setFirstStartDialogSeen(requireContext());
|
||||
return;
|
||||
}
|
||||
|
||||
trackStatisticEvent(Statistics.EventName.ONBOARDING_SCREEN_ACCEPT);
|
||||
|
||||
if (!mOnboardingSteps.isEmpty())
|
||||
{
|
||||
|
|
|
@ -369,6 +369,7 @@ public enum Statistics
|
|||
public static final String DOWNLOADER_BANNER_CLICK = "Downloader_Banner_click";
|
||||
public static final String DOWNLOADER_FAB_CLICK = "Downloader_AddMap_click";
|
||||
public static final String DOWNLOADER_SEARCH_CLICK = "Downloader_Search_click";
|
||||
public static final String WHATS_NEW_ACTION = "WhatsNew_action";
|
||||
static final String DOWNLOADER_DIALOG_ERROR = "Downloader_OnStartScreen_error";
|
||||
|
||||
// bookmarks
|
||||
|
@ -544,6 +545,10 @@ public enum Statistics
|
|||
static final String INAPP_PURCHASE_VALIDATION_ERROR = "InAppPurchase_Validation_error";
|
||||
static final String INAPP_PURCHASE_PRODUCT_DELIVERED = "InAppPurchase_Product_delivered";
|
||||
|
||||
public static final String ONBOARDING_SCREEN_SHOW = "OnboardingScreen_show";
|
||||
public static final String ONBOARDING_SCREEN_ACCEPT = "OnboardingScreen_accept";
|
||||
public static final String ONBOARDING_SCREEN_DECLINE = "OnboardingScreen_decline";
|
||||
|
||||
public static final String ONBOARDING_DEEPLINK_SCREEN_SHOW = "OnboardingDeeplinkScreen_show";
|
||||
public static final String ONBOARDING_DEEPLINK_SCREEN_ACCEPT = "OnboardingDeeplinkScreen_accept";
|
||||
public static final String ONBOARDING_DEEPLINK_SCREEN_DECLINE = "OnboardingDeeplinkScreen_decline";
|
||||
|
@ -606,6 +611,7 @@ public enum Statistics
|
|||
public static final String SCENARIO = "scenario";
|
||||
public static final String BUTTON = "button";
|
||||
public static final String SCREEN = "screen";
|
||||
public static final String VERSION = "version";
|
||||
static final String TARGET = "target";
|
||||
static final String CATEGORY = "category";
|
||||
public static final String TAB = "tab";
|
||||
|
@ -701,9 +707,13 @@ public enum Statistics
|
|||
public static final String SPONSORED_BUTTON = "sponsored_button";
|
||||
public static final String POPUP = "popup";
|
||||
public static final String WEBVIEW = "webview";
|
||||
public static final String ONBOARDING_GUIDES_SUBSCRIPTION = "onboarding_guides_subscription";
|
||||
public static final String PLUS = "plus";
|
||||
public static final String DOWNLOAD = "download";
|
||||
static final String GUIDES_SUBSCRIPTION = "GuidesSubscription";
|
||||
public static final String OPEN = "open";
|
||||
public static final String CLOSE = "close";
|
||||
public static final String NEXT = "next";
|
||||
static final String GUIDES_SUBSCRIPTION = "OnboardingGuidesSubscription";
|
||||
static final String SEARCH_BOOKING_COM = "Search.Booking.Com";
|
||||
static final String OPENTABLE = "OpenTable";
|
||||
static final String LOCALS_EXPERTS = "Locals.Maps.Me";
|
||||
|
|
Loading…
Add table
Reference in a new issue