From e0dfda1b218c4b5ef4282fedfa9fae5fc97825d7 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Sat, 1 Oct 2016 19:42:25 +0200 Subject: [PATCH] fix various crashes --- .../habitica/ui/activities/LoginActivity.java | 2 +- .../social/GroupInformationFragment.java | 2 +- .../fragments/social/party/PartyFragment.java | 16 ++------ .../ui/fragments/tasks/TasksFragment.java | 8 +++- .../widget/HabitButtonWidgetService.java | 37 ++++++++++--------- 5 files changed, 31 insertions(+), 34 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.java index 3aded1ed6..142f611e3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/LoginActivity.java @@ -403,7 +403,7 @@ public class LoginActivity extends BaseActivity e.printStackTrace(); } - if (this.isRegistering || userAuthResponse.getNewUser()) { + if (userAuthResponse.getNewUser()) { this.startSetupActivity(); } else { AmplitudeManager.sendEvent("login", AmplitudeManager.EVENT_CATEGORY_BEHAVIOUR, AmplitudeManager.EVENT_HITTYPE_EVENT); diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GroupInformationFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GroupInformationFragment.java index 0b015a096..854fa3b07 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GroupInformationFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GroupInformationFragment.java @@ -107,7 +107,7 @@ public class GroupInformationFragment extends BaseFragment { QrCodeManager qrCodeManager = new QrCodeManager(this.getContext()); qrCodeManager.setUpView(qrLayout); - if (user.getInvitations().getParty() != null && user.getInvitations().getParty().getId() != null) { + if (user != null && user.getInvitations().getParty() != null && user.getInvitations().getParty().getId() != null) { viewBinding.setInvitation(user.getInvitations().getParty()); } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.java index 4eb77eb5e..3ecd129dd 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.java @@ -84,16 +84,6 @@ public class PartyFragment extends BaseMainFragment { }); }, throwable -> { }); - } else { -// AlertDialog.Builder builder = new AlertDialog.Builder(activity) -// .setMessage(activity.getString(R.string.no_party_message)) -// .setNeutralButton(android.R.string.ok, (dialog, which) -> { -// activity.getSupportFragmentManager().popBackStackImmediate(); -// }); -// builder.show(); -// if (tabLayout != null) { -// tabLayout.removeAllTabs(); -// } } @@ -112,7 +102,9 @@ public class PartyFragment extends BaseMainFragment { } private void updateGroupUI() { - viewPagerAdapter.notifyDataSetChanged(); + if (viewPagerAdapter != null) { + viewPagerAdapter.notifyDataSetChanged(); + } if (tabLayout != null) { if (group == null) { @@ -137,7 +129,7 @@ public class PartyFragment extends BaseMainFragment { PartyFragment.this.activity.supportInvalidateOptionsMenu(); - if (group.quest != null && group.quest.key != null && !group.quest.key.isEmpty()) { + if (group != null && group.quest != null && group.quest.key != null && !group.quest.key.isEmpty()) { contentCache.GetQuestContent(group.quest.key, content -> { if (groupInformationFragment != null) { groupInformationFragment.setQuestContent(content); diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java index ca77a135f..38cabced6 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java @@ -492,7 +492,9 @@ public class TasksFragment extends BaseMainFragment implements OnCheckedChangeLi ); } } - this.activity.fillFilterDrawer(items); + if (isAdded()) { + this.activity.fillFilterDrawer(items); + } }else { items.add(new EditTagsSectionDrawer().withEditing(this.editingTags).withName(getString(R.string.filter_drawer_filter_tags))); items.add(new EditTextDrawer()); @@ -506,7 +508,9 @@ public class TasksFragment extends BaseMainFragment implements OnCheckedChangeLi ); } } - this.activity.fillFilterDrawer(items); + if (isAdded()) { + this.activity.fillFilterDrawer(items); + } } } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetService.java b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetService.java index bdaea8c9b..a5411ee79 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetService.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/HabitButtonWidgetService.java @@ -79,26 +79,27 @@ public class HabitButtonWidgetService extends Service { private void updateData(Task task) { RemoteViews remoteViews = new RemoteViews(this.getPackageName(), R.layout.widget_habit_button); - remoteViews.setTextViewText(R.id.habit_title, task.text); + if (task != null) { + remoteViews.setTextViewText(R.id.habit_title, task.text); - if (!task.getUp()) { - remoteViews.setViewVisibility(R.id.btnPlusWrapper, View.GONE); - remoteViews.setOnClickPendingIntent(R.id.btnPlusWrapper, null); - } else { - remoteViews.setViewVisibility(R.id.btnPlusWrapper, View.VISIBLE); - remoteViews.setInt(R.id.btnPlus, "setBackgroundColor", resources.getColor(task.getLightTaskColor())); - remoteViews.setOnClickPendingIntent(R.id.btnPlusWrapper, getPendingIntent(task.getId(), TaskDirection.up.toString(), taskMapping.get(task.getId()))); + if (!task.getUp()) { + remoteViews.setViewVisibility(R.id.btnPlusWrapper, View.GONE); + remoteViews.setOnClickPendingIntent(R.id.btnPlusWrapper, null); + } else { + remoteViews.setViewVisibility(R.id.btnPlusWrapper, View.VISIBLE); + remoteViews.setInt(R.id.btnPlus, "setBackgroundColor", resources.getColor(task.getLightTaskColor())); + remoteViews.setOnClickPendingIntent(R.id.btnPlusWrapper, getPendingIntent(task.getId(), TaskDirection.up.toString(), taskMapping.get(task.getId()))); + } + if (!task.getDown()) { + remoteViews.setViewVisibility(R.id.btnMinusWrapper, View.GONE); + remoteViews.setOnClickPendingIntent(R.id.btnMinusWrapper, null); + } else { + remoteViews.setViewVisibility(R.id.btnMinusWrapper, View.VISIBLE); + remoteViews.setInt(R.id.btnMinus, "setBackgroundColor", resources.getColor(task.getMediumTaskColor())); + remoteViews.setOnClickPendingIntent(R.id.btnMinusWrapper, getPendingIntent(task.getId(), TaskDirection.down.toString() , taskMapping.get(task.getId()))); + } + appWidgetManager.updateAppWidget(taskMapping.get(task.getId()), remoteViews); } - if (!task.getDown()) { - remoteViews.setViewVisibility(R.id.btnMinusWrapper, View.GONE); - remoteViews.setOnClickPendingIntent(R.id.btnMinusWrapper, null); - } else { - remoteViews.setViewVisibility(R.id.btnMinusWrapper, View.VISIBLE); - remoteViews.setInt(R.id.btnMinus, "setBackgroundColor", resources.getColor(task.getMediumTaskColor())); - remoteViews.setOnClickPendingIntent(R.id.btnMinusWrapper, getPendingIntent(task.getId(), TaskDirection.down.toString() , taskMapping.get(task.getId()))); - } - - appWidgetManager.updateAppWidget(taskMapping.get(task.getId()), remoteViews); } @Override