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

Commit 4ec18698 authored by Anna Zhuravleva's avatar Anna Zhuravleva Committed by Android (Google) Code Review
Browse files

Merge "Log events during PS setup flow." into main

parents 71e27963 b1fdd557
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