From 37d4d0c80efcd505ed968d1f47158a8edbe8cb27 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Fri, 6 May 2016 10:52:26 -0700 Subject: [PATCH] Use metrics defined by proto in new Settings tabs. Bug: 28141203 Change-Id: Ia0c566f873f93e46203d19f35161bb98acc60a38 --- .../settings/InstrumentedFragment.java | 3 -- .../dashboard/DashboardContainerFragment.java | 44 ++++++++++++++++--- .../settings/dashboard/SupportFragment.java | 3 +- 3 files changed, 41 insertions(+), 9 deletions(-) diff --git a/src/com/android/settings/InstrumentedFragment.java b/src/com/android/settings/InstrumentedFragment.java index 3977426601d..8bab2cf15f2 100644 --- a/src/com/android/settings/InstrumentedFragment.java +++ b/src/com/android/settings/InstrumentedFragment.java @@ -30,9 +30,6 @@ public abstract class InstrumentedFragment extends PreferenceFragment { // Used by PreferenceActivity for the dummy fragment it adds, no useful data here. public static final int PREFERENCE_ACTIVITY_FRAGMENT = UNDECLARED + 1; - public static final int DASHBOARD_CONTAINER = UNDECLARED + 2; - - public static final int SUPPORT_FRAGMENT = UNDECLARED + 3; /** * Declare the view of this category. diff --git a/src/com/android/settings/dashboard/DashboardContainerFragment.java b/src/com/android/settings/dashboard/DashboardContainerFragment.java index 31712d2823d..b33063d763c 100644 --- a/src/com/android/settings/dashboard/DashboardContainerFragment.java +++ b/src/com/android/settings/dashboard/DashboardContainerFragment.java @@ -24,18 +24,17 @@ import android.os.Bundle; import android.support.v13.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; import android.view.View; import android.view.ViewGroup; +import com.android.internal.logging.MetricsLogger; +import com.android.internal.logging.MetricsProto; import com.android.settings.InstrumentedFragment; import com.android.settings.R; import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.SupportFeatureProvider; import com.android.settings.widget.SlidingTabLayout; import com.android.settingslib.drawer.SettingsDrawerActivity; -import com.android.settingslib.HelpUtils; /** * Container for Dashboard fragments. @@ -51,7 +50,7 @@ public final class DashboardContainerFragment extends InstrumentedFragment { @Override protected int getMetricsCategory() { - return DASHBOARD_CONTAINER; + return MetricsProto.MetricsEvent.DASHBOARD_CONTAINER; } @Override @@ -63,9 +62,11 @@ public final class DashboardContainerFragment extends InstrumentedFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { final View content = inflater.inflate(R.layout.dashboard_container, parent, false); + final Context context = getContext(); mViewPager = (ViewPager) content.findViewById(R.id.pager); - mPagerAdapter = new DashboardViewPagerAdapter(getContext(), getChildFragmentManager()); + mPagerAdapter = new DashboardViewPagerAdapter(context, getChildFragmentManager()); mViewPager.setAdapter(mPagerAdapter); + mViewPager.addOnPageChangeListener(new TabInstrumentationListener(context)); mHeaderView = inflater.inflate(R.layout.dashboard_container_header, parent, false); ((SlidingTabLayout) mHeaderView).setViewPager(mViewPager); return content; @@ -125,4 +126,37 @@ public final class DashboardContainerFragment extends InstrumentedFragment { return mSupportFeatureProvider == null ? 1 : 2; } } + + private static final class TabInstrumentationListener + implements ViewPager.OnPageChangeListener { + + private final Context mContext; + + public TabInstrumentationListener(Context context) { + mContext = context; + } + + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + // Do nothing. + } + + @Override + public void onPageScrollStateChanged(int state) { + // Do nothing + } + + @Override + public void onPageSelected(int position) { + switch (position) { + case INDEX_SUMMARY_FRAGMENT: + MetricsLogger.action(mContext, MetricsProto.MetricsEvent.ACTION_SELECT_SUMMARY); + break; + case INDEX_SUPPORT_FRAGMENT: + MetricsLogger.action( + mContext, MetricsProto.MetricsEvent.ACTION_SELECT_SUPPORT_FRAGMENT); + break; + } + } + } } diff --git a/src/com/android/settings/dashboard/SupportFragment.java b/src/com/android/settings/dashboard/SupportFragment.java index d9dc4f97317..5e9a6236355 100644 --- a/src/com/android/settings/dashboard/SupportFragment.java +++ b/src/com/android/settings/dashboard/SupportFragment.java @@ -35,6 +35,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import com.android.internal.logging.MetricsProto; import com.android.settings.InstrumentedFragment; import com.android.settings.R; import com.android.settings.overlay.FeatureFactory; @@ -77,7 +78,7 @@ public final class SupportFragment extends InstrumentedFragment implements View. @Override protected int getMetricsCategory() { - return SUPPORT_FRAGMENT; + return MetricsProto.MetricsEvent.SUPPORT_FRAGMENT; } @Override