From e424d14565705f5f4ab65220cbafad53bd71ccef Mon Sep 17 00:00:00 2001 From: ScorpioMiku <1056992492@qq.com> Date: Sun, 7 Oct 2018 14:08:14 +0800 Subject: [PATCH] 1 --- .../adapter/RecommendAdapter.java | 6 +- .../nutritionmaster/base/BaseFragment.java | 2 +- .../nutritionmaster/bean/Menu.java | 44 ------ .../nutritionmaster/bean/MyUser.java | 2 +- .../nutritionmaster/bean/RecommendFood.java | 23 ++-- .../RecipeActivity/RecipeActivity.java | 43 +++--- .../recommend/RecommendFragment.java | 125 ++++++++++++++++-- .../nutritionmaster/utils/CalculateUtils.java | 2 +- .../main/res/layout/recommend_item_big.xml | 5 +- .../main/res/layout/recommend_item_detail.xml | 19 +-- .../main/res/layout/recommend_item_middle.xml | 5 +- 11 files changed, 168 insertions(+), 108 deletions(-) delete mode 100644 app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Menu.java diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/RecommendAdapter.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/RecommendAdapter.java index 9df29ac..747bfcd 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/RecommendAdapter.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/RecommendAdapter.java @@ -39,17 +39,17 @@ public class RecommendAdapter extends BaseMultiItemQuickAdapter materialArrayList; - private ArrayList makeSteps; - - - public Menu(String menuName, ArrayList materialArrayList, ArrayList makeSteps) { - this.menuName = menuName; - this.materialArrayList = materialArrayList; - this.makeSteps = makeSteps; - } - - public String getMenuName() { - return menuName; - } - - public void setMenuName(String menuName) { - this.menuName = menuName; - } - - public ArrayList getMaterialArrayList() { - return materialArrayList; - } - - public void setMaterialArrayList(ArrayList materialArrayList) { - this.materialArrayList = materialArrayList; - } - - public ArrayList getMakeSteps() { - return makeSteps; - } - - public void setMakeSteps(ArrayList makeSteps) { - this.makeSteps = makeSteps; - } -} diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/MyUser.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/MyUser.java index 3c8c8d8..b3603c1 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/MyUser.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/MyUser.java @@ -47,7 +47,7 @@ public class MyUser { private Integer height; private Integer weight; private Integer bmi = new Integer(-1); - private String occupation_name; + private String occupation_name = ""; private List groups; private List user_permissions; private List illness; diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/RecommendFood.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/RecommendFood.java index 7575671..557b106 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/RecommendFood.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/RecommendFood.java @@ -16,35 +16,32 @@ public class RecommendFood implements MultiItemEntity, Serializable { public static final int TYPE_MIDDLE = 1; public static final int TYPE_DETAIL = 2; - private int picture; + private String picture; private String title; private String description; private int type; - private Menu menu; + private FoodMenu menu; - public Menu getMenu() { + public FoodMenu getMenu() { return menu; } - public void setMenu(Menu menu) { + public void setMenu(FoodMenu menu) { this.menu = menu; } - public RecommendFood(int picture, String title, String description, int type) { - this.picture = picture; - this.title = title; - this.description = description; + public RecommendFood(FoodMenu foodMenu, int type) { + menu = foodMenu; + picture = foodMenu.getImage_url(); + title = foodMenu.getName(); this.type = type; - if (type > 2) { - Logger.e("混合recycler type不对"); - } } - public int getPicture() { + public String getPicture() { return picture; } - public void setPicture(int picture) { + public void setPicture(String picture) { this.picture = picture; } diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/RecipeActivity/RecipeActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/RecipeActivity/RecipeActivity.java index b5c24d6..0c4f34f 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/RecipeActivity/RecipeActivity.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/RecipeActivity/RecipeActivity.java @@ -10,11 +10,8 @@ import com.example.ninefourone.nutritionmaster.adapter.MakeStepAdapter; import com.example.ninefourone.nutritionmaster.adapter.MaterialAdapter; import com.example.ninefourone.nutritionmaster.base.BaseActivity; import com.example.ninefourone.nutritionmaster.bean.Material; -import com.example.ninefourone.nutritionmaster.bean.Menu; import com.example.ninefourone.nutritionmaster.bean.RecommendFood; -import com.example.ninefourone.nutritionmaster.utils.UiUtils; import com.github.lzyzsd.circleprogress.ArcProgress; -import com.orhanobut.logger.Logger; import java.util.ArrayList; @@ -34,7 +31,7 @@ public class RecipeActivity extends BaseActivity { @BindView(R.id.detail_way_recycler_view) RecyclerView detailWayRecyclerView; private RecommendFood recommendFood; - private Menu menu; + private MaterialAdapter materialAdapter; private MakeStepAdapter makeStepAdapter; @@ -67,25 +64,25 @@ public class RecipeActivity extends BaseActivity { } private void initList() { - ArrayList list = new ArrayList<>(); - for (int i = 0; i < 7; i++) { - Material material = new Material("毛豆", 100); - list.add(material); - } - ArrayList mList = new ArrayList<>(); - for (int i = 0; i < 7; i++) { - String step = "第一步"; - mList.add(step); - } - menu = new Menu("毛豆炒肉", list, mList); - - makeStepAdapter = new MakeStepAdapter(menu.getMakeSteps(), this); - detailWayRecyclerView.setAdapter(makeStepAdapter); - detailWayRecyclerView.setLayoutManager(new LinearLayoutManager(this)); - - materialAdapter = new MaterialAdapter(menu.getMaterialArrayList(), this); - materialRecyclerView.setAdapter(materialAdapter); - materialRecyclerView.setLayoutManager(new LinearLayoutManager(this)); +// ArrayList list = new ArrayList<>(); +// for (int i = 0; i < 7; i++) { +// Material material = new Material("毛豆", 100); +// list.add(material); +// } +// ArrayList mList = new ArrayList<>(); +// for (int i = 0; i < 7; i++) { +// String step = "第一步"; +// mList.add(step); +// } +// +// +// makeStepAdapter = new MakeStepAdapter(menu.getMakeSteps(), this); +// detailWayRecyclerView.setAdapter(makeStepAdapter); +// detailWayRecyclerView.setLayoutManager(new LinearLayoutManager(this)); +// +// materialAdapter = new MaterialAdapter(menu.getMaterialArrayList(), this); +// materialRecyclerView.setAdapter(materialAdapter); +// materialRecyclerView.setLayoutManager(new LinearLayoutManager(this)); } } diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/recommend/RecommendFragment.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/recommend/RecommendFragment.java index e6b1e88..3ea0aee 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/recommend/RecommendFragment.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/recommend/RecommendFragment.java @@ -9,14 +9,19 @@ import android.view.View; import android.view.ViewGroup; import com.chad.library.adapter.base.BaseQuickAdapter; +import com.example.ninefourone.nutritionmaster.NutritionMaster; import com.example.ninefourone.nutritionmaster.R; import com.example.ninefourone.nutritionmaster.adapter.RecommendAdapter; import com.example.ninefourone.nutritionmaster.base.BaseFragment; +import com.example.ninefourone.nutritionmaster.bean.FoodMenu; import com.example.ninefourone.nutritionmaster.bean.RecommendFood; +import com.example.ninefourone.nutritionmaster.bean.Trick; +import com.google.gson.Gson; import com.orhanobut.logger.Logger; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import android.view.LayoutInflater; @@ -49,8 +54,8 @@ public class RecommendFragment extends BaseFragment { @Override public void initView(Bundle state) { - loadData(); initRecyclerView(); + loadData(); } @@ -129,10 +134,60 @@ public class RecommendFragment extends BaseFragment { @Override protected void loadData() { super.loadData(); - for (int i = 0; i < 11; i++) { - int flag = indexs[i % 4]; - RecommendFood recommendFood = new RecommendFood(1, "烧肉", "好吃", flag); - datas.add(recommendFood); + if (NutritionMaster.user.getOccupation_name().equals("")) { + getWebUtil().getRandomMenus(20, new Callback() { + @Override + public void onFailure(Call call, IOException e) { + + } + + @Override + public void onResponse(Call call, Response response) throws IOException { + FoodMenu[] menus = new Gson().fromJson(response.body().string(), FoodMenu[].class); + int count = 0; + for (int i = 0; i < menus.length; i++) { + if (count > 11) { + break; + } else { + int flag = indexs[count % 4]; + RecommendFood recommendFood = new RecommendFood(menus[i], flag); + if (!recommendFood.getPicture().equals("0")) { + datas.add(recommendFood); + count++; + } + } + } + + /** + * 获取小知识 + */ + getWebUtil().getRandomTricks(3, new Callback() { + @Override + public void onFailure(Call call, IOException e) { + + } + + @Override + public void onResponse(Call call, Response response) throws IOException { + Trick[] tricks = new Gson().fromJson(response.body().string(), Trick[].class); + int index = 0; + for (int i = 0; i < datas.size(); i++) { + if (datas.get(i).getItemType() == RecommendFood.TYPE_DETAIL) { + datas.get(i).setDescription(tricks[index].getContent()); + datas.get(i).setTitle(tricks[index].getTitle()); + index++; + } + } + recyclerView.post(new Runnable() { + @Override + public void run() { + adapter.notifyDataSetChanged(); + } + }); + } + }); + } + }); } } @@ -140,12 +195,62 @@ public class RecommendFragment extends BaseFragment { * 加载新数据 */ private void addData() { - for (int i = 0; i < 7; i++) { - int flag = indexs[i % 4]; - RecommendFood recommendFood = new RecommendFood(1, "烧肉", "好吃", flag); - adapter.getData().add(recommendFood); + if (NutritionMaster.user.getOccupation_name().equals("")) { + getWebUtil().getRandomMenus(20, new Callback() { + @Override + public void onFailure(Call call, IOException e) { + + } + + @Override + public void onResponse(Call call, Response response) throws IOException { + final int originsize = datas.size(); + FoodMenu[] menus = new Gson().fromJson(response.body().string(), FoodMenu[].class); + int count = 0; + for (int i = 0; i < menus.length; i++) { + if (count > 7) { + break; + } else { + int flag = indexs[count % 4]; + RecommendFood recommendFood = new RecommendFood(menus[i], flag); + if (!recommendFood.getPicture().equals("0")) { + datas.add(recommendFood); + count++; + } + } + } + + /** + * 获取小知识 + */ + getWebUtil().getRandomTricks(3, new Callback() { + @Override + public void onFailure(Call call, IOException e) { + + } + + @Override + public void onResponse(Call call, Response response) throws IOException { + Trick[] tricks = new Gson().fromJson(response.body().string(), Trick[].class); + int index = 0; + for (int i = originsize; i < datas.size(); i++) { + if (datas.get(i).getItemType() == RecommendFood.TYPE_DETAIL) { + datas.get(i).setDescription(tricks[index].getContent()); + datas.get(i).setTitle(tricks[index].getTitle()); + index++; + } + } + recyclerView.post(new Runnable() { + @Override + public void run() { + adapter.loadMoreComplete(); + } + }); + } + }); + } + }); } - adapter.loadMoreComplete(); } /** diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/CalculateUtils.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/CalculateUtils.java index 22c79d6..14f9b8b 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/CalculateUtils.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/CalculateUtils.java @@ -75,7 +75,7 @@ public class CalculateUtils { // Logger.d( calendar.get(Calendar.DAY_OF_WEEK)); // calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); int week = calendar.get(Calendar.DAY_OF_WEEK) - 1; - Logger.d(week); +// Logger.d(week); if (week == 0) { return 7; } diff --git a/app/src/main/res/layout/recommend_item_big.xml b/app/src/main/res/layout/recommend_item_big.xml index 98203a4..4591238 100644 --- a/app/src/main/res/layout/recommend_item_big.xml +++ b/app/src/main/res/layout/recommend_item_big.xml @@ -25,7 +25,7 @@ diff --git a/app/src/main/res/layout/recommend_item_detail.xml b/app/src/main/res/layout/recommend_item_detail.xml index abad286..802c433 100644 --- a/app/src/main/res/layout/recommend_item_detail.xml +++ b/app/src/main/res/layout/recommend_item_detail.xml @@ -11,9 +11,9 @@ + app:cardCornerRadius="20dp" + app:cardElevation="0dp"> + + android:paddingTop="5dp"> + android:gravity="center_horizontal" + android:text="小知识" + android:textSize="13sp" + android:textStyle="bold" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/recommend_item_middle.xml b/app/src/main/res/layout/recommend_item_middle.xml index d68c316..55cf6ff 100644 --- a/app/src/main/res/layout/recommend_item_middle.xml +++ b/app/src/main/res/layout/recommend_item_middle.xml @@ -27,7 +27,7 @@