Git Product home page Git Product logo

android-chefmenu's People

Stargazers

 avatar

Watchers

 avatar

android-chefmenu's Issues

onFailure(int, Header[], Throwable, JSONObject) was not overriden

03-23 00:55:28.881    3997-3997/com.wordpress.tonytam.chefsmenu V/JsonHttpResponseHandler﹕ response body is null, calling onFailure(Throwable, JSONObject)
03-23 00:55:28.882    3997-3997/com.wordpress.tonytam.chefsmenu W/JsonHttpResponseHandler﹕ onFailure(int, Header[], Throwable, JSONObject) was not overriden, but callback was received
    java.io.IOException: UnknownHostException exception: Unable to resolve host "dl.dropboxusercontent.com": No address associated with hostname
            at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:184)
            at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:109)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
            at java.util.concurrent.FutureTask.run(FutureTask.java:237)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
            at java.lang.Thread.run(Thread.java:818)
03-23 00:55:28.887    3997-3997/com.wordpress.tonytam.chefsmenu W/System.err﹕ onFailure: null
03-23 00:55:28.887    3997-3997/com.wordpress.tonytam.chefsmenu D/AndroidRuntime﹕ Shutting down VM
03-23 00:55:28.893    3997-3997/com.wordpress.tonytam.chefsmenu E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.wordpress.tonytam.chefsmenu, PID: 3997
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object org.json.JSONObject.get(java.lang.String)' on a null object reference
            at com.wordpress.tonytam.chefsmenu.MenuRestClientUse$1.onFailure(MenuRestClientUse.java:112)
            at com.loopj.android.http.JsonHttpResponseHandler.onFailure(JsonHttpResponseHandler.java:200)
            at com.loopj.android.http.AsyncHttpResponseHandler.handleMessage(AsyncHttpResponseHandler.java:319)
            at com.loopj.android.http.AsyncHttpResponseHandler$ResponderHandler.handleMessage(AsyncHttpResponseHandler.java:138)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            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:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

capturing NullPointerException ?

Oh what a hack, there is some data race condition that happens when we are in offline mode

                    // at com.astuetz.PagerSlidingTabStrip.notifyDataSetChanged(PagerSlidingTabStrip.java:193)
                    // https://github.com/astuetz/PagerSlidingTabStrip/blob/3f4738eca833faeca563d93cd77c8df763a45fb6/library/src/com/astuetz/PagerSlidingTabStrip.java
                    try {
                        tabsStrip.notifyDataSetChanged();
                    } catch (NullPointerException e) {
                        e.printStackTrace();
                    }

Add ability to favorite items

  • show a nice favorite tap (or double tap)
  • show the # of favorite on top
  • show the list of favorite and 'unfav' ability

Selecting a submenu greater than 3, getting exception.

Don't hardcode

03-23 10:37:37.176    2884-2884/com.wordpress.tonytam.chefsmenu E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.wordpress.tonytam.chefsmenu, PID: 2884
    java.lang.IndexOutOfBoundsException: Invalid index 3, size is 3
            at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
            at java.util.ArrayList.get(ArrayList.java:308)
            at com.wordpress.tonytam.chefsmenu.SubMenuFragment.onItemClick(SubMenuFragment.java:166)
            at android.widget.AdapterView.performItemClick(AdapterView.java:300)
            at android.widget.AbsListView.performItemClick(AbsListView.java:1143)
            at android.widget.AbsListView$PerformClick.run(AbsListView.java:3044)
            at android.widget.AbsListView$3.run(AbsListView.java:3833)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            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:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

Build an offline menu data

Fetch from local menu, then update in the background to refresh it.

If the data from remote is the same, don't even refresh

  • Detect if not connected to network, don't engage to load, (maybe do a Toast warning that we are keeping offline data)
  • After loading from remote and if data is fresher, update the offline storage

Handle basic networking failures

If a device is completely offline, may as well check for network first and do something smart

03-24 08:53:19.800    2802-2802/com.wordpress.tonytam.chefsmenu W/JsonHttpResponseHandler﹕ onFailure(int, Header[], Throwable, JSONObject) was not overriden, but callback was received
    java.io.IOException: UnknownHostException exception: Unable to resolve host "dl.dropboxusercontent.com": No address associated with hostname
            at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:184)
            at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:109)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
            at java.util.concurrent.FutureTask.run(FutureTask.java:237)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
            at java.lang.Thread.run(Thread.java:818)
03-24 08:53:19.800    2802-2802/com.wordpress.tonytam.chefsmenu W/System.err﹕ onFailure: null
03-24 08:53:19.865    2802-2820/com.wordpress.tonytam.chefsmenu W/EGL_emulation﹕ eglSurfaceAttrib not implemented
03-24 08:53:19.865    2802-2820/com.wordpress.tonytam.chefsmenu W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa58f9840, error=EGL_SUCCESS

handle network failures: onFailure(int, Header[], Throwable, JSONObject) was not overriden, but callback was received

03-23 09:10:26.541 18834-18834/com.wordpress.tonytam.chefsmenu W/JsonHttpResponseHandler﹕ onFailure(int, Header[], Throwable, JSONObject) was not overriden, but callback was received
org.apache.http.client.HttpResponseException: OK
at com.loopj.android.http.AsyncHttpResponseHandler.sendResponseMessage(AsyncHttpResponseHandler.java:404)
at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:161)
at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:178)
at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:109)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
03-23 09:10:26.541 18834-18834/com.wordpress.tonytam.chefsmenu W/JsonHttpResponseHandler﹕ onFailure(int, Header[], Throwable, JSONObject) was not overriden, but callback was received
org.apache.http.client.HttpResponseException: OK
at com.loopj.android.http.AsyncHttpResponseHandler.sendResponseMessage(AsyncHttpResponseHandler.java:404)
at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:161)
at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:178)
at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:109)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
03-23 09:10:26.551 18834-18834/com.wordpress.tonytam.chefsmenu W/JsonHttpResponseHandler﹕ onFailure(int, Header[], Throwable, JSONObject) was not overriden, but callback was received
org.apache.http.client.HttpResponseException: OK
at com.loopj.android.http.AsyncHttpResponseHandler.sendResponseMessage(AsyncHttpResponseHandler.java:404)
at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:161)
at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:178)
at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:109)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
03-23 09:10:26.551 18834-18834/com.wordpress.tonytam.chefsmenu W/JsonHttpResponseHandler﹕ onFailure(int, Header[], Throwable, JSONObject) was not overriden, but callback was received
org.apache.http.client.HttpResponseException: OK
at com.loopj.android.http.AsyncHttpResponseHandler.sendResponseMessage(AsyncHttpResponseHandler.java:404)
at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:161)
at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:178)
at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:109)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)

Crashing on native device: No view found for id 0x7f090050 (com.wordpress.tonytam.chefsmenu:id/menu_placeholder_menu_detail) for fragment MenuListFragment{41e67940 #1 id=0x7f090050}

03-23 08:43:31.415 12224-12224/com.wordpress.tonytam.chefsmenu E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.wordpress.tonytam.chefsmenu, PID: 12224
java.lang.IllegalArgumentException: No view found for id 0x7f090050 (com.wordpress.tonytam.chefsmenu:id/menu_placeholder_menu_detail) for fragment MenuListFragment{41e67940 #1 id=0x7f090050}
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:939)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
at android.support.v4.app.Fragment.performStart(Fragment.java:1807)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:977)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:486)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1073)
at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1441)
at android.view.View.measure(View.java:17478)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1052)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:590)
at android.view.View.measure(View.java:17478)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:17478)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
at android.support.v7.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:453)
at android.view.View.measure(View.java:17478)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:17478)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:17478)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2548)
at android.view.View.measure(View.java:17478)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2285)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1396)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1595)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6624)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:812)
at android.view.Choreographer.doCallbacks(Choreographer.java:612)
at android.view.Choreographer.doFrame(Choreographer.java:582)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:798)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5602)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.androi

Filter the submenu

Right now all the menu is shown for every subsection, obviously not good

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.