Merge "Update panel logging to include all hide page cases" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-04-12 22:33:24 +00:00
committed by Android (Google) Code Review
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.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;
}
@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
View.OnClickListener getSeeMoreListener() {
return (v) -> {
mMetricsProvider.action(
0 /* attribution */,
SettingsEnums.PAGE_HIDE ,
mPanel.getMetricsCategory(),
PanelClosedKeys.KEY_SEE_MORE,
0 /* value */);
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();
};
}

View File

@@ -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";
}
}

View File

@@ -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);
}
}

View File

@@ -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();

View File

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