gdg-x / frisbee Goto Github PK
View Code? Open in Web Editor NEW[DEPRECATED] Android application for GDG members and organizers
Home Page: https://play.google.com/store/apps/details?id=org.gdg.frisbee.android
License: Apache License 2.0
[DEPRECATED] Android application for GDG members and organizers
Home Page: https://play.google.com/store/apps/details?id=org.gdg.frisbee.android
License: Apache License 2.0
After pressing the g+ button the progress bar keeps spinning
(Android 4.3)
To educate the user about what is available via the navigation drawer, the recommendation is to have it opened when using the app the first time.
I just made a post to my GDG page today. Launched frisbee and it loaded the new news post from G+ but it said "4 days ago" as the post time on it. Which happened to be the time of the next older post.
There is no visible indication that something is happening in the background.
java.lang.IllegalStateException: PlusClient must be connected to create an interactive post.
at com.google.android.gms.internal.x.a(Unknown Source)
at com.google.android.gms.plus.PlusShare$Builder.(Unknown Source)
at org.gdg.frisbee.android.fragment.EventFragment.shareOnGplus(EventFragment.java:251)
at org.gdg.frisbee.android.fragment.EventFragment.onClick(EventFragment.java:246)
Dragging down on a card in the news screen (in portrait) does not trigger a pull-to-refresh action but dragging down on the outside edges of a card does.
Using a PullToRefreshLayout would solve this issue.
https://github.com/chrisbanes/ActionBar-PullToRefresh#pulltorefreshlayout
it would be great to have localized formats for the time of the events:
Now: 2013-08-05T19:00:00.000+02:00
Better i.e.:
5. August 2013 19:00 Uhr (for Germans)
5th August 2013 7:00pm (for GB, US, etc.)
About > Get Involved
No link or mention of GitHub account. Just says go to GitHub.
Please add github.com/gdg-x somewhere :)
Links from G+ page and
Resources from GDG chapter page
What do you think of adding a widget, showing off the next event with information like "number of people coming", "time to go, before event starts".
Beside that, there could be a message counter, showing messages received by the gdg's page (don't know if it possible, though), click on it and you get right to those messages.
It would require to add some sophisticated error handling in places where communication can fail
08-30 23:15:29.744: W/System.err(5991): com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
08-30 23:15:29.744: W/System.err(5991): {
08-30 23:15:29.744: W/System.err(5991): "code": 400,
08-30 23:15:29.744: W/System.err(5991): "errors": [
08-30 23:15:29.744: W/System.err(5991): {
08-30 23:15:29.744: W/System.err(5991): "domain": "usageLimits",
08-30 23:15:29.744: W/System.err(5991): "message": "Bad Request",
08-30 23:15:29.744: W/System.err(5991): "reason": "keyInvalid"
08-30 23:15:29.744: W/System.err(5991): }
08-30 23:15:29.744: W/System.err(5991): ],
08-30 23:15:29.744: W/System.err(5991): "message": "Bad Request"
08-30 23:15:29.744: W/System.err(5991): }
08-30 23:15:29.744: W/System.err(5991): at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:111)
08-30 23:15:29.744: W/System.err(5991): at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:38)
08-30 23:15:29.744: W/System.err(5991): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:312)
08-30 23:15:29.744: W/System.err(5991): at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1042)
08-30 23:15:29.744: W/System.err(5991): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410)
08-30 23:15:29.744: W/System.err(5991): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
08-30 23:15:29.744: W/System.err(5991): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)
08-30 23:15:29.744: W/System.err(5991): at org.gdg.frisbee.android.fragment.InfoFragment$4.doInBackground(InfoFragment.java:180)
08-30 23:15:29.744: W/System.err(5991): at org.gdg.frisbee.android.fragment.InfoFragment$4.doInBackground(InfoFragment.java:171)
08-30 23:15:29.744: W/System.err(5991): at org.gdg.frisbee.android.task.CommonAsyncTask.doInBackground(CommonAsyncTask.java:79)
08-30 23:15:29.744: W/System.err(5991): at android.os.AsyncTask$2.call(AsyncTask.java:287)
08-30 23:15:29.744: W/System.err(5991): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
08-30 23:15:29.744: W/System.err(5991): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
java.lang.NullPointerException
at org.gdg.frisbee.android.adapter.NewsAdapter.populateShare(newsadapter_java:445)
at org.gdg.frisbee.android.adapter.NewsAdapter.getView(newsadapter_java:224)
at android.widget.AbsListView.obtainView(abslistview_java:2255)
at android.widget.ListView.makeAndAddView(listview_java:1769)
at android.widget.ListView.fillDown(listview_java:672)
at android.widget.ListView.fillSpecific(listview_java:1330)
at android.widget.ListView.layoutChildren(listview_java:1600)
at android.widget.AbsListView.onLayout(abslistview_java:2106)
at android.view.View.layout(view_java:13754)
at android.view.ViewGroup.layout(viewgroup_java:4364)
at android.widget.LinearLayout.setChildFrame(linearlayout_java:1649)
at android.widget.LinearLayout.layoutVertical(linearlayout_java:1507)
at android.widget.LinearLayout.onLayout(linearlayout_java:1420)
at android.view.View.layout(view_java:13754)
http://gdg-x.hp.af.cm/#/crashreport/b17393e7-9ec1-4261-9665-c51992e89dec
The boomerang loading spinner is awesome. The info pane doesn't use the same loading (fading boomerang spinner) as the other two (events, news).
In case the user flips the phone from one mode to another while it loads, the app will crash. This issue was seen on the nexus 4
Using Google Play Game Services
This requires to change the order of the wizzard: first sign-in then select chapter.
During devfest season, there should be a separate item in the menu drawer that lists all devfests.
In the version Alpha 0.7 only past events are shown. the future events are missing. Example: GDG Bremen has an event on the developers site for the 5th of august
java.lang.IllegalStateException: PlusClient must be connected to create an interactive post.
at com.google.android.gms.internal.x.a(Unknown Source)
at com.google.android.gms.plus.PlusShare$Builder.(Unknown Source)
at org.gdg.frisbee.android.fragment.EventFragment.shareOnGplus(EventFragment.java:251)
at org.gdg.frisbee.android.fragment.EventFragment.onClick(EventFragment.java:246)
This is an enhancement request ;-)
It would be great to see the past events of my GDG, especially the description could be interesting. Also over the linked Google+ Event the YouTube Link could be fetched.
That would be awesome!
java_lang_illegalstateexception: Not connected. Call connect() and wait for onConnected() to be called.
at com.google.android.gms.internal.p.n(Unknown Source)
at com.google.android.gms.internal.p.o(Unknown Source)
at com.google.android.gms.internal.bj.b(Unknown Source)
at com.google.android.gms.games.GamesClient.unlockAchievement(Unknown Source)
at org.gdg.frisbee.android.activity.MainActivity$7$1.onGotGamesClient(mainactivity_java:304)
at org.gdg.frisbee.android.utils.PlayServicesHelper.getGamesClient(playserviceshelper_java:252)
at org.gdg.frisbee.android.activity.MainActivity$7.run(mainactivity_java:301)
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)
I don't know if it is an issue with the developers api, but the todays event of the GDG Bremen (1st July) is not shown in the tab events, only the next one in august
And implement this backend as Provider, this way it can be more consistent with platform and easly extendable.
(original title:Move cache backend to database instead of filesystem)
After +1'ing one news item, the animation will never stop. (not sure if it's related to the API or not)
The user should be notified if the +1 was successful or not.
java.lang.NullPointerException
at android.view.animation.AnimationUtils.loadAnimation(animationutils_java:71)
at org.gdg.frisbee.android.fragment.GdgListFragment.updateEmpty(gdglistfragment_java:176)
at org.gdg.frisbee.android.fragment.GdgListFragment.access$000(gdglistfragment_java:43)
at org.gdg.frisbee.android.fragment.GdgListFragment$3.onChanged(gdglistfragment_java:154)
at android.database.DataSetObservable.notifyChanged(datasetobservable_java:37)
at android.widget.BaseAdapter.notifyDataSetChanged(baseadapter_java:50)
at android.widget.ArrayAdapter.notifyDataSetChanged(arrayadapter_java:286)
at android.widget.ArrayAdapter.addAll(arrayadapter_java:198)
at org.gdg.frisbee.android.fragment.ContributorsFragment$1$1.onPutIntoCache(contributorsfragment_java:93)
at org.gdg.frisbee.android.cache.ModelCache$3.onPostExecute(modelcache_java:414)
at org.gdg.frisbee.android.cache.ModelCache$3.onPostExecute(modelcache_java:402)
at android.os.AsyncTask.finish(asynctask_java:631)
at android.os.AsyncTask.access$600(asynctask_java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(asynctask_java:644)
at android.os.Handler.dispatchMessage(handler_java:99)
at android.os.Looper.loop(looper_java:137)
at android.app.ActivityThread.main(activitythread_java:4745)
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:786)
at com.android.internal.os.ZygoteInit.main(zygoteinit_java:553)
at dalvik.system.NativeStart.main(Native Method)
http://gdg-x.hp.af.cm/#/crashreport/dedfc062-db23-4258-b37e-c77b7bd4dd60
Please add date / time stamps to the listview for news feed items. Possibly upper right corner of post. It's hard to get distinct titles off of G+ posts, so maybe a date/time stamp could substitute as a separator.
I don't know if this is an issue of the api, but incase I add an event to my calendar (long click on event) the end time equals the start time. But if I add an event over developers.google.com/events I can add different start and end time
There should be a search result provider such that it is easy to search for a GDG by name.
Anytime we aren't using the return value of the Editor.commit() we should use apply() instead. Using apply() will commit its changes to the in-memory SharedPreferences immediately but then will start an asynchronous commit to disk.
RE: http://developer.android.com/reference/android/content/SharedPreferences.Editor.html#apply()
Currently, it only contains the GDG logo at the left.
The app only features a few string and thus it should be translated to as many languages as possible.
Right now translation process is done by merge requests but transifex provides a easy way to import/export string data from android project to web application where anyone (with proper rights) can translate it.
The list should be ordered by distance or by continent or by alphabet.
Only the share button is clickable at the moment
Version: .6-ALPHA
Device: Galaxy Nexus on CM 10.1.2
The app crashes when launching without a network connection for me. To reproduce, turn off wifi and cellular then launch the app. The app starts, it shows my local GDG in the title but then quits.
It has a JSON interface at:
https://developers.google.com/devreldash/gdg/pulse_stats/
Use ViewHolder pattern in adapters in order to optimize view lookups and scrolling performance.
java.lang.NullPointerException
at android.view.animation.AnimationUtils.loadAnimation(AnimationUtils.java:71)
at org.gdg.frisbee.android.fragment.GdgListFragment.setIsLoading(GdgListFragment.java:196)
at org.gdg.frisbee.android.fragment.EventFragment$1.onResponse(EventFragment.java:102)
at org.gdg.frisbee.android.fragment.EventFragment$1.onResponse(EventFragment.java:96)
at org.gdg.frisbee.android.api.GsonRequest.deliverResponse(GsonRequest.java:65)
at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
the label could be "My GDG" or "GDG Aachen".
This is critical, because it makes the app not usable
The user wants to explore GDG information and GD Live information these should be accessible via the navigation drawer as the main areas.
Achievements, Settings and About should go into the Action bar menu.
To fill the navigation drawer, we could add favourite GDGs in addition to the main group. Something like channels in the Youtube app.
The GDG information and GDL information should not appear as new activity but as content of the main activity, like in G+, not like in Youtube app.
GDG, GDL, Pulse should have nav drawer navigation
Achievments can't get it because it is provided by the Gplus client
http://www.gdg.org/ already taken by the Gettysburg discussion group
As commented here by Eric
https://plus.google.com/u/0/107130354111162483072/posts/7i9Jxg22krM
There should be an area to click to open the GDG app
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.