GithubHelp home page GithubHelp logo

leonardoxh / race-control-tv Goto Github PK

View Code? Open in Web Editor NEW

This project forked from groggy/race-control-tv

213.0 213.0 19.0 8.55 MB

Android TV app for F1 TV

License: MIT License

Kotlin 100.00%
android-tv android-tv-apps f1

race-control-tv's People

Contributors

agirilovich avatar bashopman avatar cristiansarac avatar godzio avatar groggy avatar joshuapinter avatar kleinmaggus avatar leonardoxh avatar lovega1337 avatar packss avatar smoralb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

race-control-tv's Issues

Support other shows?

I was curious if you're going to support other shows in the app like Tech Talk, F1 Highlights, interviews etc in the near future?

Audio track selection is not saved

Last weekend I used this awesome app to watch the season opener in Bahrain.
I selected 'Nederlands' as my audio track, now when I choose another session to watch, the audio track selection is back at 'English'. It would be very welcome if the app retained the selection across session viewings.

Add confirmation to exit the transmission

That is, at least I feel that sometimes I press the controller back button twice or so and then I go back on the transmission screen so not sure if I should add a confirmation thing or so, maybe behind a setting to enable / disable it? (settings is on the plan)

Resolution lock

Similar to other apps like you tube, the default is going to be auto, but with the possibility to lock it at certain resolution / frame rate.

Master refactor

The current code is not optimal, it expose all the suspending functions from the data layer back to the UI making the View models pretty much useless, but also launching the scope on UI level makes them not cancellable.

This has to be addressed

Trying to log on with confirmed working credentials: "Credentials rejected by F1.com"

Hey there, was referred to this app by a fan.

Unfortunately, when I try to log on with my credentials (confirmed working on official F1TV app and website), I'm getting a toast message "Credentials rejected by F1.com".

My password only has alphanumeric characters, so it's unlikely to be caused by some encoding issues when using F1.com's REST api.
I tried looking through your code, but I'm seeing multiple files that deal with authentication, so not sure which file I should look in :)

Leonardo's race-control-tv working perfect of NVidia Shield set-top box

This is a non issue, but I'd like to thank Leonardo. Now race-control-tv is infinitelly better than official F1TV on an NVidia Shield Android TV set-top box. I can use nvidia remote without issue, in order to access the content.

Thanks to all original race-control-tv authors and Leonardo, especially.

Obrigado!

Retry backoff on playback

Some times... Due F1 API issues, the playback crashes before it starts... Would be nice to retry sometimes

Wrong position when app goes to background

When the app goes to background for whatever reason like the user pressed the home button or ambient display comes up the player does not resume on correct position, it always restart.

The current problem resides on the ChannelPlaybackFragment as it always reset the media source when the view goes to STARTED state.

The solution could be introduce a ViewModel on this part so we could cache this data as the data source should never change at this point (unless the live transmission requires it)

[REQ]would starting a live stream directly from beginning be possible?

At this moment a live stream can be time shifted, this wasn't first possible. But when starting a live stream the playback starts with the live moment and when one want to watch the stream from the beginning this is not what one (mostly) wants. So could it be possible to build in the option to start a live stream from the beginning?

Add broadcasts coming up to session view

The current session view shows past or current broadcasts like this:
image
From this UI it is not clear which and when next broadcasts can be expected. You'll have to check the website or use F1 TV app on your phone.

It would be very nice if the session view also shows cards for broadcasts coming up during the grand prix weekend, like in this mock-up for the next training session:
image
In this mock-up, the future session card is raised. I think future session cards should not be raised, because they are really just placeholders for future broadcast and cannot be clicked on.

Looking at the Formula 1 website, I found that https://api.formula1.com/v1/event-tracker returns information about the race weekend, including the dates and times of each session;

{
  "seasonContext": {
    "timetables": [{
        "state": "upcoming",
        "session": "p3",
        "gmtOffset": "+02:00",
        "description": "Practice 3",
        "endTime": "2021-05-08T13:00:00",
        "startTime": "2021-05-08T12:00:00"
      }, {
        "state": "completed",
        "session": "p2",
        "gmtOffset": "+02:00",
        "description": "Practice 2",
        "endTime": "2021-05-07T16:00:00",
        "startTime": "2021-05-07T15:00:00"
      }, {
        "state": "upcoming",
        "session": "r",
        "gmtOffset": "+02:00",
        "description": "Race",
        "endTime": "2021-05-09T17:00:00",
        "startTime": "2021-05-09T15:00:00"
      }, {
        "state": "completed",
        "session": "p1",
        "gmtOffset": "+02:00",
        "description": "Practice 1",
        "endTime": "2021-05-07T12:30:00",
        "startTime": "2021-05-07T11:30:00"
      }, {
        "state": "upcoming",
        "session": "q",
        "gmtOffset": "+02:00",
        "description": "Qualifying",
        "endTime": "2021-05-08T16:00:00",
        "startTime": "2021-05-08T15:00:00"
      }
    ],
  },
}

Ambient display

When watching and the ambient display comes up it interrupts the transmission, I believe this is related to the media session focus.

Create a wiki

With the past months I gained a lot of knowledge about the F1 service :D this can also be embedded in the app

App not available in playstore

Using a Nvidia shield (older model) when I open the link to the play store it says not available for any devices. When searching on the shield itself I can not seem to find it. I cloned and build the app myself and side loaded to the shield which seems to work just fine so it is weird why it does not work through the play store.

Samsung Tizen Smart Hub support?

Hi there,

Any chance you could / intend to convert the app in order for it to support Samsung Smart TV's? (Tizen app store)

Thanks in advance for your return.

Best regards

No apk available for download?

Hi,
Do you provide the apk? I'm still using race-control-tv from other forks, but yours seems to be the most advanced.

Closed Captioning Possible?

Does the feed support closed captioning? Seems to be the only thing missing to bring the app to parity with the browser based experience.

Bug at Mi Box - Half season only

First of all, MUITO OBRIGADO! You and Groogy did what those geniuses at F1 TV should have done 3 years ago.

I have downloaded v2.0.0 to my MiBox 4K and, besides those small bugs, it worked great.

Now, with v2.0.2, it still works great, but the 2018 to 2020 seasons only shows the first half of the season. The 2nd half races are nowhere to be seen. For example, 2020 season stops at Tuscany GP, see pic below. The v2.0.0 showed all 2020 season. It would be great if you could see what happened (I tried everything before I came here: reinstalled, reset HW, cleared cache, restarted box, but no avail). I have F1 TV Access and I can watch all races at the official app.

image

Thanks in advance for your effort.

Spinning wheel after menu selections, buffering during playback

Opening the app results in a spinning wheel for 2 to 3 minutes (same happens when I clear cache/data and sign in again). Then I can choose a year. Once the year is chosen, another 2 or 3 minutes of spinning wheel on the screen. Then the sessions come up with no thumbnails. I select the replay of the Bahrain race and another 2 to 3 minute spinning wheel. Then the content plays for about 30 to 40 seconds and another spinning wheel. Content is unwatchable, even at 288p50, because it is buffering every 30 seconds.

Have reached maximum logins allowed

After installing your android app I can't log in to the official f1 tv app and get this message:

7748EA25-7722-429E-A5B0-49B3BC0EABD6

Please add a logout option

Thank you so much

Season events order is not optimal

Right now this is order somehow by the start date desc, but what happens is that this only works for the sessions, the season itself does not contain a date to order with, so when the season is in the middle for example it is order from the pre season to the most recent, should it be the other way?

Better way to indicate session errors

Most of the sessions do not contain a meeting key, so they do not work, would be nice to have something to communicate back on UI, or maybe perhaps restrict it

{
	"resultCode": "KO",
	"message": "Cannot read property 'total' of undefined",
	"errorDescription": "500-10000",
	"resultObj": {},
	"systemTime": 1615891141264
}

Revamp channel selection UI

The main idea would be to re arrange this screen into the channel playback part similar to the current f1 tv Android app where you can during the transmission switch the camera easily with a panel on the right or left side.

This makes much more sense then a screen before to change the channel.

But how does this works with the lean back framework ? Is it usual ?

Possible DNS issues

Today morning I faced a very interesting issue.

When I was trying to login I was getting a 401 from the login endpoint in my main internet connection, switching to other internet connection it suddenly started to work...

This gives me a indication that sometimes the DNS may bug out, not sure what to do but maybe we could add this to the login work around steps.

Handle error in some seasons

For some reason some seasons return this json:

{
    "availability_details":{
       "is_available":false,
       "status_code":2,
       "message":"No WIF channel found for this session"
    },
    "available_for_user":false,
    "data_source_fields":null,
    "image_urls":[
       
    ],
    "schedule_after_14_days_url":null,
    "schedule_after_24h_url":null,
    "schedule_after_2_years_url":null,
    "schedule_after_30_days_url":null,
    "schedule_after_48h_url":null,
    "schedule_after_7_days_url":null,
    "schedule_after_midnight_url":null,
    "schedule_after_new_year_url":null,
    "schedule_urls":[
       "/api/schedules/sche_fffd4d24e0c947a6a94d6d6a738f11fe/"
    ],
    "self":"/api/session-occurrence/sess_44c9b57ee97849dab0736396fd51acd9/",
    "session_type_url":"/api/session-type/sess_957d59ec0ea94d3a90af80d7b3887f1d/",
    "status":null,
    "channel_urls":[
       
    ],
    "content_urls":[
       
    ],
    "sessiontype_url":"/api/session-type/sess_957d59ec0ea94d3a90af80d7b3887f1d/",
    "eventoccurrence_url":"/api/event-occurrence/even_f10b92a1ac494cb8b54bfe366596d8eb/",
    "series_url":"/api/series/seri_436bb431c3a24d7d8e200a74e1d11de4/",
    "global_channel_urls":[
       
    ],
    "uid":"sess_44c9b57ee97849dab0736396fd51acd9",
    "editability":"normal",
    "created":"2018-02-20T17:35:04.448827+00:00",
    "data_source_id":"4709",
    "last_data_ingest":"2018-02-20T17:35:04.501330+00:00",
    "modified":"2018-02-20T17:35:04.448949+00:00",
    "live_sources_path":"",
    "live_sources_md5":null,
    "event_config_md5":null,
    "start_time":"2015-10-24T10:00:00+00:00",
    "end_time":"2015-10-24T11:00:00+00:00",
    "editorial_start_time":"2015-10-24T09:40:00+00:00",
    "editorial_end_time":null,
    "nbc_pid":null,
    "nbc_status":null,
    "status_override":null,
    "replay_start_time":null,
    "session_expired_time":null,
    "is_test_session":false,
    "language":"en",
    "name":"Practice 3",
    "session_name":"2015 United States Grand Prix Formula 1 Practice 3",
    "slug":"2015-united-states-grand-prix-practice-3"
 }

Internacionalization

Hi Leonardo,
Do you have a plan to provide support for other languages?

In Brazil, many young F1 fans know English, but old school ones, like my father, does not. I could help with a Brazilian Portuguese (why not European Portuguese also) translation, if you decide to pursue this development path.

Cheers and go go go Perez!!
:P

Rafael

Playback control is difficult

While playing a video:

  • it's hard to see which UI element is highlighted (the transparent background is too subtle to make out)
  • it's hard to make jumps in the playback position. The progress bar does not react to scroll input and the Rewind/FF buttons always skip the same (short) amount of time.

Suggestions:

  • Make highlight background more visible (less transparent, or give it a bright color)
  • Change the Rewind/FF buttons into skip 30s back/forward buttons
  • Make the progress bar scrollable, let scroll speed increase while pressing left or right repeatedly

Channel selection order is wrong

Theere is no order so the tracker view is in the middle of the channels πŸ˜‚

Also the driver names are gone ☺️ need to add them back

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.