fix various errors

This commit is contained in:
Phillip Thelen 2017-07-05 22:25:29 +02:00
parent 397752fa80
commit 38352ad4c2
13 changed files with 40 additions and 22 deletions

View file

@ -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" >

View file

@ -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>

View file

@ -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);
}

View file

@ -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);
}
}

View file

@ -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));
}
}

View file

@ -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();

View file

@ -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);
}
}

View file

@ -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;

View file

@ -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);
});
}

View file

@ -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);
});
}

View file

@ -183,7 +183,7 @@ public class Task extends RealmObject implements Parcelable {
this.type = type;
}
public List<Tag> getTags() {
public RealmList<Tag> getTags() {
return tags;
}

View file

@ -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();
}

View file

@ -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);