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

Commit b1fdd557 authored by Anna Zhuravleva's avatar Anna Zhuravleva
Browse files

Log events during PS setup flow.

Log pages and user clicks during private
space setup flow.

Bug: 313170618
Test: statd_testdrive 97, output: https://paste.googleplex.com/4874404496932864
Change-Id: I1f59e9720ee4bdd21670b86a4f1f0f98a91fa0db
parent 4b2a0526
Loading
Loading
Loading
Loading
+23 −6
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.annotation.SuppressLint;
import android.app.settings.SettingsEnums;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
@@ -39,10 +40,10 @@ import android.widget.ImageView;

import androidx.activity.OnBackPressedCallback;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.navigation.fragment.NavHostFragment;

import com.android.settings.R;
import com.android.settings.core.InstrumentedFragment;

import com.google.android.setupdesign.GlifLayout;
import com.google.common.collect.ImmutableList;
@@ -52,7 +53,7 @@ import org.jetbrains.annotations.NotNull;
import java.util.List;

/** Fragment to show screens that auto advance during private space setup flow */
public class AutoAdvanceSetupFragment extends Fragment {
public class AutoAdvanceSetupFragment extends InstrumentedFragment {
    private static final String TAG = "AutoAdvanceFragment";
    private static final String TITLE_INDEX = "title_index";
    private static final int DELAY_BETWEEN_SCREENS = 5000; // 5 seconds in millis
@@ -78,13 +79,24 @@ public class AutoAdvanceSetupFragment extends Fragment {
                            startFadeOutAnimation();
                            mHandler.postDelayed(mUpdateScreenResources, DELAY_BETWEEN_SCREENS);
                        } else {
                            PrivateSpaceMaintainer privateSpaceMaintainer = PrivateSpaceMaintainer
                                    .getInstance(getActivity());
                            PrivateSpaceMaintainer privateSpaceMaintainer =
                                    PrivateSpaceMaintainer.getInstance(getActivity());
                            UserHandle userHandle;
                            if (privateSpaceMaintainer.doesPrivateSpaceExist() && (userHandle =
                                    privateSpaceMaintainer.getPrivateProfileHandle()) != null) {
                            if (privateSpaceMaintainer.doesPrivateSpaceExist()
                                    && (userHandle =
                                                    privateSpaceMaintainer
                                                            .getPrivateProfileHandle())
                                            != null) {
                                mMetricsFeatureProvider.action(
                                        getContext(),
                                        SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_CREATED,
                                        true);
                                startActivityInPrivateUser(userHandle);
                            } else {
                                mMetricsFeatureProvider.action(
                                        getContext(),
                                        SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_CREATED,
                                        false);
                                showPrivateSpaceErrorScreen();
                            }
                        }
@@ -144,6 +156,11 @@ public class AutoAdvanceSetupFragment extends Fragment {
        super.onDestroy();
    }

    @Override
    public int getMetricsCategory() {
        return SettingsEnums.PRIVATE_SPACE_SETUP_SPACE_CREATION;
    }

    @SuppressLint("MissingPermission")
    private void startActivityInPrivateUser(UserHandle userHandle) {
        /* Start new activity in private profile which is needed to set private profile lock */
+13 −3
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings.privatespace;

import android.app.Activity;
import android.app.settings.SettingsEnums;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -24,17 +25,17 @@ import android.view.ViewGroup;

import androidx.activity.OnBackPressedCallback;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.navigation.fragment.NavHostFragment;

import com.android.settings.R;
import com.android.settings.core.InstrumentedFragment;

import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
import com.google.android.setupdesign.GlifLayout;

/** Fragment to display error screen if creation of private profile failed for any reason. */
public class PrivateProfileCreationError extends Fragment {
public class PrivateProfileCreationError extends InstrumentedFragment {
    @Override
    public View onCreateView(
            LayoutInflater inflater,
@@ -73,8 +74,15 @@ public class PrivateProfileCreationError extends Fragment {
        return rootView;
    }

    @Override
    public int getMetricsCategory() {
        return SettingsEnums.PRIVATE_SPACE_SETUP_SPACE_CREATION_ERROR;
    }

    private View.OnClickListener onTryAgain() {
        return v -> {
            mMetricsFeatureProvider.action(
                    getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_TRY_CREATE_SPACE_AGAIN);
            NavHostFragment.findNavController(PrivateProfileCreationError.this)
                    .navigate(R.id.action_retry_profile_creation);
        };
@@ -84,6 +92,8 @@ public class PrivateProfileCreationError extends Fragment {
        return v -> {
            Activity activity = getActivity();
            if (activity != null) {
                mMetricsFeatureProvider.action(
                        getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_CANCEL_CREATE_SPACE);
                activity.finish();
            }
        };
+17 −8
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static com.android.settings.privatespace.PrivateSpaceSetupActivity.ACCOUN
import static com.android.settings.privatespace.PrivateSpaceSetupActivity.EXTRA_ACTION_TYPE;

import android.annotation.SuppressLint;
import android.app.settings.SettingsEnums;
import android.content.Intent;
import android.os.Bundle;
import android.os.UserHandle;
@@ -29,16 +30,16 @@ import android.view.ViewGroup;

import androidx.activity.OnBackPressedCallback;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

import com.android.settings.R;
import com.android.settings.core.InstrumentedFragment;

import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
import com.google.android.setupdesign.GlifLayout;

/** Fragment to display error screen if the profile is not signed in with a Google account. */
public class PrivateSpaceAccountLoginError extends Fragment {
public class PrivateSpaceAccountLoginError extends InstrumentedFragment {
    @Override
    public View onCreateView(
            LayoutInflater inflater,
@@ -67,18 +68,26 @@ public class PrivateSpaceAccountLoginError extends Fragment {
        return rootView;
    }

    @Override
    public int getMetricsCategory() {
        return SettingsEnums.PRIVATE_SPACE_SETUP_ACCOUNT_LOGIN_ERROR;
    }

    @SuppressLint("MissingPermission")
    private View.OnClickListener nextScreen() {
        return v -> {
            PrivateSpaceMaintainer privateSpaceMaintainer = PrivateSpaceMaintainer
                    .getInstance(getActivity());
            mMetricsFeatureProvider.action(
                    getContext(),
                    SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_TRY_CREATE_ACCOUNT_AGAIN);
            PrivateSpaceMaintainer privateSpaceMaintainer =
                    PrivateSpaceMaintainer.getInstance(getActivity());
            UserHandle userHandle;
            if (privateSpaceMaintainer.doesPrivateSpaceExist() && (userHandle =
                    privateSpaceMaintainer.getPrivateProfileHandle()) != null) {
            if (privateSpaceMaintainer.doesPrivateSpaceExist()
                    && (userHandle = privateSpaceMaintainer.getPrivateProfileHandle()) != null) {
                Intent intent = new Intent(getContext(), PrivateProfileContextHelperActivity.class);
                intent.putExtra(EXTRA_ACTION_TYPE, ACCOUNT_LOGIN_ACTION);
                getActivity().startActivityForResultAsUser(intent, ACCOUNT_LOGIN_ACTION,
                        userHandle);
                getActivity()
                        .startActivityForResultAsUser(intent, ACCOUNT_LOGIN_ACTION, userHandle);
            }
        };
    }
+14 −4
Original line number Diff line number Diff line
@@ -17,23 +17,25 @@
package com.android.settings.privatespace;

import android.app.Activity;
import android.app.settings.SettingsEnums;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.navigation.fragment.NavHostFragment;

import com.android.settings.R;
import com.android.settings.core.InstrumentedFragment;

import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
import com.google.android.setupdesign.GlifLayout;

/** Fragment educating about the usage of Private Space. */
public class PrivateSpaceEducation extends Fragment {
public class PrivateSpaceEducation extends InstrumentedFragment {

    @Override
    public View onCreateView(
            LayoutInflater inflater,
@@ -66,11 +68,17 @@ public class PrivateSpaceEducation extends Fragment {
        return rootView;
    }

    @Override
    public int getMetricsCategory() {
        return SettingsEnums.PRIVATE_SPACE_SETUP_EDUCATION;
    }

    private View.OnClickListener onSetup() {
        return v -> {
            mMetricsFeatureProvider.action(
                    getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_START);
            NavHostFragment.findNavController(PrivateSpaceEducation.this)
                    .navigate(R.id.action_education_to_auto_advance);

        };
    }

@@ -78,6 +86,8 @@ public class PrivateSpaceEducation extends Fragment {
        return v -> {
            Activity activity = getActivity();
            if (activity != null) {
                mMetricsFeatureProvider.action(
                        getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_CANCEL);
                activity.finish();
            }
        };
+16 −4
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static com.android.settings.privatespace.PrivateSpaceSetupActivity.EXTRA_
import static com.android.settings.privatespace.PrivateSpaceSetupActivity.SET_LOCK_ACTION;

import android.annotation.SuppressLint;
import android.app.settings.SettingsEnums;
import android.content.Intent;
import android.os.Bundle;
import android.os.UserHandle;
@@ -29,18 +30,20 @@ import android.view.ViewGroup;

import androidx.activity.OnBackPressedCallback;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.navigation.fragment.NavHostFragment;

import com.android.settings.R;
import com.android.settings.core.InstrumentedFragment;

import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
import com.google.android.setupdesign.GlifLayout;

/** Fragment that provides an option to user to choose between the existing screen lock or set a
 * separate private profile lock. */
public class PrivateSpaceSetLockFragment extends Fragment {
/**
 * Fragment that provides an option to user to choose between the existing screen lock or set a
 * separate private profile lock.
 */
public class PrivateSpaceSetLockFragment extends InstrumentedFragment {

    @Override
    public View onCreateView(
@@ -83,8 +86,15 @@ public class PrivateSpaceSetLockFragment extends Fragment {
        return rootView;
    }

    @Override
    public int getMetricsCategory() {
        return SettingsEnums.PRIVATE_SPACE_SETUP_LOCK;
    }

    private View.OnClickListener onClickUse() {
        return v -> {
            mMetricsFeatureProvider.action(
                    getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_USE_SCREEN_LOCK);
            // Simply Use default screen lock. No need to handle
            NavHostFragment.findNavController(PrivateSpaceSetLockFragment.this)
                    .navigate(R.id.action_success_fragment);
@@ -93,6 +103,8 @@ public class PrivateSpaceSetLockFragment extends Fragment {

    private View.OnClickListener onClickNewLock() {
        return v -> {
            mMetricsFeatureProvider.action(
                    getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_NEW_LOCK);
            createPrivateSpaceLock();
        };
    }
Loading