droidcon / iosched Goto Github PK
View Code? Open in Web Editor NEWIOSched modified for Droidcon
License: Apache License 2.0
IOSched modified for Droidcon
License: Apache License 2.0
'Conquering concurrency: bringing the reactive axtensions to the Android platform' is missing from the Fri 10:30-11:15 slot.
When the app is started for the first time it doesn't sync and so the user doesn't see any data,
Should point to Droicon's instead. Do we even have those links?
Did the notifications get tested? Is the "starred session coming up next" notification shown by the app, given that it doesn't use GCM anymore?
Just a memo, more than anything else.
Crash report from the Play Store Console;
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.funkyandroid.droidcon.uk.iosched/com.funkyandroid.droidcon.uk.iosched.ui.phone.TrackDetailActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2247)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2297)
at android.app.ActivityThread.access$700(ActivityThread.java:152)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1282)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5328)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.funkyandroid.droidcon.uk.iosched.ui.BaseActivity.setActionBarTrackIcon(BaseActivity.java:61)
at com.funkyandroid.droidcon.uk.iosched.ui.phone.TrackDetailActivity.onTrackInfoAvailable(TrackDetailActivity.java:209)
at com.funkyandroid.droidcon.uk.iosched.ui.TrackInfoHelperFragment.onCreate(TrackInfoHelperFragment.java:92)
at android.support.v4.app.Fragment.performCreate(Fragment.java:1455)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:893)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086)
at android.support.v4.app.FragmentManagerImpl.dispatchCreate(FragmentManager.java:1872)
at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:215)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:97)
at com.funkyandroid.droidcon.uk.iosched.ui.BaseActivity.onCreate(BaseActivity.java:40)
at com.funkyandroid.droidcon.uk.iosched.ui.phone.TrackDetailActivity.onCreate(TrackDetailActivity.java:63)
at android.app.Activity.performCreate(Activity.java:5250)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
... 11 more
I can't exactly determine what is unused as of now because there is no written and shared plan yet for the app, but it seems like a lot of stuff that was used for I/O won't be used for Droidcon.
my bio! :(
Since you have the opportunity, perhaps you could fix the typo as well '3 years' rather than '4 years'.
The sessions feedback is currently handled on sync events by the com.funkyandroid.droidcon.uk.droidconsched.io.model.events.sessions.Feedback
class, through the com.funkyandroid.droidcon.uk.iosched.io.FeedbackHelper`.
The feedback submission URL for the PUT requests is currently resolved to ServerRequest#DATA_ROOT + Feedback#REST_PATH
when executing the request. This ends up pointing to http://dcuk2013.funkyandroid.net/events/droidconuk2013/sessions/{sessionId}/feedback
, which 404's.
Do we want to collect feedbacks, or do we just want to remove the feedback function altogether?
http://uk.droidcon.com/2013/sessions/coding-android-consoles-al-sutton/
Currently reads 'Coding for consoles', should read 'Coding for Android consoles'.
The website uses links for each session such as "/sessions/session-title-here". Trying to implement opening sessions but the fragment requires a sessionId, which can't be retrieved from the link.
'Bringing Firefox to Android' should be in Fri 15:05-15:45 slot.
The eula_text
string is referred to Google. Should check with Droidcon legal staff and update this.
EDIT: the same goes for about_body
!
The gradle build script is out of sync because the latest modifications have been done in an IDE which doesn't auto update the build script.
This should be fixed.
See http://uk.droidcon.com/2013/lineup/
There are two conference timeslots in the Thursday morning that are missing from the datasets. Heck, I can't add my own session to my schedule :D
The widget preview should have the Droidcon style.
The app could benefit from some more aggressive branding optimization.
For example, the accent colors could be set to the same green the logo uses, and probably the ActionBar logo itself could be white-on-green rather than multicolored.
Here's a quick&dirty mockup (which also includes a first draft for #34 's schedule list items UI rework):
What do you think, @alsutton?
The 'Android Based Dongles and Wearable Accessories' session is not listed under Thurs 9:45-10:25.
It is instead listed in the 10:30-11:10 slot, however the website lineup page does not reflect that (http://uk.droidcon.com/2013/lineup/).
The Schedule as of now is full of grayed-out items, making it look like an half-done app. Also, the striped pattern in the left part of each item should in my opinion very lightly reflect the color of the track it represents (if there is one and only one session starred for that slot).
Crash report from the Play Store;
java.lang.NullPointerException
at com.funkyandroid.droidcon.uk.iosched.ui.MapFragment.showFloor(MapFragment.java:347)
at com.funkyandroid.droidcon.uk.iosched.ui.MapFragment.access$000(MapFragment.java:80)
at com.funkyandroid.droidcon.uk.iosched.ui.MapFragment$2.onClick(MapFragment.java:209)
at android.view.View.performClick(View.java:4354)
at android.view.View$PerformClick.run(View.java:17962)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5328)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
It seems that, as of now, no webservice exists yet to provide the data for Droidcon. The only remote endpoint working is Google's, which I guess will have to be removed pretty soon (you get both Droidcon data from the local JSONs and I/O's data from Google's webservice).
Also, the local JSON is not complete nor up-to-date. Do you have any official JSON to use, or would you need to "infer" it from the Droidcon website?
The first that pops to my eye is my own session, Developing i'm Watch Apps, that should be in the Not Phones track but in the app is in the Barcamp track.
I'm not really sure about the other sessions as I don't have a reference to check against.
09-16 09:54:59.636 23193-23193/com.funkyandroid.droidcon.uk.iosched E/AndroidRuntime﹕ FATAL EXCEPTION: main
android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 16
at android.database.AbstractCursor.checkPosition(AbstractCursor.java:424)
at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)
at android.database.CursorWrapper.getString(CursorWrapper.java:114)
at com.funkyandroid.droidcon.uk.iosched.ui.ExploreFragment.onListItemClick(ExploreFragment.java:159)
at android.support.v4.app.ListFragment$2.onItemClick(ListFragment.java:58)
at android.widget.AdapterView.performItemClick(AdapterView.java:298)
at android.widget.AbsListView.performItemClick(AbsListView.java:1100)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:2749)
at android.widget.AbsListView$1.run(AbsListView.java:3423)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5227)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
at dalvik.system.NativeStart.main(Native Method)
The dropdown for the title is grey on black, and the text is difficult to read because it is black on green.
They should be taken out since we don't have them at Droidcon
I'd make the items a bit more card-like, work a bit on tipography, if possible also adding people's pictures and a few more metadata (at least the timestamp).
I could sketch something in Photoshop for feedback if you want.
The com.funkyandroid.droidcon.uk.iosched.Config
class contains a bunch of references to Google's services, webservice endpoints, etc. It should be cleaned up.
In the Fri 11:45-12:25 slot.
Shouldn't this open a Twitter compose screen/intent?
It contains a lot of stuff that has been changed or deleted.
There are a lot of references in the settings to the I/O Extended, livestreams, and such stuff that should be removed from the app.
I can do this, if you give me the green light, @alsutton.
Should switch to Holo Dark ActionBar icons (which are white)
Should take only one second off the remaining time, per second.
When tapping a session in the schedule, the app crashes:
09-11 16:59:08.110 25122-25122/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=content://com.funkyandroid.droidcon.uk.iosched/blocks/1368647100-1368650700/sessions (has extras) }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1622)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
at android.app.Activity.startActivityForResult(Activity.java:3370)
at android.app.Activity.startActivityForResult(Activity.java:3331)
at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:833)
at android.support.v4.app.Fragment.startActivity(Fragment.java:856)
at com.funkyandroid.droidcon.uk.iosched.ui.ScheduleFragment$MyScheduleAdapter$1.onClick(ScheduleFragment.java:367)
at android.view.View.performClick(View.java:4211)
at android.view.View$PerformClick.run(View.java:17362)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5227)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
at dalvik.system.NativeStart.main(Native Method)
This is probably due to one of the intent-filters
defined in the manifest for SessionDetailsActivity
. I strongly suspect you'd have to change the data
tag contents for the filter you can find at lines 221-228 of the manifest file.
I'd change it myself but I don't know the URLs you're defining for your webservice.
Some sort of encoding error with the strings in the descriptions of sessions. Two I've noticed are encoding errors of the apostrophe character (') and a strange one which I will upload an image of.
Should be 15:05
The search suggestions JSON (/res/raw/search_suggest.json
) is outdated and contains Google I/O's search suggestion keywords.
It's used to open the Google+ profile of attendants to the I/O, but Droidcon's badge NFC tags usually only contain the name, surname and email of the attendee. Should we switch to something like an Activity that shows the attendee details and offers to add to contacts, instead?
In ./android/src/main/assets/maptiles
you can find three SVG files for what looks like the Moscone Center's three floors maps. Guess you don't need them for the Droidcon... the same probably goes for the SVG library in the dependencies, if you take the SVG maps out.
This still uses Google I/O's network details. Should be changed to whatever network details are provided by Droidcon.
Also, some kind of feedback once the network details have been added would be nice as it's not really clear what this action does and upon selecting it seems like it did nothing. Even a simple short-duration toast seems appropriate.
Clicking on the track on the explore page doesn't show the sessions in that track.
Crash from Google Play Developers Console;
android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 6
at android.database.AbstractCursor.checkPosition(AbstractCursor.java:424)
at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)
at android.database.CursorWrapper.getString(CursorWrapper.java:114)
at com.funkyandroid.droidcon.uk.iosched.ui.ExploreFragment.onListItemClick(ExploreFragment.java:159)
at android.support.v4.app.ListFragment$2.onItemClick(ListFragment.java:58)
at android.widget.AdapterView.performItemClick(AdapterView.java:298)
at android.widget.AbsListView.performItemClick(AbsListView.java:1100)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:2788)
at android.widget.AbsListView$1.run(AbsListView.java:3463)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
I can't see tracks anymore in the Explore fragment as of the head of pull request #30. I haven't touched anything regarding the tracks, their JSON, or other stuff. I noticed it after the last merge from your commits from today.
The problem is most likely due to malformed JSON in respect to the Tracks
and Track
classes they should be deserialized into, because this manifests itself as empty Tracks
objects being deserialized by Gson
in TracksHandler
:
Tracks tracksJson = new Gson().fromJson(json, Tracks.class);
if (tracksJson != null) {
final Track[] tracks = tracksJson.getTrack();
if (tracks != null) {
// We never get to here: tracksJson#tracks
// is always null!
for (Track track : tracks) {
parseTrack(track, batch);
}
}
}
I've tried digging into Gson to find out where the issue is, but figuring out that labyrinth is out of my scope right now. I don't have a reference JSON to work on, but by just cross-checking the raw/tracks.json
contents and the Track
class I can tell that there are a couple mismatches: the class is likely missing some int[] sessions
field, and has a field that doesn't exist in the JSON, order_in_level
(but that shouldn't be a problem).
Also, it's not clear to me at this time (because I haven't put that much into the figuring out, I guess):
tracks.json
and session_tracks.json
contents; intuitively the latter is the "relation table" between sessions and the tracks they belong to, through the sessions
arrays, but then tracks.json
has that same data. So, is session_tracks.json
just a duplicate of a subset of tracks.json
data?io.*
namespaces in two places, with half the stuff in com.funkyandroid.droidcon.uk.droidconsched.io
and half in com.funkyandroid.droidcon.uk.iosched.io
?Remote sync needs to be implemented.
'Leveraging Android for the Internet of Things with Eclipse M2M' is in the Fri 10:30-11:15 slot where it should be in the Fri 12:30-13:10 slot.
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.