diff --git a/Habitica/res/drawable-hdpi/ic_info_outline_black_24dp.png b/Habitica/res/drawable-hdpi/ic_info_outline_black_24dp.png
new file mode 100644
index 000000000..a98fe3d87
Binary files /dev/null and b/Habitica/res/drawable-hdpi/ic_info_outline_black_24dp.png differ
diff --git a/Habitica/res/drawable-mdpi/ic_info_outline_black_24dp.png b/Habitica/res/drawable-mdpi/ic_info_outline_black_24dp.png
new file mode 100644
index 000000000..18bb1ebae
Binary files /dev/null and b/Habitica/res/drawable-mdpi/ic_info_outline_black_24dp.png differ
diff --git a/Habitica/res/drawable-xhdpi/ic_info_outline_black_24dp.png b/Habitica/res/drawable-xhdpi/ic_info_outline_black_24dp.png
new file mode 100644
index 000000000..0aa5d0e5f
Binary files /dev/null and b/Habitica/res/drawable-xhdpi/ic_info_outline_black_24dp.png differ
diff --git a/Habitica/res/drawable-xxhdpi/ic_info_outline_black_24dp.png b/Habitica/res/drawable-xxhdpi/ic_info_outline_black_24dp.png
new file mode 100644
index 000000000..79a8f0899
Binary files /dev/null and b/Habitica/res/drawable-xxhdpi/ic_info_outline_black_24dp.png differ
diff --git a/Habitica/res/drawable/ic_info_outline_black_24dp.xml b/Habitica/res/drawable/ic_info_outline_black_24dp.xml
deleted file mode 100644
index cb30cd7c3..000000000
--- a/Habitica/res/drawable/ic_info_outline_black_24dp.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/Habitica/res/layout/activity_create_challenge.xml b/Habitica/res/layout/activity_create_challenge.xml
index ab0246ab7..29a85bbd8 100644
--- a/Habitica/res/layout/activity_create_challenge.xml
+++ b/Habitica/res/layout/activity_create_challenge.xml
@@ -163,7 +163,7 @@
android:layout_height="20dp"
android:layout_marginTop="39dp"
android:drawablePadding="12dp"
- android:drawableEnd="@drawable/ic_info_outline_black_24dp"
+ android:drawableRight="@drawable/ic_info_outline_black_24dp"
android:drawableTint="@color/brand_300"
android:gravity="center"
android:text="Tag"
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.java b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.java
index e90c05988..4373864cb 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.java
@@ -438,18 +438,25 @@ public class ApiClientImpl implements Action1, ApiClient {
@Override
public Observable equipItem(String type, String itemKey) {
+ if (itemKey == null) {
+ return Observable.just(null);
+ }
return apiService.equipItem(type, itemKey).compose(configureApiCallObserver());
}
@Override
public Observable buyItem(String itemKey) {
-
+ if (itemKey == null) {
+ return Observable.just(null);
+ }
return apiService.buyItem(itemKey).compose(configureApiCallObserver());
}
@Override
public Observable purchaseItem(String type, String itemKey) {
-
+ if (itemKey == null) {
+ return Observable.just(null);
+ }
return apiService.purchaseItem(type, itemKey).compose(configureApiCallObserver());
}
@@ -465,22 +472,33 @@ public class ApiClientImpl implements Action1, ApiClient {
@Override
public Observable purchaseHourglassItem(String type, String itemKey) {
-
+ if (itemKey == null) {
+ return Observable.just(null);
+ }
return apiService.purchaseHourglassItem(type, itemKey).compose(configureApiCallObserver());
}
@Override
public Observable purchaseMysterySet(String itemKey) {
+ if (itemKey == null) {
+ return Observable.just(null);
+ }
return apiService.purchaseMysterySet(itemKey).compose(configureApiCallObserver());
}
@Override
public Observable purchaseQuest(String key) {
+ if (key == null) {
+ return Observable.just(null);
+ }
return apiService.purchaseQuest(key).compose(configureApiCallObserver());
}
@Override
public Observable sellItem(String itemType, String itemKey) {
+ if (itemKey == null) {
+ return Observable.just(null);
+ }
return apiService.sellItem(itemType, itemKey).compose(configureApiCallObserver());
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ContentRepositoryImpl.java b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ContentRepositoryImpl.java
index feae0cb09..10666ac71 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ContentRepositoryImpl.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ContentRepositoryImpl.java
@@ -31,12 +31,9 @@ abstract class ContentRepositoryImpl extends B
public Observable retrieveContent(boolean forced) {
if (forced || this.lastSync == null || (new Date().getTime() - this.lastSync.getTime()) > 3600000) {
lastSync = new Date();
- return apiClient.getContent()
- .doOnNext(localRepository::saveContent);
+ return apiClient.getContent().doOnNext(localRepository::saveContent);
} else {
return Observable.just(null);
}
-
}
-
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/SocialRepositoryImpl.java b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/SocialRepositoryImpl.java
index a9540c720..538d48be8 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/SocialRepositoryImpl.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/SocialRepositoryImpl.java
@@ -19,6 +19,7 @@ import java.util.Map;
import io.realm.RealmResults;
import rx.Observable;
import rx.functions.Action1;
+import rx.functions.Func2;
public class SocialRepositoryImpl extends BaseRepositoryImpl implements SocialRepository {
@@ -90,22 +91,20 @@ public class SocialRepositoryImpl extends BaseRepositoryImpl retrieveGroup(String id) {
- return apiClient.getGroup(id)
- .map(group -> {
- for (ChatMessage message : group.chat) {
- message.groupId = group.id;
- }
- return group;
- })
- .doOnNext(group -> {
- localRepository.save(group);
- localRepository.getGroup(group.id)
- .first()
- .subscribe(group1 -> {
- group.isMember = group1.isMember;
- localRepository.save(group);
- }, RxErrorHandler.handleEmptyError());
- });
+ Observable observable = apiClient.getGroup(id);
+ if (!"party".equals(id)) {
+ observable = observable.withLatestFrom(localRepository.getGroup(id)
+ .first(), (newGroup, oldGroup) -> {
+ newGroup.isMember = oldGroup.isMember;
+ return newGroup;
+ });
+ }
+ return observable.map(group -> {
+ for (ChatMessage message : group.chat) {
+ message.groupId = group.id;
+ }
+ return group;
+ }).doOnNext(localRepository::save);
}
@Override
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.java b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.java
index 25bab05ad..d6b8c1b64 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.java
@@ -96,7 +96,7 @@ public class UserRepositoryImpl extends BaseRepositoryImpl
}
});
} else {
- return Observable.just(null);
+ return getUser();
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.java b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.java
index 704b100e3..e52084e5e 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/PushNotificationManager.java
@@ -79,9 +79,10 @@ public class PushNotificationManager {
}
public void removePushDeviceUsingStoredToken() {
- apiClient.deletePushDevice(this.refreshedToken)
-
- .subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
+ if (this.refreshedToken == null) {
+ return;
+ }
+ apiClient.deletePushDevice(this.refreshedToken).subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
}
private Boolean userHasPushDevice() {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/NotifyUserUseCase.java b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/NotifyUserUseCase.java
index d2fde4bbf..62892a160 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/NotifyUserUseCase.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/interactors/NotifyUserUseCase.java
@@ -48,7 +48,7 @@ public class NotifyUserUseCase extends UseCase userRepository.retrieveUser(false))
+ .flatMap(aVoid -> userRepository.retrieveUser(true))
.map(User::getStats);
} else {
Pair pair = getNotificationAndAddStatsToUser(requestValues.context, requestValues.xp, requestValues.hp, requestValues.gold, requestValues.mp);
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/CreateChallengeActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/CreateChallengeActivity.java
index e19377ef4..4ad7512ff 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/CreateChallengeActivity.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/CreateChallengeActivity.java
@@ -438,9 +438,7 @@ public class CreateChallengeActivity extends BaseActivity {
checkPrizeAndMinimumForTavern();
- challengeRepository.getChallengeTasks(challengeId).subscribe(tasks -> {
- tasks.tasks.forEach((s, task) -> addOrUpdateTaskInList(task));
- }, Throwable::printStackTrace, () -> {
+ challengeRepository.getChallengeTasks(challengeId).subscribe(tasks -> tasks.tasks.forEach((s, task) -> addOrUpdateTaskInList(task)), RxErrorHandler.handleEmptyError(), () -> {
// activate editMode to track taskChanges
editMode = true;
});
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.java
index e34012d17..b1f3d6612 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.java
@@ -14,6 +14,7 @@ import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.ScrollView;
@@ -187,7 +188,7 @@ public class FullProfileActivity extends BaseActivity {
final AlertDialog addMessageDialog = new AlertDialog.Builder(this)
.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> {
socialRepository.postPrivateMessage(userId, emojiEditText.getText().toString())
- .subscribe(postChatMessageResult -> showSnackbar(FullProfileActivity.this, FullProfileActivity.this.fullprofile_scrollview,
+ .subscribe(postChatMessageResult -> showSnackbar(FullProfileActivity.this, (ViewGroup) FullProfileActivity.this.fullprofile_scrollview.getChildAt(0),
String.format(getString(R.string.profile_message_sent_to), userName), SnackbarDisplayType.NORMAL), RxErrorHandler.handleEmptyError());
UiUtils.dismissKeyboard(HabiticaApplication.currentActivity);
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java
index fef9299fb..50aff3508 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java
@@ -741,7 +741,7 @@ public class MainActivity extends BaseActivity implements TutorialView.OnTutoria
return;
}
- if (this.faintDialog == null) {
+ if (this.faintDialog == null && !this.isFinishing()) {
View customView = View.inflate(this, R.layout.dialog_faint, null);
if (customView != null) {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.java
index 63b63dd38..2f5169f82 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.java
@@ -984,6 +984,9 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
}
private void populate(Task task) {
+ if (!task.isValid()) {
+ return;
+ }
taskText.setText(task.text);
taskNotes.setText(task.notes);
taskValue.setText(String.format(Locale.getDefault(), "%.2f", task.value));
@@ -1328,6 +1331,10 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
if (currentFocus != null) {
imm.hideSoftInputFromWindow(currentFocus.getWindowToken(), 0);
}
+ if (popup != null) {
+ popup.dismiss();
+ popup = null;
+ }
}
private class DateEditTextListener implements View.OnClickListener, DatePickerDialog.OnDateSetListener {
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NewsFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NewsFragment.java
index ab78c2888..8a0f45365 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NewsFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NewsFragment.java
@@ -41,10 +41,9 @@ public class NewsFragment extends BaseMainFragment {
@Override
public String customTitle() {
- if (isAdded()) {
- return getString(R.string.sidebar_news);
- } else {
+ if (!isAdded()) {
return "";
}
+ return getString(R.string.sidebar_news);
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/faq/FAQOverviewFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/faq/FAQOverviewFragment.java
index d5b3ca559..0eb528b68 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/faq/FAQOverviewFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/faq/FAQOverviewFragment.java
@@ -67,6 +67,9 @@ public class FAQOverviewFragment extends BaseMainFragment {
@Override
public String customTitle() {
+ if (!isAdded()) {
+ return "";
+ }
return getString(R.string.FAQ);
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.java
index caffa7afc..6623e8bb8 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarOverviewFragment.java
@@ -165,10 +165,9 @@ public class AvatarOverviewFragment extends BaseMainFragment implements AdapterV
@Override
public String customTitle() {
- if (isAdded()) {
- return getString(R.string.sidebar_avatar);
- } else {
+ if (!isAdded()) {
return "";
}
+ return getString(R.string.sidebar_avatar);
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.java
index 96bbbaed3..1efde84d9 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.java
@@ -156,11 +156,10 @@ public class EquipmentOverviewFragment extends BaseMainFragment {
@Override
public String customTitle() {
- if (isAdded()) {
- return getString(R.string.sidebar_equipment);
- } else {
+ if (!isAdded()) {
return "";
}
+ return getString(R.string.sidebar_equipment);
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemsFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemsFragment.java
index fa6bd58ba..aff67336e 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemsFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemsFragment.java
@@ -128,10 +128,9 @@ public class ItemsFragment extends BaseMainFragment {
@Override
public String customTitle() {
- if (isAdded()) {
- return getString(R.string.sidebar_items);
- } else {
+ if (!isAdded()) {
return "";
}
+ return getString(R.string.sidebar_items);
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopsFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopsFragment.java
index 4f91131d1..30dbef3d4 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopsFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopsFragment.java
@@ -100,11 +100,10 @@ public class ShopsFragment extends BaseMainFragment {
@Override
public String customTitle() {
- if (isAdded()) {
- return getString(R.string.sidebar_shops);
- } else {
+ if (!isAdded()) {
return "";
}
+ return getString(R.string.sidebar_shops);
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/MountDetailRecyclerFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/MountDetailRecyclerFragment.java
index ac8bf4dd0..4e08a58d3 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/MountDetailRecyclerFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/MountDetailRecyclerFragment.java
@@ -109,10 +109,9 @@ public class MountDetailRecyclerFragment extends BaseMainFragment {
@Override
public String customTitle() {
- if (isAdded()) {
- return getString(R.string.mounts);
- } else {
+ if (!isAdded()) {
return "";
}
+ return getString(R.string.mounts);
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/PetDetailRecyclerFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/PetDetailRecyclerFragment.java
index 1b784115f..a7502aa1f 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/PetDetailRecyclerFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/PetDetailRecyclerFragment.java
@@ -132,10 +132,9 @@ public class PetDetailRecyclerFragment extends BaseMainFragment {
@Override
public String customTitle() {
- if (isAdded()) {
- return getString(R.string.pets);
- } else {
+ if (!isAdded()) {
return "";
}
+ return getString(R.string.pets);
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableFragment.java
index f527b195b..c2fce9256 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/StableFragment.java
@@ -88,10 +88,9 @@ public class StableFragment extends BaseMainFragment {
@Override
public String customTitle() {
- if (isAdded()) {
- return getString(R.string.sidebar_stable);
- } else {
+ if (!isAdded()) {
return "";
}
+ return getString(R.string.sidebar_stable);
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.java
index 051f31980..d98a42f8d 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/skills/SkillsFragment.java
@@ -201,6 +201,10 @@ public class SkillsFragment extends BaseMainFragment {
}
@Override
- public String customTitle() { return getString(R.string.sidebar_skills); }
-
+ public String customTitle() {
+ if (!isAdded()) {
+ return "";
+ }
+ return getString(R.string.sidebar_skills);
+ }
}
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 3989cb5d0..1a872fc8c 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
@@ -53,8 +53,6 @@ public class GroupInformationFragment extends BaseFragment {
@Nullable
private User user;
private QuestContent quest;
- private ValueBar bossHpBar;
- private ValueBar bossRageBar;
public GroupInformationFragment() {
@@ -90,9 +88,6 @@ public class GroupInformationFragment extends BaseFragment {
unbinder = ButterKnife.bind(this, view);
- bossHpBar = (ValueBar) view.findViewById(R.id.bossHpBar);
- bossRageBar = (ValueBar) view.findViewById(R.id.bossRageBar);
-
if (this.group == null) {
QrCodeManager qrCodeManager = new QrCodeManager(userRepository, this.getContext());
qrCodeManager.setUpView(qrLayout);
@@ -151,17 +146,6 @@ public class GroupInformationFragment extends BaseFragment {
return;
}
- boolean showHpBar = (quest.boss != null && quest.boss.hp > 0);
- bossHpBar.setVisibility(showHpBar ? View.VISIBLE : View.GONE);
- if (showHpBar) {
- bossHpBar.set(group.quest.getProgress().hp, quest.boss.hp);
- }
- boolean showRageBar = (quest.boss != null && quest.boss.rage_value > 0);
- bossRageBar.setVisibility(showRageBar ? View.VISIBLE : View.GONE);
- if (showRageBar) {
- bossHpBar.set(group.quest.getProgress().rage, quest.boss.rage_value);
- }
-
if (group.quest.members == null) {
viewBinding.setHideParticipantCard(true);
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GuildFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GuildFragment.java
index 0075f6692..4aba91e0c 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GuildFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GuildFragment.java
@@ -258,10 +258,9 @@ public class GuildFragment extends BaseMainFragment implements Action1 {
@Override
public String customTitle() {
- if (isAdded()) {
- return getString(R.string.guild);
- } else {
+ if (!isAdded()) {
return "";
}
+ return getString(R.string.guild);
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxFragment.java
index 4f3d8a190..9ce380d33 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxFragment.java
@@ -211,10 +211,9 @@ public class InboxFragment extends BaseMainFragment
@Override
public String customTitle() {
- if (isAdded()) {
- return getString(R.string.sidebar_inbox);
- } else {
+ if (!isAdded()) {
return "";
}
+ return getString(R.string.sidebar_inbox);
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java
index a305a218a..940704313 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java
@@ -120,10 +120,9 @@ public class PublicGuildsFragment extends BaseMainFragment implements SearchView
@Override
public String customTitle() {
- if (isAdded()) {
- return getString(R.string.public_guilds);
- } else {
+ if (!isAdded()) {
return "";
}
+ return getString(R.string.public_guilds);
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/TavernFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/TavernFragment.java
index b66c2cc73..a93712788 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/TavernFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/TavernFragment.java
@@ -159,10 +159,9 @@ public class TavernFragment extends BaseMainFragment {
@Override
public String customTitle() {
- if (isAdded()) {
- return getString(R.string.sidebar_tavern);
- } else {
+ if (!isAdded()) {
return "";
}
+ return getString(R.string.sidebar_tavern);
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeListFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeListFragment.java
index 7fd67a9f0..5c8e2cfb7 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeListFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeListFragment.java
@@ -130,6 +130,9 @@ public class ChallengeListFragment extends BaseMainFragment implements SwipeRefr
@Override
public String customTitle() {
+ if (!isAdded()) {
+ return "";
+ }
return getString(R.string.sidebar_challenges);
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.java
index a475155c5..989293b78 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengesOverviewFragment.java
@@ -126,6 +126,9 @@ public class ChallengesOverviewFragment extends BaseMainFragment {
@Override
public String customTitle() {
+ if (!isAdded()) {
+ return "";
+ }
return getString(R.string.challenges);
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyDetailFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyDetailFragment.java
index b518df3fc..d95387e1b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyDetailFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyDetailFragment.java
@@ -2,6 +2,7 @@ package com.habitrpg.android.habitica.ui.fragments.social.party;
import android.app.AlertDialog;
import android.os.Bundle;
+import android.os.Handler;
import android.support.annotation.Nullable;
import android.support.v4.widget.SwipeRefreshLayout;
import android.view.LayoutInflater;
@@ -9,7 +10,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
-import android.widget.ListView;
import android.widget.TextView;
import com.facebook.drawee.view.SimpleDraweeView;
@@ -32,11 +32,15 @@ import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils;
import com.habitrpg.android.habitica.ui.helpers.MarkdownParser;
import com.habitrpg.android.habitica.ui.views.social.QuestProgressView;
+import java.util.concurrent.TimeUnit;
+
import javax.inject.Inject;
import javax.inject.Named;
import butterknife.BindView;
import butterknife.OnClick;
+import rx.Observable;
+import rx.android.schedulers.AndroidSchedulers;
public class PartyDetailFragment extends BaseFragment {
@@ -146,9 +150,10 @@ public class PartyDetailFragment extends BaseFragment {
newQuestButton.setVisibility(View.GONE);
questDetailButton.setVisibility(View.VISIBLE);
questImageWrapper.setVisibility(View.VISIBLE);
- getActivity().runOnUiThread(() -> inventoryRepository.getQuestContent(quest.getKey())
+ Handler mainHandler = new Handler(getContext().getMainLooper());
+ mainHandler.postDelayed(() -> inventoryRepository.getQuestContent(quest.getKey())
.first()
- .subscribe(this::updateQuestContent, RxErrorHandler.handleEmptyError()));
+ .subscribe(PartyDetailFragment.this::updateQuestContent, RxErrorHandler.handleEmptyError()), 500);
} else {
newQuestButton.setVisibility(View.VISIBLE);
questDetailButton.setVisibility(View.GONE);
@@ -186,9 +191,10 @@ public class PartyDetailFragment extends BaseFragment {
}
private void updateQuestContent(QuestContent questContent) {
- if (questTitleView != null) {
- questTitleView.setText(questContent.getText());
+ if (questTitleView == null) {
+ return;
}
+ questTitleView.setText(questContent.getText());
DataBindingUtils.loadImage(questScrollImageView, "inventory_quest_scroll_"+questContent.getKey());
DataBindingUtils.loadImage(questImageView, "quest_"+questContent.getKey());
if (isQuestActive()) {
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 e6a7016b0..a0c77b6fa 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
@@ -348,11 +348,10 @@ public class PartyFragment extends BaseMainFragment {
@Override
public String customTitle() {
- if (isAdded()) {
- return getString(R.string.sidebar_party);
- } else {
+ if (!isAdded()) {
return "";
}
+ return getString(R.string.sidebar_party);
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyMemberListFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyMemberListFragment.java
index 785f07f93..c89dfdab4 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyMemberListFragment.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyMemberListFragment.java
@@ -68,7 +68,13 @@ public class PartyMemberListFragment extends BaseFragment {
}
private void refreshMembers() {
- socialRepository.retrieveGroupMembers(partyId, true).subscribe(users -> refreshLayout.setRefreshing(false), RxErrorHandler.handleEmptyError());
+ socialRepository.retrieveGroupMembers(partyId, true).subscribe(users -> setRefreshing(false), RxErrorHandler.handleEmptyError());
+ }
+
+ private void setRefreshing(boolean isRefreshing) {
+ if (refreshLayout != null) {
+ refreshLayout.setRefreshing(isRefreshing);
+ }
}
public void setPartyId(String id) {