Skip to content

Commit

Permalink
Add more analytics
Browse files Browse the repository at this point in the history
  • Loading branch information
phillipthelen committed Aug 21, 2018
1 parent 202483a commit b944478
Show file tree
Hide file tree
Showing 12 changed files with 166 additions and 110 deletions.
2 changes: 1 addition & 1 deletion Habitica/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.habitrpg.android.habitica"
android:versionCode="1985"
android:versionCode="1987"
android:versionName="1.4.5"
android:screenOrientation="portrait"
android:installLocation="auto" >
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ public class AmplitudeManager {

public static String EVENT_HITTYPE_EVENT = "event";
public static String EVENT_HITTYPE_PAGEVIEW = "pageview";
public static String EVENT_HITTYPE_CREATE_WIDGET = "create";
public static String EVENT_HITTYPE_REMOVE_WIDGET = "remove";
public static String EVENT_HITTYPE_UPDATE_WIDGET = "update";

public static void sendEvent(String eventAction, String eventCategory, String hitType) {
sendEvent(eventAction, eventCategory, hitType, null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import com.habitrpg.android.habitica.data.SetupCustomizationRepository
import com.habitrpg.android.habitica.events.commands.UpdateUserCommand
import com.habitrpg.android.habitica.extensions.inflate
import com.habitrpg.android.habitica.extensions.notNull
import com.habitrpg.android.habitica.helpers.AmplitudeManager
import com.habitrpg.android.habitica.models.SetupCustomization
import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.AvatarView
Expand Down Expand Up @@ -66,6 +67,11 @@ class AvatarSetupFragment : BaseFragment() {

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
super.onCreateView(inflater, container, savedInstanceState)

val additionalData = HashMap<String, Any>()
additionalData["page"] = "Avatar Setup"
AmplitudeManager.sendEvent("navigate", AmplitudeManager.EVENT_CATEGORY_NAVIGATION, AmplitudeManager.EVENT_HITTYPE_PAGEVIEW, additionalData)

return container?.inflate(R.layout.fragment_setup_avatar)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.AppComponent
import com.habitrpg.android.habitica.extensions.inflate
import com.habitrpg.android.habitica.extensions.notNull
import com.habitrpg.android.habitica.helpers.AmplitudeManager
import com.habitrpg.android.habitica.ui.fragments.BaseFragment
import com.habitrpg.android.habitica.ui.helpers.bindOptionalView
import com.habitrpg.android.habitica.ui.helpers.bindView
import com.habitrpg.android.habitica.ui.helpers.resetViews
import java.util.HashMap

class IntroFragment : BaseFragment() {

Expand All @@ -34,6 +36,12 @@ class IntroFragment : BaseFragment() {

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
super.onCreateView(inflater, container, savedInstanceState)


val additionalData = HashMap<String, Any>()
additionalData["page"] = "Intro"
AmplitudeManager.sendEvent("navigate", AmplitudeManager.EVENT_CATEGORY_NAVIGATION, AmplitudeManager.EVENT_HITTYPE_PAGEVIEW, additionalData)

return container?.inflate(R.layout.fragment_intro)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.AppComponent
import com.habitrpg.android.habitica.extensions.inflate
import com.habitrpg.android.habitica.extensions.notNull
import com.habitrpg.android.habitica.helpers.AmplitudeManager
import com.habitrpg.android.habitica.models.tasks.Days
import com.habitrpg.android.habitica.models.tasks.Task
import com.habitrpg.android.habitica.models.user.User
Expand Down Expand Up @@ -37,6 +38,11 @@ class TaskSetupFragment : BaseFragment() {

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
super.onCreateView(inflater, container, savedInstanceState)

val additionalData = HashMap<String, Any>()
additionalData["page"] = "Task Setup"
AmplitudeManager.sendEvent("navigate", AmplitudeManager.EVENT_CATEGORY_NAVIGATION, AmplitudeManager.EVENT_HITTYPE_PAGEVIEW, additionalData)

return container?.inflate(R.layout.fragment_setup_tasks)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@ import android.widget.ImageView
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.AppComponent
import com.habitrpg.android.habitica.extensions.inflate
import com.habitrpg.android.habitica.helpers.AmplitudeManager
import com.habitrpg.android.habitica.ui.SpeechBubbleView
import com.habitrpg.android.habitica.ui.fragments.BaseFragment
import com.habitrpg.android.habitica.ui.helpers.bindView
import com.habitrpg.android.habitica.ui.helpers.resetViews
import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
import java.util.HashMap

class WelcomeFragment : BaseFragment() {

Expand All @@ -26,6 +28,10 @@ class WelcomeFragment : BaseFragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
super.onCreateView(inflater, container, savedInstanceState)

val additionalData = HashMap<String, Any>()
additionalData["page"] = "Welcome Screen"
AmplitudeManager.sendEvent("navigate", AmplitudeManager.EVENT_CATEGORY_NAVIGATION, AmplitudeManager.EVENT_HITTYPE_PAGEVIEW, additionalData)

return container?.inflate(R.layout.fragment_welcome)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ public int layoutResourceId() {

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
// Get all ids
ComponentName thisWidget = new ComponentName(context,
AddTaskWidgetProvider.class);
Expand All @@ -43,19 +44,19 @@ public RemoteViews configureRemoteViews(RemoteViews remoteViews, int widgetId, i
int backgroundResource = R.drawable.widget_add_habit_background;
switch (selectedTaskType) {
case Task.TYPE_HABIT:
addText = this.context.getResources().getString(R.string.add_habit);
addText = this.getContext().getResources().getString(R.string.add_habit);
backgroundResource = R.drawable.widget_add_habit_background;
break;
case Task.TYPE_DAILY:
addText = this.context.getResources().getString(R.string.add_daily);
addText = this.getContext().getResources().getString(R.string.add_daily);
backgroundResource = R.drawable.widget_add_daily_background;
break;
case Task.TYPE_TODO:
addText = this.context.getResources().getString(R.string.add_todo);
addText = this.getContext().getResources().getString(R.string.add_todo);
backgroundResource = R.drawable.widget_add_todo_background;
break;
case Task.TYPE_REWARD:
addText = this.context.getResources().getString(R.string.add_reward);
addText = this.getContext().getResources().getString(R.string.add_reward);
backgroundResource = R.drawable.widget_add_reward_background;
break;
}
Expand All @@ -65,7 +66,7 @@ public RemoteViews configureRemoteViews(RemoteViews remoteViews, int widgetId, i
}

private String getSelectedTaskType(int widgetId) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this.context);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this.getContext());
return preferences.getString("add_task_widget_" + widgetId, Task.TYPE_HABIT);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.view.View;
import android.widget.RemoteViews;

Expand Down Expand Up @@ -51,15 +52,17 @@ private void setUp() {

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
this.setUp();
this.appWidgetManager = appWidgetManager;
this.context = context;
this.setContext(context);

userRepository.getUser(userId).subscribe(this::updateData, RxErrorHandler.handleEmptyError());
userRepository.getUser(userId).firstElement().subscribe(this::updateData, RxErrorHandler.handleEmptyError());
}

@NonNull
@Override
public RemoteViews configureRemoteViews(RemoteViews remoteViews, int widgetId, int columns, int rows) {
public RemoteViews configureRemoteViews(@NonNull RemoteViews remoteViews, int widgetId, int columns, int rows) {
if (columns > 3) {
remoteViews.setViewVisibility(R.id.avatar_view, View.VISIBLE);
} else {
Expand All @@ -83,14 +86,14 @@ private void updateData(User user) {
return;
}
Stats stats = user.getStats();
ComponentName thisWidget = new ComponentName(context, AvatarStatsWidgetProvider.class);
ComponentName thisWidget = new ComponentName(getContext(), AvatarStatsWidgetProvider.class);
int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
String healthValueString = "" + stats.getHp().intValue() + "/" + stats.getMaxHealth();
String expValueString = "" + stats.getExp().intValue() + "/" + stats.getToNextLevel();
String mpValueString = "" + stats.getMp().intValue() + "/" + stats.getMaxMP();

for (int widgetId : allWidgetIds) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_avatar_stats);
RemoteViews remoteViews = new RemoteViews(getContext().getPackageName(), R.layout.widget_avatar_stats);

remoteViews.setTextViewText(R.id.TV_hp_value, healthValueString);
remoteViews.setTextViewText(R.id.exp_TV_value, expValueString);
Expand All @@ -105,7 +108,7 @@ private void updateData(User user) {
remoteViews.setProgressBar(R.id.mp_bar, stats.getMaxMP(), stats.getMp().intValue(), false);
remoteViews.setViewVisibility(R.id.mp_wrapper, showManaBar && ( stats.getHabitClass() == null || stats.getLvl() < 10 || user.getPreferences().getDisableClasses()) ? View.GONE : View.VISIBLE);

remoteViews.setTextViewText(R.id.gold_tv, NumberAbbreviator.INSTANCE.abbreviate(context, stats.getGp()));
remoteViews.setTextViewText(R.id.gold_tv, NumberAbbreviator.INSTANCE.abbreviate(getContext(), stats.getGp()));
remoteViews.setTextViewText(R.id.gems_tv, String.valueOf((int) (user.getBalance() * 4)));
int hourGlassCount = user.getHourglassCount();
if (hourGlassCount == 0) {
Expand All @@ -117,9 +120,9 @@ private void updateData(User user) {
remoteViews.setImageViewBitmap(R.id.hourglass_cion, HabiticaIconsHelper.imageOfHourglass());
remoteViews.setImageViewBitmap(R.id.gem_icon, HabiticaIconsHelper.imageOfGem());
remoteViews.setImageViewBitmap(R.id.gold_icon, HabiticaIconsHelper.imageOfGold());
remoteViews.setTextViewText(R.id.lvl_tv, context.getString(R.string.user_level, user.getStats().getLvl()));
remoteViews.setTextViewText(R.id.lvl_tv, getContext().getString(R.string.user_level, user.getStats().getLvl()));

AvatarView avatarView = new AvatarView(context, true, true, true);
AvatarView avatarView = new AvatarView(getContext(), true, true, true);

avatarView.setAvatar(user);
RemoteViews finalRemoteViews = remoteViews;
Expand All @@ -129,14 +132,14 @@ private void updateData(User user) {
});

//If user click on life and xp: open the app
Intent openAppIntent = new Intent(context.getApplicationContext(), MainActivity.class);
PendingIntent openApp = PendingIntent.getActivity(context, 0, openAppIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Intent openAppIntent = new Intent(getContext().getApplicationContext(), MainActivity.class);
PendingIntent openApp = PendingIntent.getActivity(getContext(), 0, openAppIntent, PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(R.id.widget_main_view, openApp);


if (Build.VERSION.SDK_INT >= 16) {
Bundle options = appWidgetManager.getAppWidgetOptions(widgetId);
remoteViews = sizeRemoteViews(context, options, widgetId);
remoteViews = sizeRemoteViews(getContext(), options, widgetId);
}

appWidgetManager.updateAppWidget(widgetId, remoteViews);
Expand Down

This file was deleted.

Loading

0 comments on commit b944478

Please sign in to comment.