Challenge Overview
Overview
The Hercules University application is a set of apps for iOS, Android, and the web, allowing users to watch live TV and On Demand videos on Universities.
The application this F2F refers to is the Android TV application that will allow for browsing Live TV and On Demand videos on the Android TV platform.
This F2F challenge applies to the *ANDROID TV* application.
Code
The existing code is here:
https://gitlab.com/team-autobots/androidtv/
You will need to use Android Studio to build the code. For best performance, use the Intel Atom Android 5.0 Android TV simulator.
If you need code access, please request in the F2F TopCoder forum with your Gitlab username. You will be given read-only access.
Please ask any questions in the TopCoder forum or on Gitlab. Either is appropriate.
Building Code
There is a README.md file here that explains test accounts and how to build the app:
https://gitlab.com/team-autobots/androidtv/blob/master/README.md
Ignore the direct tickets documentation if you don’t have write access to the repository.
Submission
Your submission to OR should be a Git patch file that can be applied to see the fixes. Here is documentation on how to generate a Git patch file:
https://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git/
Requirements
The app is crashing when browsing in certain cases. As part of the F2F you must provide details on how to reproduce the crash, and what was changed to fix the crash.
Crashlytics details: http://crashes.to/s/534fca074f7
Stack trace:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.hercules.quantum.oncampustv/com.hercules.oncampus.tv.ondemand.OnDemandShowGridActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List com.hercules.oncampus.tv.entities.OnDemandMenuNode.getChildNodes()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List com.hercules.oncampus.tv.entities.OnDemandMenuNode.getChildNodes()' on a null object reference
at com.hercules.oncampus.tv.ondemand.OnDemandShowGridFragment.populateMenuNode(OnDemandShowGridFragment.java:149)
at com.hercules.oncampus.tv.ondemand.OnDemandShowGridFragment.onActivityCreated(OnDemandShowGridFragment.java:68)
at android.app.Fragment.performActivityCreated(Fragment.java:2061)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:912)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1049)
at android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1869)
at android.app.Activity.performCreateCommon(Activity.java:5985)
at android.app.Activity.performCreate(Activity.java:5992)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Final Submission Guidelines
Please see above