mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-13 17:51:57 +00:00
fix widget issues
This commit is contained in:
parent
ed5a5a42c2
commit
c2269f0da0
5 changed files with 29 additions and 8 deletions
|
|
@ -47,4 +47,8 @@ public interface TaskRepository extends BaseRepository {
|
|||
Observable<List<String>> updateTaskPosition(int currentPosition);
|
||||
|
||||
Observable<Task> getUnmanagedTask(String taskid);
|
||||
|
||||
void updateTaskInBackground(Task task);
|
||||
|
||||
void createTaskInBackground(Task task);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.habitrpg.android.habitica.data.TaskRepository;
|
|||
import com.habitrpg.android.habitica.data.local.TaskLocalRepository;
|
||||
import com.habitrpg.android.habitica.events.TaskCreatedEvent;
|
||||
import com.habitrpg.android.habitica.events.TaskUpdatedEvent;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.responses.TaskDirection;
|
||||
import com.habitrpg.android.habitica.models.responses.TaskDirectionData;
|
||||
import com.habitrpg.android.habitica.models.responses.TaskScoringResult;
|
||||
|
|
@ -196,4 +197,14 @@ public class TaskRepositoryImpl extends BaseRepositoryImpl<TaskLocalRepository>
|
|||
return getTask(taskid)
|
||||
.map(localRepository::getUnmanagedCopy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateTaskInBackground(Task task) {
|
||||
updateTask(task).subscribe(task1 -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createTaskInBackground(Task task) {
|
||||
createTask(task).subscribe(task1 -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -197,7 +197,12 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserLocalRepository>
|
|||
if (!oldUser.isValid()) {
|
||||
return oldUser;
|
||||
}
|
||||
User copiedUser = localRepository.getUnmanagedCopy(oldUser);
|
||||
User copiedUser;
|
||||
if (oldUser.isManaged()) {
|
||||
copiedUser = localRepository.getUnmanagedCopy(oldUser);
|
||||
} else {
|
||||
copiedUser = oldUser;
|
||||
}
|
||||
if (newUser.getItems() != null) {
|
||||
copiedUser.setItems(newUser.getItems());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1247,14 +1247,12 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
|
|||
|
||||
if (this.saveTask(this.task)) {
|
||||
//send back to other elements.
|
||||
Observable<Task> observable;
|
||||
if (TaskFormActivity.this.task.getId() == null) {
|
||||
observable = taskRepository.createTask(task);
|
||||
taskRepository.createTaskInBackground(task);
|
||||
} else {
|
||||
observable = taskRepository.updateTask(task);
|
||||
taskRepository.updateTaskInBackground(task);
|
||||
}
|
||||
|
||||
observable.subscribe(task1 -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import net.pherth.android.emoji_library.EmojiHandler;
|
|||
import android.appwidget.AppWidgetManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Handler;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.style.DynamicDrawableSpan;
|
||||
import android.widget.RemoteViews;
|
||||
|
|
@ -70,7 +71,8 @@ public abstract class TaskListFactory implements RemoteViewsService.RemoteViewsF
|
|||
}
|
||||
|
||||
private void loadData() {
|
||||
taskRepository.getTasks(taskType, userID)
|
||||
Handler mainHandler = new Handler(context.getMainLooper());
|
||||
mainHandler.post(() -> taskRepository.getTasks(taskType, userID)
|
||||
.flatMap(Observable::from)
|
||||
.filter(task -> task.type.equals(Task.TYPE_TODO) || task.isDisplayedActive(customDayStart))
|
||||
.toList()
|
||||
|
|
@ -79,10 +81,11 @@ public abstract class TaskListFactory implements RemoteViewsService.RemoteViewsF
|
|||
.first()
|
||||
.subscribe(tasks -> {
|
||||
taskList = tasks;
|
||||
this.reloadData = false;
|
||||
reloadData = false;
|
||||
AppWidgetManager.getInstance(context).notifyAppWidgetViewDataChanged(widgetId, R.id.list_view);
|
||||
taskRepository.close();
|
||||
}, throwable -> this.reloadData = false);
|
||||
}, throwable -> reloadData = false));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue