use the "daily due default view" setting

This commit is contained in:
Phillip Thelen 2017-04-10 19:15:25 +02:00
parent b3b84b193b
commit cc40faeda7
12 changed files with 142 additions and 109 deletions

View file

@ -0,0 +1 @@
ALTER TABLE Preferences ADD COLUMN dailyDueDefaultView bool;

View file

@ -7,7 +7,7 @@ public class HabitDatabase {
public static final String NAME = "Habitica";
public static final int VERSION = 34;
public static final int VERSION = 35;
public HabitDatabase() {
super();

View file

@ -24,7 +24,7 @@ public class TaskFilterHelper {
}
public int howMany(String type) {
return this.tagsId.size() + (activeFilters.get(type) != null ? 1 : 0);
return this.tagsId.size() + (activeFilters.get(type) != null || Task.FILTER_ACTIVE.equals(activeFilters.get(type)) ? 1 : 0);
}
public List<String> getTags() {

View file

@ -2,6 +2,7 @@ package com.habitrpg.android.habitica.ui.activities;
import android.appwidget.AppWidgetManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
@ -26,8 +27,10 @@ import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.Toolbar;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;
import android.view.Display;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
@ -242,7 +245,6 @@ public class MainActivity extends BaseActivity implements Action1<Throwable>, Ha
private AvatarWithBarsViewModel avatarInHeader;
private AlertDialog faintDialog;
private AvatarView sideAvatarView;
private AvatarView dialogAvatarView;
private Date lastSync;
private TutorialView activeTutorialView;
private boolean isloadingContent;
@ -325,15 +327,6 @@ public class MainActivity extends BaseActivity implements Action1<Throwable>, Ha
return result;
}
private int getNavigationBarHeight() {
int result = 0;
int resourceId = getResources().getIdentifier("navigation_bar_height", "dimen", "android");
if (resourceId > 0) {
result = getResources().getDimensionPixelSize(resourceId);
}
return result;
}
@Override
protected void injectActivity(AppComponent component) {
component.inject(this);
@ -374,9 +367,7 @@ public class MainActivity extends BaseActivity implements Action1<Throwable>, Ha
AlertDialog dialog = new AlertDialog.Builder(MainActivity.this)
.setTitle(getString(R.string.warning))
.setMessage(R.string.dont_keep_activities_warning)
.setNeutralButton(R.string.close, (warningDialog, which) -> {
warningDialog.dismiss();
})
.setNeutralButton(R.string.close, (warningDialog, which) -> warningDialog.dismiss())
.setPositiveButton(R.string.open_settings, (hatchingDialog, which) -> {
showDeveloperOptionsScreen();
hatchingDialog.dismiss();
@ -1113,9 +1104,7 @@ public class MainActivity extends BaseActivity implements Action1<Throwable>, Ha
);
} else {
buyRewardUseCase.observable(new BuyRewardUseCase.RequestValues(event.Reward))
.subscribe(res -> {
onTaskDataReceived(res, event.Reward);
}, error -> {
.subscribe(res -> onTaskDataReceived(res, event.Reward), error -> {
});
}
@ -1139,17 +1128,15 @@ public class MainActivity extends BaseActivity implements Action1<Throwable>, Ha
@Subscribe
public void openMysteryItem(OpenMysteryItemEvent event) {
apiClient.openMysteryItem()
.subscribe(mysteryItem -> {
apiClient.retrieveUser(false)
.subscribe(new HabitRPGUserCallback(user1 -> {
OpenedMysteryItemEvent openedEvent = new OpenedMysteryItemEvent();
openedEvent.numberLeft = user1.getPurchased().getPlan().mysteryItems.size();
openedEvent.mysteryItem = mysteryItem;
EventBus.getDefault().post(openedEvent);
MainActivity.this.onUserReceived(user1);
}), throwable -> {
});
}, throwable -> {
.subscribe(mysteryItem -> apiClient.retrieveUser(false)
.subscribe(new HabitRPGUserCallback(user1 -> {
OpenedMysteryItemEvent openedEvent = new OpenedMysteryItemEvent();
openedEvent.numberLeft = user1.getPurchased().getPlan().mysteryItems.size();
openedEvent.mysteryItem = mysteryItem;
EventBus.getDefault().post(openedEvent);
MainActivity.this.onUserReceived(user1);
}), throwable -> {
}), throwable -> {
});
}
@ -1198,15 +1185,13 @@ public class MainActivity extends BaseActivity implements Action1<Throwable>, Ha
AlertDialog dialog = new AlertDialog.Builder(MainActivity.this)
.setTitle(getString(R.string.hatched_pet_title, potionName, eggName))
.setView(petWrapper)
.setPositiveButton(R.string.close, (hatchingDialog, which) -> {
hatchingDialog.dismiss();
})
.setPositiveButton(R.string.close, (hatchingDialog, which) -> hatchingDialog.dismiss())
.setNeutralButton(R.string.share, (hatchingDialog, which) -> {
ShareEvent event1 = new ShareEvent();
event1.sharedMessage = getString(R.string.share_hatched, potionName, eggName) + " https://habitica.com/social/hatch-pet";
Bitmap sharedImage = Bitmap.createBitmap(140, 140, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(sharedImage);
canvas.drawColor(getResources().getColor(R.color.brand_300));
canvas.drawColor(ContextCompat.getColor(this, R.color.brand_300));
petImageView.getDrawable().draw(canvas);
event1.shareImage = sharedImage;
EventBus.getDefault().post(event1);
@ -1249,7 +1234,7 @@ public class MainActivity extends BaseActivity implements Action1<Throwable>, Ha
event1.sharedMessage = getString(R.string.share_raised, colorName, animalName) + " https://habitica.com/social/raise-pet";
Bitmap sharedImage = Bitmap.createBitmap(99, 99, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(sharedImage);
canvas.drawColor(getResources().getColor(R.color.brand_300));
canvas.drawColor(ContextCompat.getColor(this, R.color.brand_300));
mountImageView.getDrawable().draw(canvas);
event1.shareImage = sharedImage;
EventBus.getDefault().post(event1);
@ -1322,7 +1307,7 @@ public class MainActivity extends BaseActivity implements Action1<Throwable>, Ha
hpBar.setPartyMembers(true);
AvatarWithBarsViewModel.setHpBarData(hpBar, user.getStats(), this);
dialogAvatarView = (AvatarView) customView.findViewById(R.id.avatarView);
AvatarView dialogAvatarView = (AvatarView) customView.findViewById(R.id.avatarView);
dialogAvatarView.setUser(user);
}
@ -1542,15 +1527,6 @@ public class MainActivity extends BaseActivity implements Action1<Throwable>, Ha
}
}
public void closeDrawer(int gravity) {
this.drawer.closeDrawer();
}
public void openDrawer(int gravity) {
EventBus.getDefault().post(new ToggledEditTagsEvent(false));
this.drawer.openDrawer();
}
@Subscribe
public void onEvent(OpenFullProfileCommand cmd) {
if (cmd.MemberId.equals("system"))

View file

@ -154,12 +154,20 @@ public class CustomizationSetupAdapter extends RecyclerView.Adapter<RecyclerView
imageView.setImageDrawable(null);
}
textView.setText(customization.text);
if (isCustomizationActive(customization)) {
imageView.setBackgroundResource(R.drawable.setup_customization_bg_selected);
textView.setTextColor(ContextCompat.getColor(context, R.color.white));
if ("flowers".equals(customization.subcategory)) {
if (isCustomizationActive(customization)) {
imageView.setBackgroundResource(R.drawable.setup_customization_flower_bg_selected);
} else {
imageView.setBackgroundResource(R.drawable.setup_customization_flower_bg);
}
} else {
imageView.setBackgroundResource(R.drawable.setup_customization_bg);
textView.setTextColor(ContextCompat.getColor(context, R.color.white_50_alpha));
if (isCustomizationActive(customization)) {
imageView.setBackgroundResource(R.drawable.setup_customization_bg_selected);
textView.setTextColor(ContextCompat.getColor(context, R.color.white));
} else {
imageView.setBackgroundResource(R.drawable.setup_customization_bg);
textView.setTextColor(ContextCompat.getColor(context, R.color.white_50_alpha));
}
}
}
@ -167,7 +175,11 @@ public class CustomizationSetupAdapter extends RecyclerView.Adapter<RecyclerView
public void onClick(View v) {
if (customization.path.equals("glasses")) {
EquipCommand command = new EquipCommand();
command.key = customization.key;
if (customization.key.length() == 0) {
command.key = user.getItems().getGear().getEquipped().getEyeWear();
} else {
command.key = customization.key;
}
command.type = "equipped";
EventBus.getDefault().post(command);
} else {

View file

@ -13,6 +13,7 @@ import com.raizlabs.android.dbflow.sql.language.Select;
import android.content.Context;
import android.databinding.ObservableArrayList;
import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
@ -40,7 +41,7 @@ public abstract class BaseTasksRecyclerViewAdapter<VH extends BaseTaskViewHolder
private TaskFilterHelper taskFilterHelper;
public BaseTasksRecyclerViewAdapter(String taskType, TaskFilterHelper taskFilterHelper, int layoutResource,
Context newContext, String userID) {
Context newContext, @Nullable String userID) {
this.setHasStableIds(true);
this.taskType = taskType;
this.context = newContext.getApplicationContext();

View file

@ -29,7 +29,7 @@ public class RewardsRecyclerViewAdapter extends BaseTasksRecyclerViewAdapter<Rew
private ApiClient apiClient;
public RewardsRecyclerViewAdapter(String taskType, TaskFilterHelper taskFilterHelper, int layoutResource, Context newContext, HabitRPGUser user, ApiClient apiClient) {
super(taskType, taskFilterHelper, layoutResource, newContext, user.getId());
super(taskType, taskFilterHelper, layoutResource, newContext, user != null ? user.getId() : null);
this.user = user;
this.apiClient = apiClient;
this.contentCache = new ContentCache(apiClient);
@ -40,7 +40,7 @@ public class RewardsRecyclerViewAdapter extends BaseTasksRecyclerViewAdapter<Rew
return new RewardViewHolder(getContentView(parent));
}
public void loadEquipmentRewards() {
private void loadEquipmentRewards() {
if (apiClient != null) {
apiClient.getInventoryBuyableGear()
@ -54,9 +54,9 @@ public class RewardsRecyclerViewAdapter extends BaseTasksRecyclerViewAdapter<Rew
if (user.getFlags().getArmoireEnabled()) {
itemKeys.add("armoire");
}
return Observable.create((Observable.OnSubscribe<List<Task>>) subscriber -> {
contentCache.getItemDataList(itemKeys, obj -> {
ArrayList<Task> buyableItems = new ArrayList<>();
return Observable.create((Observable.OnSubscribe<List<Task>>) subscriber -> contentCache.getItemDataList(itemKeys, obj -> {
ArrayList<Task> buyableItems = new ArrayList<>();
if (obj != null) {
for (ItemData item : obj) {
Task reward = new Task();
reward.text = item.text;
@ -66,7 +66,7 @@ public class RewardsRecyclerViewAdapter extends BaseTasksRecyclerViewAdapter<Rew
reward.specialTag = "item";
reward.setId(item.key);
if (item.key.equals("armoire")) {
if ("armoire".equals(item.key)) {
if (user.getFlags().getArmoireEmpty()) {
reward.notes = context.getResources().getString(R.string.armoireNotesEmpty);
} else {
@ -81,10 +81,10 @@ public class RewardsRecyclerViewAdapter extends BaseTasksRecyclerViewAdapter<Rew
buyableItems.add(reward);
}
subscriber.onNext(buyableItems);
subscriber.onCompleted();
});
});
}
subscriber.onNext(buyableItems);
subscriber.onCompleted();
}));
})
.subscribe(items -> {
this.filteredContent.addAll(items);

View file

@ -17,13 +17,14 @@ import android.widget.CheckBox;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import rx.functions.Action1;
class ChallegeFilterDialogHolder {
class ChallengeFilterDialogHolder {
@BindView(R.id.challenge_filter_recycler_view)
RecyclerView groupRecyclerView;
@ -51,7 +52,7 @@ class ChallegeFilterDialogHolder {
private ChallengesFilterRecyclerViewAdapter adapter;
private ChallegeFilterDialogHolder(View view, Activity context) {
private ChallengeFilterDialogHolder(View view, Activity context) {
this.context = context;
ButterKnife.bind(this, view);
}
@ -61,12 +62,12 @@ class ChallegeFilterDialogHolder {
Action1<ChallengeFilterOptions> selectedGroupsCallback) {
View dialogLayout = activity.getLayoutInflater().inflate(R.layout.dialog_challenge_filter, null);
ChallegeFilterDialogHolder challegeFilterDialogHolder = new ChallegeFilterDialogHolder(dialogLayout, activity);
ChallengeFilterDialogHolder challengeFilterDialogHolder = new ChallengeFilterDialogHolder(dialogLayout, activity);
AlertDialog.Builder builder = new AlertDialog.Builder(activity)
.setView(dialogLayout);
challegeFilterDialogHolder.bind(builder.show(), challengesViewed, currentFilter, selectedGroupsCallback);
challengeFilterDialogHolder.bind(builder.show(), challengesViewed, currentFilter, selectedGroupsCallback);
}
public void bind(AlertDialog dialog, List<Challenge> challengesViewed,
@ -97,16 +98,19 @@ class ChallegeFilterDialogHolder {
}
private Collection<Group> getGroups(@Nullable List<Challenge> challenges){
HashMap<String, Group> groupMap = new HashMap<>();
Map<String, Group> groupMap = new HashMap<>();
if (challenges != null) {
challenges.stream().filter(c -> !groupMap.containsKey(c.groupName)).forEach(c -> {
Group g = new Group();
g.id = c.groupId;
g.name = c.groupName;
for (Challenge challenge : challenges) {
if (groupMap.containsKey(challenge.groupName)) {
continue;
}
Group group = new Group();
group.id = challenge.groupId;
group.name = challenge.groupName;
groupMap.put(c.groupName, g);
});
groupMap.put(challenge.groupName, group);
}
}
return groupMap.values();

View file

@ -10,7 +10,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import com.habitrpg.android.habitica.HabiticaApplication;
import com.habitrpg.android.habitica.R;
import com.habitrpg.android.habitica.components.AppComponent;
import com.habitrpg.android.habitica.ui.adapter.social.ChallengesListViewAdapter;
@ -124,7 +123,7 @@ public class ChallengeListFragment extends BaseMainFragment implements SwipeRefr
challengeFilterLayout.setVisibility(withFilter?View.VISIBLE:View.GONE);
challengeFilterLayout.setClickable(true);
challengeFilterLayout.setOnClickListener(view -> ChallegeFilterDialogHolder.showDialog(getActivity(), currentChallengesInView, lastFilterOptions, filterOptions -> {
challengeFilterLayout.setOnClickListener(view -> ChallengeFilterDialogHolder.showDialog(getActivity(), currentChallengesInView, lastFilterOptions, filterOptions -> {
challengeAdapter.setFilterByGroups(filterOptions);
this.lastFilterOptions = filterOptions;
}));

View file

@ -127,6 +127,12 @@ public class TaskRecyclerViewFragment extends BaseFragment implements View.OnCli
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
if (classType.equals(Task.TYPE_DAILY)) {
if (user.getPreferences().getDailyDueDefaultView()) {
taskFilterHelper.setActiveFilter(Task.TYPE_DAILY, Task.FILTER_ACTIVE);
}
}
mItemTouchCallback = new ItemTouchHelper.Callback() {
private Integer mFromPosition = null;

View file

@ -1,28 +1,5 @@
package com.habitrpg.android.habitica.ui.fragments.tasks;
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;
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.events.commands.RefreshUserCommand;
import com.habitrpg.android.habitica.helpers.TaskFilterHelper;
import com.habitrpg.android.habitica.ui.activities.MainActivity;
import com.habitrpg.android.habitica.ui.activities.TaskFormActivity;
import com.habitrpg.android.habitica.ui.adapter.tasks.BaseTasksRecyclerViewAdapter;
import com.habitrpg.android.habitica.ui.adapter.tasks.DailiesRecyclerViewHolder;
import com.habitrpg.android.habitica.ui.adapter.tasks.SortableTasksRecyclerViewAdapter;
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
import com.habitrpg.android.habitica.ui.views.tasks.TaskFilterDialog;
import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser;
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task;
import org.greenrobot.eventbus.Subscribe;
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
@ -43,8 +20,34 @@ import android.view.ViewGroup;
import android.widget.RelativeLayout;
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;
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.events.commands.RefreshUserCommand;
import com.habitrpg.android.habitica.events.commands.UpdateUserCommand;
import com.habitrpg.android.habitica.helpers.TaskFilterHelper;
import com.habitrpg.android.habitica.ui.activities.MainActivity;
import com.habitrpg.android.habitica.ui.activities.TaskFormActivity;
import com.habitrpg.android.habitica.ui.adapter.tasks.BaseTasksRecyclerViewAdapter;
import com.habitrpg.android.habitica.ui.adapter.tasks.DailiesRecyclerViewHolder;
import com.habitrpg.android.habitica.ui.adapter.tasks.SortableTasksRecyclerViewAdapter;
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment;
import com.habitrpg.android.habitica.ui.views.tasks.TaskFilterDialog;
import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser;
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.util.HashMap;
import java.util.Locale;
import java.util.Objects;
import java.util.Map;
import javax.inject.Inject;
@ -81,20 +84,20 @@ public class TasksFragment extends BaseMainFragment {
viewPager = (ViewPager) v.findViewById(R.id.view_pager);
View view = inflater.inflate(R.layout.floating_menu_tasks, floatingMenuWrapper, true);
if (Objects.equals(view.getClass(), FloatingActionMenu.class)) {
if (FloatingActionMenu.class.equals(view.getClass())) {
floatingMenu = (FloatingActionMenu) view;
} else {
ViewGroup frame = (ViewGroup) view;
floatingMenu = (FloatingActionMenu) frame.findViewById(R.id.fab_menu);
}
FloatingActionButton habit_fab = (FloatingActionButton) floatingMenu.findViewById(R.id.fab_new_habit);
habit_fab.setOnClickListener(v1 -> openNewTaskActivity("habit"));
habit_fab.setOnClickListener(v1 -> openNewTaskActivity(Task.TYPE_HABIT));
FloatingActionButton daily_fab = (FloatingActionButton) floatingMenu.findViewById(R.id.fab_new_daily);
daily_fab.setOnClickListener(v1 -> openNewTaskActivity("daily"));
daily_fab.setOnClickListener(v1 -> openNewTaskActivity(Task.TYPE_DAILY));
FloatingActionButton todo_fab = (FloatingActionButton) floatingMenu.findViewById(R.id.fab_new_todo);
todo_fab.setOnClickListener(v1 -> openNewTaskActivity("todo"));
todo_fab.setOnClickListener(v1 -> openNewTaskActivity(Task.TYPE_TODO));
FloatingActionButton reward_fab = (FloatingActionButton) floatingMenu.findViewById(R.id.fab_new_reward);
reward_fab.setOnClickListener(v1 -> openNewTaskActivity("reward"));
reward_fab.setOnClickListener(v1 -> openNewTaskActivity(Task.TYPE_REWARD));
floatingMenu.setOnMenuButtonLongClickListener(this::onFloatingMenuLongClicked);
if (this.activity != null) {
@ -172,19 +175,39 @@ public class TasksFragment extends BaseMainFragment {
}
dialog.setListener((activeTaskFilter, activeTags) -> {
int activePos = viewPager.getCurrentItem();
if (activePos >= 1) {
if (activePos >= 1 && viewFragmentsDictionary.get(activePos-1).recyclerAdapter != null) {
viewFragmentsDictionary.get(activePos-1).recyclerAdapter.filter();
}
getActiveFragment().setActiveFilter(activeTaskFilter);
if (activePos < viewPager.getAdapter().getCount()) {
if (activePos < viewPager.getAdapter().getCount() && viewFragmentsDictionary.get(activePos+1).recyclerAdapter != null) {
viewFragmentsDictionary.get(activePos+1).recyclerAdapter.filter();
}
if (getActiveFragment() != null) {
getActiveFragment().setActiveFilter(activeTaskFilter);
if (Task.TYPE_DAILY.equals(getActiveFragment().classType)) {
updateDailyDueDefaultSetting(activeTaskFilter);
}
}
taskFilterHelper.setTags(activeTags);
updateFilterIcon();
});
dialog.show();
}
private void updateDailyDueDefaultSetting(String activeTaskFilter) {
Boolean showDueDefault = Task.FILTER_ACTIVE.equals(activeTaskFilter);
if (user != null) {
if (user.getPreferences().getDailyDueDefaultView() != showDueDefault) {
UpdateUserCommand command = new UpdateUserCommand();
Map<String, Object> data = new HashMap<>();
data.put("preferences.dailyDueDefaultView", showDueDefault);
command.updateData = data;
EventBus.getDefault().post(command);
}
}
}
public void refresh() {
if (getActiveFragment() != null) {
getActiveFragment().onRefresh();
@ -410,8 +433,11 @@ public class TasksFragment extends BaseMainFragment {
}
private void switchToTaskTab(String taskType) {
if (taskType == null) {
return;
}
for (int index = 0; index < viewFragmentsDictionary.size(); index++) {
if (viewFragmentsDictionary.get(index).getClassName().equals(taskType) && viewPager != null) {
if (taskType.equals(viewFragmentsDictionary.get(index).getClassName()) && viewPager != null) {
viewPager.setCurrentItem(index);
}
}

View file

@ -25,13 +25,13 @@ public class Preferences extends BaseModel {
@ForeignKey(references = {@ForeignKeyReference(columnName = "suppressedModals_user_id",
columnType = String.class,
foreignColumnName = "userId")})
public SuppressedModals suppressModals;
SuppressedModals suppressModals;
@Column
@PrimaryKey
@NotNull
String user_id;
@Column
private boolean costume, toolbarCollapsed, advancedCollapsed, tagsCollapsed, newTaskEdit, disableClasses, stickyHeader, sleep, hideHeader;
private boolean costume, toolbarCollapsed, advancedCollapsed, tagsCollapsed, newTaskEdit, disableClasses, stickyHeader, sleep, hideHeader, dailyDueDefaultView;
@Column
private String allocationMode, shirt, skin, size, background, chair, language, sound;
@Column
@ -235,4 +235,12 @@ public class Preferences extends BaseModel {
super.save();
}
public boolean getDailyDueDefaultView() {
return dailyDueDefaultView;
}
public void setDailyDueDefaultView(boolean dailyDueDefaultView) {
this.dailyDueDefaultView = dailyDueDefaultView;
}
}