mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-04-14 19:56:32 +00:00
fix guild display
This commit is contained in:
parent
59db8329cd
commit
2eacc25cec
62 changed files with 284 additions and 286 deletions
|
|
@ -79,7 +79,7 @@ dependencies {
|
|||
compile 'com.github.kenglxn.QRGen:android:2.2.0'
|
||||
|
||||
// Emojis
|
||||
compile 'com.github.viirus:emoji-lib:0.0.3.4'
|
||||
compile 'com.github.viirus:emoji-lib:0.0.4'
|
||||
|
||||
// Markdown
|
||||
compile 'com.commonsware.cwac:anddown:0.3.0'
|
||||
|
|
|
|||
|
|
@ -18,7 +18,9 @@
|
|||
fab:menu_animationDelayPerItem="50"
|
||||
fab:menu_icon="@drawable/fab_add"
|
||||
fab:menu_buttonSpacing="2dp"
|
||||
fab:menu_labels_margin="4dp">
|
||||
fab:menu_labels_margin="4dp"
|
||||
fab:menu_fab_show_animation="@anim/fab_slide_in"
|
||||
fab:menu_fab_hide_animation="@anim/fab_slide_out">
|
||||
|
||||
<com.github.clans.fab.FloatingActionButton
|
||||
android:id="@+id/fab.new.habit"
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ import com.facebook.FacebookSdk;
|
|||
import com.facebook.drawee.backends.pipeline.Fresco;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.ApiClient;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.proxy.ifce.CrashlyticsProxy;
|
||||
import com.habitrpg.android.habitica.ui.activities.IntroActivity;
|
||||
import com.habitrpg.android.habitica.ui.activities.LoginActivity;
|
||||
|
|
@ -171,7 +171,7 @@ public abstract class HabiticaBaseApplication extends MultiDexApplication {
|
|||
ApiClient apiClient = this.lazyApiHelper.get();
|
||||
|
||||
apiClient.getContent()
|
||||
.subscribe(contentResult -> { }, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(contentResult -> { }, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import android.os.Build;
|
|||
import android.support.v4.content.ContextCompat;
|
||||
|
||||
import com.habitrpg.android.habitica.data.TaskRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.TaskAlarmManager;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
import com.habitrpg.android.habitica.modules.AppModule;
|
||||
|
|
@ -58,7 +58,7 @@ public class NotificationPublisher extends BroadcastReceiver {
|
|||
int id = intent.getIntExtra(NOTIFICATION_ID, 0);
|
||||
notificationManager.notify(id, notification);
|
||||
}
|
||||
}, ReactiveErrorHandler.handleEmptyError());
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
|
||||
} else {
|
||||
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ public interface SocialRepository extends BaseRepository {
|
|||
|
||||
Observable<List<Group>> retrieveGroups(String type);
|
||||
Observable<RealmResults<Group>> getGroups(String type);
|
||||
Observable<RealmResults<Group>> getPublicGuilds();
|
||||
|
||||
Observable<PostChatMessageResult> postPrivateMessage(HashMap<String, String> messageObject);
|
||||
Observable<PostChatMessageResult> postPrivateMessage(String recipientId, String message);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.habitrpg.android.habitica.data.implementation;
|
|||
import com.habitrpg.android.habitica.data.ApiClient;
|
||||
import com.habitrpg.android.habitica.data.SocialRepository;
|
||||
import com.habitrpg.android.habitica.data.local.SocialLocalRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.responses.PostChatMessageResult;
|
||||
import com.habitrpg.android.habitica.models.social.Challenge;
|
||||
import com.habitrpg.android.habitica.models.social.ChatMessage;
|
||||
|
|
@ -45,7 +45,7 @@ public class SocialRepositoryImpl extends BaseRepositoryImpl<SocialLocalReposito
|
|||
|
||||
@Override
|
||||
public void markMessagesSeen(String seenGroupId) {
|
||||
apiClient.seenMessages(seenGroupId).subscribe(aVoid -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
apiClient.seenMessages(seenGroupId).subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -77,12 +77,13 @@ public class SocialRepositoryImpl extends BaseRepositoryImpl<SocialLocalReposito
|
|||
|
||||
@Override
|
||||
public Observable<Group> retrieveGroup(String id) {
|
||||
return apiClient.getGroup(id);
|
||||
return apiClient.getGroup(id)
|
||||
.doOnNext(localRepository::saveGroup);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<Group> getGroup(String id) {
|
||||
return retrieveGroup(id);
|
||||
return localRepository.getGroup(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -102,7 +103,8 @@ public class SocialRepositoryImpl extends BaseRepositoryImpl<SocialLocalReposito
|
|||
|
||||
@Override
|
||||
public Observable<List<Group>> retrieveGroups(String type) {
|
||||
return apiClient.listGroups(type);
|
||||
return apiClient.listGroups(type)
|
||||
.doOnNext(localRepository::saveGroups);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -110,6 +112,11 @@ public class SocialRepositoryImpl extends BaseRepositoryImpl<SocialLocalReposito
|
|||
return localRepository.getGroups(type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<RealmResults<Group>> getPublicGuilds() {
|
||||
return localRepository.getPublicGuilds();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<PostChatMessageResult> postPrivateMessage(HashMap<String, String> messageObject) {
|
||||
return apiClient.postPrivateMessage(messageObject);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import com.habitrpg.android.habitica.data.ApiClient;
|
|||
import com.habitrpg.android.habitica.data.TaskRepository;
|
||||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.data.local.UserLocalRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.Skill;
|
||||
import com.habitrpg.android.habitica.models.TutorialStep;
|
||||
import com.habitrpg.android.habitica.models.inventory.Customization;
|
||||
|
|
@ -97,7 +97,7 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserLocalRepository>
|
|||
return updateData;
|
||||
})
|
||||
.flatMap(updateData -> updateUser(user, updateData))
|
||||
.subscribe(tutorialSteps -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(tutorialSteps -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -11,4 +11,11 @@ import rx.Observable;
|
|||
|
||||
public interface SocialLocalRepository extends BaseLocalRepository {
|
||||
Observable<RealmResults<Group>> getGroups(String type);
|
||||
Observable<RealmResults<Group>> getPublicGuilds();
|
||||
|
||||
Observable<Group> getGroup(String id);
|
||||
|
||||
void saveGroup(Group group);
|
||||
|
||||
void saveGroups(List<Group> groups);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ public class RealmChallengeLocalRepository extends RealmBaseLocalRepository impl
|
|||
|
||||
@Override
|
||||
public void saveChallenges(User user, List<Challenge> challenges) {
|
||||
realm.executeTransactionAsync(realm1 -> realm1.copyToRealmOrUpdate(challenges));
|
||||
realm.executeTransactionAsync(realm1 -> realm1.insertOrUpdate(challenges));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ class RealmContentLocalRepository extends RealmBaseLocalRepository implements Co
|
|||
realm1.insertOrUpdate(result.food);
|
||||
realm1.insertOrUpdate(result.hatchingPotions);
|
||||
|
||||
|
||||
realm1.insertOrUpdate(result.pets);
|
||||
realm1.insertOrUpdate(result.mounts);
|
||||
|
||||
|
|
|
|||
|
|
@ -2,9 +2,13 @@ package com.habitrpg.android.habitica.data.local.implementation;
|
|||
|
||||
import com.habitrpg.android.habitica.data.local.SocialLocalRepository;
|
||||
import com.habitrpg.android.habitica.models.social.Group;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.realm.Realm;
|
||||
import io.realm.RealmResults;
|
||||
import io.realm.Sort;
|
||||
import rx.Observable;
|
||||
|
||||
|
||||
|
|
@ -22,4 +26,34 @@ public class RealmSocialLocalRepository extends RealmBaseLocalRepository impleme
|
|||
.asObservable()
|
||||
.filter(RealmResults::isLoaded);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<RealmResults<Group>> getPublicGuilds() {
|
||||
return realm.where(Group.class)
|
||||
.equalTo("type", "guild")
|
||||
.equalTo("privacy", "public")
|
||||
.findAllSorted("memberCount", Sort.DESCENDING)
|
||||
.asObservable()
|
||||
.filter(RealmResults::isLoaded);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<Group> getGroup(String id) {
|
||||
return realm.where(Group.class)
|
||||
.equalTo("id", id)
|
||||
.findAllAsync()
|
||||
.asObservable()
|
||||
.filter(group -> group.isLoaded() && group.isValid() && !group.isEmpty())
|
||||
.map(groups -> groups.first());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveGroup(Group group) {
|
||||
realm.executeTransactionAsync(realm1 -> realm1.insertOrUpdate(group));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveGroups(List<Group> groups) {
|
||||
realm.executeTransactionAsync(realm1 -> realm1.insertOrUpdate(groups));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -118,6 +118,6 @@ public class RealmTaskLocalRepository extends RealmBaseLocalRepository implement
|
|||
|
||||
@Override
|
||||
public void saveReminder(RemindersItem remindersItem) {
|
||||
realm.executeTransaction(realm1 -> realm1.copyToRealm(remindersItem));
|
||||
realm.executeTransaction(realm1 -> realm1.insertOrUpdate(remindersItem));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,9 +22,12 @@ public class RealmUserLocalRepository extends RealmBaseLocalRepository implement
|
|||
|
||||
@Override
|
||||
public Observable<User> getUser(String userID) {
|
||||
return realm.where(User.class).equalTo("id", userID).findFirstAsync().asObservable()
|
||||
.filter(realmObject -> realmObject.isLoaded() && realmObject.isValid())
|
||||
.cast(User.class);
|
||||
return realm.where(User.class)
|
||||
.equalTo("id", userID)
|
||||
.findAllAsync()
|
||||
.asObservable()
|
||||
.filter(realmObject -> realmObject.isLoaded() && realmObject.isValid() && !realm.isEmpty())
|
||||
.map(users -> users.first());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ public class PopupNotificationsManager {
|
|||
if (apiClient != null) {
|
||||
// @TODO: This should be handled somewhere else? MAybe we notifiy via event
|
||||
apiClient.readNotificaiton(notification.getId())
|
||||
.subscribe(next -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(next -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
dialog.hide();
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ public class QrCodeManager {
|
|||
avatarView.configureView(false, false, false);
|
||||
this.qrCodeWrapper = (FrameLayout) qrLayout.findViewById(R.id.qrCodeWrapper);
|
||||
|
||||
userRepository.getUser(userId).subscribe(avatarView::setUser, ReactiveErrorHandler.handleEmptyError());
|
||||
userRepository.getUser(userId).subscribe(avatarView::setUser, RxErrorHandler.handleEmptyError());
|
||||
|
||||
this.displayQrCode();
|
||||
this.setDownloadQr();
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import android.util.Log;
|
|||
import rx.android.BuildConfig;
|
||||
import rx.functions.Action1;
|
||||
|
||||
public class ReactiveErrorHandler {
|
||||
public class RxErrorHandler {
|
||||
|
||||
public static Action1<Throwable> handleEmptyError() {
|
||||
//Can't be turned into a lambda, because it then doesn't work for some reason.
|
||||
|
|
@ -12,8 +12,6 @@ import com.habitrpg.android.habitica.HabiticaBaseApplication;
|
|||
import com.habitrpg.android.habitica.NotificationPublisher;
|
||||
import com.habitrpg.android.habitica.data.TaskRepository;
|
||||
import com.habitrpg.android.habitica.events.ReminderDeleteEvent;
|
||||
import com.habitrpg.android.habitica.events.TaskDeleteEvent;
|
||||
import com.habitrpg.android.habitica.events.TaskSaveEvent;
|
||||
import com.habitrpg.android.habitica.models.tasks.RemindersItem;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
import com.habitrpg.android.habitica.modules.AppModule;
|
||||
|
|
@ -146,7 +144,7 @@ public class TaskAlarmManager {
|
|||
public void addAlarmForTaskId(String taskId) {
|
||||
taskRepository.getTask(taskId)
|
||||
.filter(task -> Task.TYPE_DAILY.equals(task.type))
|
||||
.subscribe(this::setAlarmsForTask, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(this::setAlarmsForTask, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
public void scheduleAllSavedAlarms() {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import android.content.SharedPreferences;
|
|||
import com.google.firebase.iid.FirebaseInstanceId;
|
||||
import com.google.firebase.messaging.RemoteMessage;
|
||||
import com.habitrpg.android.habitica.data.ApiClient;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.PushDevice;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
|
||||
|
|
@ -75,13 +75,13 @@ public class PushNotificationManager {
|
|||
pushDeviceData.put("type", "android");
|
||||
apiClient.addPushDevice(pushDeviceData)
|
||||
|
||||
.subscribe(aVoid -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
public void removePushDeviceUsingStoredToken() {
|
||||
apiClient.deletePushDevice(this.refreshedToken)
|
||||
|
||||
.subscribe(aVoid -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
private Boolean userHasPushDevice() {
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ import com.habitrpg.android.habitica.events.TaskUpdatedEvent;
|
|||
import com.habitrpg.android.habitica.events.commands.BuyRewardCommand;
|
||||
import com.habitrpg.android.habitica.events.commands.ChecklistCheckedCommand;
|
||||
import com.habitrpg.android.habitica.events.commands.TaskCheckedCommand;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.interactors.BuyRewardUseCase;
|
||||
import com.habitrpg.android.habitica.interactors.ChecklistCheckUseCase;
|
||||
import com.habitrpg.android.habitica.interactors.DailyCheckUseCase;
|
||||
|
|
@ -148,10 +148,14 @@ public class ChallengeDetailActivity extends BaseActivity {
|
|||
|
||||
ObservableList<Task> fullList = new ObservableArrayList<>();
|
||||
|
||||
userRepository.getUser(userId).first().subscribe(user -> ChallengeDetailActivity.this.user = user, ReactiveErrorHandler.handleEmptyError());
|
||||
userRepository.getUser(userId).first().subscribe(user -> {
|
||||
ChallengeDetailActivity.this.user = user;
|
||||
createTaskRecyclerFragment(fullList);
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
|
||||
if (challengeId != null) {
|
||||
challengeRepository.getChallengeTasks(challengeId)
|
||||
.first()
|
||||
.subscribe(taskList -> {
|
||||
ArrayList<Task> resultList = new ArrayList<>();
|
||||
|
||||
|
|
@ -228,6 +232,16 @@ public class ChallengeDetailActivity extends BaseActivity {
|
|||
}, Throwable::printStackTrace);
|
||||
}
|
||||
|
||||
if (challengeId != null) {
|
||||
challengeRepository.getChallenge(challengeId).subscribe(challenge -> {
|
||||
ChallengeDetailActivity.this.challenge = challenge;
|
||||
ChallengeViewHolder challengeViewHolder = new ChallengeViewHolder(findViewById(R.id.challenge_header));
|
||||
challengeViewHolder.bind(challenge);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void createTaskRecyclerFragment(ObservableList<Task> fullList) {
|
||||
ChallengeTasksRecyclerViewFragment fragment = ChallengeTasksRecyclerViewFragment.newInstance(user, fullList);
|
||||
|
||||
if (getSupportFragmentManager().getFragments() == null) {
|
||||
|
|
@ -237,14 +251,6 @@ public class ChallengeDetailActivity extends BaseActivity {
|
|||
transaction.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out, android.R.anim.fade_in, android.R.anim.fade_out);
|
||||
transaction.replace(R.id.fragment_container, fragment).addToBackStack(null).commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
if (challengeId != null) {
|
||||
challengeRepository.getChallenge(challengeId).subscribe(challenge -> {
|
||||
ChallengeDetailActivity.this.challenge = challenge;
|
||||
ChallengeViewHolder challengeViewHolder = new ChallengeViewHolder(findViewById(R.id.challenge_header));
|
||||
challengeViewHolder.bind(challenge);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -426,6 +432,6 @@ public class ChallengeDetailActivity extends BaseActivity {
|
|||
}
|
||||
|
||||
displayItemDropUseCase.observable(new DisplayItemDropUseCase.RequestValues(data, this, floatingMenuWrapper))
|
||||
.subscribe(aVoid -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@ import android.widget.Spinner;
|
|||
import android.widget.TextView;
|
||||
|
||||
import com.github.underscore.$;
|
||||
import com.habitrpg.android.habitica.HabiticaApplication;
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.ChallengeRepository;
|
||||
|
|
@ -38,7 +37,7 @@ import com.habitrpg.android.habitica.data.SocialRepository;
|
|||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.events.TaskSaveEvent;
|
||||
import com.habitrpg.android.habitica.events.TaskTappedEvent;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.social.Challenge;
|
||||
import com.habitrpg.android.habitica.models.social.Group;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
|
|
@ -52,7 +51,6 @@ import org.greenrobot.eventbus.Subscribe;
|
|||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
|
@ -136,7 +134,7 @@ public class CreateChallengeActivity extends BaseActivity {
|
|||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
|
||||
super.onCreate(savedInstanceState, persistentState);
|
||||
userRepository.getUser(userId).subscribe(user1 -> this.user = user1, ReactiveErrorHandler.handleEmptyError());
|
||||
userRepository.getUser(userId).subscribe(user1 -> this.user = user1, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -358,7 +356,7 @@ public class CreateChallengeActivity extends BaseActivity {
|
|||
locationAdapter.add(tavern);
|
||||
|
||||
groups.forEach(group -> locationAdapter.add(group));
|
||||
}, ReactiveErrorHandler.handleEmptyError());
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
|
||||
challengeLocationSpinner.setAdapter(locationAdapter);
|
||||
challengeLocationSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ import com.habitrpg.android.habitica.components.AppComponent;
|
|||
import com.habitrpg.android.habitica.data.ApiClient;
|
||||
import com.habitrpg.android.habitica.data.InventoryRepository;
|
||||
import com.habitrpg.android.habitica.data.SocialRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.UserStatComputer;
|
||||
import com.habitrpg.android.habitica.models.Achievement;
|
||||
import com.habitrpg.android.habitica.models.AchievementGroup;
|
||||
|
|
@ -344,10 +344,10 @@ public class FullProfileActivity extends BaseActivity {
|
|||
|
||||
addAttributeRow(getString(R.string.profile_level), byLevelStat, byLevelStat, byLevelStat, byLevelStat, true, false);
|
||||
|
||||
loadItemDataByOutfit(user.getItems().getGear().getEquipped()).subscribe(gear -> this.gotGear(gear, user), ReactiveErrorHandler.handleEmptyError());
|
||||
loadItemDataByOutfit(user.getItems().getGear().getEquipped()).subscribe(gear -> this.gotGear(gear, user), RxErrorHandler.handleEmptyError());
|
||||
|
||||
if (user.getPreferences().getCostume()) {
|
||||
loadItemDataByOutfit(user.getItems().getGear().getCostume()).subscribe(this::gotCostume, ReactiveErrorHandler.handleEmptyError());
|
||||
loadItemDataByOutfit(user.getItems().getGear().getCostume()).subscribe(this::gotCostume, RxErrorHandler.handleEmptyError());
|
||||
} else {
|
||||
costumeCard.setVisibility(View.GONE);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import com.habitrpg.android.habitica.HabiticaBaseApplication;
|
|||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.ApiClient;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.ui.fragments.setup.IntroFragment;
|
||||
import com.viewpagerindicator.IconPageIndicator;
|
||||
import com.viewpagerindicator.IconPagerAdapter;
|
||||
|
|
@ -58,7 +58,7 @@ public class IntroActivity extends BaseActivity implements View.OnClickListener,
|
|||
this.finishButton.setOnClickListener(this);
|
||||
|
||||
apiClient.getContent()
|
||||
.subscribe(contentResult -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(contentResult -> {}, RxErrorHandler.handleEmptyError());
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
Window window = getWindow();
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ import com.habitrpg.android.habitica.events.commands.OpenMenuItemCommand;
|
|||
import com.habitrpg.android.habitica.events.commands.TaskCheckedCommand;
|
||||
import com.habitrpg.android.habitica.helpers.AmplitudeManager;
|
||||
import com.habitrpg.android.habitica.helpers.LanguageHelper;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.SoundManager;
|
||||
import com.habitrpg.android.habitica.helpers.TaskAlarmManager;
|
||||
import com.habitrpg.android.habitica.helpers.notifications.PushNotificationManager;
|
||||
|
|
@ -264,7 +264,7 @@ public class MainActivity extends BaseActivity implements TutorialView.OnTutoria
|
|||
.subscribe(newUser -> {
|
||||
MainActivity.this.user = newUser;
|
||||
MainActivity.this.setUserData(true);
|
||||
}, ReactiveErrorHandler.handleEmptyError());
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
|
||||
EventBus.getDefault().register(this);
|
||||
}
|
||||
|
|
@ -293,7 +293,7 @@ public class MainActivity extends BaseActivity implements TutorialView.OnTutoria
|
|||
this.checkMaintenance();
|
||||
}
|
||||
|
||||
inventoryRepository.retrieveContent().subscribe(contentResult -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
inventoryRepository.retrieveContent().subscribe(contentResult -> {}, RxErrorHandler.handleEmptyError());
|
||||
|
||||
if (this.sharedPreferences.getLong("lastReminderSchedule", 0) < new Date().getTime() - 86400000) {
|
||||
try {
|
||||
|
|
@ -750,11 +750,11 @@ public class MainActivity extends BaseActivity implements TutorialView.OnTutoria
|
|||
if (user != null) {
|
||||
notifyUserUseCase.observable(new NotifyUserUseCase.RequestValues(this, floatingMenuWrapper,
|
||||
user, data.experienceDelta, data.healthDelta, data.goldDelta, data.manaDelta, data.hasLeveledUp))
|
||||
.subscribe(aVoid -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
displayItemDropUseCase.observable(new DisplayItemDropUseCase.RequestValues(data, this, floatingMenuWrapper))
|
||||
.subscribe(aVoid -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -808,7 +808,7 @@ public class MainActivity extends BaseActivity implements TutorialView.OnTutoria
|
|||
protected void retrieveUser() {
|
||||
if (this.userRepository != null) {
|
||||
this.userRepository.retrieveUser(true)
|
||||
.subscribe(user1 -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(user1 -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import com.habitrpg.android.habitica.R;
|
|||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.SocialRepository;
|
||||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.modules.AppModule;
|
||||
import com.habitrpg.android.habitica.prefs.scanner.IntentIntegrator;
|
||||
|
|
@ -164,7 +164,7 @@ public class PartyInviteActivity extends BaseActivity {
|
|||
}
|
||||
userIdToInvite = uri.getPathSegments().get(2);
|
||||
|
||||
userRepository.getUser(userId).subscribe(this::handleUserRecieved, ReactiveErrorHandler.handleEmptyError());
|
||||
userRepository.getUser(userId).subscribe(this::handleUserRecieved, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -184,6 +184,6 @@ public class PartyInviteActivity extends BaseActivity {
|
|||
inviteData.put("uuids", invites);
|
||||
|
||||
this.socialRepository.inviteToGroup(user.getParty().getId(), inviteData)
|
||||
.subscribe(aVoid -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ import com.habitrpg.android.habitica.components.AppComponent;
|
|||
import com.habitrpg.android.habitica.data.TagRepository;
|
||||
import com.habitrpg.android.habitica.data.TaskRepository;
|
||||
import com.habitrpg.android.habitica.helpers.FirstDayOfTheWeekHelper;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RemindersManager;
|
||||
import com.habitrpg.android.habitica.helpers.TaskFilterHelper;
|
||||
import com.habitrpg.android.habitica.models.Tag;
|
||||
|
|
@ -282,7 +282,7 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
|
|||
finish();
|
||||
dismissKeyboard();
|
||||
|
||||
taskRepository.deleteTask(taskId).subscribe(aVoid -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
taskRepository.deleteTask(taskId).subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}).setNegativeButton(getString(R.string.no), (dialog, which) -> dialog.dismiss()).show());
|
||||
|
||||
ArrayAdapter<CharSequence> difficultyAdapter = ArrayAdapter.createFromResource(this,
|
||||
|
|
@ -364,7 +364,7 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
|
|||
}
|
||||
|
||||
setTitle(task);
|
||||
}, ReactiveErrorHandler.handleEmptyError());
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
|
||||
btnDelete.setEnabled(true);
|
||||
} else {
|
||||
|
|
@ -979,7 +979,7 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
|
|||
observable = taskRepository.updateTask(task);
|
||||
}
|
||||
|
||||
observable.subscribe(task1 -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
observable.subscribe(task1 -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import android.widget.TextView;
|
|||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.data.TaskRepository;
|
||||
import com.habitrpg.android.habitica.databinding.SkillTaskItemCardBinding;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
import com.habitrpg.android.habitica.ui.activities.TaskClickActivity;
|
||||
|
||||
|
|
@ -100,7 +100,7 @@ public class SkillTasksRecyclerViewAdapter extends RecyclerView.Adapter<SkillTas
|
|||
} else {
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
}, ReactiveErrorHandler.handleEmptyError());
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
} else {
|
||||
if (parentAdapter != null) {
|
||||
parentAdapter.notifyDataSetChanged();
|
||||
|
|
|
|||
|
|
@ -95,18 +95,6 @@ public class ChallengesListViewAdapter extends RealmRecyclerViewAdapter<Challeng
|
|||
}
|
||||
}
|
||||
|
||||
public static String getLabelByTypeAndCount(Context context, String type, int count) {
|
||||
if (Challenge.TASK_ORDER_DAILYS.equals(type)) {
|
||||
return context.getString(count == 1 ? R.string.daily : R.string.dailies);
|
||||
} else if (Challenge.TASK_ORDER_HABITS.equals(type)) {
|
||||
return context.getString(count == 1 ? R.string.habit : R.string.habits);
|
||||
} else if (Challenge.TASK_ORDER_REWARDS.equals(type)) {
|
||||
return context.getString(count == 1 ? R.string.reward : R.string.rewards);
|
||||
} else {
|
||||
return context.getString(count == 1 ? R.string.todo : R.string.todos);
|
||||
}
|
||||
}
|
||||
|
||||
public void bind(Challenge challenge) {
|
||||
this.challenge = challenge;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.habitrpg.android.habitica.ui.adapter.social;
|
||||
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
|
@ -23,18 +24,18 @@ import java.util.Locale;
|
|||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import io.realm.Case;
|
||||
import io.realm.OrderedRealmCollection;
|
||||
import io.realm.RealmRecyclerViewAdapter;
|
||||
import io.realm.RealmResults;
|
||||
|
||||
public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter<PublicGuildsRecyclerViewAdapter.GuildViewHolder> implements Filterable {
|
||||
public class PublicGuildsRecyclerViewAdapter extends RealmRecyclerViewAdapter<Group, PublicGuildsRecyclerViewAdapter.GuildViewHolder> implements Filterable {
|
||||
|
||||
public ApiClient apiClient;
|
||||
private List<Group> publicGuildList;
|
||||
private List<Group> fullPublicGuildList;
|
||||
private List<String> memberGuildIDs;
|
||||
|
||||
public void setPublicGuildList(List<Group> publicGuildList) {
|
||||
this.publicGuildList = publicGuildList;
|
||||
this.fullPublicGuildList = new ArrayList<>(publicGuildList);
|
||||
this.notifyDataSetChanged();
|
||||
public PublicGuildsRecyclerViewAdapter(@Nullable OrderedRealmCollection<Group> data, boolean autoUpdate) {
|
||||
super(data, autoUpdate);
|
||||
}
|
||||
|
||||
public void setMemberGuildIDs(List<String> memberGuildIDs) {
|
||||
|
|
@ -49,7 +50,7 @@ public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter<Public
|
|||
guildViewHolder.itemView.setOnClickListener(v -> {
|
||||
Group guild = (Group) v.getTag();
|
||||
GuildFragment guildFragment = new GuildFragment();
|
||||
guildFragment.setGuild(guild);
|
||||
guildFragment.setGuildId(guild.id);
|
||||
guildFragment.isMember = isInGroup(guild);
|
||||
DisplayFragmentEvent event = new DisplayFragmentEvent();
|
||||
event.fragment = guildFragment;
|
||||
|
|
@ -60,19 +61,17 @@ public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter<Public
|
|||
boolean isMember = this.memberGuildIDs != null && this.memberGuildIDs.contains(guild.id);
|
||||
if (isMember) {
|
||||
PublicGuildsRecyclerViewAdapter.this.apiClient.leaveGroup(guild.id)
|
||||
|
||||
.subscribe(aVoid -> {
|
||||
memberGuildIDs.remove(guild.id);
|
||||
int indexOfGroup = publicGuildList.indexOf(guild);
|
||||
int indexOfGroup = getData().indexOf(guild);
|
||||
notifyItemChanged(indexOfGroup);
|
||||
}, throwable -> {
|
||||
});
|
||||
} else {
|
||||
PublicGuildsRecyclerViewAdapter.this.apiClient.joinGroup(guild.id)
|
||||
|
||||
.subscribe(group -> {
|
||||
memberGuildIDs.add(group.id);
|
||||
int indexOfGroup = publicGuildList.indexOf(group);
|
||||
int indexOfGroup = getData().indexOf(group);
|
||||
notifyItemChanged(indexOfGroup);
|
||||
}, throwable -> {
|
||||
});
|
||||
|
|
@ -84,18 +83,13 @@ public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter<Public
|
|||
|
||||
@Override
|
||||
public void onBindViewHolder(GuildViewHolder holder, int position) {
|
||||
Group guild = publicGuildList.get(position);
|
||||
Group guild = getData().get(position);
|
||||
boolean isInGroup = isInGroup(guild);
|
||||
holder.bind(guild, isInGroup);
|
||||
holder.itemView.setTag(guild);
|
||||
holder.joinLeaveButton.setTag(guild);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return this.publicGuildList == null ? 0 : this.publicGuildList.size();
|
||||
}
|
||||
|
||||
private boolean isInGroup(Group guild) {
|
||||
return this.memberGuildIDs != null && this.memberGuildIDs.contains(guild.id);
|
||||
}
|
||||
|
|
@ -105,38 +99,22 @@ public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter<Public
|
|||
return new Filter() {
|
||||
@Override
|
||||
protected FilterResults performFiltering(CharSequence constraint) {
|
||||
List<Group> filteredGuilds;
|
||||
|
||||
if (constraint.length() == 0) {
|
||||
filteredGuilds = fullPublicGuildList;
|
||||
} else {
|
||||
filteredGuilds = getFilteredResults(constraint.toString().toLowerCase(Locale.US));
|
||||
}
|
||||
|
||||
FilterResults results = new FilterResults();
|
||||
results.values = filteredGuilds;
|
||||
return results;
|
||||
results.values = constraint;
|
||||
return new FilterResults();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void publishResults(CharSequence constraint, FilterResults results) {
|
||||
publicGuildList = (List<Group>) results.values;
|
||||
PublicGuildsRecyclerViewAdapter.this.notifyDataSetChanged();
|
||||
if (getData() != null && constraint.length() > 0) {
|
||||
updateData(getData().where()
|
||||
.contains("name", String.valueOf(constraint), Case.INSENSITIVE)
|
||||
.findAll());
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
protected List<Group> getFilteredResults(String query) {
|
||||
List<Group> filteredGuilds = new ArrayList<>();
|
||||
|
||||
for (Group guild : fullPublicGuildList) {
|
||||
if (guild.name.toLowerCase().contains(query)) {
|
||||
filteredGuilds.add(guild);
|
||||
}
|
||||
}
|
||||
|
||||
return filteredGuilds;
|
||||
}
|
||||
|
||||
static class GuildViewHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
|
|
@ -152,7 +130,7 @@ public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter<Public
|
|||
@BindView(R.id.joinleaveButton)
|
||||
Button joinLeaveButton;
|
||||
|
||||
public GuildViewHolder(View itemView) {
|
||||
GuildViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
ButterKnife.bind(this, itemView);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import android.view.ViewGroup;
|
|||
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.data.InventoryRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.inventory.Equipment;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
|
|
@ -76,7 +76,7 @@ public class RewardsRecyclerViewAdapter extends RealmBaseTasksRecyclerViewAdapte
|
|||
}
|
||||
subscriber.onNext(buyableItems);
|
||||
subscriber.onCompleted();
|
||||
}, ReactiveErrorHandler.handleEmptyError()));
|
||||
}, RxErrorHandler.handleEmptyError()));
|
||||
})
|
||||
.subscribe(items -> {
|
||||
notifyDataSetChanged();
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import com.habitrpg.android.habitica.components.AppComponent;
|
|||
import com.habitrpg.android.habitica.data.TutorialRepository;
|
||||
import com.habitrpg.android.habitica.events.DisplayTutorialEvent;
|
||||
import com.habitrpg.android.habitica.helpers.AmplitudeManager;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.squareup.leakcanary.RefWatcher;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
|
@ -61,7 +61,7 @@ public abstract class BaseFragment extends DialogFragment {
|
|||
event.canBeDeferred = tutorialCanBeDeferred;
|
||||
EventBus.getDefault().post(event);
|
||||
}
|
||||
}, ReactiveErrorHandler.handleEmptyError());
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
String displayedClassName = this.getDisplayedClassName();
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import android.view.ViewGroup;
|
|||
|
||||
import com.habitrpg.android.habitica.data.ApiClient;
|
||||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.SoundManager;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.ui.activities.MainActivity;
|
||||
|
|
@ -86,7 +86,7 @@ public abstract class BaseMainFragment extends BaseFragment {
|
|||
if (savedInstanceState != null && savedInstanceState.containsKey("userId")) {
|
||||
String userId = savedInstanceState.getString("userId");
|
||||
if (userId != null) {
|
||||
userRepository.getUser(userId).subscribe(habitRPGUser -> user = habitRPGUser, ReactiveErrorHandler.handleEmptyError());
|
||||
userRepository.getUser(userId).subscribe(habitRPGUser -> user = habitRPGUser, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import android.view.ViewGroup;
|
|||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.FAQRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.ui.adapter.FAQOverviewRecyclerAdapter;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
|
||||
import com.habitrpg.android.habitica.ui.menu.DividerItemDecoration;
|
||||
|
|
@ -37,7 +37,7 @@ public class FAQOverviewFragment extends BaseMainFragment {
|
|||
|
||||
unbinder = ButterKnife.bind(this, view);
|
||||
adapter = new FAQOverviewRecyclerAdapter();
|
||||
adapter.getResetWalkthroughEvents().subscribe(aVoid -> this.userRepository.resetTutorial(user), ReactiveErrorHandler.handleEmptyError());
|
||||
adapter.getResetWalkthroughEvents().subscribe(aVoid -> this.userRepository.resetTutorial(user), RxErrorHandler.handleEmptyError());
|
||||
adapter.activity = activity;
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(activity));
|
||||
recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST));
|
||||
|
|
@ -62,7 +62,7 @@ public class FAQOverviewFragment extends BaseMainFragment {
|
|||
if (user == null || adapter == null) {
|
||||
return;
|
||||
}
|
||||
faqRepository.getArticles().subscribe(adapter::setArticles, ReactiveErrorHandler.handleEmptyError());
|
||||
faqRepository.getArticles().subscribe(adapter::setArticles, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import android.view.ViewGroup;
|
|||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.CustomizationRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.inventory.Customization;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.models.user.Preferences;
|
||||
|
|
@ -58,13 +58,13 @@ public class AvatarCustomizationFragment extends BaseMainFragment {
|
|||
}
|
||||
return userRepository.updateUser(user, updatePath, customization.getIdentifier());
|
||||
})
|
||||
.subscribe(user1 -> {}, ReactiveErrorHandler.handleEmptyError()));
|
||||
.subscribe(user1 -> {}, RxErrorHandler.handleEmptyError()));
|
||||
compositeSubscription.add(adapter.getUnlockCustomizationEvents()
|
||||
.flatMap(customization -> userRepository.unlockPath(user, customization))
|
||||
.subscribe(unlockResponse -> {}, ReactiveErrorHandler.handleEmptyError()));
|
||||
.subscribe(unlockResponse -> {}, RxErrorHandler.handleEmptyError()));
|
||||
compositeSubscription.add(adapter.getUnlockSetEvents()
|
||||
.flatMap(set -> userRepository.unlockPath(user, set))
|
||||
.subscribe(unlockResponse -> {}, ReactiveErrorHandler.handleEmptyError()));
|
||||
.subscribe(unlockResponse -> {}, RxErrorHandler.handleEmptyError()));
|
||||
|
||||
layoutManager = new GridLayoutManager(activity, 2);
|
||||
layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
|
||||
|
|
@ -109,7 +109,7 @@ public class AvatarCustomizationFragment extends BaseMainFragment {
|
|||
if (user == null || adapter == null) {
|
||||
return;
|
||||
}
|
||||
customizationRepository.getCustomizations(type, category).subscribe(adapter::setCustomizationList, ReactiveErrorHandler.handleEmptyError());
|
||||
customizationRepository.getCustomizations(type, category).subscribe(adapter::setCustomizationList, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
private void setGridSpanCount(int width) {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import com.habitrpg.android.habitica.R;
|
|||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.databinding.FragmentAvatarOverviewBinding;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
|
||||
|
||||
|
|
@ -66,7 +66,7 @@ public class AvatarOverviewFragment extends BaseMainFragment implements AdapterV
|
|||
|
||||
if (apiClient != null) {
|
||||
apiClient.getContent()
|
||||
.subscribe(contentResult -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(contentResult -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import android.view.ViewGroup;
|
|||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.InventoryRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.ui.adapter.inventory.EquipmentRecyclerViewAdapter;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
|
||||
import com.habitrpg.android.habitica.ui.menu.DividerItemDecoration;
|
||||
|
|
@ -50,14 +50,14 @@ public class EquipmentDetailFragment extends BaseMainFragment {
|
|||
this.adapter.type = this.type;
|
||||
this.adapter.getEquipEvents()
|
||||
.flatMap(key -> inventoryRepository.equipGear(user, key, isCostume))
|
||||
.subscribe(items -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(items -> {}, RxErrorHandler.handleEmptyError());
|
||||
|
||||
|
||||
this.recyclerView.setAdapter(this.adapter);
|
||||
this.recyclerView.setLayoutManager(new LinearLayoutManager(activity));
|
||||
this.recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST));
|
||||
|
||||
inventoryRepository.getOwnedEquipment(type).first().subscribe(this.adapter::updateData, ReactiveErrorHandler.handleEmptyError());
|
||||
inventoryRepository.getOwnedEquipment(type).first().subscribe(this.adapter::updateData, RxErrorHandler.handleEmptyError());
|
||||
return v;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,15 +11,11 @@ import com.habitrpg.android.habitica.R;
|
|||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.InventoryRepository;
|
||||
import com.habitrpg.android.habitica.databinding.FragmentEquipmentOverviewBinding;
|
||||
import com.habitrpg.android.habitica.events.commands.UpdateUserCommand;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.inventory.Equipment;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
|
|
@ -117,7 +113,7 @@ public class EquipmentOverviewFragment extends BaseMainFragment {
|
|||
costumeShieldView.setOnClickListener(v1 -> displayEquipmentDetailList("shield", user.getItems().getGear().getCostume().getShield(), true));
|
||||
|
||||
this.costumeSwitch.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||
userRepository.updateUser(user, "preferences.costume", isChecked).subscribe(user1 -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
userRepository.updateUser(user, "preferences.costume", isChecked).subscribe(user1 -> {}, RxErrorHandler.handleEmptyError());
|
||||
});
|
||||
|
||||
if (this.nameMapping == null) {
|
||||
|
|
@ -129,7 +125,7 @@ public class EquipmentOverviewFragment extends BaseMainFragment {
|
|||
}
|
||||
|
||||
this.viewBinding.setEquipmentNames(this.nameMapping);
|
||||
}, ReactiveErrorHandler.handleEmptyError());
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
} else {
|
||||
this.viewBinding.setEquipmentNames(this.nameMapping);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,10 +13,9 @@ import android.widget.TextView;
|
|||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.InventoryRepository;
|
||||
import com.habitrpg.android.habitica.events.ContentReloadedEvent;
|
||||
import com.habitrpg.android.habitica.events.OpenedMysteryItemEvent;
|
||||
import com.habitrpg.android.habitica.events.commands.OpenMenuItemCommand;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.inventory.Item;
|
||||
import com.habitrpg.android.habitica.models.inventory.Pet;
|
||||
import com.habitrpg.android.habitica.models.inventory.SpecialItem;
|
||||
|
|
@ -32,15 +31,12 @@ import com.habitrpg.android.habitica.ui.menu.MainDrawerBuilder;
|
|||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
import io.realm.OrderedRealmCollection;
|
||||
import io.realm.RealmList;
|
||||
|
||||
import static com.habitrpg.android.habitica.ui.helpers.UiUtils.showSnackbar;
|
||||
|
||||
|
|
@ -113,7 +109,7 @@ public class ItemRecyclerFragment extends BaseFragment {
|
|||
|
||||
compositeSubscription.add(adapter.getSellItemEvents()
|
||||
.flatMap(item -> inventoryRepository.sellItem(user, item))
|
||||
.subscribe(item -> {}, ReactiveErrorHandler.handleEmptyError()));
|
||||
.subscribe(item -> {}, RxErrorHandler.handleEmptyError()));
|
||||
|
||||
compositeSubscription.add(adapter.getQuestInvitationEvents()
|
||||
.flatMap(quest -> inventoryRepository.inviteToQuest(quest))
|
||||
|
|
@ -199,9 +195,9 @@ public class ItemRecyclerFragment extends BaseFragment {
|
|||
if (items.size() > 0) {
|
||||
adapter.updateData((OrderedRealmCollection<Item>) items);
|
||||
}
|
||||
}, ReactiveErrorHandler.handleEmptyError());
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
|
||||
compositeSubscription.add(inventoryRepository.getOwnedPets().subscribe(adapter::setOwnedPets, ReactiveErrorHandler.handleEmptyError()));
|
||||
compositeSubscription.add(inventoryRepository.getOwnedPets().subscribe(adapter::setOwnedPets, RxErrorHandler.handleEmptyError()));
|
||||
}
|
||||
|
||||
@OnClick(R.id.openMarketButton)
|
||||
|
|
|
|||
|
|
@ -11,14 +11,11 @@ import android.view.ViewGroup;
|
|||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.InventoryRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.inventory.Mount;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.ui.adapter.inventory.MountDetailRecyclerAdapter;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
|
||||
import com.habitrpg.android.habitica.ui.helpers.MarginDecoration;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class MountDetailRecyclerFragment extends BaseMainFragment {
|
||||
|
|
@ -58,7 +55,7 @@ public class MountDetailRecyclerFragment extends BaseMainFragment {
|
|||
|
||||
compositeSubscription.add(adapter.getEquipEvents()
|
||||
.flatMap(key -> inventoryRepository.equip(user, "mount", key))
|
||||
.subscribe(items -> {}, ReactiveErrorHandler.handleEmptyError()));
|
||||
.subscribe(items -> {}, RxErrorHandler.handleEmptyError()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -107,7 +104,7 @@ public class MountDetailRecyclerFragment extends BaseMainFragment {
|
|||
}
|
||||
|
||||
private void loadItems() {
|
||||
inventoryRepository.getMounts(animalType, animalGroup).first().subscribe(adapter::updateData, ReactiveErrorHandler.handleEmptyError());
|
||||
inventoryRepository.getMounts(animalType, animalGroup).first().subscribe(adapter::updateData, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import com.habitrpg.android.habitica.R;
|
|||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.InventoryRepository;
|
||||
import com.habitrpg.android.habitica.events.commands.FeedCommand;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.ui.adapter.inventory.PetDetailRecyclerAdapter;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
|
||||
|
|
@ -60,7 +60,7 @@ public class PetDetailRecyclerFragment extends BaseMainFragment {
|
|||
|
||||
compositeSubscription.add(adapter.getEquipEvents()
|
||||
.flatMap(key -> inventoryRepository.equip(user, "pet", key))
|
||||
.subscribe(items -> {}, ReactiveErrorHandler.handleEmptyError()));
|
||||
.subscribe(items -> {}, RxErrorHandler.handleEmptyError()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -108,8 +108,8 @@ public class PetDetailRecyclerFragment extends BaseMainFragment {
|
|||
}
|
||||
|
||||
private void loadItems() {
|
||||
inventoryRepository.getPets(animalType, animalGroup).first().subscribe(adapter::updateData, ReactiveErrorHandler.handleEmptyError());
|
||||
inventoryRepository.getOwnedMounts(animalType, animalGroup).subscribe(adapter::setOwnedMounts, ReactiveErrorHandler.handleEmptyError());
|
||||
inventoryRepository.getPets(animalType, animalGroup).first().subscribe(adapter::updateData, RxErrorHandler.handleEmptyError());
|
||||
inventoryRepository.getOwnedMounts(animalType, animalGroup).subscribe(adapter::setOwnedMounts, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import android.widget.TextView;
|
|||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.InventoryRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.inventory.Animal;
|
||||
import com.habitrpg.android.habitica.models.inventory.Mount;
|
||||
import com.habitrpg.android.habitica.models.inventory.Pet;
|
||||
|
|
@ -183,6 +183,6 @@ public class StableRecyclerFragment extends BaseFragment {
|
|||
}
|
||||
}
|
||||
return Observable.just(items);
|
||||
}).subscribe(items -> adapter.setItemList(items), ReactiveErrorHandler.handleEmptyError());
|
||||
}).subscribe(items -> adapter.setItemList(items), RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import com.habitrpg.android.habitica.R;
|
|||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.events.commands.OpenGemPurchaseFragmentCommand;
|
||||
import com.habitrpg.android.habitica.helpers.QrCodeManager;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.models.user.SubscriptionPlan;
|
||||
import com.habitrpg.android.habitica.ui.views.subscriptions.SubscriptionDetailsView;
|
||||
|
|
@ -42,7 +42,7 @@ public class AccountDetailsFragment extends BasePreferencesFragment {
|
|||
|
||||
String userID = getPreferenceManager().getSharedPreferences().getString(getContext().getString(R.string.SP_userID), null);
|
||||
if (userID != null) {
|
||||
userRepository.getUser(userID).subscribe(this::setUser, ReactiveErrorHandler.handleEmptyError());
|
||||
userRepository.getUser(userID).subscribe(this::setUser, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import com.habitrpg.android.habitica.R;
|
|||
import com.habitrpg.android.habitica.data.ApiClient;
|
||||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.helpers.LanguageHelper;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.SoundManager;
|
||||
import com.habitrpg.android.habitica.helpers.TaskAlarmManager;
|
||||
import com.habitrpg.android.habitica.helpers.notifications.PushNotificationManager;
|
||||
|
|
@ -58,7 +58,7 @@ public class PreferencesFragment extends BasePreferencesFragment implements
|
|||
|
||||
String userID = getPreferenceManager().getSharedPreferences().getString(context.getString(R.string.SP_userID), null);
|
||||
if (userID != null) {
|
||||
userRepository.getUser(userID).subscribe(PreferencesFragment.this::setUser, ReactiveErrorHandler.handleEmptyError());
|
||||
userRepository.getUser(userID).subscribe(PreferencesFragment.this::setUser, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -133,7 +133,7 @@ public class PreferencesFragment extends BasePreferencesFragment implements
|
|||
}
|
||||
return true;
|
||||
} else if (preference.getKey().equals("reload_content")) {
|
||||
apiClient.getContent().subscribe(contentResult -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
apiClient.getContent().subscribe(contentResult -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
return super.onPreferenceTreeClick(preference);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import com.habitrpg.android.habitica.R;
|
|||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.events.commands.UseSkillCommand;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.Skill;
|
||||
import com.habitrpg.android.habitica.models.responses.SkillResponse;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
|
|
@ -98,7 +98,7 @@ public class SkillsFragment extends BaseMainFragment {
|
|||
|
||||
Observable.concat(userRepository.getSkills(user).first().flatMap(Observable::from), userRepository.getSpecialItems(user).first().flatMap(Observable::from))
|
||||
.toList()
|
||||
.subscribe(skills -> adapter.setSkillList(skills), ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(skills -> adapter.setSkillList(skills), RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -147,7 +147,7 @@ public class SkillsFragment extends BaseMainFragment {
|
|||
if (activity != null) {
|
||||
UiUtils.showSnackbar(activity, activity.getFloatingMenuWrapper(), message.toString(), UiUtils.SnackbarDisplayType.NORMAL);
|
||||
}
|
||||
userRepository.retrieveUser(false).subscribe(habitRPGUser -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
userRepository.retrieveUser(false).subscribe(habitRPGUser -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ import com.habitrpg.android.habitica.events.commands.FlagChatMessageCommand;
|
|||
import com.habitrpg.android.habitica.events.commands.SendNewGroupMessageCommand;
|
||||
import com.habitrpg.android.habitica.events.commands.ToggleInnCommand;
|
||||
import com.habitrpg.android.habitica.events.commands.ToggleLikeMessageCommand;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.social.ChatMessage;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.ui.activities.MainActivity;
|
||||
|
|
@ -91,7 +91,7 @@ public class ChatListFragment extends BaseFragment implements SwipeRefreshLayout
|
|||
if (savedInstanceState.containsKey("userId")) {
|
||||
this.userId = savedInstanceState.getString("userId");
|
||||
if (this.userId != null) {
|
||||
userRepository.getUser(userId).subscribe(habitRPGUser -> this.user = habitRPGUser, ReactiveErrorHandler.handleEmptyError());
|
||||
userRepository.getUser(userId).subscribe(habitRPGUser -> this.user = habitRPGUser, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ import com.habitrpg.android.habitica.data.ApiClient;
|
|||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.databinding.FragmentGroupInfoBinding;
|
||||
import com.habitrpg.android.habitica.helpers.QrCodeManager;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.inventory.QuestContent;
|
||||
import com.habitrpg.android.habitica.models.social.Group;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
|
|
@ -87,8 +87,9 @@ public class GroupInformationFragment extends BaseFragment {
|
|||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
if (view == null)
|
||||
if (view == null) {
|
||||
view = inflater.inflate(R.layout.fragment_group_info, container, false);
|
||||
}
|
||||
questCollectViewAdapter = new QuestCollectRecyclerViewAdapter();
|
||||
|
||||
viewBinding = DataBindingUtil.bind(view);
|
||||
|
|
@ -370,7 +371,7 @@ public class GroupInformationFragment extends BaseFragment {
|
|||
public void onPartyInviteRejected() {
|
||||
if (user != null) {
|
||||
apiClient.rejectGroupInvite(user.getInvitations().getParty().getId())
|
||||
.subscribe(aVoid -> viewBinding.setInvitation(null), ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(aVoid -> viewBinding.setInvitation(null), RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import android.os.Bundle;
|
|||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentPagerAdapter;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
|
|
@ -16,6 +17,7 @@ import android.view.ViewGroup;
|
|||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.SocialRepository;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.social.Group;
|
||||
import com.habitrpg.android.habitica.ui.activities.GroupFormActivity;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
|
||||
|
|
@ -34,17 +36,10 @@ public class GuildFragment extends BaseMainFragment implements Action1<Group> {
|
|||
private Group guild;
|
||||
private GroupInformationFragment guildInformationFragment;
|
||||
private ChatListFragment chatListFragment;
|
||||
private String guildId;
|
||||
|
||||
public void setGuild(Group guild) {
|
||||
this.guild = guild;
|
||||
if (this.guildInformationFragment != null) {
|
||||
this.guildInformationFragment.setGroup(guild);
|
||||
}
|
||||
if (this.guild.chat == null && this.socialRepository != null) {
|
||||
socialRepository.retrieveGroup(this.guild.id)
|
||||
.subscribe(this, throwable -> {
|
||||
});
|
||||
}
|
||||
public void setGuildId(String guildId) {
|
||||
this.guildId = guildId;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -60,6 +55,11 @@ public class GuildFragment extends BaseMainFragment implements Action1<Group> {
|
|||
|
||||
setViewPagerAdapter();
|
||||
|
||||
if (guildId != null && this.socialRepository != null) {
|
||||
compositeSubscription.add(socialRepository.getGroup(this.guildId).subscribe(this, throwable -> {}, () -> Log.e("Party", "Completed")));
|
||||
socialRepository.retrieveGroup(this.guildId).subscribe(group -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
|
|
@ -86,7 +86,7 @@ public class GuildFragment extends BaseMainFragment implements Action1<Group> {
|
|||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
if (this.activity != null) {
|
||||
if (this.activity != null && this.guild != null) {
|
||||
if (this.isMember) {
|
||||
if (this.user != null && this.user.getId().equals(this.guild.leaderID)) {
|
||||
this.activity.getMenuInflater().inflate(R.menu.guild_admin, menu);
|
||||
|
|
@ -145,7 +145,7 @@ public class GuildFragment extends BaseMainFragment implements Action1<Group> {
|
|||
}
|
||||
case 1: {
|
||||
chatListFragment = new ChatListFragment();
|
||||
chatListFragment.configure(GuildFragment.this.guild.id, user, false);
|
||||
chatListFragment.configure(GuildFragment.this.guildId, user, false);
|
||||
fragment = chatListFragment;
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,20 +29,16 @@ public class GuildsOverviewFragment extends BaseMainFragment implements View.OnC
|
|||
|
||||
@Inject
|
||||
SocialRepository socialRepository;
|
||||
@Inject
|
||||
ChallengeRepository challengeRepository;
|
||||
|
||||
@BindView(R.id.my_guilds_listview)
|
||||
LinearLayout guildsListView;
|
||||
|
||||
@BindView(R.id.publicGuildsButton)
|
||||
Button publicGuildsButton;
|
||||
|
||||
@BindView(R.id.chat_refresh_layout)
|
||||
SwipeRefreshLayout swipeRefreshLayout;
|
||||
|
||||
|
||||
@Inject
|
||||
ChallengeRepository challengeRepository;
|
||||
|
||||
private List<Group> guilds;
|
||||
private ArrayList<String> guildIDs;
|
||||
|
||||
|
|
@ -69,6 +65,7 @@ public class GuildsOverviewFragment extends BaseMainFragment implements View.OnC
|
|||
@Override
|
||||
public void onDestroy() {
|
||||
socialRepository.close();
|
||||
challengeRepository.close();
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
|
|
@ -123,7 +120,7 @@ public class GuildsOverviewFragment extends BaseMainFragment implements View.OnC
|
|||
} else {
|
||||
Integer guildIndex = ((ViewGroup) v.getParent()).indexOfChild(v);
|
||||
GuildFragment guildFragment = new GuildFragment();
|
||||
guildFragment.setGuild(this.guilds.get(guildIndex));
|
||||
guildFragment.setGuildId(this.guilds.get(guildIndex).id);
|
||||
guildFragment.isMember = true;
|
||||
fragment = guildFragment;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import android.widget.TextView;
|
|||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.SocialRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.social.ChatMessage;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.modules.AppModule;
|
||||
|
|
@ -80,7 +80,7 @@ public class InboxFragment extends BaseMainFragment
|
|||
.sort("timestamp", Sort.DESCENDING)
|
||||
.asObservable()
|
||||
.first()
|
||||
.subscribe(this::setInboxMessages, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(this::setInboxMessages, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import com.habitrpg.android.habitica.components.AppComponent;
|
|||
import com.habitrpg.android.habitica.data.SocialRepository;
|
||||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.events.commands.SendNewInboxMessageCommand;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.ui.adapter.social.ChatRecyclerViewAdapter;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
|
||||
|
|
@ -75,7 +75,7 @@ public class InboxMessageListFragment extends BaseMainFragment
|
|||
.findAllSortedAsync("timestamp", Sort.DESCENDING)
|
||||
.asObservable()
|
||||
.filter(RealmResults::isLoaded)
|
||||
.subscribe(chatMessages -> this.chatAdapter.setMessages(chatMessages), ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(chatMessages -> this.chatAdapter.setMessages(chatMessages), RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -94,7 +94,7 @@ public class InboxMessageListFragment extends BaseMainFragment
|
|||
private void refreshUserInbox () {
|
||||
this.swipeRefreshLayout.setRefreshing(true);
|
||||
this.userRepository.retrieveUser(true)
|
||||
.subscribe(this::onUserReceived, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(this::onUserReceived, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import android.view.ViewGroup;
|
|||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.SocialRepository;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.social.Group;
|
||||
import com.habitrpg.android.habitica.ui.adapter.social.PublicGuildsRecyclerViewAdapter;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
|
||||
|
|
@ -35,7 +36,6 @@ public class PublicGuildsFragment extends BaseMainFragment implements SearchView
|
|||
SocialRepository socialRepository;
|
||||
|
||||
List<String> memberGuildIDs;
|
||||
List<Group> guilds;
|
||||
|
||||
@BindView(R.id.recyclerView)
|
||||
RecyclerView recyclerView;
|
||||
|
|
@ -53,13 +53,11 @@ public class PublicGuildsFragment extends BaseMainFragment implements SearchView
|
|||
unbinder = ButterKnife.bind(this, view);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(this.activity));
|
||||
recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST));
|
||||
viewAdapter = new PublicGuildsRecyclerViewAdapter();
|
||||
viewAdapter = new PublicGuildsRecyclerViewAdapter(null, true);
|
||||
viewAdapter.setMemberGuildIDs(this.memberGuildIDs);
|
||||
viewAdapter.apiClient = this.apiClient;
|
||||
recyclerView.setAdapter(viewAdapter);
|
||||
if (this.guilds != null) {
|
||||
this.viewAdapter.setPublicGuildList(this.guilds);
|
||||
}
|
||||
this.fetchGuilds();
|
||||
}
|
||||
return view;
|
||||
}
|
||||
|
|
@ -72,7 +70,6 @@ public class PublicGuildsFragment extends BaseMainFragment implements SearchView
|
|||
@Override
|
||||
public void onCreate(Bundle savedInstance) {
|
||||
super.onCreate(savedInstance);
|
||||
this.fetchGuilds();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -83,14 +80,15 @@ public class PublicGuildsFragment extends BaseMainFragment implements SearchView
|
|||
|
||||
private void fetchGuilds() {
|
||||
if (this.socialRepository != null) {
|
||||
this.socialRepository.getGroups("publicGuilds")
|
||||
this.socialRepository.getPublicGuilds()
|
||||
.first()
|
||||
.subscribe(groups -> {
|
||||
PublicGuildsFragment.this.guilds = groups;
|
||||
if (PublicGuildsFragment.this.viewAdapter != null) {
|
||||
PublicGuildsFragment.this.viewAdapter.setPublicGuildList(groups);
|
||||
PublicGuildsFragment.this.viewAdapter.updateData(groups);
|
||||
}
|
||||
}, throwable -> {
|
||||
});
|
||||
this.socialRepository.retrieveGroups("publicGuilds").subscribe(groups -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -104,7 +102,6 @@ public class PublicGuildsFragment extends BaseMainFragment implements SearchView
|
|||
theTextArea.setHintTextColor(ContextCompat.getColor(getContext(), R.color.white));
|
||||
guildSearchView.setQueryHint(getString(R.string.guild_search_hint));
|
||||
guildSearchView.setOnQueryTextListener(this);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import com.habitrpg.android.habitica.R;
|
|||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.InventoryRepository;
|
||||
import com.habitrpg.android.habitica.data.SocialRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.social.Group;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
|
||||
|
||||
|
|
@ -79,7 +79,7 @@ public class TavernFragment extends BaseMainFragment {
|
|||
if (questInfoFragment != null) {
|
||||
questInfoFragment.setQuestContent(content);
|
||||
}
|
||||
}, ReactiveErrorHandler.handleEmptyError());
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}, throwable -> {
|
||||
});
|
||||
|
|
|
|||
|
|
@ -11,17 +11,13 @@ import android.widget.ImageView;
|
|||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.habitrpg.android.habitica.HabiticaApplication;
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.data.ApiClient;
|
||||
import com.habitrpg.android.habitica.data.ChallengeRepository;
|
||||
import com.habitrpg.android.habitica.events.commands.OpenFullProfileCommand;
|
||||
import com.habitrpg.android.habitica.models.LeaveChallengeBody;
|
||||
import com.habitrpg.android.habitica.models.social.Challenge;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.ui.activities.ChallengeDetailActivity;
|
||||
import com.habitrpg.android.habitica.ui.adapter.social.ChallengesListViewAdapter;
|
||||
import com.habitrpg.android.habitica.ui.helpers.MarkdownParser;
|
||||
|
||||
import net.pherth.android.emoji_library.EmojiParser;
|
||||
|
|
@ -32,8 +28,6 @@ import org.greenrobot.eventbus.EventBus;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
|
|
@ -163,43 +157,44 @@ public class ChallengeDetailDialogHolder {
|
|||
}
|
||||
|
||||
private void addHabits(ArrayList<Task> habits) {
|
||||
LinearLayout taskGroup = (LinearLayout) context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_task_group, task_group_layout);
|
||||
LinearLayout taskGroup = (LinearLayout) context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_task_group, task_group_layout, false);
|
||||
TextView groupName = (TextView) taskGroup.findViewById(R.id.task_group_name);
|
||||
|
||||
LinearLayout tasks_layout = (LinearLayout) taskGroup.findViewById(R.id.tasks_layout);
|
||||
|
||||
groupName.setText(habits.size() + " " + ChallengesListViewAdapter.ChallengeViewHolder.getLabelByTypeAndCount(context, Challenge.TASK_ORDER_HABITS, habits.size()));
|
||||
groupName.setText(habits.size() + " " + getLabelByTypeAndCount(Challenge.TASK_ORDER_HABITS, habits.size()));
|
||||
|
||||
int size = habits.size();
|
||||
for (int i = 0; i < size; i++) {
|
||||
Task task = habits.get(i);
|
||||
|
||||
View habitEntry = context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_habit, tasks_layout);
|
||||
TextView habitTitle = (TextView) habitEntry.findViewById(R.id.habit_title);
|
||||
ImageView plusImg = (ImageView) habitEntry.findViewById(task.up ? R.id.plus_img_tinted : R.id.plus_img);
|
||||
ImageView minusImg = (ImageView) habitEntry.findViewById(task.down ? R.id.minus_img_tinted : R.id.minus_img);
|
||||
View entry = context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_habit, tasks_layout, false);
|
||||
TextView habitTitle = (TextView) entry.findViewById(R.id.habit_title);
|
||||
ImageView plusImg = (ImageView) entry.findViewById(task.up ? R.id.plus_img_tinted : R.id.plus_img);
|
||||
ImageView minusImg = (ImageView) entry.findViewById(task.down ? R.id.minus_img_tinted : R.id.minus_img);
|
||||
|
||||
plusImg.setVisibility(View.VISIBLE);
|
||||
minusImg.setVisibility(View.VISIBLE);
|
||||
|
||||
habitTitle.setText(EmojiParser.parseEmojis(task.text));
|
||||
|
||||
tasks_layout.addView(entry);
|
||||
}
|
||||
task_group_layout.addView(taskGroup);
|
||||
}
|
||||
|
||||
private void addDailys(ArrayList<Task> dailies) {
|
||||
LinearLayout taskGroup = (LinearLayout) context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_task_group, task_group_layout);
|
||||
LinearLayout taskGroup = (LinearLayout) context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_task_group, task_group_layout, false);
|
||||
TextView groupName = (TextView) taskGroup.findViewById(R.id.task_group_name);
|
||||
|
||||
LinearLayout tasks_layout = (LinearLayout) taskGroup.findViewById(R.id.tasks_layout);
|
||||
|
||||
int size = dailies.size();
|
||||
groupName.setText(dailies.size() + " " + ChallengesListViewAdapter.ChallengeViewHolder.getLabelByTypeAndCount(context, Challenge.TASK_ORDER_DAILYS, size));
|
||||
groupName.setText(dailies.size() + " " + getLabelByTypeAndCount(Challenge.TASK_ORDER_DAILYS, size));
|
||||
|
||||
for (int i = 0; i < size; i++) {
|
||||
Task task = dailies.get(i);
|
||||
|
||||
View entry = context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_daily, tasks_layout);
|
||||
View entry = context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_daily, tasks_layout, false);
|
||||
TextView title = (TextView) entry.findViewById(R.id.daily_title);
|
||||
title.setText(EmojiParser.parseEmojis(task.text));
|
||||
|
||||
|
|
@ -211,23 +206,24 @@ public class ChallengeDetailDialogHolder {
|
|||
TextView checkListAllTextView = (TextView) entry.findViewById(R.id.checkListAllTextView);
|
||||
checkListAllTextView.setText(String.valueOf(task.checklist.size()));
|
||||
}
|
||||
|
||||
tasks_layout.addView(entry);
|
||||
}
|
||||
task_group_layout.addView(taskGroup);
|
||||
}
|
||||
|
||||
private void addTodos(ArrayList<Task> todos) {
|
||||
LinearLayout taskGroup = (LinearLayout) context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_task_group, task_group_layout);
|
||||
LinearLayout taskGroup = (LinearLayout) context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_task_group, task_group_layout, false);
|
||||
TextView groupName = (TextView) taskGroup.findViewById(R.id.task_group_name);
|
||||
|
||||
LinearLayout tasks_layout = (LinearLayout) taskGroup.findViewById(R.id.tasks_layout);
|
||||
|
||||
int size = todos.size();
|
||||
groupName.setText(todos.size() + " " + ChallengesListViewAdapter.ChallengeViewHolder.getLabelByTypeAndCount(context, Challenge.TASK_ORDER_TODOS, size));
|
||||
groupName.setText(todos.size() + " " + getLabelByTypeAndCount(Challenge.TASK_ORDER_TODOS, size));
|
||||
|
||||
for (int i = 0; i < size; i++) {
|
||||
Task task = todos.get(i);
|
||||
|
||||
View entry = context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_todo, tasks_layout);
|
||||
View entry = context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_todo, tasks_layout, false);
|
||||
TextView title = (TextView) entry.findViewById(R.id.todo_title);
|
||||
title.setText(EmojiParser.parseEmojis(task.text));
|
||||
|
||||
|
|
@ -239,24 +235,40 @@ public class ChallengeDetailDialogHolder {
|
|||
TextView checkListAllTextView = (TextView) entry.findViewById(R.id.checkListAllTextView);
|
||||
checkListAllTextView.setText(String.valueOf(task.checklist.size()));
|
||||
}
|
||||
tasks_layout.addView(entry);
|
||||
}
|
||||
task_group_layout.addView(taskGroup);
|
||||
}
|
||||
|
||||
private void addRewards(ArrayList<Task> rewards) {
|
||||
LinearLayout taskGroup = (LinearLayout) context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_task_group, task_group_layout);
|
||||
LinearLayout taskGroup = (LinearLayout) context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_task_group, task_group_layout, false);
|
||||
TextView groupName = (TextView) taskGroup.findViewById(R.id.task_group_name);
|
||||
|
||||
LinearLayout tasks_layout = (LinearLayout) taskGroup.findViewById(R.id.tasks_layout);
|
||||
|
||||
int size = rewards.size();
|
||||
groupName.setText(rewards.size() + " " + ChallengesListViewAdapter.ChallengeViewHolder.getLabelByTypeAndCount(context, Challenge.TASK_ORDER_REWARDS, size));
|
||||
groupName.setText(rewards.size() + " " + getLabelByTypeAndCount(Challenge.TASK_ORDER_REWARDS, size));
|
||||
|
||||
for (int i = 0; i < size; i++) {
|
||||
Task task = rewards.get(i);
|
||||
|
||||
View entry = context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_reward, tasks_layout);
|
||||
View entry = context.getLayoutInflater().inflate(R.layout.dialog_challenge_detail_reward, tasks_layout, false);
|
||||
TextView title = (TextView) entry.findViewById(R.id.reward_title);
|
||||
title.setText(EmojiParser.parseEmojis(task.text));
|
||||
tasks_layout.addView(entry);
|
||||
}
|
||||
task_group_layout.addView(taskGroup);
|
||||
}
|
||||
|
||||
private String getLabelByTypeAndCount(String type, int count) {
|
||||
if (Challenge.TASK_ORDER_DAILYS.equals(type)) {
|
||||
return context.getString(count == 1 ? R.string.daily : R.string.dailies);
|
||||
} else if (Challenge.TASK_ORDER_HABITS.equals(type)) {
|
||||
return context.getString(count == 1 ? R.string.habit : R.string.habits);
|
||||
} else if (Challenge.TASK_ORDER_REWARDS.equals(type)) {
|
||||
return context.getString(count == 1 ? R.string.reward : R.string.rewards);
|
||||
} else {
|
||||
return context.getString(count == 1 ? R.string.todo : R.string.todos);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -280,7 +292,6 @@ public class ChallengeDetailDialogHolder {
|
|||
|
||||
Intent intent = new Intent(context, ChallengeDetailActivity.class);
|
||||
intent.putExtras(bundle);
|
||||
//intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||
context.startActivity(intent);
|
||||
this.dialog.dismiss();
|
||||
}
|
||||
|
|
@ -302,8 +313,8 @@ public class ChallengeDetailDialogHolder {
|
|||
challengeLeftAction.call(challenge);
|
||||
}
|
||||
this.dialog.dismiss();
|
||||
}, throwable -> {
|
||||
}))).setNegativeButton(context.getString(R.string.no), (dialog, which) -> dialog.dismiss()).show();
|
||||
}, throwable -> {})))
|
||||
.setNegativeButton(context.getString(R.string.no), (dialog, which) -> dialog.dismiss()).show();
|
||||
}
|
||||
|
||||
// refactor as an UseCase later - see ChallengeDetailActivity
|
||||
|
|
|
|||
|
|
@ -11,14 +11,13 @@ import android.view.MenuInflater;
|
|||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.ChallengeRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.social.Challenge;
|
||||
import com.habitrpg.android.habitica.ui.activities.CreateChallengeActivity;
|
||||
import com.habitrpg.android.habitica.ui.adapter.social.ChallengesListViewAdapter;
|
||||
|
|
@ -121,7 +120,7 @@ public class ChallengeListFragment extends BaseMainFragment implements SwipeRefr
|
|||
}
|
||||
this.challenges = challenges;
|
||||
challengeAdapter.updateData(challenges);
|
||||
}, ReactiveErrorHandler.handleEmptyError());
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
private void fetchOnlineChallenges() {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import com.habitrpg.android.habitica.components.AppComponent;
|
|||
import com.habitrpg.android.habitica.data.ChallengeRepository;
|
||||
import com.habitrpg.android.habitica.events.commands.ShowChallengeDetailActivityCommand;
|
||||
import com.habitrpg.android.habitica.events.commands.ShowChallengeDetailDialogCommand;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.ui.activities.ChallengeDetailActivity;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
|
||||
|
||||
|
|
@ -112,7 +112,7 @@ public class ChallengesOverviewFragment extends BaseMainFragment {
|
|||
challengeRepository.getChallenge(cmd.challengeId).first().subscribe(challenge -> ChallengeDetailDialogHolder.showDialog(getActivity(), challengeRepository, challenge,
|
||||
challenge1 -> {
|
||||
// challenge left
|
||||
}), ReactiveErrorHandler.handleEmptyError());
|
||||
}), RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
|
|
@ -122,7 +122,6 @@ public class ChallengesOverviewFragment extends BaseMainFragment {
|
|||
|
||||
Intent intent = new Intent(getActivity(), ChallengeDetailActivity.class);
|
||||
intent.putExtras(bundle);
|
||||
//intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||
getActivity().startActivity(intent);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,10 +19,9 @@ import com.habitrpg.android.habitica.R;
|
|||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.InventoryRepository;
|
||||
import com.habitrpg.android.habitica.data.SocialRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.social.Group;
|
||||
import com.habitrpg.android.habitica.models.social.UserParty;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.ui.activities.GroupFormActivity;
|
||||
import com.habitrpg.android.habitica.ui.activities.PartyInviteActivity;
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
|
||||
|
|
@ -52,7 +51,6 @@ public class PartyFragment extends BaseMainFragment {
|
|||
private GroupInformationFragment groupInformationFragment;
|
||||
private ChatListFragment chatListFragment;
|
||||
private FragmentPagerAdapter viewPagerAdapter;
|
||||
private List<User> members;
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
|
|
@ -66,29 +64,15 @@ public class PartyFragment extends BaseMainFragment {
|
|||
viewPager.setCurrentItem(0);
|
||||
|
||||
// Get the full group data
|
||||
if (this.user != null && this.user.getParty() != null && this.user.getParty().id != null) {
|
||||
socialRepository.getGroup("party")
|
||||
.filter(group1 -> group1 != null)
|
||||
if (userHasParty()) {
|
||||
compositeSubscription.add(socialRepository.getGroup(user.getParty().getId())
|
||||
.subscribe(group -> {
|
||||
if (group == null) {
|
||||
return;
|
||||
}
|
||||
PartyFragment.this.group = group;
|
||||
|
||||
updateGroupUI();
|
||||
|
||||
socialRepository.getGroupMembers(group.id, true)
|
||||
.subscribe(members -> {
|
||||
PartyFragment.this.members = members;
|
||||
updateGroupUI();
|
||||
},
|
||||
throwable -> {
|
||||
});
|
||||
}, throwable -> {
|
||||
});
|
||||
}, RxErrorHandler.handleEmptyError()));
|
||||
socialRepository.retrieveGroup("party").subscribe(group1 -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
|
||||
setViewPagerAdapter();
|
||||
this.tutorialStepIdentifier = "party";
|
||||
this.tutorialText = getString(R.string.tutorial_party);
|
||||
|
|
@ -98,6 +82,10 @@ public class PartyFragment extends BaseMainFragment {
|
|||
return v;
|
||||
}
|
||||
|
||||
private boolean userHasParty() {
|
||||
return this.user != null && this.user.getParty() != null && this.user.getParty().id != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
socialRepository.close();
|
||||
|
|
@ -144,7 +132,7 @@ public class PartyFragment extends BaseMainFragment {
|
|||
if (groupInformationFragment != null) {
|
||||
groupInformationFragment.setQuestContent(content);
|
||||
}
|
||||
}, ReactiveErrorHandler.handleEmptyError());
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -162,9 +150,6 @@ public class PartyFragment extends BaseMainFragment {
|
|||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
// Handle action bar item clicks here. The action bar will
|
||||
// automatically handle clicks on the Home/Up button, so long
|
||||
// as you specify a parent activity in AndroidManifest.xml.
|
||||
int id = item.getItemId();
|
||||
|
||||
switch (id) {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ import com.habitrpg.android.habitica.data.InventoryRepository;
|
|||
import com.habitrpg.android.habitica.data.TaskRepository;
|
||||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.events.commands.AddNewTaskCommand;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.TaskFilterHelper;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
|
|
@ -349,7 +349,7 @@ public class TaskRecyclerViewFragment extends BaseFragment implements View.OnCli
|
|||
swipeRefreshLayout.setRefreshing(true);
|
||||
userRepository.retrieveUser(true, true)
|
||||
.doOnTerminate(() -> swipeRefreshLayout.setRefreshing(false))
|
||||
.subscribe(user1 -> {}, ReactiveErrorHandler.handleEmptyError());
|
||||
.subscribe(user1 -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
public void setActiveFilter(String activeFilter) {
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ import android.widget.TextView;
|
|||
|
||||
import com.github.clans.fab.FloatingActionButton;
|
||||
import com.github.clans.fab.FloatingActionMenu;
|
||||
import com.habitrpg.android.habitica.HabiticaApplication;
|
||||
import com.habitrpg.android.habitica.HabiticaBaseApplication;
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
|
|
@ -28,7 +27,7 @@ import com.habitrpg.android.habitica.data.TagRepository;
|
|||
import com.habitrpg.android.habitica.events.TaskSaveEvent;
|
||||
import com.habitrpg.android.habitica.events.TaskTappedEvent;
|
||||
import com.habitrpg.android.habitica.events.commands.AddNewTaskCommand;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.TaskFilterHelper;
|
||||
import com.habitrpg.android.habitica.models.TutorialStep;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
|
|
@ -348,7 +347,7 @@ public class TasksFragment extends BaseMainFragment {
|
|||
}
|
||||
}
|
||||
}
|
||||
}, ReactiveErrorHandler.handleEmptyError());
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
// endregion
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ import android.widget.TextView;
|
|||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.TagRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.Tag;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
|
||||
|
|
@ -213,9 +213,9 @@ public class TaskFilterDialog extends AlertDialog implements RadioGroup.OnChecke
|
|||
if (this.getWindow() != null) {
|
||||
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
|
||||
}
|
||||
repository.updateTags(editedTags.values()).subscribe(tag -> editedTags.remove(tag.getId()), ReactiveErrorHandler.handleEmptyError());
|
||||
repository.createTags(createdTags.values()).subscribe(tag -> createdTags.remove(tag.getId()), ReactiveErrorHandler.handleEmptyError());
|
||||
repository.deleteTags(deletedTags).subscribe(tags1 -> deletedTags.clear(), ReactiveErrorHandler.handleEmptyError());
|
||||
repository.updateTags(editedTags.values()).subscribe(tag -> editedTags.remove(tag.getId()), RxErrorHandler.handleEmptyError());
|
||||
repository.createTags(createdTags.values()).subscribe(tag -> createdTags.remove(tag.getId()), RxErrorHandler.handleEmptyError());
|
||||
repository.deleteTags(deletedTags).subscribe(tags1 -> deletedTags.clear(), RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
private void createTagEditViews() {
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ import com.habitrpg.android.habitica.models.user.User;
|
|||
import java.lang.reflect.Type;
|
||||
import java.util.List;
|
||||
|
||||
import io.realm.RealmList;
|
||||
|
||||
public class GroupSerialization implements JsonDeserializer<Group>, JsonSerializer<Group> {
|
||||
@Override
|
||||
public Group deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
|
||||
|
|
@ -46,7 +48,7 @@ public class GroupSerialization implements JsonDeserializer<Group>, JsonSerializ
|
|||
group.type = obj.get("type").getAsString();
|
||||
}
|
||||
if (obj.has("chat")) {
|
||||
group.chat = context.deserialize(obj.get("chat"), new TypeToken<List<ChatMessage>>() {
|
||||
group.chat = context.deserialize(obj.get("chat"), new TypeToken<RealmList<ChatMessage>>() {
|
||||
}.getType());
|
||||
}
|
||||
if (obj.has("members")) {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import android.widget.RemoteViews;
|
|||
import com.habitrpg.android.habitica.HabiticaBaseApplication;
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.models.user.Stats;
|
||||
import com.habitrpg.android.habitica.modules.AppModule;
|
||||
|
|
@ -50,7 +50,7 @@ public class AvatarStatsWidgetProvider extends BaseWidgetProvider {
|
|||
this.appWidgetManager = appWidgetManager;
|
||||
this.context = context;
|
||||
|
||||
userRepository.getUser(userId).subscribe(this::updateData, ReactiveErrorHandler.handleEmptyError());
|
||||
userRepository.getUser(userId).subscribe(this::updateData, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -12,9 +12,7 @@ import android.widget.Toast;
|
|||
|
||||
import com.habitrpg.android.habitica.HabiticaApplication;
|
||||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.interactors.NotifyUserUseCase;
|
||||
import com.habitrpg.android.habitica.models.responses.TaskDirectionData;
|
||||
import com.habitrpg.android.habitica.models.responses.TaskScoringResult;
|
||||
import com.habitrpg.android.habitica.ui.helpers.UiUtils;
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import android.widget.RemoteViews;
|
|||
import com.habitrpg.android.habitica.HabiticaBaseApplication;
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.data.TaskRepository;
|
||||
import com.habitrpg.android.habitica.helpers.ReactiveErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.responses.TaskDirection;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
import com.habitrpg.android.habitica.modules.AppModule;
|
||||
|
|
@ -53,7 +53,7 @@ public class HabitButtonWidgetService extends Service {
|
|||
makeTaskMapping();
|
||||
|
||||
for (String taskid : this.taskMapping.keySet()) {
|
||||
taskRepository.getTask(taskid).subscribe(this::updateData, ReactiveErrorHandler.handleEmptyError());
|
||||
taskRepository.getTask(taskid).subscribe(this::updateData, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
stopSelf();
|
||||
|
|
|
|||
Loading…
Reference in a new issue