mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-20 04:39:04 +00:00
toggle sleep / load user in the new activity
This commit is contained in:
parent
0ece907d50
commit
80e48529bd
7 changed files with 166 additions and 93 deletions
|
|
@ -8,4 +8,12 @@
|
|||
android:icon="@drawable/ic_action_filter_list"
|
||||
android:title="filter"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_toggle_sleep"
|
||||
android:orderInCategory="103"
|
||||
|
||||
android:title="Toggle Sleep"
|
||||
/>
|
||||
|
||||
</menu>
|
||||
|
|
|
|||
|
|
@ -245,6 +245,9 @@ public class APIHelper implements ErrorHandler, Profiler {
|
|||
|
||||
}
|
||||
|
||||
public void toggleSleep(Callback<Void> cb){
|
||||
apiService.sleep(cb);
|
||||
}
|
||||
|
||||
/*
|
||||
private class ATaskGetUser extends AsyncTask<Void, Void, Void> {
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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<Void> {
|
||||
static final int ABOUT = 12;
|
||||
|
||||
//region View Elements
|
||||
|
|
@ -64,10 +70,17 @@ public class MainActivityNew extends InstabugAppCompatActivity {
|
|||
|
||||
List<HabitItem> TaskList = new ArrayList<HabitItem>();
|
||||
|
||||
// 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) {
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -90,12 +90,15 @@ public interface ApiService {
|
|||
|
||||
@POST("/user/auth/local")
|
||||
void connectLocal(@Body UserAuth auth, Callback<UserAuthResponse> callback);
|
||||
|
||||
@POST("/user/sleep")
|
||||
void sleep(Callback<Void> voidCallback);
|
||||
|
||||
/*
|
||||
@GET("/content")
|
||||
void getContent();//Check Callback
|
||||
|
||||
@POST("/user/sleep")
|
||||
void sleep(Callback<HabitRPGDataCallback> habitRPGDataCallbackCallback);//Check callback.
|
||||
|
||||
|
||||
@POST("/user/inventory/buy/{key}")
|
||||
void buyItem(@Path("key") String itemKey);//Check callback. Key --> /content
|
||||
|
|
|
|||
Loading…
Reference in a new issue