Add click tile event for tracking

- Search bar in homepage.
- Avatar icon in homepage.
- More personal safety in Safety & emergency.

Test: Rebuilt rom
Fix: 190341976
Change-Id: I14297211e4b7424f5fdeb46c360b3913101251d7
This commit is contained in:
Tsung-Mao Fang
2021-06-16 16:19:36 +08:00
parent 19baf0df84
commit 22b50de9f4
3 changed files with 12 additions and 11 deletions

View File

@@ -39,7 +39,6 @@ import androidx.lifecycle.OnLifecycleEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.homepage.SettingsHomepageActivity;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.utils.ThreadUtils;
import java.net.URISyntaxException; import java.net.URISyntaxException;
@@ -59,6 +58,7 @@ public class AvatarViewMixin implements LifecycleObserver {
private static final String METHOD_GET_ACCOUNT_AVATAR = "getAccountAvatar"; private static final String METHOD_GET_ACCOUNT_AVATAR = "getAccountAvatar";
private static final String KEY_AVATAR_BITMAP = "account_avatar"; private static final String KEY_AVATAR_BITMAP = "account_avatar";
private static final String KEY_ACCOUNT_NAME = "account_name"; private static final String KEY_ACCOUNT_NAME = "account_name";
private static final String KEY_AVATAR_ICON = "avatar_icon";
private static final String EXTRA_ACCOUNT_NAME = "extra.accountName"; private static final String EXTRA_ACCOUNT_NAME = "extra.accountName";
private final Context mContext; private final Context mContext;
@@ -105,11 +105,8 @@ public class AvatarViewMixin implements LifecycleObserver {
return; return;
} }
final MetricsFeatureProvider metricsFeatureProvider = FeatureFactory.getFactory( FeatureFactory.getFactory(mContext).getMetricsFeatureProvider()
mContext).getMetricsFeatureProvider(); .logSettingsTileClick(KEY_AVATAR_ICON, SettingsEnums.SETTINGS_HOMEPAGE);
metricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
SettingsEnums.CLICK_ACCOUNT_AVATAR, SettingsEnums.SETTINGS_HOMEPAGE,
null /* key */, Integer.MIN_VALUE /* value */);
// Here may have two different UI while start the activity. // Here may have two different UI while start the activity.
// It will display adding account UI when device has no any account. // It will display adding account UI when device has no any account.

View File

@@ -43,6 +43,7 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.widget.LayoutPreference; import com.android.settingslib.widget.LayoutPreference;
import java.util.List; import java.util.List;
@@ -57,6 +58,7 @@ public class MoreSettingsPreferenceController extends BasePreferenceController i
private static final String TAG = "MoreSettingsPrefCtrl"; private static final String TAG = "MoreSettingsPrefCtrl";
@VisibleForTesting @VisibleForTesting
Intent mIntent; Intent mIntent;
private LayoutPreference mPreference;
public MoreSettingsPreferenceController(Context context, String preferenceKey) { public MoreSettingsPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey); super(context, preferenceKey);
@@ -82,8 +84,8 @@ public class MoreSettingsPreferenceController extends BasePreferenceController i
@Override @Override
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen); super.displayPreference(screen);
final LayoutPreference pref = screen.findPreference(getPreferenceKey()); mPreference = screen.findPreference(getPreferenceKey());
final Button button = pref.findViewById(R.id.button); final Button button = mPreference.findViewById(R.id.button);
final Drawable icon = getIcon(); final Drawable icon = getIcon();
button.setText(getButtonText()); button.setText(getButtonText());
if (icon != null) { if (icon != null) {
@@ -109,6 +111,8 @@ public class MoreSettingsPreferenceController extends BasePreferenceController i
@Override @Override
public void onClick(View v) { public void onClick(View v) {
FeatureFactory.getFactory(mContext).getMetricsFeatureProvider()
.logClickedPreference(mPreference, getMetricsCategory());
final Intent intent = new Intent(mIntent) final Intent intent = new Intent(mIntent)
.addCategory(Intent.CATEGORY_LAUNCHER) .addCategory(Intent.CATEGORY_LAUNCHER)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
@@ -170,5 +174,4 @@ public class MoreSettingsPreferenceController extends BasePreferenceController i
icon.draw(canvas); icon.draw(canvas);
return bitmap; return bitmap;
} }
} }

View File

@@ -21,7 +21,6 @@ import static android.view.View.IMPORTANT_FOR_ACCESSIBILITY_NO;
import android.annotation.NonNull; import android.annotation.NonNull;
import android.app.Activity; import android.app.Activity;
import android.app.ActivityOptions; import android.app.ActivityOptions;
import android.app.settings.SettingsEnums;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@@ -43,6 +42,7 @@ import com.google.android.setupcompat.util.WizardManagerHelper;
*/ */
public interface SearchFeatureProvider { public interface SearchFeatureProvider {
String KEY_HOMEPAGE_SEARCH_BAR = "homepage_search_bar";
int REQUEST_CODE = 501; int REQUEST_CODE = 501;
/** /**
@@ -100,8 +100,9 @@ public interface SearchFeatureProvider {
FeatureFactory.getFactory(context).getSlicesFeatureProvider() FeatureFactory.getFactory(context).getSlicesFeatureProvider()
.indexSliceDataAsync(context); .indexSliceDataAsync(context);
FeatureFactory.getFactory(context).getMetricsFeatureProvider() FeatureFactory.getFactory(context).getMetricsFeatureProvider()
.action(context, SettingsEnums.ACTION_SEARCH_RESULTS); .logSettingsTileClick(KEY_HOMEPAGE_SEARCH_BAR, pageId);
final Bundle bundle = ActivityOptions.makeSceneTransitionAnimation(activity).toBundle(); final Bundle bundle = ActivityOptions.makeSceneTransitionAnimation(activity).toBundle();
activity.startActivityForResult(intent, REQUEST_CODE, bundle); activity.startActivityForResult(intent, REQUEST_CODE, bundle);
}); });