Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b82d9459 authored by Schneider Victor-tulias's avatar Schneider Victor-tulias
Browse files

Add event tracking to the gesture navigation tutorial.

- Added logs for tutorial step shown/completed and for tutorial skip.
- Added shared preference tracking for tutorial steps completed and for tutorial skip.

Bug:
Test: manual
Change-Id: I47dbdb394db80c5687e98fb034a3883b33f6fd3c
parent 763fd21b
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -15,13 +15,21 @@
 */
package com.android.quickstep.interaction;

import android.content.SharedPreferences;
import android.view.MotionEvent;
import android.view.View;

import com.android.launcher3.logging.StatsLogManager;
import com.android.quickstep.interaction.TutorialController.TutorialType;

/** Shows the Home gesture interactive tutorial. */
public class AssistantGestureTutorialFragment extends TutorialFragment {

    protected AssistantGestureTutorialFragment(
            SharedPreferences sharedPrefs, StatsLogManager statsLogManager) {
        super(sharedPrefs, statsLogManager);
    }

    @Override
    TutorialController createController(TutorialType type) {
        return new AssistantGestureTutorialController(this, type);
@@ -39,4 +47,14 @@ public class AssistantGestureTutorialFragment extends TutorialFragment {
        }
        return super.onTouch(view, motionEvent);
    }

    @Override
    void logTutorialStepShown() {
        // No-Op: tutorial step not currently shown to users
    }

    @Override
    void logTutorialStepCompleted() {
        // No-Op: tutorial step not currently shown to users
    }
}
+19 −0
Original line number Diff line number Diff line
@@ -19,12 +19,14 @@ import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.SharedPreferences;
import android.view.MotionEvent;
import android.view.View;

import androidx.annotation.Nullable;

import com.android.launcher3.R;
import com.android.launcher3.logging.StatsLogManager;
import com.android.quickstep.interaction.TutorialController.TutorialType;

import java.util.ArrayList;
@@ -32,6 +34,11 @@ import java.util.ArrayList;
/** Shows the Back gesture interactive tutorial. */
public class BackGestureTutorialFragment extends TutorialFragment {

    protected BackGestureTutorialFragment(
            SharedPreferences sharedPrefs, StatsLogManager statsLogManager) {
        super(sharedPrefs, statsLogManager);
    }

    @Nullable
    @Override
    Integer getEdgeAnimationResId() {
@@ -117,4 +124,16 @@ public class BackGestureTutorialFragment extends TutorialFragment {
        }
        return super.onTouch(view, motionEvent);
    }

    @Override
    void logTutorialStepShown() {
        mStatsLogManager.logger().log(
                StatsLogManager.LauncherEvent.LAUNCHER_GESTURE_TUTORIAL_BACK_STEP_SHOWN);
    }

    @Override
    void logTutorialStepCompleted() {
        mStatsLogManager.logger().log(
                StatsLogManager.LauncherEvent.LAUNCHER_GESTURE_TUTORIAL_BACK_STEP_COMPLETED);
    }
}
+15 −9
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
 */
package com.android.quickstep.interaction;

import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.Rect;
import android.os.Bundle;
@@ -28,6 +29,8 @@ import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentActivity;

import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.logging.StatsLogManager;
import com.android.quickstep.interaction.TutorialController.TutorialType;

import java.util.List;
@@ -46,17 +49,26 @@ public class GestureSandboxActivity extends FragmentActivity {
    private int mCurrentStep;
    private int mNumSteps;

    private SharedPreferences mSharedPrefs;
    private StatsLogManager mStatsLogManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.gesture_tutorial_activity);

        mSharedPrefs = Utilities.getPrefs(this);
        mStatsLogManager = StatsLogManager.newInstance(getApplicationContext());

        Bundle args = savedInstanceState == null ? getIntent().getExtras() : savedInstanceState;
        mTutorialSteps = getTutorialSteps(args);
        mCurrentTutorialStep = mTutorialSteps[mCurrentStep - 1];
        mFragment = TutorialFragment.newInstance(
                mCurrentTutorialStep, args.getBoolean(KEY_GESTURE_COMPLETE, false));
                mCurrentTutorialStep,
                args.getBoolean(KEY_GESTURE_COMPLETE, false),
                mSharedPrefs,
                mStatsLogManager);
        getSupportFragmentManager().beginTransaction()
                .add(R.id.gesture_tutorial_fragment_container, mFragment)
                .commit();
@@ -104,13 +116,6 @@ public class GestureSandboxActivity extends FragmentActivity {
        return mNumSteps;
    }

    /**
     * Closes the tutorial and this activity.
     */
    public void closeTutorial() {
        mFragment.closeTutorial();
    }

    /**
     * Replaces the current TutorialFragment, continuing to the next tutorial step if there is one.
     *
@@ -122,7 +127,8 @@ public class GestureSandboxActivity extends FragmentActivity {
            return;
        }
        mCurrentTutorialStep = mTutorialSteps[mCurrentStep];
        mFragment = TutorialFragment.newInstance(mCurrentTutorialStep, false);
        mFragment = TutorialFragment.newInstance(
                mCurrentTutorialStep, /* gestureComplete= */ false, mSharedPrefs, mStatsLogManager);
        getSupportFragmentManager().beginTransaction()
                .replace(R.id.gesture_tutorial_fragment_container, mFragment)
                .runOnCommit(() -> mFragment.onAttachedToWindow())
+19 −0
Original line number Diff line number Diff line
@@ -18,12 +18,14 @@ package com.android.quickstep.interaction;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.content.SharedPreferences;
import android.view.MotionEvent;
import android.view.View;

import androidx.annotation.Nullable;

import com.android.launcher3.R;
import com.android.launcher3.logging.StatsLogManager;
import com.android.quickstep.interaction.TutorialController.TutorialType;

import java.util.ArrayList;
@@ -31,6 +33,11 @@ import java.util.ArrayList;
/** Shows the Home gesture interactive tutorial. */
public class HomeGestureTutorialFragment extends TutorialFragment {

    protected HomeGestureTutorialFragment(
            SharedPreferences sharedPrefs, StatsLogManager statsLogManager) {
        super(sharedPrefs, statsLogManager);
    }

    @Nullable
    @Override
    Integer getEdgeAnimationResId() {
@@ -99,4 +106,16 @@ public class HomeGestureTutorialFragment extends TutorialFragment {
        releaseFeedbackAnimation();
        return super.onTouch(view, motionEvent);
    }

    @Override
    void logTutorialStepShown() {
        mStatsLogManager.logger().log(
                StatsLogManager.LauncherEvent.LAUNCHER_GESTURE_TUTORIAL_HOME_STEP_SHOWN);
    }

    @Override
    void logTutorialStepCompleted() {
        mStatsLogManager.logger().log(
                StatsLogManager.LauncherEvent.LAUNCHER_GESTURE_TUTORIAL_HOME_STEP_COMPLETED);
    }
}
+19 −0
Original line number Diff line number Diff line
@@ -18,12 +18,14 @@ package com.android.quickstep.interaction;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.content.SharedPreferences;
import android.view.MotionEvent;
import android.view.View;

import androidx.annotation.Nullable;

import com.android.launcher3.R;
import com.android.launcher3.logging.StatsLogManager;
import com.android.quickstep.interaction.TutorialController.TutorialType;

import java.util.ArrayList;
@@ -31,6 +33,11 @@ import java.util.ArrayList;
/** Shows the Overview gesture interactive tutorial. */
public class OverviewGestureTutorialFragment extends TutorialFragment {

    protected OverviewGestureTutorialFragment(
            SharedPreferences sharedPrefs, StatsLogManager statsLogManager) {
        super(sharedPrefs, statsLogManager);
    }

    @Nullable
    @Override
    Integer getEdgeAnimationResId() {
@@ -111,4 +118,16 @@ public class OverviewGestureTutorialFragment extends TutorialFragment {
        releaseFeedbackAnimation();
        return super.onTouch(view, motionEvent);
    }

    @Override
    void logTutorialStepShown() {
        mStatsLogManager.logger().log(
                StatsLogManager.LauncherEvent.LAUNCHER_GESTURE_TUTORIAL_OVERVIEW_STEP_SHOWN);
    }

    @Override
    void logTutorialStepCompleted() {
        mStatsLogManager.logger().log(
                StatsLogManager.LauncherEvent.LAUNCHER_GESTURE_TUTORIAL_OVERVIEW_STEP_COMPLETED);
    }
}
Loading