Update panel logging to include all hide page cases

The old logging only include see_more, done, and clicked_out when hiding
the panel page.  We were missing many cases that user might use back
button, app switch button to close the page.

Update the hide page keys to change the clicked_out to others to
include all the other cases which hide the page.

Test: Manual verification
Test: atest PanelFragmentTest SettingsPanelActivityTest
Fixes: 130169553
Change-Id: Icede9a8dcb84565cba183963c9fb554507631c98
This commit is contained in:
lindatseng
2019-04-12 10:42:09 -07:00
parent 963ebf576a
commit 79957c3217
5 changed files with 34 additions and 32 deletions

View File

@@ -19,6 +19,7 @@ package com.android.settings.panel;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -50,6 +51,7 @@ public class PanelFragment extends Fragment {
private PanelContent mPanel; private PanelContent mPanel;
private MetricsFeatureProvider mMetricsProvider; private MetricsFeatureProvider mMetricsProvider;
private String mPanelClosedKey;
@VisibleForTesting @VisibleForTesting
PanelSlicesAdapter mAdapter; PanelSlicesAdapter mAdapter;
@@ -111,15 +113,26 @@ public class PanelFragment extends Fragment {
return view; return view;
} }
@Override
public void onDestroyView() {
super.onDestroyView();
if (TextUtils.isEmpty(mPanelClosedKey)) {
mPanelClosedKey = PanelClosedKeys.KEY_OTHERS;
}
mMetricsProvider.action(
0 /* attribution */,
SettingsEnums.PAGE_HIDE,
mPanel.getMetricsCategory(),
mPanelClosedKey,
0 /* value */);
}
@VisibleForTesting @VisibleForTesting
View.OnClickListener getSeeMoreListener() { View.OnClickListener getSeeMoreListener() {
return (v) -> { return (v) -> {
mMetricsProvider.action( mPanelClosedKey = PanelClosedKeys.KEY_SEE_MORE;
0 /* attribution */,
SettingsEnums.PAGE_HIDE ,
mPanel.getMetricsCategory(),
PanelClosedKeys.KEY_SEE_MORE,
0 /* value */);
final FragmentActivity activity = getActivity(); final FragmentActivity activity = getActivity();
activity.startActivityForResult(mPanel.getSeeMoreIntent(), 0); activity.startActivityForResult(mPanel.getSeeMoreIntent(), 0);
activity.finish(); activity.finish();
@@ -129,12 +142,7 @@ public class PanelFragment extends Fragment {
@VisibleForTesting @VisibleForTesting
View.OnClickListener getCloseListener() { View.OnClickListener getCloseListener() {
return (v) -> { return (v) -> {
mMetricsProvider.action( mPanelClosedKey = PanelClosedKeys.KEY_DONE;
0 /* attribution */,
SettingsEnums.PAGE_HIDE,
mPanel.getMetricsCategory(),
PanelClosedKeys.KEY_DONE,
0 /* value */);
getActivity().finish(); getActivity().finish();
}; };
} }

View File

@@ -39,8 +39,9 @@ public class PanelLoggingContract {
String KEY_DONE = "done"; String KEY_DONE = "done";
/** /**
* The user clicked outside the dialog, closing the Panel. * The user closed the panel by other ways, for example: clicked outside of dialog, tapping
* on back button, etc.
*/ */
String KEY_CLICKED_OUT = "clicked_out"; String KEY_OTHERS = "others";
} }
} }

View File

@@ -97,21 +97,4 @@ public class SettingsPanelActivity extends FragmentActivity {
fragmentManager.beginTransaction().add(R.id.main_content, panelFragment).commit(); fragmentManager.beginTransaction().add(R.id.main_content, panelFragment).commit();
} }
} }
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
final PanelContent panelContent = FeatureFactory.getFactory(this)
.getPanelFeatureProvider()
.getPanel(this, getIntent().getAction(), null /* Media Package Name */);
FeatureFactory.getFactory(this)
.getMetricsFeatureProvider()
.action(0 /* attribution */,
SettingsEnums.PAGE_HIDE,
panelContent.getMetricsCategory(),
PanelClosedKeys.KEY_CLICKED_OUT,
0 /* value */);
}
return super.onTouchEvent(event);
}
} }

View File

@@ -99,6 +99,16 @@ public class PanelFragmentTest {
0); 0);
} }
@Test
public void onDestroy_logCloseEvent() {
mPanelFragment.onDestroy();
verify(mFakeFeatureFactory.metricsFeatureProvider).action(
0,
SettingsEnums.PAGE_VISIBLE,
mFakePanelContent.getMetricsCategory(),
any(String.class),
0); }
@Test @Test
public void panelSeeMoreClick_logsCloseEvent() { public void panelSeeMoreClick_logsCloseEvent() {
final View.OnClickListener listener = mPanelFragment.getSeeMoreListener(); final View.OnClickListener listener = mPanelFragment.getSeeMoreListener();

View File

@@ -99,7 +99,7 @@ public class SettingsPanelActivityTest {
0, 0,
SettingsEnums.PAGE_HIDE, SettingsEnums.PAGE_HIDE,
SettingsEnums.TESTING, SettingsEnums.TESTING,
PanelLoggingContract.PanelClosedKeys.KEY_CLICKED_OUT, PanelLoggingContract.PanelClosedKeys.KEY_OTHERS,
0 0
); );
} }