diff options
Diffstat (limited to 'src/com/android/dialer/calllog/CallLogActivity.java')
-rw-r--r-- | src/com/android/dialer/calllog/CallLogActivity.java | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/src/com/android/dialer/calllog/CallLogActivity.java b/src/com/android/dialer/calllog/CallLogActivity.java index c7862aee6..1131b0ee8 100644 --- a/src/com/android/dialer/calllog/CallLogActivity.java +++ b/src/com/android/dialer/calllog/CallLogActivity.java @@ -34,12 +34,14 @@ import android.view.MotionEvent; import com.android.contacts.common.interactions.TouchPointManager; import com.android.contacts.common.list.ViewPagerTabs; +import com.android.contacts.commonbind.analytics.AnalyticsUtil; import com.android.dialer.DialtactsActivity; import com.android.dialer.R; import com.android.dialer.voicemail.VoicemailStatusHelper; import com.android.dialer.voicemail.VoicemailStatusHelperImpl; -public class CallLogActivity extends Activity implements CallLogQueryHandler.Listener { +public class CallLogActivity extends Activity implements CallLogQueryHandler.Listener, + ViewPager.OnPageChangeListener { private Handler mHandler; private ViewPager mViewPager; private ViewPagerTabs mViewPagerTabs; @@ -149,9 +151,9 @@ public class CallLogActivity extends Activity implements CallLogQueryHandler.Lis mViewPagerAdapter = new ViewPagerAdapter(getFragmentManager()); mViewPager.setAdapter(mViewPagerAdapter); mViewPager.setOffscreenPageLimit(2); + mViewPager.setOnPageChangeListener(this); mViewPagerTabs = (ViewPagerTabs) findViewById(R.id.viewpager_header); - mViewPager.setOnPageChangeListener(mViewPagerTabs); if (startingTab == TAB_INDEX_VOICEMAIL) { // The addition of the voicemail tab is an asynchronous process, so wait till the tab @@ -174,6 +176,7 @@ public class CallLogActivity extends Activity implements CallLogQueryHandler.Lis CallLogQueryHandler callLogQueryHandler = new CallLogQueryHandler(this.getContentResolver(), this); callLogQueryHandler.fetchVoicemailStatus(); + sendScreenViewForChildFragment(mViewPager.getCurrentItem()); } @Override @@ -238,4 +241,43 @@ public class CallLogActivity extends Activity implements CallLogQueryHandler.Lis // Return false; did not take ownership of cursor return false; } + + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + mViewPagerTabs.onPageScrolled(position, positionOffset, positionOffsetPixels); + } + + @Override + public void onPageSelected(int position) { + if (isResumed()) { + sendScreenViewForChildFragment(position); + } + mViewPagerTabs.onPageSelected(position); + } + + @Override + public void onPageScrollStateChanged(int state) { + mViewPagerTabs.onPageScrollStateChanged(state); + } + + private void sendScreenViewForChildFragment(int position) { + AnalyticsUtil.sendScreenView(CallLogFragment.class.getSimpleName(), this, + getFragmentTagForPosition(position)); + } + + /** + * Returns the fragment located at the given position in the {@link ViewPagerAdapter}. May + * be null if the position is invalid. + */ + private String getFragmentTagForPosition(int position) { + switch (position) { + case TAB_INDEX_ALL: + return "All"; + case TAB_INDEX_MISSED: + return "Missed"; + case TAB_INDEX_VOICEMAIL: + return "Voicemail"; + } + return null; + } } |