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:
@@ -19,6 +19,7 @@ package com.android.settings.panel;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -50,6 +51,7 @@ public class PanelFragment extends Fragment {
|
||||
|
||||
private PanelContent mPanel;
|
||||
private MetricsFeatureProvider mMetricsProvider;
|
||||
private String mPanelClosedKey;
|
||||
|
||||
@VisibleForTesting
|
||||
PanelSlicesAdapter mAdapter;
|
||||
@@ -111,15 +113,26 @@ public class PanelFragment extends Fragment {
|
||||
return view;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
View.OnClickListener getSeeMoreListener() {
|
||||
return (v) -> {
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
|
||||
if (TextUtils.isEmpty(mPanelClosedKey)) {
|
||||
mPanelClosedKey = PanelClosedKeys.KEY_OTHERS;
|
||||
}
|
||||
|
||||
mMetricsProvider.action(
|
||||
0 /* attribution */,
|
||||
SettingsEnums.PAGE_HIDE,
|
||||
mPanel.getMetricsCategory(),
|
||||
PanelClosedKeys.KEY_SEE_MORE,
|
||||
mPanelClosedKey,
|
||||
0 /* value */);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
View.OnClickListener getSeeMoreListener() {
|
||||
return (v) -> {
|
||||
mPanelClosedKey = PanelClosedKeys.KEY_SEE_MORE;
|
||||
final FragmentActivity activity = getActivity();
|
||||
activity.startActivityForResult(mPanel.getSeeMoreIntent(), 0);
|
||||
activity.finish();
|
||||
@@ -129,12 +142,7 @@ public class PanelFragment extends Fragment {
|
||||
@VisibleForTesting
|
||||
View.OnClickListener getCloseListener() {
|
||||
return (v) -> {
|
||||
mMetricsProvider.action(
|
||||
0 /* attribution */,
|
||||
SettingsEnums.PAGE_HIDE,
|
||||
mPanel.getMetricsCategory(),
|
||||
PanelClosedKeys.KEY_DONE,
|
||||
0 /* value */);
|
||||
mPanelClosedKey = PanelClosedKeys.KEY_DONE;
|
||||
getActivity().finish();
|
||||
};
|
||||
}
|
||||
|
@@ -39,8 +39,9 @@ public class PanelLoggingContract {
|
||||
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";
|
||||
}
|
||||
}
|
||||
|
@@ -97,21 +97,4 @@ public class SettingsPanelActivity extends FragmentActivity {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@@ -99,6 +99,16 @@ public class PanelFragmentTest {
|
||||
0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDestroy_logCloseEvent() {
|
||||
mPanelFragment.onDestroy();
|
||||
verify(mFakeFeatureFactory.metricsFeatureProvider).action(
|
||||
0,
|
||||
SettingsEnums.PAGE_VISIBLE,
|
||||
mFakePanelContent.getMetricsCategory(),
|
||||
any(String.class),
|
||||
0); }
|
||||
|
||||
@Test
|
||||
public void panelSeeMoreClick_logsCloseEvent() {
|
||||
final View.OnClickListener listener = mPanelFragment.getSeeMoreListener();
|
||||
|
@@ -99,7 +99,7 @@ public class SettingsPanelActivityTest {
|
||||
0,
|
||||
SettingsEnums.PAGE_HIDE,
|
||||
SettingsEnums.TESTING,
|
||||
PanelLoggingContract.PanelClosedKeys.KEY_CLICKED_OUT,
|
||||
PanelLoggingContract.PanelClosedKeys.KEY_OTHERS,
|
||||
0
|
||||
);
|
||||
}
|
||||
|
Reference in New Issue
Block a user