Code Monkey home page Code Monkey logo

quickfit's People

Contributors

maxhille avatar strooooke avatar

Stargazers

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

Watchers

 avatar  avatar

quickfit's Issues

Google Calendar integration

No concrete plans yet, but offering calendar integration would be nice.

Idea list:

  • show planned workouts in calendar
  • offer didit functionality in event gadget
  • use calendar ui for workout scheduling?

requestSync on content change?

Registering a ContentObserver on the session uri would take care of the usual inserts, but can we get rid of the manual sync request after successfully resolving an unsuccessfull play api result?

Show play api interaction in foreground, if possible

Since play api connection happens in the syncadapter, the background error resolution gets used.

Bounce error resolution through a bound service, so that it can get dispatched to the activity, if that is in the foreground.

Listen for insertion of data fitting the configured workouts

... and automatically mark them as done, canceling the reminder for them.

Problem: using https://developers.google.com/android/reference/com/google/android/gms/fitness/SessionsApi.html#registerForSessions(com.google.android.gms.common.api.GoogleApiClient,%20android.app.PendingIntent) allows only listening for sessions that got explicitely started, not for sessions inserted after the fact (like quickfit itself does it). Also, stuff like walking around as collected by the Google Fit app itself from sensor data does not get consolidated into a session.

Persist configured workouts

local only with sqlite; keep in mind that there will be scheduling and updates on completition of scheduled workouts from an external datasource, so no caching. Try cursors.

Item dividers sometimes missing

(e.g. add schedule items on API level 22 tablet emulator).

Probable cause: ItemDecoration decides whether to draw in terms of recyclerview child view position, but should decide in terms of adapter position.

Also, onDraw instead of drawOver after all...

Scheduling of workouts

  • UI for scheduling workouts: weekly (day of week active/inactive, if active, time) in detail view
  • show schedule in list view (which days of the week, next occurence)
  • persist the schedule
  • alarm with notification (actions: 'I did it!' (insert data), 'Forget it!' (do not insert data, do not remind about this date again)

Suppress app bar scrolling and fab scrolling if unnecessary

As soon as the resolution for https://code.google.com/p/android/issues/detail?id=74772#c42 hits the support library, layout_height="wrap_content" for the recyclerview should work.
Then
a) AppBarLayout.Behavior should get the correct height for the recyclerview and accurately deduce that there is no need to scroll in onStartNestedScroll. Alternatively, EmptyRecyclerView could override its scroll event dispatching.
b) FabScrollingBehavior can do something similar to AppBarLayout.Behavior with the correct height of the recyclerview. Should hide only if top(fab) > bottom(recyclerview) after displacement of the recyclerview by the appbarlayout.

Shared element transitions

For non-wide only:

main fab -> schedule fab
list item -> schedule coordinatorlayout or recyclerview
appbar -> appbar

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.