mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-18 03:39:00 +00:00
initialize fabric / send events from viewAdapter / change AddTaskDialog to use taskId / change menu background color
This commit is contained in:
parent
e52f10b83c
commit
ee48c6adfa
10 changed files with 198 additions and 115 deletions
|
|
@ -36,7 +36,8 @@
|
|||
</activity>
|
||||
<activity
|
||||
android:name=".prefs.PrefsActivity"
|
||||
android:label="@string/PS_param_title">
|
||||
android:label="@string/PS_param_title"
|
||||
android:theme="@style/AppThemeWithActionBar">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
</intent-filter>
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_text"
|
||||
android:textColor="@android:color/black"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
||||
|
||||
|
||||
|
|
@ -64,19 +65,22 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_note"
|
||||
android:textColor="@android:color/black"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
||||
|
||||
<EditText
|
||||
<com.rengwuxian.materialedittext.MaterialEditText
|
||||
android:id="@+id/ET_taskNote"
|
||||
android:layout_width="0dip"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
|
||||
android:ems="10"
|
||||
|
||||
android:hint="@string/task_note_hint"
|
||||
android:inputType="textCapSentences|textMultiLine"
|
||||
android:minLines="2">
|
||||
android:minLines="2"
|
||||
|
||||
</EditText>
|
||||
app:met_floatingLabel="normal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
|
@ -109,6 +113,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_value"
|
||||
android:textColor="@android:color/black"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
||||
|
||||
<EditText
|
||||
|
|
@ -140,6 +145,7 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/task_duedate"
|
||||
android:textColor="@android:color/black"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge" />
|
||||
|
||||
<TextView
|
||||
|
|
|
|||
|
|
@ -1,31 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<android.support.design.widget.CoordinatorLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/relativeLayoutView"
|
||||
android:id="@+id/coordinatorLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/recyclerView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scrollbarSize="3dp"
|
||||
android:scrollbarThumbVertical="@color/md_grey_500"
|
||||
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
<android.support.design.widget.FloatingActionButton
|
||||
android:id="@+id/fab"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_margin="16dp"
|
||||
|
||||
app:backgroundTint="@color/brand"
|
||||
app:fabSize="normal"
|
||||
android:layout_alignBottom="@id/recyclerView"
|
||||
android:layout_alignParentRight="true" />
|
||||
</RelativeLayout>
|
||||
|
||||
app:layout_anchor="@id/coordinatorLayout"
|
||||
app:layout_anchorGravity="bottom|right|end"
|
||||
android:layout_gravity="bottom|right" />
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
<item
|
||||
android:id="@+id/action_toggle_sleep"
|
||||
android:orderInCategory="103"
|
||||
|
||||
android:title="Toggle Sleep"
|
||||
/>
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<!-- ...and here we setting appcompat’s color theming attrs -->
|
||||
<item name="colorPrimary">@color/brand</item>
|
||||
<item name="colorPrimaryDark">@color/brand</item>
|
||||
<item name="colorAccent">@color/md_amber_200</item>
|
||||
<item name="colorAccent">@color/md_teal_300</item>
|
||||
|
||||
<!-- MaterialDrawer specific values -->
|
||||
<item name="material_drawer_background">@color/material_drawer_background</item>
|
||||
|
|
@ -31,6 +31,9 @@
|
|||
<item name="material_drawer_selected">@color/material_drawer_selected</item>
|
||||
<item name="material_drawer_selected_text">@color/brand</item>
|
||||
<item name="material_drawer_header_selection_text">@color/material_drawer_header_selection_text</item>
|
||||
|
||||
|
||||
<item name="actionOverflowMenuStyle">@style/PopupTheme</item>
|
||||
</style>
|
||||
|
||||
<style name="AppThemeWithActionBar" parent="AppTheme">
|
||||
|
|
@ -43,13 +46,10 @@
|
|||
<item name="android:textColorPrimary">@android:color/black</item>
|
||||
</style>
|
||||
|
||||
<style name="TextReservedToPremium">
|
||||
<item name="android:textStyle">italic</item>
|
||||
<item name="android:textAppearance">@android:style/TextAppearance.Small.Inverse</item>
|
||||
<item name="android:gravity">center_vertical</item>
|
||||
<item name="android:textColor">@color/card_light_text</item>
|
||||
<style name="PopupTheme" parent="Widget.AppCompat.PopupMenu.Overflow">
|
||||
<item name="android:popupBackground">@color/accent_color</item>
|
||||
</style>
|
||||
|
||||
</style>
|
||||
<style name="CardText">
|
||||
<item name="android:textSize">@dimen/card_small_text</item>
|
||||
<item name="android:textColor">@color/card_text</item>
|
||||
|
|
@ -61,7 +61,6 @@
|
|||
<item name="android:textColor">@color/card_light_text</item>
|
||||
</style>
|
||||
|
||||
|
||||
<style name="CardTitle" parent="@style/CardText">
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
|
|
@ -74,12 +73,7 @@
|
|||
<!-- <item name="android:textAllCaps">true</item>
|
||||
<item name="android:fontFamily">sans-serif-condensed</item>-->
|
||||
</style>
|
||||
<style name="PopupTheme" parent="android:Theme.Holo.Light.Dialog">
|
||||
<item name="android:windowIsFloating">false</item>
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<item name="android:windowSoftInputMode">stateAlwaysHidden</item>
|
||||
<item name="android:windowIsTranslucent">true</item>
|
||||
</style>
|
||||
|
||||
|
||||
<style name="Widget.ProgressBar.Horizontal" parent="@android:style/Widget.ProgressBar">
|
||||
<item name="android:maxHeight">1.0dip</item>
|
||||
|
|
|
|||
|
|
@ -151,14 +151,8 @@ public class APIHelper implements ErrorHandler, Profiler {
|
|||
this.apiService.getUser(callback);
|
||||
}
|
||||
|
||||
public void updateTaskDirection(String id, String direction, TaskScoringCallback callback) {
|
||||
TaskDirection td;
|
||||
if(direction.equals(TaskDirection.up.toString())) {
|
||||
td = TaskDirection.up;
|
||||
} else {
|
||||
td = TaskDirection.down;
|
||||
}
|
||||
this.apiService.postTaskDirection(id, td.toString(), callback);
|
||||
public void updateTaskDirection(String id, TaskDirection direction, TaskScoringCallback callback) {
|
||||
this.apiService.postTaskDirection(id, direction.toString(), callback);
|
||||
}
|
||||
public void registerUser(View btnClicked, String username, String email, String password, String confirmPassword) {
|
||||
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ import com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitType;
|
|||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Reward;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.ToDo;
|
||||
import com.magicmicky.habitrpgwrapper.lib.utils.DaysUtils;
|
||||
import com.raizlabs.android.dbflow.sql.language.Select;
|
||||
|
||||
import static com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitType.*;
|
||||
import static com.magicmicky.habitrpgwrapper.lib.models.tasks.HabitType.habit;
|
||||
|
|
@ -69,7 +70,7 @@ public class AddTaskDialog extends DialogFragment implements OnDateSetListener,
|
|||
private Checklist mChecklist = new Checklist() {
|
||||
|
||||
@Override
|
||||
protected HabitType getType() {
|
||||
public HabitType getType() {
|
||||
return daily;
|
||||
}
|
||||
};
|
||||
|
|
@ -106,10 +107,10 @@ public class AddTaskDialog extends DialogFragment implements OnDateSetListener,
|
|||
this.taskValue = (EditText) mainView.findViewById(R.id.ET_taskValue);
|
||||
|
||||
Bundle b = this.getArguments();
|
||||
int pos = b.getInt("pos", -1);
|
||||
String taskId = b.getString("taskId", "");
|
||||
String type;
|
||||
String text;
|
||||
if (pos != -1) {
|
||||
if (!taskId.isEmpty()) {
|
||||
this.mEditMode = true;
|
||||
}
|
||||
|
||||
|
|
@ -141,25 +142,31 @@ public class AddTaskDialog extends DialogFragment implements OnDateSetListener,
|
|||
} else if (hType == reward) {
|
||||
LinearLayout value = (LinearLayout) mainView.findViewById(R.id.value);
|
||||
value.setVisibility(View.VISIBLE);
|
||||
|
||||
}
|
||||
|
||||
if (mEditMode) {
|
||||
// this.reconstructObjectFrom(json);
|
||||
/*switch (hType) {
|
||||
switch (hType) {
|
||||
case todo:
|
||||
this.populate(((MainActivityOld) getActivity()).getTodo(pos));
|
||||
ToDo todo = new Select().from(ToDo.class).byIds(taskId).querySingle();
|
||||
|
||||
this.populate(todo);
|
||||
break;
|
||||
case daily:
|
||||
this.populate(((MainActivityOld) getActivity()).getDaily(pos));
|
||||
Daily daily = new Select().from(Daily.class).byIds(taskId).querySingle();
|
||||
|
||||
this.populate(daily);
|
||||
break;
|
||||
case reward:
|
||||
this.populate(((MainActivityOld) getActivity()).getReward(pos));
|
||||
Reward reward = new Select().from(Reward.class).byIds(taskId).querySingle();
|
||||
|
||||
this.populate(reward);
|
||||
break;
|
||||
case habit:
|
||||
this.populate(((MainActivityOld) getActivity()).getHabit(pos));
|
||||
Habit habit = new Select().from(Habit.class).byIds(taskId).querySingle();
|
||||
|
||||
this.populate(habit);
|
||||
break;
|
||||
}*/
|
||||
}
|
||||
}
|
||||
builder.setTitle(getString(R.string.new_task, hType.toString()))
|
||||
.setPositiveButton(R.string.dialog_confirm_button, new DialogInterface.OnClickListener() {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.habitrpg.android.habitica;
|
|||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.support.design.widget.Snackbar;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentPagerAdapter;
|
||||
import android.support.v7.app.ActionBar;
|
||||
|
|
@ -14,16 +15,12 @@ import android.view.View;
|
|||
import android.widget.AdapterView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.crashlytics.android.Crashlytics;
|
||||
import com.crashlytics.android.core.CrashlyticsCore;
|
||||
import com.github.florent37.materialviewpager.MaterialViewPager;
|
||||
import com.habitrpg.android.habitica.callbacks.HabitRPGUserCallback;
|
||||
import com.habitrpg.android.habitica.callbacks.TaskCreationCallback;
|
||||
import com.habitrpg.android.habitica.callbacks.TaskDeletionCallback;
|
||||
import com.habitrpg.android.habitica.callbacks.TaskScoringCallback;
|
||||
import com.habitrpg.android.habitica.callbacks.TaskUpdateCallback;
|
||||
import com.habitrpg.android.habitica.events.AddTaskTappedEvent;
|
||||
import com.habitrpg.android.habitica.events.HabitScoreEvent;
|
||||
import com.habitrpg.android.habitica.events.TaskLongPressedEvent;
|
||||
import com.habitrpg.android.habitica.events.TaskTappedEvent;
|
||||
import com.habitrpg.android.habitica.events.*;
|
||||
import com.habitrpg.android.habitica.prefs.PrefsActivity;
|
||||
import com.habitrpg.android.habitica.ui.AvatarWithBarsViewModel;
|
||||
import com.habitrpg.android.habitica.ui.EditTextDrawer;
|
||||
|
|
@ -32,6 +29,7 @@ import com.habitrpg.android.habitica.ui.fragments.TaskRecyclerViewFragment;
|
|||
import com.instabug.wrapper.support.activity.InstabugAppCompatActivity;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.Tag;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.TaskDirection;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.TaskDirectionData;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Daily;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Habit;
|
||||
|
|
@ -59,13 +57,15 @@ import java.util.Map;
|
|||
import butterknife.ButterKnife;
|
||||
import butterknife.InjectView;
|
||||
import de.greenrobot.event.EventBus;
|
||||
import io.fabric.sdk.android.Fabric;
|
||||
import retrofit.Callback;
|
||||
import retrofit.RetrofitError;
|
||||
import retrofit.client.Response;
|
||||
|
||||
public class MainActivity extends InstabugAppCompatActivity implements OnTaskCreationListener, HabitRPGUserCallback.OnUserReceived,
|
||||
TaskScoringCallback.OnTaskScored, TaskCreationCallback.OnHabitCreated, TaskUpdateCallback.OnHabitUpdated, TaskDeletionCallback.OnTaskDeleted, Callback<Void>,
|
||||
public class MainActivity extends InstabugAppCompatActivity implements HabitRPGUserCallback.OnUserReceived,
|
||||
TaskScoringCallback.OnTaskScored, Callback<Void>, OnTaskCreationListener,
|
||||
FlowContentObserver.OnSpecificModelStateChangedListener {
|
||||
static final int SETTINGS = 11;
|
||||
static final int ABOUT = 12;
|
||||
|
||||
//region View Elements
|
||||
|
|
@ -105,6 +105,12 @@ public class MainActivity extends InstabugAppCompatActivity implements OnTaskCre
|
|||
// Receive Events
|
||||
EventBus.getDefault().register(this);
|
||||
|
||||
// Initialize Crashlytics
|
||||
Crashlytics crashlytics = new Crashlytics.Builder()
|
||||
.core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
|
||||
.build();
|
||||
Fabric.with(this, crashlytics);
|
||||
|
||||
this.hostConfig = PrefsActivity.fromContext(this);
|
||||
if (hostConfig == null || hostConfig.getApi() == null || hostConfig.getApi().equals("") || hostConfig.getUser() == null || hostConfig.getUser().equals("")) {
|
||||
startActivity(new Intent(this, LoginActivity.class));
|
||||
|
|
@ -161,7 +167,7 @@ public class MainActivity extends InstabugAppCompatActivity implements OnTaskCre
|
|||
|
||||
new DividerDrawerItem(),
|
||||
new SecondaryDrawerItem().withName("News"),
|
||||
new SecondaryDrawerItem().withName("Settings"),
|
||||
new SecondaryDrawerItem().withName("Settings").withIdentifier(SETTINGS),
|
||||
new SecondaryDrawerItem().withName("About").withIdentifier(ABOUT)
|
||||
|
||||
)
|
||||
|
|
@ -172,6 +178,10 @@ public class MainActivity extends InstabugAppCompatActivity implements OnTaskCre
|
|||
// do something with the clicked item :D
|
||||
|
||||
switch (drawerItem.getIdentifier()) {
|
||||
case SETTINGS:
|
||||
startActivity(new Intent(MainActivity.this, PrefsActivity.class));
|
||||
return false;
|
||||
|
||||
case ABOUT:
|
||||
startActivity(new Intent(MainActivity.this, AboutActivity.class));
|
||||
|
||||
|
|
@ -235,20 +245,94 @@ public class MainActivity extends InstabugAppCompatActivity implements OnTaskCre
|
|||
super.onDestroy();
|
||||
}
|
||||
|
||||
public void onEvent(TaskTappedEvent event){
|
||||
Toast.makeText(this, event.Task.text, Toast.LENGTH_SHORT).show();
|
||||
private void showSnackbar(String content) {
|
||||
showSnackbar(content, false);
|
||||
}
|
||||
|
||||
public void onEvent(TaskLongPressedEvent event){
|
||||
Toast.makeText(this, "LongPress: " +event.Task.text, Toast.LENGTH_SHORT).show();
|
||||
private void showSnackbar(String content, boolean negative) {
|
||||
Fragment f = ViewFragmentsDictionary.get(materialViewPager.getViewPager().getCurrentItem());
|
||||
|
||||
Snackbar snackbar = Snackbar.make(f.getView().findViewById(R.id.fab), content, Snackbar.LENGTH_LONG);
|
||||
|
||||
if (negative) {
|
||||
View snackbarView = snackbar.getView();
|
||||
|
||||
//change Snackbar's background color;
|
||||
snackbarView.setBackgroundColor(getResources().getColor(R.color.red));
|
||||
}
|
||||
|
||||
snackbar.show();
|
||||
}
|
||||
|
||||
public void onEvent(HabitScoreEvent event){
|
||||
Toast.makeText(this, "Score Up="+event.Up+" " +event.Habit.text, Toast.LENGTH_SHORT).show();
|
||||
public void onEvent(TaskTappedEvent event) {
|
||||
Bundle b = new Bundle();
|
||||
b.putString("type", event.Task.getType().toString());
|
||||
b.putString("taskId", event.Task.getId());
|
||||
|
||||
AddTaskDialog dialog = new AddTaskDialog();
|
||||
dialog.setArguments(b);
|
||||
dialog.show(getSupportFragmentManager(), "AddTaskDialog");
|
||||
}
|
||||
|
||||
public void onEvent(AddTaskTappedEvent event){
|
||||
Toast.makeText(this, "Add Task " +event.ClassType.getSimpleName(), Toast.LENGTH_SHORT).show();
|
||||
public void onEvent(TaskLongPressedEvent event) {
|
||||
showSnackbar("LongPress: " + event.Task.text);
|
||||
}
|
||||
|
||||
public void onEvent(TodoCheckedEvent event){
|
||||
showSnackbar("ToDo Checked= "+event.ToDo.getText(), true);
|
||||
}
|
||||
|
||||
public void onEvent(HabitScoreEvent event) {
|
||||
mAPIHelper.updateTaskDirection(event.Habit.getId(), event.Up ? TaskDirection.up : TaskDirection.down, new TaskScoringCallback(this));
|
||||
}
|
||||
|
||||
public void onEvent(AddTaskTappedEvent event) {
|
||||
showSnackbar("Add Task " + event.ClassType.getSimpleName());
|
||||
}
|
||||
|
||||
public void onEvent(BuyRewardTappedEvent event) {
|
||||
showSnackbar("Buy Reward " + event.Reward.getText());
|
||||
}
|
||||
|
||||
private void notifyUser(double xp, double hp, double gold,
|
||||
double lvl, double delta) {
|
||||
StringBuilder message = new StringBuilder();
|
||||
boolean neg = false;
|
||||
if (lvl > User.getStats().getLvl()) {
|
||||
message.append(getString(R.string.lvlup));
|
||||
//If user lvl up, we need to fetch again the data from the server...
|
||||
this.mAPIHelper.retrieveUser(new HabitRPGUserCallback(this));
|
||||
User.getStats().setLvl((int) lvl);
|
||||
showSnackbar(message.toString());
|
||||
} else {
|
||||
com.magicmicky.habitrpgwrapper.lib.models.Stats stats = User.getStats();
|
||||
|
||||
if (xp > stats.getExp()) {
|
||||
message.append(" + ").append(round(xp - stats.getExp(), 2)).append(" XP");
|
||||
User.getStats().setExp(xp);
|
||||
}
|
||||
if (hp != stats.getHp()) {
|
||||
neg = true;
|
||||
message.append(" - ").append(round(stats.getHp() - hp, 2)).append(" HP");
|
||||
User.getStats().setHp(hp);
|
||||
}
|
||||
if (gold > stats.getGp()) {
|
||||
message.append(" + ").append(round(gold - stats.getGp(), 2)).append(" GP");
|
||||
stats.setGp(gold);
|
||||
} else if (gold < stats.getGp()) {
|
||||
neg = true;
|
||||
message.append(" - ").append(round(stats.getGp() - gold, 2)).append(" GP");
|
||||
stats.setGp(gold);
|
||||
}
|
||||
showSnackbar(message.toString(), neg);
|
||||
|
||||
updateUserAvatars();
|
||||
}
|
||||
}
|
||||
|
||||
static public Double round(Double value, int n) {
|
||||
double r = (Math.round(value.doubleValue() * Math.pow(10, n))) / (Math.pow(10, n));
|
||||
return Double.valueOf(r);
|
||||
}
|
||||
|
||||
public void loadTaskLists() {
|
||||
|
|
@ -270,6 +354,7 @@ public class MainActivity extends InstabugAppCompatActivity implements OnTaskCre
|
|||
case 0:
|
||||
layoutOfType = R.layout.habit_item_card;
|
||||
fragment = TaskRecyclerViewFragment.newInstance(new HabitItemRecyclerViewAdapter(Habit.class, layoutOfType, HabitItemRecyclerViewAdapter.HabitViewHolder.class, context), Habit.class);
|
||||
|
||||
break;
|
||||
case 1:
|
||||
layoutOfType = R.layout.daily_item_card;
|
||||
|
|
@ -284,7 +369,7 @@ public class MainActivity extends InstabugAppCompatActivity implements OnTaskCre
|
|||
fragment = TaskRecyclerViewFragment.newInstance(new HabitItemRecyclerViewAdapter(ToDo.class, layoutOfType, HabitItemRecyclerViewAdapter.TodoViewHolder.class, context), ToDo.class);
|
||||
}
|
||||
|
||||
// ViewFragmentsDictionary.put(position, fragment);
|
||||
ViewFragmentsDictionary.put(position, fragment);
|
||||
|
||||
return fragment;
|
||||
}
|
||||
|
|
@ -308,8 +393,6 @@ public class MainActivity extends InstabugAppCompatActivity implements OnTaskCre
|
|||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
materialViewPager.getPagerTitleStrip().setViewPager(viewPager);
|
||||
|
|
@ -320,7 +403,6 @@ public class MainActivity extends InstabugAppCompatActivity implements OnTaskCre
|
|||
filterDrawer.addItems(
|
||||
new SectionDrawerItem().withName("Filter by Tag"),
|
||||
new EditTextDrawer()
|
||||
|
||||
);
|
||||
|
||||
for (Tag t : User.getTags()) {
|
||||
|
|
@ -418,49 +500,9 @@ public class MainActivity extends InstabugAppCompatActivity implements OnTaskCre
|
|||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTaskCreated(HabitItem habit) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTaskCreationFail() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTaskUpdated(HabitItem habit) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTaskUpdateFail() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTaskCreation(HabitItem task, boolean editMode) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTaskCreationFail(String message) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTaskDeleted(HabitItem deleted) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTaskDeletionFail() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTaskDataReceived(TaskDirectionData data) {
|
||||
|
||||
notifyUser(data.getExp(), data.getHp(), data.getGp(), data.getLvl(), data.getDelta());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -482,7 +524,7 @@ public class MainActivity extends InstabugAppCompatActivity implements OnTaskCre
|
|||
runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if(!onlyHeader) {
|
||||
if (!onlyHeader) {
|
||||
taskListAlreadyAdded = true;
|
||||
loadTaskLists();
|
||||
FillTagFilterDrawer();
|
||||
|
|
@ -492,4 +534,16 @@ public class MainActivity extends InstabugAppCompatActivity implements OnTaskCre
|
|||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTaskCreation(HabitItem task, boolean editMode) {
|
||||
task.save();
|
||||
|
||||
// TODO update task in list
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTaskCreationFail(String message) {
|
||||
showSnackbar(message, true);
|
||||
}
|
||||
}
|
||||
|
|
@ -27,7 +27,7 @@ public class HabitRPGUserCallback implements Callback<HabitRPGUser> {
|
|||
|
||||
@Override
|
||||
public void failure(RetrofitError error) {
|
||||
Crashlytics.logException(error);
|
||||
Crashlytics.getInstance().core.logException(error);
|
||||
|
||||
Log.w("OMG", "user failed!" + error.getMessage());
|
||||
|
||||
|
|
|
|||
|
|
@ -10,15 +10,18 @@ import android.view.ViewGroup;
|
|||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.CheckedTextView;
|
||||
import android.widget.CompoundButton;
|
||||
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.databinding.DailyItemCardBinding;
|
||||
import com.habitrpg.android.habitica.databinding.HabitItemCardBinding;
|
||||
import com.habitrpg.android.habitica.databinding.RewardItemCardBinding;
|
||||
import com.habitrpg.android.habitica.databinding.TodoItemCardBinding;
|
||||
import com.habitrpg.android.habitica.events.BuyRewardTappedEvent;
|
||||
import com.habitrpg.android.habitica.events.HabitScoreEvent;
|
||||
import com.habitrpg.android.habitica.events.TaskLongPressedEvent;
|
||||
import com.habitrpg.android.habitica.events.TaskTappedEvent;
|
||||
import com.habitrpg.android.habitica.events.TodoCheckedEvent;
|
||||
import com.habitrpg.android.habitica.ui.helpers.HabitColorHelper;
|
||||
import com.habitrpg.android.habitica.ui.helpers.ViewHelper;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Daily;
|
||||
|
|
@ -268,7 +271,7 @@ public class HabitItemRecyclerViewAdapter<THabitItem extends HabitItem>
|
|||
}
|
||||
}
|
||||
|
||||
public class TodoViewHolder extends ViewHolder<ToDo> {
|
||||
public class TodoViewHolder extends ViewHolder<ToDo> implements CompoundButton.OnCheckedChangeListener {
|
||||
|
||||
@InjectView(R.id.checkBox)
|
||||
CheckBox checkbox;
|
||||
|
|
@ -279,6 +282,8 @@ public class HabitItemRecyclerViewAdapter<THabitItem extends HabitItem>
|
|||
super(itemView);
|
||||
|
||||
binding = DataBindingUtil.bind(itemView);
|
||||
|
||||
checkbox.setOnCheckedChangeListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -292,6 +297,14 @@ public class HabitItemRecyclerViewAdapter<THabitItem extends HabitItem>
|
|||
|
||||
ViewHelper.SetBackgroundTint(checkbox, resources.getColor(btnColorRes));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
TodoCheckedEvent event = new TodoCheckedEvent();
|
||||
event.ToDo = Item;
|
||||
|
||||
EventBus.getDefault().post(event);
|
||||
}
|
||||
}
|
||||
|
||||
public class RewardViewHolder extends ViewHolder<Reward> {
|
||||
|
|
@ -301,6 +314,21 @@ public class HabitItemRecyclerViewAdapter<THabitItem extends HabitItem>
|
|||
super(itemView);
|
||||
|
||||
binding = DataBindingUtil.bind(itemView);
|
||||
|
||||
binding.btnReward.setClickable(true);
|
||||
binding.btnReward.setOnClickListener(this);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
BuyRewardTappedEvent event = new BuyRewardTappedEvent();
|
||||
|
||||
if (v == binding.btnReward) {
|
||||
event.Reward = Item;
|
||||
|
||||
EventBus.getDefault().post(event);
|
||||
} else super.onClick(v);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Reference in a new issue