mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-16 19:11:59 +00:00
fix various errors
This commit is contained in:
parent
397752fa80
commit
38352ad4c2
13 changed files with 40 additions and 22 deletions
|
|
@ -2,7 +2,7 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.habitrpg.android.habitica"
|
||||
android:versionCode="1904"
|
||||
android:versionCode="1905"
|
||||
android:versionName="1.1"
|
||||
android:screenOrientation="portrait"
|
||||
android:installLocation="auto" >
|
||||
|
|
|
|||
|
|
@ -1,4 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="36dp" android:viewportHeight="24.0" android:viewportWidth="24.0" android:width="36dp">
|
||||
<path android:fillColor="#FFFFFF" android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/>
|
||||
</vector>
|
||||
|
|
@ -1,6 +1,13 @@
|
|||
package com.habitrpg.android.habitica.data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.realm.RealmObject;
|
||||
|
||||
public interface BaseRepository {
|
||||
|
||||
void close();
|
||||
|
||||
<T extends RealmObject> T getUnmanagedCopy(T object);
|
||||
<T extends RealmObject> List<T> getUnmanagedCopy(List<T> list);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,10 @@ import com.habitrpg.android.habitica.data.ApiClient;
|
|||
import com.habitrpg.android.habitica.data.BaseRepository;
|
||||
import com.habitrpg.android.habitica.data.local.BaseLocalRepository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.realm.RealmObject;
|
||||
|
||||
public abstract class BaseRepositoryImpl<T extends BaseLocalRepository> implements BaseRepository {
|
||||
|
||||
protected final T localRepository;
|
||||
|
|
@ -17,4 +21,14 @@ public abstract class BaseRepositoryImpl<T extends BaseLocalRepository> implemen
|
|||
public void close() {
|
||||
this.localRepository.close();
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends RealmObject> List<T> getUnmanagedCopy(List<T> list) {
|
||||
return localRepository.getUnmanagedCopy(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends RealmObject> T getUnmanagedCopy(T object) {
|
||||
return localRepository.getUnmanagedCopy(object);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -239,6 +239,6 @@ public class SocialRepositoryImpl extends BaseRepositoryImpl<SocialLocalReposito
|
|||
|
||||
@Override
|
||||
public Observable<Quest> forceStartQuest(Group party) {
|
||||
return apiClient.forceStartQuest(party.id, party);
|
||||
return apiClient.forceStartQuest(party.id, localRepository.getUnmanagedCopy(party));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import com.habitrpg.android.habitica.data.ApiClient;
|
|||
import com.habitrpg.android.habitica.data.TaskRepository;
|
||||
import com.habitrpg.android.habitica.data.local.TaskLocalRepository;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.Tag;
|
||||
import com.habitrpg.android.habitica.models.responses.TaskDirection;
|
||||
import com.habitrpg.android.habitica.models.responses.TaskScoringResult;
|
||||
import com.habitrpg.android.habitica.models.tasks.RemindersItem;
|
||||
|
|
@ -19,6 +20,7 @@ import java.util.Date;
|
|||
import java.util.List;
|
||||
|
||||
import io.realm.Realm;
|
||||
import io.realm.RealmList;
|
||||
import io.realm.RealmResults;
|
||||
import rx.Observable;
|
||||
|
||||
|
|
@ -132,6 +134,10 @@ public class TaskRepositoryImpl extends BaseRepositoryImpl<TaskLocalRepository>
|
|||
return Observable.just(task);
|
||||
}
|
||||
lastTaskAction = now;
|
||||
if (task.getTags() != null && task.getTags().size() > 0) {
|
||||
RealmList<Tag> tags = new RealmList<>(localRepository.getUnmanagedCopy(task.getTags()).toArray(new Tag[0]));
|
||||
task.setTags(tags);
|
||||
}
|
||||
return apiClient.createTask(task)
|
||||
.map(task1 -> {
|
||||
task1.dateCreated = new Date();
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public class RxErrorHandler {
|
|||
Log.e("ObservableError", Log.getStackTraceString(throwable));
|
||||
} catch (Exception ignored) {}
|
||||
} else {
|
||||
if (!IOException.class.isAssignableFrom(throwable.getClass()) && !HttpException.class.isAssignableFrom(throwable.getClass())) {
|
||||
if (!IOException.class.isAssignableFrom(throwable.getClass()) && !HttpException.class.isAssignableFrom(throwable.getClass()) && !retrofit2.HttpException.class.isAssignableFrom(throwable.getClass())) {
|
||||
instance.crashlyticsProxy.logException(throwable);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,9 +33,6 @@ import rx.schedulers.Schedulers;
|
|||
|
||||
import static android.os.Build.VERSION.SDK_INT;
|
||||
|
||||
/**
|
||||
* Created by keithholliday on 5/29/16.
|
||||
*/
|
||||
public class TaskAlarmManager {
|
||||
public static final String TASK_ID_INTENT_KEY = "TASK_ID";
|
||||
public static final String TASK_NAME_INTENT_KEY = "TASK_NAME";
|
||||
|
|
@ -127,7 +124,7 @@ public class TaskAlarmManager {
|
|||
//Ensure that we set to the next available time
|
||||
reminder = this.setTimeForDailyReminder(reminder, task);
|
||||
}
|
||||
this.setAlarmForRemindersItem(reminder);
|
||||
this.setAlarmForRemindersItem(task, reminder);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -170,9 +167,7 @@ public class TaskAlarmManager {
|
|||
return remindersItem;
|
||||
}
|
||||
|
||||
private void setAlarmForRemindersItem(RemindersItem remindersItem) {
|
||||
Task reminderItemTask = remindersItem.getTask();
|
||||
|
||||
private void setAlarmForRemindersItem(Task reminderItemTask, RemindersItem remindersItem) {
|
||||
Date now = new Date();
|
||||
if (remindersItem.getTime().before(now)) {
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public class CheckClassSelectionUseCase extends UseCase<CheckClassSelectionUseCa
|
|||
|
||||
@Override
|
||||
protected Observable<Void> buildUseCaseObservable(RequestValues requestValues) {
|
||||
return Observable.from(() -> {
|
||||
return Observable.defer(() -> {
|
||||
|
||||
User user = requestValues.user;
|
||||
|
||||
|
|
@ -34,14 +34,14 @@ public class CheckClassSelectionUseCase extends UseCase<CheckClassSelectionUseCa
|
|||
!user.getFlags().getClassSelected()) {
|
||||
SelectClassEvent event = new SelectClassEvent();
|
||||
event.isInitialSelection = true;
|
||||
event.currentClass = user.getStats().getHabitClass().toString();
|
||||
event.currentClass = user.getStats().getHabitClass();
|
||||
displayClassSelectionActivity(user, event);
|
||||
}
|
||||
} else {
|
||||
displayClassSelectionActivity(user, requestValues.selectClassEvent);
|
||||
}
|
||||
|
||||
return null;
|
||||
return Observable.just(null);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ public class DisplayItemDropUseCase extends UseCase<DisplayItemDropUseCase.Reque
|
|||
|
||||
@Override
|
||||
protected Observable<Void> buildUseCaseObservable(RequestValues requestValues) {
|
||||
return Observable.from(() -> {
|
||||
return Observable.defer(() -> {
|
||||
TaskScoringResult data = requestValues.data;
|
||||
|
||||
if (data != null) {
|
||||
|
|
@ -39,7 +39,7 @@ public class DisplayItemDropUseCase extends UseCase<DisplayItemDropUseCase.Reque
|
|||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
return Observable.just(null);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -183,7 +183,7 @@ public class Task extends RealmObject implements Parcelable {
|
|||
this.type = type;
|
||||
}
|
||||
|
||||
public List<Tag> getTags() {
|
||||
public RealmList<Tag> getTags() {
|
||||
return tags;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ public class TaskFilterDialog extends AlertDialog implements RadioGroup.OnChecke
|
|||
}
|
||||
|
||||
public void setTags(List<Tag> tags) {
|
||||
this.tags = new ArrayList<>(tags);
|
||||
this.tags = repository.getUnmanagedCopy(tags);
|
||||
createTagViews();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ public class HabitButtonWidgetService extends Service {
|
|||
|
||||
private void updateData(Task task) {
|
||||
RemoteViews remoteViews = new RemoteViews(this.getPackageName(), R.layout.widget_habit_button);
|
||||
if (task != null) {
|
||||
if (task != null && task.isManaged()) {
|
||||
CharSequence parsedText = MarkdownParser.parseMarkdown(task.text);
|
||||
|
||||
SpannableStringBuilder builder = new SpannableStringBuilder(parsedText);
|
||||
|
|
|
|||
Loading…
Reference in a new issue