diff --git a/Habitica/res/layout/animal_overview_item.xml b/Habitica/res/layout/animal_overview_item.xml index 47a35b166..36105c611 100644 --- a/Habitica/res/layout/animal_overview_item.xml +++ b/Habitica/res/layout/animal_overview_item.xml @@ -12,8 +12,8 @@ style="@style/CardContent"> + + + + + + + + diff --git a/Habitica/res/layout/item_item.xml b/Habitica/res/layout/item_item.xml index 1b93324e4..6aa9c29ce 100644 --- a/Habitica/res/layout/item_item.xml +++ b/Habitica/res/layout/item_item.xml @@ -6,6 +6,9 @@ + + style="@style/RowTitle" + android:alpha="@{disabled ? 0.3f : 1.0f}" /> + style="@style/RowText" + android:alpha="@{disabled ? 0.3f : 1.0f}" /> \ No newline at end of file diff --git a/Habitica/res/layout/pet_detail_item.xml b/Habitica/res/layout/pet_detail_item.xml new file mode 100644 index 000000000..e7bcd000b --- /dev/null +++ b/Habitica/res/layout/pet_detail_item.xml @@ -0,0 +1,32 @@ + + + + + + + + + \ No newline at end of file diff --git a/Habitica/res/layout/pet_imageview.xml b/Habitica/res/layout/pet_imageview.xml new file mode 100644 index 000000000..43cbaed13 --- /dev/null +++ b/Habitica/res/layout/pet_imageview.xml @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/Habitica/res/values/dimens.xml b/Habitica/res/values/dimens.xml index 930df1dcc..f66fd45e4 100644 --- a/Habitica/res/values/dimens.xml +++ b/Habitica/res/values/dimens.xml @@ -68,4 +68,6 @@ 4dp 120dp 18dp + 81dp + 99dp \ No newline at end of file diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index 426796136..1a0f95b72 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -290,6 +290,15 @@ To start, which parts of your life do you want to improve? Sell (%s Gold) Hatch with potion Feed to pet - Hatch egg + Hatch with egg Invite party + Feed %s with + Use + Feed + Hatch pet with %s + You hatched a %s %s! + Close + Share + You fed your %s! + %s was purchased diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/EquipGearCommand.java b/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/EquipCommand.java similarity index 58% rename from Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/EquipGearCommand.java rename to Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/EquipCommand.java index be23ab6a9..c4357e95a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/EquipGearCommand.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/EquipCommand.java @@ -2,9 +2,9 @@ package com.habitrpg.android.habitica.events.commands; import com.magicmicky.habitrpgwrapper.lib.models.tasks.ItemData; -public class EquipGearCommand { +public class EquipCommand { - public ItemData gear; - public Boolean asCostume; + public String key; + public String type; } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/FeedCommand.java b/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/FeedCommand.java new file mode 100644 index 000000000..586581a11 --- /dev/null +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/FeedCommand.java @@ -0,0 +1,11 @@ +package com.habitrpg.android.habitica.events.commands; + +import com.magicmicky.habitrpgwrapper.lib.models.inventory.Food; +import com.magicmicky.habitrpgwrapper.lib.models.inventory.Pet; + +public class FeedCommand { + + public Pet usingPet; + public Food usingFood; + +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/HatchingCommand.java b/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/HatchingCommand.java new file mode 100644 index 000000000..311d04489 --- /dev/null +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/events/commands/HatchingCommand.java @@ -0,0 +1,11 @@ +package com.habitrpg.android.habitica.events.commands; + +import com.magicmicky.habitrpgwrapper.lib.models.inventory.Egg; +import com.magicmicky.habitrpgwrapper.lib.models.inventory.HatchingPotion; + +public class HatchingCommand { + + public Egg usingEgg; + public HatchingPotion usingHatchingPotion; + +} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java index d8a6f575b..6f7986c9e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java @@ -15,6 +15,7 @@ import android.preference.PreferenceManager; import android.support.design.widget.TabLayout; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.GravityCompat; +import android.support.v7.app.AlertDialog; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.Gravity; @@ -42,8 +43,9 @@ import com.habitrpg.android.habitica.events.TaskRemovedEvent; import com.habitrpg.android.habitica.events.ToggledInnStateEvent; import com.habitrpg.android.habitica.events.commands.BuyRewardCommand; import com.habitrpg.android.habitica.events.commands.DeleteTaskCommand; -import com.habitrpg.android.habitica.events.commands.EquipGearCommand; -import com.habitrpg.android.habitica.events.commands.InvitePartyToQuestCommand; +import com.habitrpg.android.habitica.events.commands.EquipCommand; +import com.habitrpg.android.habitica.events.commands.FeedCommand; +import com.habitrpg.android.habitica.events.commands.HatchingCommand; import com.habitrpg.android.habitica.events.commands.OpenGemPurchaseFragmentCommand; import com.habitrpg.android.habitica.events.commands.OpenMenuItemCommand; import com.habitrpg.android.habitica.events.commands.SellItemCommand; @@ -55,6 +57,7 @@ import com.habitrpg.android.habitica.ui.TutorialView; import com.habitrpg.android.habitica.ui.UiUtils; import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment; import com.habitrpg.android.habitica.ui.fragments.GemsPurchaseFragment; +import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils; import com.habitrpg.android.habitica.userpicture.UserPicture; import com.habitrpg.android.habitica.userpicture.UserPictureRunnable; import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser; @@ -62,7 +65,9 @@ import com.magicmicky.habitrpgwrapper.lib.models.SuppressedModals; import com.magicmicky.habitrpgwrapper.lib.models.TaskDirection; import com.magicmicky.habitrpgwrapper.lib.models.TaskDirectionData; import com.magicmicky.habitrpgwrapper.lib.models.TutorialStep; +import com.magicmicky.habitrpgwrapper.lib.models.inventory.Pet; import com.magicmicky.habitrpgwrapper.lib.models.responses.BuyResponse; +import com.magicmicky.habitrpgwrapper.lib.models.responses.FeedResponse; import com.magicmicky.habitrpgwrapper.lib.models.tasks.ChecklistItem; import com.magicmicky.habitrpgwrapper.lib.models.tasks.Days; import com.magicmicky.habitrpgwrapper.lib.models.tasks.ItemData; @@ -84,6 +89,7 @@ import com.raizlabs.android.dbflow.sql.language.Delete; import com.raizlabs.android.dbflow.sql.language.From; import com.raizlabs.android.dbflow.sql.language.Select; import com.raizlabs.android.dbflow.sql.language.Where; +import com.squareup.picasso.Picasso; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -92,6 +98,7 @@ import org.json.JSONObject; import org.solovyev.android.checkout.ActivityCheckout; import org.solovyev.android.checkout.Checkout; +import java.io.IOException; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -564,12 +571,8 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O } @Subscribe - public void onEvent(EquipGearCommand event) { - if (event.asCostume) { - this.mAPIHelper.apiService.equipCostume(event.gear.key, new ItemsCallback(this, this.user)); - } else { - this.mAPIHelper.apiService.equipBattleGear(event.gear.key, new ItemsCallback(this, this.user)); - } + public void onEvent(EquipCommand event) { + this.mAPIHelper.apiService.equipItem(event.type, event.key, new ItemsCallback(this, this.user)); } @Subscribe @@ -697,6 +700,59 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O }); } + @Subscribe + public void onEvent(final HatchingCommand event) { + if (event.usingEgg == null || event.usingHatchingPotion == null) { + return; + } + this.mAPIHelper.apiService.hatchPet(event.usingEgg.getKey(), event.usingHatchingPotion.getKey(), new ItemsCallback(new HabitRPGUserCallback.OnUserReceived() { + @Override + public void onUserReceived(HabitRPGUser user) { + ImageView petImageView = (ImageView)getLayoutInflater().inflate(R.layout.pet_imageview, null); + + DataBindingUtils.loadImage(petImageView, "Pet-" + event.usingEgg.getKey() + "-" + event.usingHatchingPotion.getKey()); + + AlertDialog dialog = new AlertDialog.Builder(MainActivity.this) + .setTitle(getString(R.string.hatched_pet_title, event.usingHatchingPotion.getText(), event.usingEgg.getText())) + .setView(petImageView) + .setPositiveButton(R.string.close, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + } + }) + .create(); + dialog.show(); + } + + @Override + public void onUserFail() { + + } + }, this.user)); + } + + @Subscribe + public void onEvent(FeedCommand event) { + if (event.usingFood == null || event.usingPet == null) { + return; + } + final Pet pet = event.usingPet; + this.mAPIHelper.apiService.feedPet(event.usingPet.getKey(), event.usingFood.getKey(), new Callback() { + @Override + public void success(FeedResponse feedResponse, Response response) { + MainActivity.this.user.getItems().getPets().put(pet.getKey(), feedResponse.value); + MainActivity.this.setUserData(false); + showSnackbar(MainActivity.this, floatingMenuWrapper, getString(R.string.notification_pet_fed, pet.getKey()), SnackbarDisplayType.NORMAL); + } + + @Override + public void failure(RetrofitError error) { + + } + }); + } + // endregion @@ -704,7 +760,7 @@ public class MainActivity extends BaseActivity implements HabitRPGUserCallback.O public void onTaskDataReceived(TaskDirectionData data, Task task) { if (task.type.equals("reward")) { - showSnackbar(this, floatingMenuWrapper, task.getText() + " successfully purchased!", SnackbarDisplayType.NORMAL); + showSnackbar(this, floatingMenuWrapper, getString(R.string.notification_purchase, task.getText()), SnackbarDisplayType.NORMAL); } else { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.java index 4d2515c8b..fa266434c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/EquipmentRecyclerViewAdapter.java @@ -9,7 +9,7 @@ import android.widget.ImageView; import android.widget.TextView; import com.habitrpg.android.habitica.R; -import com.habitrpg.android.habitica.events.commands.EquipGearCommand; +import com.habitrpg.android.habitica.events.commands.EquipCommand; import com.magicmicky.habitrpgwrapper.lib.models.tasks.ItemData; import com.squareup.picasso.Picasso; @@ -108,9 +108,13 @@ class GearViewHolder extends RecyclerView.ViewHolder implements View.OnClickList @Override public void onClick(View v) { - EquipGearCommand command = new EquipGearCommand(); - command.gear = this.gear; - command.asCostume = isCostume; + EquipCommand command = new EquipCommand(); + command.key = this.gear.key; + if (isCostume) { + command.type = "costume"; + } else { + command.type = "gear"; + } EventBus.getDefault().post(command); if (this.gear.key.equals(equippedGear)) { equippedGear = type + "_base_0"; diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.java index d613f450f..504f8a56e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ItemRecyclerAdapter.java @@ -10,8 +10,11 @@ import android.view.ViewGroup; import com.habitrpg.android.habitica.R; import com.habitrpg.android.habitica.databinding.ItemItemBinding; +import com.habitrpg.android.habitica.events.commands.FeedCommand; +import com.habitrpg.android.habitica.events.commands.HatchingCommand; import com.habitrpg.android.habitica.events.commands.InvitePartyToQuestCommand; import com.habitrpg.android.habitica.events.commands.SellItemCommand; +import com.habitrpg.android.habitica.ui.fragments.inventory.items.ItemRecyclerFragment; import com.habitrpg.android.habitica.ui.menu.BottomSheetMenu; import com.habitrpg.android.habitica.ui.menu.BottomSheetMenuItem; import com.habitrpg.android.habitica.ui.menu.BottomSheetMenuSelectionRunnable; @@ -19,10 +22,12 @@ import com.magicmicky.habitrpgwrapper.lib.models.inventory.Egg; import com.magicmicky.habitrpgwrapper.lib.models.inventory.Food; import com.magicmicky.habitrpgwrapper.lib.models.inventory.HatchingPotion; import com.magicmicky.habitrpgwrapper.lib.models.inventory.Item; +import com.magicmicky.habitrpgwrapper.lib.models.inventory.Pet; import com.magicmicky.habitrpgwrapper.lib.models.inventory.QuestContent; import org.greenrobot.eventbus.EventBus; +import java.util.HashMap; import java.util.List; public class ItemRecyclerAdapter extends RecyclerView.Adapter { @@ -30,6 +35,11 @@ public class ItemRecyclerAdapter extends RecyclerView.Adapter itemList; public Boolean isHatching; + public Boolean isFeeding; + public Item hatchingItem; + public Pet feedingPet; + public ItemRecyclerFragment fragment; + public HashMap ownedPets; public Context context; @@ -73,9 +83,20 @@ public class ItemRecyclerAdapter extends RecyclerView.Adapter 0) { - this.ownedTextView.setText(ownedMapping.get(item.getKey()).toString()); - DataBindingUtils.loadImage(this.imageView, "Pet-" + itemType + "-" + item.getColor()); - } else { - ownedTextView.setVisibility(View.GONE); - ownedTextView.setText(null); - DataBindingUtils.loadImage(this.imageView, "PixelPaw"); - this.imageView.setAlpha(0.4f); + public Boolean isOwned() { + if (ownedMapping != null && animal != null) { + if (ownedMapping.containsKey(animal.getKey()) && ownedMapping.get(animal.getKey()) > 0) { + return true; } + } + return false; + } + + public void bind(Pet item) { + this.animal = item; + this.titleView.setText(item.getColor()); + this.trainedProgressbar.setVisibility(View.VISIBLE); + this.imageView.setAlpha(1.0f); + if (this.isOwned()) { + this.trainedProgressbar.setProgress(ownedMapping.get(item.getKey())); + DataBindingUtils.loadImage(this.imageView, "Pet-" + itemType + "-" + item.getColor()); } else { - ownedTextView.setVisibility(View.GONE); + this.trainedProgressbar.setVisibility(View.GONE); DataBindingUtils.loadImage(this.imageView, "PixelPaw"); this.imageView.setAlpha(0.4f); } @@ -107,7 +118,27 @@ public class PetDetailRecyclerAdapter extends RecyclerView.Adapter ownedPets; + private static final String ITEM_TYPE_KEY = "CLASS_TYPE_KEY"; LinearLayoutManager layoutManager = null; @@ -37,9 +57,9 @@ public class ItemRecyclerFragment extends BaseFragment { @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { if (view == null) { - view = inflater.inflate(R.layout.fragment_recyclerview, container, false); + view = inflater.inflate(R.layout.fragment_items, container, false); - recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView); + ButterKnife.bind(this, view); android.support.v4.app.FragmentActivity context = getActivity(); @@ -56,6 +76,15 @@ public class ItemRecyclerFragment extends BaseFragment { adapter = new ItemRecyclerAdapter(); adapter.context = this.getActivity(); adapter.isHatching = this.isHatching; + adapter.isFeeding = this.isFeeding; + adapter.fragment = this; + adapter.ownedPets = this.ownedPets; + if (this.hatchingItem != null) { + adapter.hatchingItem = this.hatchingItem; + } + if (this.feedingPet != null) { + adapter.feedingPet = this.feedingPet; + } recyclerView.setAdapter(adapter); this.loadItems(); @@ -67,9 +96,33 @@ public class ItemRecyclerFragment extends BaseFragment { this.itemType = savedInstanceState.getString(ITEM_TYPE_KEY, ""); } + if (this.isHatching) { + getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); + this.titleView.setText(getString(R.string.hatch_with, this.hatchingItem.getText())); + this.titleView.setVisibility(View.VISIBLE); + } else if (this.isFeeding) { + getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); + this.titleView.setText(getString(R.string.dialog_feeding, this.feedingPet.getKey())); + this.titleView.setVisibility(View.VISIBLE); + } else { + this.titleView.setVisibility(View.GONE); + } + return view; } + @Override + public void onResume() { + if (this.isHatching) { + ViewGroup.LayoutParams params = getDialog().getWindow().getAttributes(); + params.width = ViewGroup.LayoutParams.MATCH_PARENT; + params.height = ViewGroup.LayoutParams.MATCH_PARENT; + getDialog().getWindow().setAttributes((android.view.WindowManager.LayoutParams) params); + } + + super.onResume(); + } + @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemsFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemsFragment.java index 30ec09c9c..ae55e8c8e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemsFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/items/ItemsFragment.java @@ -1,6 +1,7 @@ package com.habitrpg.android.habitica.ui.fragments.inventory.items; import android.os.Bundle; +import android.support.v4.app.DialogFragment; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; @@ -10,10 +11,13 @@ import android.view.ViewGroup; import com.habitrpg.android.habitica.ContentCache; import com.habitrpg.android.habitica.R; +import com.habitrpg.android.habitica.events.commands.FeedCommand; +import com.habitrpg.android.habitica.events.commands.HatchingCommand; import com.habitrpg.android.habitica.events.commands.InvitePartyToQuestCommand; import com.habitrpg.android.habitica.events.commands.OpenMenuItemCommand; import com.habitrpg.android.habitica.ui.MainDrawerBuilder; import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment; +import com.habitrpg.android.habitica.ui.fragments.inventory.PetDetailRecyclerFragment; import com.magicmicky.habitrpgwrapper.lib.models.Group; import com.magicmicky.habitrpgwrapper.lib.models.UserParty; @@ -47,12 +51,6 @@ public class ItemsFragment extends BaseMainFragment { public void setViewPagerAdapter() { android.support.v4.app.FragmentManager fragmentManager = getChildFragmentManager(); - UserParty party = user.getParty(); - - if (party == null) { - return; - } - viewPager.setAdapter(new FragmentPagerAdapter(fragmentManager) { @Override @@ -79,6 +77,7 @@ public class ItemsFragment extends BaseMainFragment { } } fragment.isHatching = false; + fragment.isFeeding = false; return fragment; } @@ -123,4 +122,22 @@ public class ItemsFragment extends BaseMainFragment { } }); } + + @Subscribe + public void showHatchingDialog(HatchingCommand event) { + if (event.usingEgg == null || event.usingHatchingPotion == null) { + ItemRecyclerFragment fragment = new ItemRecyclerFragment(); + if (event.usingEgg != null) { + fragment.itemType = "hatchingPotions"; + fragment.hatchingItem= event.usingEgg; + } else { + fragment.itemType = "eggs"; + fragment.hatchingItem = event.usingHatchingPotion; + } + fragment.isHatching = true; + fragment.isFeeding = false; + fragment.ownedPets = this.user.getItems().getPets(); + fragment.show(getFragmentManager(), "hatchingDialog"); + } + } } diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/api/ApiService.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/api/ApiService.java index 03583cf3d..fcfd548c9 100644 --- a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/api/ApiService.java +++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/api/ApiService.java @@ -13,6 +13,7 @@ import com.magicmicky.habitrpgwrapper.lib.models.UserAuth; import com.magicmicky.habitrpgwrapper.lib.models.UserAuthResponse; import com.magicmicky.habitrpgwrapper.lib.models.UserAuthSocial; import com.magicmicky.habitrpgwrapper.lib.models.responses.BuyResponse; +import com.magicmicky.habitrpgwrapper.lib.models.responses.FeedResponse; import com.magicmicky.habitrpgwrapper.lib.models.responses.UnlockResponse; import com.magicmicky.habitrpgwrapper.lib.models.tasks.ItemData; import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task; @@ -51,11 +52,8 @@ public interface ApiService { @GET("/user/inventory/buy") void getInventoryBuyableGear(Callback> buyableGearCallback); - @POST("/user/inventory/equip/equipped/{key}") - void equipBattleGear(@Path("key") String itemKey, Callback gearCallback); - - @POST("/user/inventory/equip/costume/{key}") - void equipCostume(@Path("key") String itemKey, Callback gearCallback); + @POST("/user/inventory/equip/{type}/{key}") + void equipItem(@Path("type") String type, @Path("key") String itemKey, Callback gearCallback); @POST("/user/inventory/buy/{key}") void buyItem(@Path("key") String itemKey, Callback voidCallback); @@ -63,6 +61,13 @@ public interface ApiService { @POST("/user/inventory/sell/{type}/{key}") void sellItem(@Path("type") String itemType, @Path("key") String itemKey, Callback voidCallback); + @POST("/user/inventory/feed/{pet}/{food}") + void feedPet(@Path("pet") String petKey, @Path("food") String foodKey, Callback feedingCallback); + + @POST("/user/inventory/hatch/{egg}/{hatchingPotion}") + void hatchPet(@Path("egg") String eggKey, @Path("hatchingPotion") String hatchingPotionKey, Callback itemsCallback); + + @POST("/user/unlock") void unlockPath(@Query("path") String path, Callback unlockResponseCallback); diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/responses/FeedResponse.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/responses/FeedResponse.java new file mode 100644 index 000000000..9aaf84e1a --- /dev/null +++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/responses/FeedResponse.java @@ -0,0 +1,7 @@ +package com.magicmicky.habitrpgwrapper.lib.models.responses; + +public class FeedResponse { + + public Integer value; + +}