/Android-ScreenTracker

Screen Tracking on Android.

Primary LanguageJavaApache License 2.0Apache-2.0

Android-ScreenTracker Download

The minimum library to track screen Activity, Fragment, ViewPager.
Hook screen onResume, onPause. And hook screen only ViewPager onPageSelected.
If you use for iOS, see iOS-ScreenTracker.

demo

Usage

1. Import this library

implementation ('org.roana0229.app:screentracker:1.0.+') {
    exclude group: 'com.android.support', module: 'appcompat-v7'
}

Look at the sample code

2. Register ScreenTrackingCallBack

Track Activity, Fragment
public class SampleApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        registerActivityLifecycleCallbacks(new ScreenTrackingLifecycleHandler(new ScreenTrackingCallBack() {
            @Override
            public void trackStarted(@NonNull TrackingMarker trackingMarker) {
                  // resume screen
            }

            @Override
            public void trackEnded(@NonNull TrackingMarker trackingMarker, long exposureTime) {
                  // pause screen
            }
        }));
    }

}

Look at the sample code

Track ViewPager
public class SampleActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sample);

        TrackingViewPager viewPager = (TrackingViewPager) findViewById(R.id.view_pager);
        viewPager.setAdapter(/* only FragmentPagerAdapter */);
        viewPager.setTrackingCallBack(new ScreenTrackingCallBack() {
            @Override
            public void trackStarted(@NonNull TrackingMarker trackingMarker) {
                  // resume screen
            }

            @Override
            public void trackEnded(@NonNull TrackingMarker trackingMarker, long exposureTime) {
                  // pause screen
            }
        });
    }

}

Look at the sample code

3. Implements TrackingMarker

public class SampleActivity extends AppCompatActivity implements TrackingMarker {

    @Override
    public String getScreenName() {
        return "Sample Screen";
    }

    @Override
    public HashMap<String, Object> getScreenParameter() {
        return null;
    }

}

Look at the sample code

If you are tracking everything, you should write implements TrackingMarker in BaseActivity or BaseFragment.

Sample Tracking Logger Utility

Look at the sample code

LICENSE

see LICENSE file.

Copyright (c) 2018 Kaoru Tsutsumishita roana.enter@gmail.com