From 12732d8c7b89cf48317b6b1babce2d7dd1875023 Mon Sep 17 00:00:00 2001 From: Nick Date: Mon, 23 Jan 2017 19:26:40 -0500 Subject: [PATCH] Added more debugging info to common crashes --- .../tvapprepo/fragments/MainFragment.java | 9 ++++-- .../tvapprepo/model/RepoDatabase.java | 32 +++++++++++++------ .../tvapprepo/utils/ShortcutPostTask.java | 8 ++--- 3 files changed, 33 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/news/androidtv/tvapprepo/fragments/MainFragment.java b/app/src/main/java/news/androidtv/tvapprepo/fragments/MainFragment.java index b3d2621..79001de 100644 --- a/app/src/main/java/news/androidtv/tvapprepo/fragments/MainFragment.java +++ b/app/src/main/java/news/androidtv/tvapprepo/fragments/MainFragment.java @@ -486,9 +486,9 @@ public void onClick(DialogInterface dialogInterface, int i) { new ShortcutPostTask.Callback() { @Override public void onResponse(NetworkResponse response) { + JSONObject data = null; try { - JSONObject data = - new JSONObject(new String(response.data)); + data = new JSONObject(new String(response.data)); if (data.getBoolean("build_ok")) { String downloadLink = data.getJSONObject("app") @@ -502,6 +502,11 @@ public void onResponse(NetworkResponse response) { } } catch (JSONException e) { e.printStackTrace(); + } catch (NullPointerException e) { + throw new NullPointerException(e.getMessage() + + "\nSomething odd is happening for " + + ((ResolveInfo) item).activityInfo.packageName + + "\n" + data.toString()); } } diff --git a/app/src/main/java/news/androidtv/tvapprepo/model/RepoDatabase.java b/app/src/main/java/news/androidtv/tvapprepo/model/RepoDatabase.java index 86b9101..0a913a6 100644 --- a/app/src/main/java/news/androidtv/tvapprepo/model/RepoDatabase.java +++ b/app/src/main/java/news/androidtv/tvapprepo/model/RepoDatabase.java @@ -62,17 +62,23 @@ public void onDataChange(DataSnapshot dataSnapshot) { // whenever data at this location is updated. Log.d(TAG, "Got new snapshot " + dataSnapshot.toString()); for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) { - Log.d(TAG, dataSnapshot1.toString()); - Apk value = dataSnapshot1.getValue(Apk.class); - value.setKey(dataSnapshot1.getKey()); - Log.d(TAG, "Value is: " + value); - if (apps.containsKey(value.getPackageName()) && - apps.get(value.getPackageName()).getVersionCode() < value.getVersionCode() || - !apps.containsKey(value.getPackageName())) { - for (Listener listener : listenerList) { - listener.onApkAdded(value, apps.size()); + try { + Log.d(TAG, dataSnapshot1.toString()); + Apk value = dataSnapshot1.getValue(Apk.class); + value.setKey(dataSnapshot1.getKey()); + Log.d(TAG, "Value is: " + value); + if (apps.containsKey(value.getPackageName()) && + apps.get(value.getPackageName()).getVersionCode() < value.getVersionCode() || + !apps.containsKey(value.getPackageName())) { + for (Listener listener : listenerList) { + listener.onApkAdded(value, apps.size()); + } + apps.put(value.getPackageName(), value); } - apps.put(value.getPackageName(), value); + } catch (RuntimeException e) { + // Something weird happened. Debug it. + throw new FirebaseIsBeingWeirdException("Something weird happens to Firebase here: " + + dataSnapshot1.toString() + " in " + dataSnapshot.toString()); } } } @@ -196,4 +202,10 @@ public interface LeanbackShortcutCallback { void onLeanbackShortcut(LeanbackShortcut leanbackShortcut); void onDatabaseError(DatabaseError error); } + + private static class FirebaseIsBeingWeirdException extends RuntimeException { + public FirebaseIsBeingWeirdException(String s) { + super(s); + } + } } diff --git a/app/src/main/java/news/androidtv/tvapprepo/utils/ShortcutPostTask.java b/app/src/main/java/news/androidtv/tvapprepo/utils/ShortcutPostTask.java index f12aaea..4c96162 100644 --- a/app/src/main/java/news/androidtv/tvapprepo/utils/ShortcutPostTask.java +++ b/app/src/main/java/news/androidtv/tvapprepo/utils/ShortcutPostTask.java @@ -76,11 +76,11 @@ public void onResponse(NetworkResponse response) { @Override public void onErrorResponse(VolleyError error) { if (error.networkResponse != null) { - Log.e(TAG, "Error: " + error.networkResponse.headers); - Log.e(TAG, "Error: " + new String(error.networkResponse.data)); +// Log.e(TAG, "Error: " + error.networkResponse.headers); +// Log.e(TAG, "Error: " + new String(error.networkResponse.data)); } - Log.e(TAG, "Error: " + error.getMessage()); - Log.d(TAG, error.toString()); +// Log.e(TAG, "Error: " + error.getMessage()); +// Log.d(TAG, error.toString()); callback.onError(error); } }){