aquamorph / frc-manager Goto Github PK
View Code? Open in Web Editor NEWA FRC score tracking app based around your team
License: Apache License 2.0
A FRC score tracking app based around your team
License: Apache License 2.0
Add dark and black themes to the default light theme.
In the team summary activity display name and rankings in the titlebar
Recreate steps
Redesign app icon to take advantage of Adaptive Icons
java.lang.NullPointerException:
at android.support.v4.app.FragmentManagerImpl.makeInactive (FragmentManager.java:1881)
at android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1567)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState (FragmentManager.java:1750)
at android.support.v4.app.BackStackRecord.executeOps (BackStackRecord.java:792)
at android.support.v4.app.FragmentManagerImpl.executeOps (FragmentManager.java:2590)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether (FragmentManager.java:2377)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute (FragmentManager.java:2332)
at android.support.v4.app.FragmentManagerImpl.execSingleAction (FragmentManager.java:2209)
at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss (BackStackRecord.java:649)
at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate (FragmentStatePagerAdapter.java:167)
at android.support.v4.view.ViewPager.dataSetChanged (ViewPager.java:1064)
at android.support.v4.view.ViewPager$PagerObserver.onChanged (ViewPager.java:3091)
at android.support.v4.view.PagerAdapter.notifyDataSetChanged (PagerAdapter.java:289)
at com.aquamorph.frcmanager.adapters.SectionsPagerAdapter.addFrag (SectionsPagerAdapter.java:89)
at com.aquamorph.frcmanager.network.DataLoader$Load.onPostExecute (DataLoader.java:153)
at com.aquamorph.frcmanager.network.DataLoader$Load.onPostExecute (DataLoader.java:94)
at android.os.AsyncTask.finish (AsyncTask.java:695)
at android.os.AsyncTask.-wrap1 (Unknown Source)
at android.os.AsyncTask$InternalHandler.handleMessage (AsyncTask.java:712)
at android.os.Handler.dispatchMessage (Handler.java:105)
at android.os.Looper.loop (Looper.java:164)
at android.app.ActivityThread.main (ActivityThread.java:6695)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:240)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:772)
Uses past event scores to try to predict future event scores.
In Android 7.1 long press on the launcher icon can bring up shortcuts in the app. See the feature documentation.
Current shortcut ideas
Add fast scrolling for fragments with a lot of data.
Displays a list of teams at an event.
Create a widget to display the next match. Maybe also display the match that is currently played and refresh data every 5 minutes.
Displays OPR and DPR and other useful event statistics.
Add an Android wear app that displays a summary of all team matches.
Screen that displays when there is no data for a given request.
java.lang.NullPointerException:
at com.aquamorph.frcmanager.adapters.ScheduleAdapter.parseTeamNumber (ScheduleAdapter.java:129)
at com.aquamorph.frcmanager.adapters.ScheduleAdapter.onBindViewHolder (ScheduleAdapter.java:57)
at com.aquamorph.frcmanager.adapters.ScheduleAdapter.onBindViewHolder (ScheduleAdapter.java:33)
at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder (RecyclerView.java:6508)
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder (RecyclerView.java:6541)
at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline (RecyclerView.java:5484)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline (RecyclerView.java:5750)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition (RecyclerView.java:5589)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition (RecyclerView.java:5585)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next (LinearLayoutManager.java:2231)
at android.support.v7.widget.LinearLayoutManager.layoutChunk (LinearLayoutManager.java:1558)
at android.support.v7.widget.LinearLayoutManager.fill (LinearLayoutManager.java:1518)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren (LinearLayoutManager.java:610)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2 (RecyclerView.java:3719)
at android.support.v7.widget.RecyclerView.dispatchLayout (RecyclerView.java:3436)
at android.support.v7.widget.RecyclerView.onLayout (RecyclerView.java:3988)
at com.aquamorph.frcmanager.utils.MyRecyclerView.onLayout (MyRecyclerView.java:39)
at android.view.View.layout (View.java:18890)
at android.view.ViewGroup.layout (ViewGroup.java:5954)
at android.support.v4.widget.SwipeRefreshLayout.onLayout (SwipeRefreshLayout.java:611)
at android.view.View.layout (View.java:18890)
at android.view.ViewGroup.layout (ViewGroup.java:5954)
at android.widget.RelativeLayout.onLayout (RelativeLayout.java:1079)
at android.view.View.layout (View.java:18890)
at android.view.ViewGroup.layout (ViewGroup.java:5954)
at android.support.v4.view.ViewPager.onLayout (ViewPager.java:1769)
at android.view.View.layout (View.java:18890)
at android.view.ViewGroup.layout (ViewGroup.java:5954)
at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild (HeaderScrollingViewBehavior.java:132)
at android.support.design.widget.ViewOffsetBehavior.onLayoutChild (ViewOffsetBehavior.java:42)
at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild (AppBarLayout.java:1361)
at android.support.design.widget.CoordinatorLayout.onLayout (CoordinatorLayout.java:874)
at android.view.View.layout (View.java:18890)
at android.view.ViewGroup.layout (ViewGroup.java:5954)
at android.widget.LinearLayout.setChildFrame (LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical (LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout (LinearLayout.java:1494)
at android.view.View.layout (View.java:18890)
at android.view.ViewGroup.layout (ViewGroup.java:5954)
at android.widget.FrameLayout.layoutChildren (FrameLayout.java:323)
at android.widget.FrameLayout.onLayout (FrameLayout.java:261)
at android.view.View.layout (View.java:18890)
at android.view.ViewGroup.layout (ViewGroup.java:5954)
at android.widget.LinearLayout.setChildFrame (LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical (LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout (LinearLayout.java:1494)
at android.view.View.layout (View.java:18890)
at android.view.ViewGroup.layout (ViewGroup.java:5954)
at android.widget.FrameLayout.layoutChildren (FrameLayout.java:323)
at android.widget.FrameLayout.onLayout (FrameLayout.java:261)
at android.view.View.layout (View.java:18890)
at android.view.ViewGroup.layout (ViewGroup.java:5954)
at android.widget.LinearLayout.setChildFrame (LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical (LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout (LinearLayout.java:1494)
at android.view.View.layout (View.java:18890)
at android.view.ViewGroup.layout (ViewGroup.java:5954)
at android.widget.FrameLayout.layoutChildren (FrameLayout.java:323)
at android.widget.FrameLayout.onLayout (FrameLayout.java:261)
at com.android.internal.policy.DecorView.onLayout (DecorView.java:935)
at android.view.View.layout (View.java:18890)
at android.view.ViewGroup.layout (ViewGroup.java:5954)
at android.view.ViewRootImpl.performLayout (ViewRootImpl.java:2697)
at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2413)
at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1550)
at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:7189)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:959)
at android.view.Choreographer.doCallbacks (Choreographer.java:734)
at android.view.Choreographer.doFrame (Choreographer.java:670)
at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:945)
at android.os.Handler.handleCallback (Handler.java:751)
at android.os.Handler.dispatchMessage (Handler.java:95)
at android.os.Looper.loop (Looper.java:154)
at android.app.ActivityThread.main (ActivityThread.java:6776)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1410)
Add the ability to an buy ad free version of the app for a year.
Add information about next match or queueing. Improve the layout.
Title: "Event Name - Team Number
Subtitle: "Rank # (Record) Playing QM-##"
When new data loads the data slides in.
Replace a lot of duplicate code with Java generics.
Get rid of decimal places for scores and ranking stats.
Displays the elimination bracket for an event.
Allow the user of the app to customize the toolbar of the app if desired.
Displays rank data in a table to make it easier to read.
Displays district points for an event
Improved layout designs to take advantage of larger screens.
Displays current team rank on the toolbar.
Example:
Guilford County (2642) Rank #1
Michigan district finals start with octofinals instead of quarterfinals. Need to add that to the match sorting algorithm.
Design artwork for when there is no data to be displayed.
A button on the toolbar that refreshes data on all fragments.
Score notifications displays when match scores are posted.
Make the setup screen faster by only requiring a team number to be entered
Displays a list of the alliance selections at an event.
Search another team to see if you ever play against the selected team.
Display team ranking by the name and number of the team
Display information about the next match in a Dashclock extension.
Add a splash screen when the app opens
Make it easier for users to request new features by adding a link in the settings
The CPU is constantly running even when the app is in the background leading to battery drain.
Displays a list of the teams number and name at an event.
Sorting options
All for a user to easily follow multiple teams
java.lang.RuntimeException:
at android.os.AsyncTask$3.done (AsyncTask.java:353)
at java.util.concurrent.FutureTask.finishCompletion (FutureTask.java:383)
at java.util.concurrent.FutureTask.setException (FutureTask.java:252)
at java.util.concurrent.FutureTask.run (FutureTask.java:271)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
at java.lang.Thread.run (Thread.java:764)
Caused by: com.google.gson.JsonSyntaxException:
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read (ReflectiveTypeAdapterFactory.java:224)
at com.google.gson.Gson.fromJson (Gson.java:888)
at com.google.gson.Gson.fromJson (Gson.java:853)
at com.google.gson.Gson.fromJson (Gson.java:802)
at com.aquamorph.frcmanager.network.Parser.getStoredData (Parser.java:203)
at com.aquamorph.frcmanager.network.Parser.fetchJSON (Parser.java:126)
at com.aquamorph.frcmanager.network.Parser.fetchJSON (Parser.java:65)
at com.aquamorph.frcmanager.network.DataLoader$Load.doInBackground (DataLoader.java:124)
at com.aquamorph.frcmanager.network.DataLoader$Load.doInBackground (DataLoader.java:94)
at android.os.AsyncTask$2.call (AsyncTask.java:333)
at java.util.concurrent.FutureTask.run (FutureTask.java:266)
Caused by: java.lang.IllegalStateException:
at com.google.gson.stream.JsonReader.beginObject (JsonReader.java:385)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read (ReflectiveTypeAdapterFactory.java:213)
A new activity that summarizes data for a team at an event
Infomation to be displayed
Sends an alert when the FRC API goes down when trying to get new data.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.