Coder Social home page Coder Social logo

squanchy-dev / squanchy-android Goto Github PK

View Code? Open in Web Editor NEW
295.0 295.0 45.0 27.29 MB

Open source Android app for your conferences

License: Apache License 2.0

Java 8.44% Shell 0.63% Kotlin 90.94%
android circleci conference firebase firestore kotlin reactive-extensions

squanchy-android's People

Contributors

alexstyl avatar catt-stefano avatar cmargonis avatar cortinico avatar danybony avatar dextorer avatar fossabot avatar fourlastor avatar frapontillo avatar friedger avatar jonreeve avatar okondakov avatar quiro91 avatar rock3r avatar romandanylyk avatar setdar avatar taraskunyk avatar tasomaniac avatar tiwiz 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

squanchy-android's Issues

Screen: Favorites

What's remaining service wise is to use EventRepository.events() and filter by event.favorited()

What's remaining UI wise is ???

Rate sessions

This requires accounts support (see #56), and collects ratings on the database.

Replace any "connfa" reference with "squanchy", remove Connfa code

Package names, classes, resources. All must go.

  • Step 1: package com.connfa -> net.squanchy; classes Connfa* -> Squanchy*
  • Step 2: rename all remaining references connfa -> squanchy (including resources)
  • Step 3: remove all Connfa code (except for the Social screen)

Fix crash on notification

With API < 23, the notification crashes with this logacat

FATAL EXCEPTION: main
Process: it.droidconit.dummiladisciassette, PID: 8283
java.lang.NoSuchMethodError: No virtual method getColor(ILandroid/content/res/Resources$Theme;)I in class Landroid/content/res/Resources; or its super classes (declaration of 'android.content.res.Resources' appears in /system/framework/framework.jar)
at net.squanchy.notification.NotificationCreator.createDefaultBuilder(NotificationCreator.java:97)
at net.squanchy.notification.NotificationCreator.createFrom(NotificationCreator.java:50)
at net.squanchy.notification.NotificationCreator.createFrom(NotificationCreator.java:41)
at net.squanchy.DebugActivity.createAndNotifyTalksCount(DebugActivity.java:62)
at net.squanchy.DebugActivity.testSingleNotification(DebugActivity.java:50)
at net.squanchy.DebugActivity.lambda$onCreate$0(DebugActivity.java:38)
at net.squanchy.DebugActivity$$Lambda$1.onClick(Unknown Source)
at android.view.View.performClick(View.java:4785)
at android.view.View$PerformClick.run(View.java:19858)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:155)
at android.app.ActivityThread.main(ActivityThread.java:5696)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)

Favorite an event

Favorite an event from the event details.

The favorites for a user are stored in /user/{userId}/favorites/{eventId} with value true

Opening develop brunch in Android Studio 2.3

Hi!
I have some problems with APPLICATION_ID when trying to open project.

Error:A problem occurred while evaluating entry:
- File application.properties does not exist.
- No environment variable defined for key 'APPLICATION_ID'

Collapsing appbar on the event details screen

Exact behaviour TBD but likely crossfading the title between expanded and collapsed state, and speakers fading in/out.

Also to look at: set "what"/"where"/"about" labels' and speaker container visibility to GONE by default

Screen: search

Accessed from the appbar on any screen of the app.

Designs (WIP):

Resting state (before typing) Results (after typing)
image TODO

Autocomplete (non-MVP):
image

One-activity-per-screen

Let's not use fragments wherever possible; we're having some serious state loss issues because of that in some cases (e.g., multi-window on N+).

This issue is about splitting things out of the current uber-activity, HomeActivity, but should include no behaviour changes nor other refactors, whenever possible. Splitting activities out should mean we move code to per-domain packages instead of per-component-type (e.g., ScheduleActivity should be in schedule rather than ui)

Activities to create:

  • NavigationDrawerActivity (base class)
  • ScheduleActivity
  • BirdsOfFeatherActivity
  • SocialEventsActivity
  • SocialFeedActivity
  • MyScheduleActivity
  • VenueActivity (combo venue info + floorplans)
  • SpeakersActivity
  • AboutActivity

Auto-configure WiFi

Facility to add WiFi SSID to the device's configuration.

The goal is to allow users to configure the conference Wifi in advance (or at the venue if/when we have geofencing again, see #318). This would be likely presented with an option in the settings.

In addition to this, once this is implemented we'll prompt users in the onboarding (#60) with this feature, but it's tracked separately.

Error states: should probably just be a bottom sheet informing the user we could not setup the Wifi automagically, but that they can add it manually and give them the network name and password (with a way to copy them to the clipboard, maybe?).

Dev details

See:

Screen: onboarding

Three pages:

  • Contest/location opt-in (done in #211, #213)
    • Prompts for location permission
    • If BLE is off, offers to turn it on
    • Enables NearIt when both are on
  • Account sign-in (done in #319)
    • Pops up the sign-in bottom sheet
  • WiFi pre-configuration (depends on #59)
    • During onboarding, if the wifi configuration is available, we should prompt users if they want us to autoconfigure the wifi for the conference.
  • Analytics opt-out/GDPR readiness (depends on #515)
    • During onboarding we should offer users the ability to opt out from analytics

Support different item types in schedule

Support non-talk/keynote items in the schedule, such as:

  • registration
  • coffee_break
  • lunch
  • social
  • other

Note: all those types do not support speakers and experience levels

Deep link support

Allow to deep-link into activities by URL:

  • Homescreen
  • Event details
  • Speaker details

Screen: speaker details

Contains: photo, full name, company, bio, (social) link(s), list of talks (title, day, timeslot, room -- tapping it brings to the talk details)

Handle "no event with given ID" in event details

Currently trying to load an event details with an unknown ID results in nothing loading and an empty page; instead it should either show an empty state or pop an error toast and close the activity.

Screen: conference info

Contains:

  • Links to conference social media
  • Blurb about conference
  • Photo album (?)
  • Link to previous years' talks

Homescreen empty states

If a page content is empty, it will simply be an empty page. It should have some sort of empty state.

TODO:

Fav talk starting notification

Show a user that a favourite talk is about to start. In the notification: Talk title, speaker(s), room, timeslot (e.g., 9:00โ€”10:00)

Screen: venue info

Contains: venue name and address (plus map?), directions link.

Non-MVP: venue info (transport close by, etc), room info (capacity), floor plans

Fix build crashing

Build crashes with !zip.isFile() error.

As per Issue 230211, one possible solution is to migrate to a newer gradle plugin (2.3.0-RC1)

Rework networking layer

We want to get rid of the Model-that-does-networking approach in the app and create a cleanly separated network layer that emits immutable models instead. This goes hand-in-hand with dropping the Drupal SDK module and simply performing REST requests against the backend.

Screen: settings

Items:

  • Log in/log out1 (done in #177)
  • Enable/disable notifications (done in #136)
  • Configure wifi1
  • FOSS licences (done in #192)
  • About the app:
    • version info (done in #153)
    • repo URL
    • other?

Notes:
1 not part of MVP, see login story

Account login and favourites sync

Use Firebase login to connect to a Google/GitHub account so that we have a concept of user identity. Sync favourite talks to Firebase for signed-in users.

Note: this requires sign-in onboarding and a "do you want to sync your favourites?" prompt when adding a fave for the first time

Add custom fonts

Add custom fonts from Dropbox folder using Calligraphy and setting style attributes

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.