diff --git a/Habitica/res/menu/menu_main_activity_new.xml b/Habitica/res/menu/menu_main_activity_new.xml
index f280e54ec..d1b7be2a1 100644
--- a/Habitica/res/menu/menu_main_activity_new.xml
+++ b/Habitica/res/menu/menu_main_activity_new.xml
@@ -8,4 +8,12 @@
android:icon="@drawable/ic_action_filter_list"
android:title="filter"
app:showAsAction="ifRoom" />
+
+
+
diff --git a/Habitica/src/com/habitrpg/android/habitica/APIHelper.java b/Habitica/src/com/habitrpg/android/habitica/APIHelper.java
index 24ae54ee5..6711702a3 100644
--- a/Habitica/src/com/habitrpg/android/habitica/APIHelper.java
+++ b/Habitica/src/com/habitrpg/android/habitica/APIHelper.java
@@ -245,6 +245,9 @@ public class APIHelper implements ErrorHandler, Profiler {
}
+ public void toggleSleep(Callback cb){
+ apiService.sleep(cb);
+ }
/*
private class ATaskGetUser extends AsyncTask {
diff --git a/Habitica/src/com/habitrpg/android/habitica/MainActivity.java b/Habitica/src/com/habitrpg/android/habitica/MainActivity.java
index 1c8ac2f9c..12a590d0d 100644
--- a/Habitica/src/com/habitrpg/android/habitica/MainActivity.java
+++ b/Habitica/src/com/habitrpg/android/habitica/MainActivity.java
@@ -250,7 +250,7 @@ public class MainActivity extends ActionBarActivity implements OnTaskCreationLis
});
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
- //HostConfig config = PrefsActivity.fromContext(this);
+
this.mAPIHelper = new APIHelper(this, hostConfig);
this.onPreResult();
mAPIHelper.retrieveUser(new HabitRPGUserCallback(this));
@@ -430,8 +430,6 @@ public class MainActivity extends ActionBarActivity implements OnTaskCreationLis
public void onUserReceived(HabitRPGUser user) {
this.user = user;
- MainActivityNew.User = user;
-
this.notifyDataChanged();
afterResults();
// checkTimeZone(habitRPGUser.getTimeZoneOffset());
diff --git a/Habitica/src/com/habitrpg/android/habitica/MainActivityNew.java b/Habitica/src/com/habitrpg/android/habitica/MainActivityNew.java
index 87dc16858..48846dc14 100644
--- a/Habitica/src/com/habitrpg/android/habitica/MainActivityNew.java
+++ b/Habitica/src/com/habitrpg/android/habitica/MainActivityNew.java
@@ -21,7 +21,9 @@ import android.widget.AdapterView;
import android.widget.Toast;
import com.github.florent37.materialviewpager.MaterialViewPager;
+import com.habitrpg.android.habitica.callbacks.HabitRPGUserCallback;
import com.habitrpg.android.habitica.databinding.SidebarHeaderBinding;
+import com.habitrpg.android.habitica.prefs.PrefsActivity;
import com.habitrpg.android.habitica.ui.AvatarWithBarsViewModel;
import com.habitrpg.android.habitica.ui.EditTextDrawer;
import com.habitrpg.android.habitica.ui.adapter.HabitItemRecyclerViewAdapter;
@@ -46,8 +48,12 @@ import java.util.Random;
import butterknife.ButterKnife;
import butterknife.InjectView;
+import retrofit.Callback;
+import retrofit.RetrofitError;
+import retrofit.client.Response;
-public class MainActivityNew extends InstabugAppCompatActivity {
+public class MainActivityNew extends InstabugAppCompatActivity
+ implements HabitRPGUserCallback.OnUserReceived, Callback {
static final int ABOUT = 12;
//region View Elements
@@ -64,10 +70,17 @@ public class MainActivityNew extends InstabugAppCompatActivity {
List TaskList = new ArrayList();
- // just to test the view
- public static HabitRPGUser User = null;
+ private HostConfig hostConfig;
+ APIHelper mAPIHelper;
- AvatarWithBarsViewModel avatarWithBarsViewModel;
+ android.support.v4.view.ViewPager viewPager;
+
+ // just to test the view
+ public HabitRPGUser User = null;
+
+ AvatarWithBarsViewModel avatarInSidebar;
+ AvatarWithBarsViewModel avatarInHeader;
+ SidebarHeaderBinding sidebarHeaderBinding;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -77,6 +90,8 @@ public class MainActivityNew extends InstabugAppCompatActivity {
// Inject Controls
ButterKnife.inject(this);
+ this.hostConfig = PrefsActivity.fromContext(this);
+
toolbar = materialViewPager.getToolbar();
setSupportActionBar(toolbar);
@@ -90,10 +105,8 @@ public class MainActivityNew extends InstabugAppCompatActivity {
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setHomeButtonEnabled(false);
- toolbar.setTitle(User.getProfile().getName() + " - Lv" + User.getStats().getLvl());
toolbar.setPadding(0, getResources().getDimensionPixelSize(R.dimen.tool_bar_top_padding), 0, 0);
-
}
materialViewPager.setBackgroundColor(getResources().getColor(R.color.white));
@@ -101,16 +114,15 @@ public class MainActivityNew extends InstabugAppCompatActivity {
View sidebarHeaderView = LayoutInflater.from(this).inflate(R.layout.sidebar_header, null, false);
- final SidebarHeaderBinding sidebarHeaderBinding = DataBindingUtil.bind(sidebarHeaderView);
+ sidebarHeaderBinding = DataBindingUtil.bind(sidebarHeaderView);
- avatarWithBarsViewModel = new AvatarWithBarsViewModel(this, sidebarHeaderView.findViewById(R.id.avatar_with_bars));
+ avatarInSidebar = new AvatarWithBarsViewModel(this, sidebarHeaderView.findViewById(R.id.avatar_with_bars));
View mPagerRootView = materialViewPager.getRootView();
- View test = mPagerRootView.findViewById(R.id.avatar_with_bars_layout);
-
- final AvatarWithBarsViewModel avatarVM = new AvatarWithBarsViewModel(this, test);
+ View avatarHeaderView = mPagerRootView.findViewById(R.id.avatar_with_bars_layout);
+ avatarInHeader = new AvatarWithBarsViewModel(this, avatarHeaderView);
drawer = new DrawerBuilder()
.withActivity(this)
@@ -118,7 +130,6 @@ public class MainActivityNew extends InstabugAppCompatActivity {
.withHeaderDivider(false)
.withTranslucentStatusBar(true)
.withAnimateDrawerItems(true)
-
.addDrawerItems(
new PrimaryDrawerItem().withName("Tasks"),
@@ -164,7 +175,6 @@ public class MainActivityNew extends InstabugAppCompatActivity {
final android.content.Context context = getApplicationContext();
-
filterDrawer = new DrawerBuilder()
.withActivity(this)
.withOnDrawerItemLongClickListener(new Drawer.OnDrawerItemLongClickListener() {
@@ -181,12 +191,51 @@ public class MainActivityNew extends InstabugAppCompatActivity {
.append(drawer);
- android.support.v4.view.ViewPager viewPager = materialViewPager.getViewPager();
+ viewPager = materialViewPager.getViewPager();
viewPager.setOffscreenPageLimit(6);
- android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
+
+ viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
+
+ @Override
+ public void onPageSelected(int position) {
+
+ Log.d("PageSelected", "P=" + position);
+
+ RecyclerViewFragment fragment = ViewFragmentsDictionary.get(position);
+
+ if (fragment == null || fragment.mRecyclerView == null)
+ return;
+
+ // fragment.mRecyclerView.smoothScrollToPosition(r.nextInt(fragment.mRecyclerView.getAdapter().getItemCount()));
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+ });
+ materialViewPager.getViewPager().setCurrentItem(1);
+
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+
+ this.mAPIHelper = new APIHelper(this, hostConfig);
+
+ mAPIHelper.retrieveUser(new HabitRPGUserCallback(this));
+ }
+
+ public void FillTasks()
+ {
+ android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
+
viewPager.setAdapter(new FragmentPagerAdapter(fragmentManager) {
int oldPosition = -1;
@@ -284,65 +333,8 @@ public class MainActivityNew extends InstabugAppCompatActivity {
});
- //mViewPager.getViewPager().setOffscreenPageLimit(mViewPager.getViewPager().getAdapter().getCount());
+
materialViewPager.getPagerTitleStrip().setViewPager(viewPager);
-
- viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
- @Override
- public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-
-
- }
-
- @Override
- public void onPageSelected(int position) {
-
- Log.d("PageSelected", "P=" + position);
-
- RecyclerViewFragment fragment = ViewFragmentsDictionary.get(position);
-
- if (fragment == null || fragment.mRecyclerView == null)
- return;
-
- // fragment.mRecyclerView.smoothScrollToPosition(r.nextInt(fragment.mRecyclerView.getAdapter().getItemCount()));
- }
-
- @Override
- public void onPageScrollStateChanged(int state) {
-
- }
- });
- materialViewPager.getViewPager().setCurrentItem(1);
-
- TaskList.addAll(User.getHabits());
- TaskList.addAll(User.getDailys());
- TaskList.addAll(User.getTodos());
- TaskList.addAll(User.getRewards());
-
-
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
-
- avatarWithBarsViewModel.UpdateData(User);
- avatarVM.UpdateData(User);
-
- android.support.v7.app.ActionBarDrawerToggle actionBarDrawerToggle = drawer.getActionBarDrawerToggle();
-
- if (actionBarDrawerToggle != null) {
- actionBarDrawerToggle.setDrawerIndicatorEnabled(true);
- }
-
- sidebarHeaderBinding.setUserName(User.getProfile().getName() + " - Lv" + User.getStats().getLvl());
-
- Double goldPoints = User.getStats().getGp();
-
- sidebarHeaderBinding.setGold("" + goldPoints.intValue());
- sidebarHeaderBinding.setSilver("" + (int) ((goldPoints - goldPoints.intValue()) * 100));
-
- FillTagFilterDrawer();
- }
- }, 100);
}
public void FillTagFilterDrawer() {
@@ -398,17 +390,84 @@ public class MainActivityNew extends InstabugAppCompatActivity {
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
- //noinspection SimplifiableIfStatement
- if (id == R.id.action_settings) {
- return true;
- }
+ switch (id) {
+ case R.id.action_search:
+ filterDrawer.openDrawer();
- if (id == R.id.action_search) {
- filterDrawer.openDrawer();
+ return true;
+ case R.id.action_toggle_sleep:
+ mAPIHelper.toggleSleep(this);
- return true;
+ User.getPreferences().setSleep(!User.getPreferences().isSleep());
+
+ updateUserAvatars();
+
+ return true;
}
return super.onOptionsItemSelected(item);
}
+
+ private void updateUserAvatars()
+ {
+ avatarInSidebar.UpdateData(User);
+ avatarInHeader.UpdateData(User);
+ }
+
+ @Override
+ public void onUserReceived(HabitRPGUser user) {
+ TaskList.clear();
+
+ User = user;
+
+ if(user == null)
+ return;
+
+ toolbar.setTitle(User.getProfile().getName() + " - Lv" + User.getStats().getLvl());
+
+ TaskList.addAll(User.getHabits());
+ TaskList.addAll(User.getDailys());
+ TaskList.addAll(User.getTodos());
+ TaskList.addAll(User.getRewards());
+
+ new Handler().postDelayed(new Runnable() {
+ @Override
+ public void run() {
+
+ FillTasks();
+
+ updateUserAvatars();
+
+ android.support.v7.app.ActionBarDrawerToggle actionBarDrawerToggle = drawer.getActionBarDrawerToggle();
+
+ if (actionBarDrawerToggle != null) {
+ actionBarDrawerToggle.setDrawerIndicatorEnabled(true);
+ }
+
+ sidebarHeaderBinding.setUserName(User.getProfile().getName() + " - Lv" + User.getStats().getLvl());
+
+ Double goldPoints = User.getStats().getGp();
+
+ sidebarHeaderBinding.setGold("" + goldPoints.intValue());
+ sidebarHeaderBinding.setSilver("" + (int) ((goldPoints - goldPoints.intValue()) * 100));
+
+ FillTagFilterDrawer();
+ }
+ }, 100);
+ }
+
+ @Override
+ public void onUserFail() {
+
+ }
+
+ @Override
+ public void success(Void aVoid, Response response) {
+
+ }
+
+ @Override
+ public void failure(RetrofitError error) {
+
+ }
}
\ No newline at end of file
diff --git a/Habitica/src/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.java b/Habitica/src/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.java
index 72c327ac8..e2984bc87 100644
--- a/Habitica/src/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.java
+++ b/Habitica/src/com/habitrpg/android/habitica/ui/AvatarWithBarsViewModel.java
@@ -67,7 +67,7 @@ public class AvatarWithBarsViewModel {
SetValueBar(hpBar, stats.getHp().floatValue(), stats.getMaxHealth(), context.getString(R.string.HP_default),
res.getColor(R.color.hpColor), res.getColor(R.color.hpColorBackground), res.getColor(R.color.hpColorForeground));
- SetValueBar(xpBar, stats.getExp().floatValue(), stats.getToNextLevel()+stats.getExp().floatValue(), context.getString(R.string.XP_default),
+ SetValueBar(xpBar, stats.getExp().floatValue(), stats.getToNextLevel(), context.getString(R.string.XP_default),
res.getColor(R.color.xpColor), res.getColor(R.color.xpColorBackground), res.getColor(R.color.xpColorForeground));
SetValueBar(mpBar, stats.getMp().floatValue(), stats.getMaxMP(), context.getString(R.string.MP_default),
res.getColor(R.color.mpColor), res.getColor(R.color.mpColorBackground),res.getColor(R.color.mpColorForeground));
diff --git a/Habitica/src/com/habitrpg/android/habitica/userpicture/UserPicture.java b/Habitica/src/com/habitrpg/android/habitica/userpicture/UserPicture.java
index 4e314bc8e..dc76e65d6 100644
--- a/Habitica/src/com/habitrpg/android/habitica/userpicture/UserPicture.java
+++ b/Habitica/src/com/habitrpg/android/habitica/userpicture/UserPicture.java
@@ -40,13 +40,15 @@ public class UserPicture {
private void drawAvatar(HabitRPGUser user, Bitmap imgSprites, Canvas cv) {
drawSprite(UserSprite.getSkin(user.getPreferences().getSkin()), imgSprites, cv);
-// if(user.getPreferences().getHair() != null) {
-// Log.d("Avatar", "drawing head");
-// drawSprite(UserSprite.gethair_bangs(user.getPreferences().getHair().getBangs(), user.getPreferences().getHair().getColor()), imgSprites, cv);
-// drawSprite(UserSprite.gethair_mustache(user.getPreferences().getHair().getMustache(), user.getPreferences().getHair().getColor()), imgSprites, cv);
-// drawSprite(UserSprite.gethair_base(user.getPreferences().getHair().getBase(), user.getPreferences().getHair().getColor()), imgSprites, cv);
-// drawSprite(UserSprite.gethair_beard(user.getPreferences().getHair().getBeard(), user.getPreferences().getHair().getColor()), imgSprites, cv);
-// }
+ com.magicmicky.habitrpgwrapper.lib.models.Preferences.Hair hair = user.getPreferences().getHair();
+
+ if(hair != null) {
+ Log.d("Avatar", "drawing head");
+ drawSprite(UserSprite.gethair_bangs(hair.getBangs(), hair.getColor()), imgSprites, cv);
+ drawSprite(UserSprite.gethair_mustache(hair.getMustache(), hair.getColor()), imgSprites, cv);
+ drawSprite(UserSprite.gethair_base(hair.getBase(), hair.getColor()), imgSprites, cv);
+ drawSprite(UserSprite.gethair_beard(hair.getBeard(), hair.getColor()), imgSprites, cv);
+ }
//
// UserLook.UserItems items = user.getPreferences().isCostume() ? user.getItems().getGear() : user.getItems();
// drawSprite(UserSprite.getArmor(items.getArmor(), user.getSize(), user.getPreferences().getShirt()), imgSprites, cv);
diff --git a/Habitica/src/com/magicmicky/habitrpgwrapper/lib/api/ApiService.java b/Habitica/src/com/magicmicky/habitrpgwrapper/lib/api/ApiService.java
index a2f29258b..b6aaf263c 100644
--- a/Habitica/src/com/magicmicky/habitrpgwrapper/lib/api/ApiService.java
+++ b/Habitica/src/com/magicmicky/habitrpgwrapper/lib/api/ApiService.java
@@ -90,12 +90,15 @@ public interface ApiService {
@POST("/user/auth/local")
void connectLocal(@Body UserAuth auth, Callback callback);
+
+ @POST("/user/sleep")
+ void sleep(Callback voidCallback);
+
/*
@GET("/content")
void getContent();//Check Callback
- @POST("/user/sleep")
- void sleep(Callback habitRPGDataCallbackCallback);//Check callback.
+
@POST("/user/inventory/buy/{key}")
void buyItem(@Path("key") String itemKey);//Check callback. Key --> /content