diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1f28d26..59dc3d7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -60,7 +60,7 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/NutritionMaster.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/NutritionMaster.java
index 31b7f5f..3284f17 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/NutritionMaster.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/NutritionMaster.java
@@ -4,10 +4,14 @@ import android.app.Activity;
import android.app.Application;
import android.os.Bundle;
+import com.example.ninefourone.nutritionmaster.bean.Element;
import com.example.ninefourone.nutritionmaster.bean.FoodMenu;
+import com.example.ninefourone.nutritionmaster.bean.Illness;
import com.example.ninefourone.nutritionmaster.bean.MyUser;
import com.example.ninefourone.nutritionmaster.bean.Occupation;
+import com.example.ninefourone.nutritionmaster.bean.Physique;
+import com.example.ninefourone.nutritionmaster.utils.CalculateUtils;
import com.example.ninefourone.nutritionmaster.utils.ConstantUtils;
import com.example.ninefourone.nutritionmaster.utils.WebUtil;
import com.google.gson.Gson;
@@ -39,7 +43,16 @@ public class NutritionMaster extends Application {
public static NutritionMaster mInstance;
private int appCount = 0;
- public static MyUser user;
+ public static MyUser user = null;
+ public static Physique physique = null;
+ public static Occupation occupation = null;
+ public static Element element = null;
+ public static Illness illness = null;
+
+ public static Element calculatedElement = null;
+
+ public static int randomSeed = CalculateUtils.getWeek();
+
@Override
public void onCreate() {
@@ -176,9 +189,9 @@ public class NutritionMaster extends Application {
// 获取所有响应头字段
Map> map = connection.getHeaderFields();
// 遍历所有的响应头字段
- for (String key : map.keySet()) {
- System.err.println(key + "--->" + map.get(key));
- }
+// for (String key : map.keySet()) {
+// System.err.println(key + "--->" + map.get(key));
+// }
// 定义 BufferedReader输入流来读取URL的响应
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String result = "";
@@ -203,6 +216,7 @@ public class NutritionMaster extends Application {
*/
private void initYouDao() {
YouDaoApplication.init(this, ConstantUtils.YOUDAO_APPKEY);
+
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CardHolder.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CardHolder.java
index 6a0610b..3622798 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CardHolder.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CardHolder.java
@@ -10,9 +10,11 @@ import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
+import com.example.ninefourone.nutritionmaster.NutritionMaster;
import com.example.ninefourone.nutritionmaster.R;
import com.example.ninefourone.nutritionmaster.bean.DailyCard;
import com.example.ninefourone.nutritionmaster.modules.viewpagerfragments.customization.CustomizationActivity;
+import com.example.ninefourone.nutritionmaster.utils.MessageUtils;
import com.orhanobut.logger.Logger;
import java.util.ArrayList;
@@ -45,15 +47,17 @@ public class CardHolder extends RecyclerView.ViewHolder {
public void bindView(int picId, DailyCard dailyCard, final Context context) {
tvName.setText(dailyCard.getTitle());
tvSign.setText(dailyCard.getDescription());
-// ivPhoto.setImageDrawable(context.getDrawable(picId));
Glide.with(context).load(picId).into(ivPhoto);
i = new Intent(context, CustomizationActivity.class);
i.putExtra("SEND_CODE", dailyCard.getTitle());
-// Logger.d(text);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- context.startActivity(i);
+ if (NutritionMaster.physique == null || NutritionMaster.occupation == null) {
+ MessageUtils.MakeToast("填写信息才能使用哦~");
+ } else {
+ context.startActivity(i);
+ }
}
});
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CustomizationAdapter.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CustomizationAdapter.java
index 8a36fdc..9950f7a 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CustomizationAdapter.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CustomizationAdapter.java
@@ -1,25 +1,45 @@
package com.example.ninefourone.nutritionmaster.adapter;
+import android.content.Context;
import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
import android.view.ViewGroup;
+import com.example.ninefourone.nutritionmaster.R;
+import com.example.ninefourone.nutritionmaster.bean.FoodMenu;
+import com.example.ninefourone.nutritionmaster.modules.viewpagerfragments.customization.CustomizationActivity;
+
+import java.util.ArrayList;
+
/**
* Created by ScorpioMiku on 2018/9/24.
*/
-public class CustomizationAdapter extends RecyclerView.Adapter {
- @Override
- public CardHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- return null;
+public class CustomizationAdapter extends RecyclerView.Adapter {
+ private ArrayList mList;
+ private Context context;
+ private int flag;
+
+ public CustomizationAdapter(ArrayList mList, Context context, int flag) {
+ this.mList = mList;
+ this.context = context;
+ this.flag = flag;
}
@Override
- public void onBindViewHolder(CardHolder holder, int position) {
+ public CustomizationHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(context).inflate(R.layout.customization_item, parent, false);
+ return new CustomizationHolder(view);
+ }
+ @Override
+ public void onBindViewHolder(CustomizationHolder holder, int position) {
+ holder.bindView(mList.get(position));
}
@Override
public int getItemCount() {
- return 0;
+ return mList.size();
}
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CustomizationHolder.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CustomizationHolder.java
index 8dd7e10..4a3d634 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CustomizationHolder.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/CustomizationHolder.java
@@ -1,14 +1,93 @@
package com.example.ninefourone.nutritionmaster.adapter;
+import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.View;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.example.ninefourone.nutritionmaster.NutritionMaster;
+import com.example.ninefourone.nutritionmaster.R;
+import com.example.ninefourone.nutritionmaster.bean.Element;
+import com.example.ninefourone.nutritionmaster.bean.FoodMenu;
+import com.example.ninefourone.nutritionmaster.bean.RecommendFood;
+import com.example.ninefourone.nutritionmaster.modules.RecipeActivity.RecipeActivity;
+
+import java.util.Random;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
/**
* Created by ScorpioMiku on 2018/9/24.
*/
public class CustomizationHolder extends RecyclerView.ViewHolder {
+ @BindView(R.id.customization_item_image)
+ ImageView customizationItemImage;
+ @BindView(R.id.food_name)
+ TextView foodName;
+ @BindView(R.id.food_quantity)
+ TextView foodQuantity;
+ @BindView(R.id.arch)
+ ImageView arch;
+ @BindView(R.id.food_energy)
+ TextView foodEnergy;
+ @BindView(R.id.click)
+ RelativeLayout click;
+
public CustomizationHolder(View itemView) {
super(itemView);
+ ButterKnife.bind(this, itemView);
}
+
+ public void bindView(final FoodMenu foodMenu) {
+ Glide.with(itemView.getContext()).load(foodMenu.getImage_url()).into(customizationItemImage);
+ foodName.setText(foodMenu.getName());
+ try {
+ Element element = NutritionMaster.element.calculateData(NutritionMaster.user);
+ double calorieQuantity = element.getCalorie() - NutritionMaster.user.getEaten_elements().getCalorie();
+ double quantity = calorieQuantity / foodMenu.getCalorie();
+ Random random = new Random((int) foodMenu.getElements().getCalorie());
+ if (quantity > 200) {
+ quantity = 150 + random.nextInt(50);
+ } else if (quantity < 50) {
+ quantity = 50 + random.nextInt(50);
+ }
+// Logger.d(foodMenu.getCalorie());
+ int energy = (int) (foodMenu.getElements().getCalorie() * quantity / 100);
+ energy = checkEnergy(energy);
+ foodEnergy.setText(energy + "千卡");
+ foodQuantity.setText((int) quantity + "克");
+
+ final Intent intent = new Intent(itemView.getContext().getApplicationContext(), RecipeActivity.class);
+ RecommendFood recommendFood = new RecommendFood(foodMenu, 1);
+ intent.putExtra("SEND_OBJECT", recommendFood);
+ click.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ itemView.getContext().getApplicationContext().startActivity(intent);
+ }
+ });
+ } catch (CloneNotSupportedException e) {
+ e.printStackTrace();
+ }
+
+
+ }
+
+ private int checkEnergy(int energy) {
+ if (energy < 30) {
+ return checkEnergy(energy * 2);
+ } else if (energy > 250) {
+ return checkEnergy(energy - 50);
+ } else {
+ return energy;
+ }
+ }
+
+
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/HomePagerAdapter.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/HomePagerAdapter.java
index 9667200..52da2b6 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/HomePagerAdapter.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/HomePagerAdapter.java
@@ -54,4 +54,8 @@ public class HomePagerAdapter extends FragmentPagerAdapter {
public CharSequence getPageTitle(int position) {
return TITLES[position];
}
+
+ public void rereshUI() {
+ ((BodyInformationFragment) fragments[1]).refreshUI();
+ }
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialAdapter.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialAdapter.java
index b83e46e..655812c 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialAdapter.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialAdapter.java
@@ -7,19 +7,21 @@ import android.view.View;
import android.view.ViewGroup;
import com.example.ninefourone.nutritionmaster.R;
-import com.example.ninefourone.nutritionmaster.bean.Material;
+import com.example.ninefourone.nutritionmaster.bean.FoodMaterial;
+import com.example.ninefourone.nutritionmaster.bean.FoodMenu;
import java.util.ArrayList;
+import java.util.List;
/**
* Created by ScorpioMiku on 2018/9/9.
*/
public class MaterialAdapter extends RecyclerView.Adapter {
- private ArrayList mList;
+ private List mList;
private Context mContext;
- public MaterialAdapter(ArrayList mList, Context mContext) {
+ public MaterialAdapter(List mList, Context mContext) {
this.mList = mList;
this.mContext = mContext;
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialHolder.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialHolder.java
index 1daabff..21e9bad 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialHolder.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialHolder.java
@@ -5,7 +5,8 @@ import android.view.View;
import android.widget.TextView;
import com.example.ninefourone.nutritionmaster.R;
-import com.example.ninefourone.nutritionmaster.bean.Material;
+import com.example.ninefourone.nutritionmaster.bean.FoodMaterial;
+import com.example.ninefourone.nutritionmaster.bean.FoodMenu;
import butterknife.BindView;
import butterknife.ButterKnife;
@@ -24,11 +25,12 @@ public class MaterialHolder extends RecyclerView.ViewHolder {
public MaterialHolder(View itemView) {
super(itemView);
- ButterKnife.bind(this,itemView);
+ ButterKnife.bind(this, itemView);
}
- public void bindView(Material material) {
- weightNumber.setText(material.getWeight() + "");
- name.setText(material.getMaterialName());
+ public void bindView(FoodMenu.CookQuantityBean cookQuantityBean) {
+ name.setText(cookQuantityBean.getMaterial());
+ String weight = cookQuantityBean.getQuantity();
+ weightNumber.setText(weight);
}
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialResultAdapter.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialResultAdapter.java
new file mode 100644
index 0000000..b695202
--- /dev/null
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialResultAdapter.java
@@ -0,0 +1,42 @@
+package com.example.ninefourone.nutritionmaster.adapter;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.example.ninefourone.nutritionmaster.R;
+import com.example.ninefourone.nutritionmaster.bean.FoodMenu;
+
+import java.util.ArrayList;
+
+/**
+ * Created by ScorpioMiku on 2018/10/7.
+ */
+
+public class MaterialResultAdapter extends RecyclerView.Adapter {
+ private ArrayList foodMenus;
+ private Context context;
+
+ public MaterialResultAdapter(ArrayList foodMenus, Context context) {
+ this.foodMenus = foodMenus;
+ this.context = context;
+ }
+
+ @Override
+ public MaterialResultHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(context).inflate(R.layout.material_result_item, parent, false);
+ return new MaterialResultHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(MaterialResultHolder holder, int position) {
+ holder.bindView(foodMenus.get(position));
+ }
+
+ @Override
+ public int getItemCount() {
+ return foodMenus.size();
+ }
+}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialResultHolder.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialResultHolder.java
new file mode 100644
index 0000000..eb49c40
--- /dev/null
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/MaterialResultHolder.java
@@ -0,0 +1,49 @@
+package com.example.ninefourone.nutritionmaster.adapter;
+
+import android.content.Intent;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.example.ninefourone.nutritionmaster.R;
+import com.example.ninefourone.nutritionmaster.bean.FoodMenu;
+import com.example.ninefourone.nutritionmaster.bean.RecommendFood;
+import com.example.ninefourone.nutritionmaster.modules.RecipeActivity.RecipeActivity;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+/**
+ * Created by ScorpioMiku on 2018/10/7.
+ */
+
+public class MaterialResultHolder extends RecyclerView.ViewHolder {
+ @BindView(R.id.image)
+ ImageView image;
+ @BindView(R.id.name)
+ TextView name;
+ @BindView(R.id.whole_layout)
+ LinearLayout wholeLayout;
+
+ public MaterialResultHolder(View itemView) {
+ super(itemView);
+ ButterKnife.bind(this, itemView);
+ }
+
+ public void bindView(final FoodMenu foodMenu) {
+ Glide.with(itemView.getContext()).load(foodMenu.getImage_url()).into(image);
+ name.setText(foodMenu.getName());
+ wholeLayout.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(itemView.getContext().getApplicationContext(), RecipeActivity.class);
+ RecommendFood recommendFood = new RecommendFood(foodMenu, 1);
+ intent.putExtra("SEND_OBJECT", recommendFood);
+ itemView.getContext().getApplicationContext().startActivity(intent);
+ }
+ });
+ }
+}
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..fe018ff 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
@@ -1,9 +1,12 @@
package com.example.ninefourone.nutritionmaster.adapter;
+import android.app.AlertDialog;
import android.content.Intent;
import android.view.View;
import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
@@ -11,6 +14,7 @@ import com.chad.library.adapter.base.BaseViewHolder;
import com.example.ninefourone.nutritionmaster.R;
import com.example.ninefourone.nutritionmaster.bean.RecommendFood;
import com.example.ninefourone.nutritionmaster.modules.RecipeActivity.RecipeActivity;
+import com.example.ninefourone.nutritionmaster.utils.MessageUtils;
import com.orhanobut.logger.Logger;
import java.util.List;
@@ -20,7 +24,6 @@ import java.util.List;
*/
public class RecommendAdapter extends BaseMultiItemQuickAdapter {
- private int[] indexs = new int[]{0, 1, 1, 2};
private Intent intent;
/**
@@ -31,37 +34,43 @@ public class RecommendAdapter extends BaseMultiItemQuickAdapter data) {
super(data);
- addItemType(RecommendFood.TYPE_BIG, R.layout.recommend_item_big);
+ addItemType(RecommendFood.TYPE_BIG, R.layout.recommend_item_middle);
addItemType(RecommendFood.TYPE_DETAIL, R.layout.recommend_item_detail);
addItemType(RecommendFood.TYPE_MIDDLE, R.layout.recommend_item_middle);
}
@Override
- protected void convert(BaseViewHolder helper, RecommendFood item) {
+ protected void convert(BaseViewHolder helper, final RecommendFood item) {
ImageView imageView = helper.getView(R.id.recommend_item_imageview);
- Glide.with(mContext).load(R.drawable.food_test).into(imageView);
- switch (item.getItemType()) {
- case RecommendFood.TYPE_BIG:
- helper.setText(R.id.recommend_item_title, "红烧肉");
- break;
- case RecommendFood.TYPE_DETAIL:
- helper.setText(R.id.recommend_item_title, item.getTitle());
- helper.setText(R.id.recommend_item_description, item.getDescription());
- break;
- case RecommendFood.TYPE_MIDDLE:
- helper.setText(R.id.recommend_item_title, "红烧");
- break;
- }
+
+ Glide.with(mContext).load(item.getPicture()).into(imageView);
View view = helper.getView(R.id.whole_layout);
- intent = new Intent(mContext, RecipeActivity.class);
-// Logger.d(item.getItemType());
- intent.putExtra("SEND_OBJECT", item);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
+ Intent intent = new Intent(mContext, RecipeActivity.class);
+ intent.putExtra("SEND_OBJECT", item);
mContext.startActivity(intent);
}
});
+ helper.setText(R.id.recommend_item_title, item.getTitle());
+ if (item.getItemType() == RecommendFood.TYPE_DETAIL) {
+ helper.setText(R.id.recommend_item_description, item.getDescription());
+ LinearLayout detailClick = helper.getView(R.id.detail_click);
+ detailClick.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(mContext).setTitle("小知识")
+ .setMessage(item.getDescription()).setIcon(R.drawable.ic_add_recipe);
+ AlertDialog dialog = builder.create();
+ dialog.setCanceledOnTouchOutside(true);
+ dialog.setCancelable(true);
+ dialog.show();
+ }
+ });
+ }
+
+
}
@Override
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/ResultListHolder.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/ResultListHolder.java
index 6555420..f0ecbb1 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/ResultListHolder.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/adapter/ResultListHolder.java
@@ -68,6 +68,6 @@ public class ResultListHolder extends RecyclerView.ViewHolder {
name.setText(classifyResult.getName());
- Glide.with(context).load("http://s2.boohee.cn/house/food_big/big_photo20155149534910631.jpg").into(image);
+ Glide.with(context).load(classifyResult.getImgPath()).into(image);
}
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseActivity.java
index 758b122..dbe5d9f 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseActivity.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseActivity.java
@@ -5,6 +5,7 @@ import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import com.example.ninefourone.nutritionmaster.NutritionMaster;
+import com.example.ninefourone.nutritionmaster.bean.Element;
import com.example.ninefourone.nutritionmaster.bean.MyUser;
import com.example.ninefourone.nutritionmaster.utils.WebUtil;
import com.orhanobut.logger.Logger;
@@ -99,7 +100,8 @@ public abstract class BaseActivity extends AppCompatActivity {
protected void upUser() {
NutritionMaster.user = user;
- Logger.d("用户信息已改" + NutritionMaster.user.toString());
+ NutritionMaster.element = new Element(user);
+// Logger.d("用户信息已改" + NutritionMaster.user.toString());
}
@Override
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseFragment.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseFragment.java
index 66ecba3..9e3ec82 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseFragment.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/base/BaseFragment.java
@@ -37,6 +37,7 @@ public abstract class BaseFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle state) {
+ webUtil = WebUtil.getInstance();
parentView = inflater.inflate(getLayoutResId(), container, false);
activity = getSupportActivity();
return parentView;
@@ -47,7 +48,6 @@ public abstract class BaseFragment extends Fragment {
super.onViewCreated(view, savedInstanceState);
unbinder = ButterKnife.bind(this, view);
initView(savedInstanceState);
- webUtil = WebUtil.getInstance();
this.user = NutritionMaster.user;
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/ClassifyResult.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/ClassifyResult.java
index 2ac1910..76d550b 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/ClassifyResult.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/ClassifyResult.java
@@ -24,7 +24,7 @@ public class ClassifyResult implements Serializable {
private Boolean has_calorie = false;
private double quantity = -1;
private FoodMenu foodMenu;
- private FoodMaterial foodMaterial;
+ private Material foodMaterial;
private int flag = -1;
public static int MATERIAL = 0;
@@ -64,13 +64,12 @@ public class ClassifyResult implements Serializable {
public void onFailure(Call call, IOException e) {
}
-
@Override
public void onResponse(Call call, Response response) throws IOException {
String json = response.body().string();
FoodMaterial material = new Gson().fromJson(json, FoodMaterial.class);
- foodMaterial = material;
- Logger.d(name + "|" + foodMaterial);
+ foodMaterial = new Material();
+ foodMaterial.setFoodMaterial(material);
}
});
} else {
@@ -78,7 +77,7 @@ public class ClassifyResult implements Serializable {
}
}
- public FoodMaterial getFoodMaterial() {
+ public Material getFoodMaterial() {
return foodMaterial;
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Element.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Element.java
new file mode 100644
index 0000000..620cc6a
--- /dev/null
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Element.java
@@ -0,0 +1,427 @@
+package com.example.ninefourone.nutritionmaster.bean;
+
+import com.example.ninefourone.nutritionmaster.NutritionMaster;
+
+/**
+ * Created by ScorpioMiku on 2018/10/7.
+ */
+
+public class Element implements Cloneable {
+
+ private double calorie;
+ private float carbohydrate;
+ private float fat;
+ private float protein;
+ private float cellulose;
+ private float vitaminA;
+ private float vitaminB1;
+ private float vitaminB2;
+ private float vitaminB6;
+ private float vitaminC;
+ private float vitaminE;
+ private float carotene;
+ private float cholesterol;
+ private float Mg;
+ private float Ca;
+ private float Fe;
+ private float Zn;
+ private float Cu;
+ private float Mn;
+ private float K;
+ private float P;
+ private float Na;
+ private float Se;
+ private float niacin;
+ private float thiamine;
+
+
+ public Element calculateData(MyUser user) throws CloneNotSupportedException {
+ double calorie = 655 + 9.6 * user.getWeight() + 1.9 * user.getHeight() - 4.7 * user.getAge();
+ Element temp = (Element) this.clone();
+ temp.setCalorie(calorie * this.calorie);
+ temp.setCarbohydrate(user.getWeight() * this.carbohydrate);
+ temp.setFat(user.getWeight() * this.fat);
+ temp.setProtein(user.getWeight() * this.protein);
+ return temp;
+ }
+
+ public Element(MyUser user) {
+ if (user.getSex() == 0) {
+ calorie = 0f;
+ carbohydrate = 7.5f;
+ fat = 1.2f;
+ protein = 1f;
+ cellulose = 25f;
+ vitaminA = 700f;
+ vitaminB1 = 1200f;
+ vitaminB2 = 1200f;
+ vitaminB6 = 1400f;
+ vitaminC = 100f;
+ vitaminE = 14f;
+ carotene = 3600f;
+ cholesterol = 200f;
+ Mg = 315f;
+ Ca = 1200f;
+ Fe = 15f;
+ Zn = 12f;
+ Cu = 2.3f;
+ Mn = 3.5f;
+ K = 2000f;
+ P = 1000f;
+ Na = 1500f;
+ Se = 0.05f;
+ niacin = 0f;
+ thiamine = 0f;
+ } else {
+ calorie = 0f;
+ carbohydrate = 7.5f;
+ fat = 1.2f;
+ protein = 1f;
+ cellulose = 25f;
+ vitaminA = 800f;
+ vitaminB1 = 1400f;
+ vitaminB2 = 1400f;
+ vitaminB6 = 2000f;
+ vitaminC = 100f;
+ vitaminE = 14f;
+ carotene = 3400f;
+ cholesterol = 200f;
+ Mg = 360f;
+ Ca = 1200f;
+ Fe = 10f;
+ Zn = 15f;
+ Cu = 2.3f;
+ Mn = 3.5f;
+ K = 2000f;
+ P = 1000f;
+ Na = 1500f;
+ Se = 0.05f;
+ niacin = 0f;
+ thiamine = 0f;
+ }
+ }
+
+ public Element(Physique.ElementsBean elementsBean) {
+ calorie = elementsBean.getCalorie();
+ carbohydrate = elementsBean.getCarbohydrate();
+ fat = elementsBean.getFat();
+ protein = elementsBean.getProtein();
+ cellulose = elementsBean.getCellulose();
+ vitaminA = elementsBean.getVitaminA();
+ vitaminB1 = elementsBean.getVitaminB1();
+ vitaminB2 = elementsBean.getVitaminB2();
+ vitaminB6 = elementsBean.getVitaminB6();
+ vitaminC = elementsBean.getVitaminC();
+ vitaminE = elementsBean.getVitaminE();
+ carotene = elementsBean.getCarotene();
+ cholesterol = elementsBean.getCholesterol();
+ Mg = elementsBean.getMg();
+ Ca = elementsBean.getCa();
+ Fe = elementsBean.getFe();
+ Zn = elementsBean.getZn();
+ Cu = elementsBean.getCu();
+ Mn = elementsBean.getMn();
+ K = elementsBean.getK();
+ P = elementsBean.getP();
+ Na = elementsBean.getNa();
+ Se = elementsBean.getSe();
+ niacin = elementsBean.getNiacin();
+ thiamine = elementsBean.getThiamine();
+ }
+
+ public Element(FoodMenu.ElementsBean elementsBean) {
+ calorie = elementsBean.getCalorie();
+ carbohydrate = (float) elementsBean.getCarbohydrate();
+ fat = (float) elementsBean.getFat();
+ protein = (float) elementsBean.getProtein();
+ cellulose = (float) elementsBean.getCellulose();
+ vitaminA = (float) elementsBean.getVitaminA();
+ vitaminB1 = elementsBean.getVitaminB1();
+ vitaminB2 = (float) elementsBean.getVitaminB2();
+ vitaminB6 = elementsBean.getVitaminB6();
+ vitaminC = (float) elementsBean.getVitaminC();
+ vitaminE = (float) elementsBean.getVitaminE();
+ carotene = (float) elementsBean.getCarotene();
+ cholesterol = (float) elementsBean.getCholesterol();
+ Mg = (float) elementsBean.getMg();
+ Ca = (float) elementsBean.getCa();
+ Fe = (float) elementsBean.getFe();
+ Zn = (float) elementsBean.getZn();
+ Cu = (float) elementsBean.getCu();
+ Mn = (float) elementsBean.getMn();
+ K = (float) elementsBean.getK();
+ P = (float) elementsBean.getP();
+ Na = (float) elementsBean.getNa();
+ Se = (float) elementsBean.getSe();
+ niacin = (float) elementsBean.getNiacin();
+ thiamine = (float) elementsBean.getThiamine();
+ }
+
+ public Element(Element elementsBean) {
+ calorie = elementsBean.getCalorie();
+ carbohydrate = elementsBean.getCarbohydrate();
+ fat = elementsBean.getFat();
+ protein = elementsBean.getProtein();
+ cellulose = elementsBean.getCellulose();
+ vitaminA = elementsBean.getVitaminA();
+ vitaminB1 = elementsBean.getVitaminB1();
+ vitaminB2 = elementsBean.getVitaminB2();
+ vitaminB6 = elementsBean.getVitaminB6();
+ vitaminC = elementsBean.getVitaminC();
+ vitaminE = elementsBean.getVitaminE();
+ carotene = elementsBean.getCarotene();
+ cholesterol = elementsBean.getCholesterol();
+ Mg = elementsBean.getMg();
+ Ca = elementsBean.getCa();
+ Fe = elementsBean.getFe();
+ Zn = elementsBean.getZn();
+ Cu = elementsBean.getCu();
+ Mn = elementsBean.getMn();
+ K = elementsBean.getK();
+ P = elementsBean.getP();
+ Na = elementsBean.getNa();
+ Se = elementsBean.getSe();
+ niacin = elementsBean.getNiacin();
+ thiamine = elementsBean.getThiamine();
+ }
+
+ public Element(Occupation.ElementsBean elementsBean) {
+ calorie = elementsBean.getCalorie();
+ carbohydrate = elementsBean.getCarbohydrate();
+ fat = elementsBean.getFat();
+ protein = elementsBean.getProtein();
+ cellulose = elementsBean.getCellulose();
+ vitaminA = elementsBean.getVitaminA();
+ vitaminB1 = elementsBean.getVitaminB1();
+ vitaminB2 = elementsBean.getVitaminB2();
+ vitaminB6 = elementsBean.getVitaminB6();
+ vitaminC = elementsBean.getVitaminC();
+ vitaminE = elementsBean.getVitaminE();
+ carotene = elementsBean.getCarotene();
+ cholesterol = elementsBean.getCholesterol();
+ Mg = elementsBean.getMg();
+ Ca = elementsBean.getCa();
+ Fe = elementsBean.getFe();
+ Zn = elementsBean.getZn();
+ Cu = elementsBean.getCu();
+ Mn = elementsBean.getMn();
+ K = elementsBean.getK();
+ P = elementsBean.getP();
+ Na = elementsBean.getNa();
+ Se = elementsBean.getSe();
+ niacin = elementsBean.getNiacin();
+ thiamine = elementsBean.getThiamine();
+ }
+
+
+ public Element(Illness.ElementsBean elementsBean) {
+ calorie = elementsBean.getCalorie();
+ carbohydrate = elementsBean.getCarbohydrate();
+ fat = elementsBean.getFat();
+ protein = elementsBean.getProtein();
+ cellulose = elementsBean.getCellulose();
+ vitaminA = elementsBean.getVitaminA();
+ vitaminB1 = elementsBean.getVitaminB1();
+ vitaminB2 = elementsBean.getVitaminB2();
+ vitaminB6 = elementsBean.getVitaminB6();
+ vitaminC = elementsBean.getVitaminC();
+ vitaminE = elementsBean.getVitaminE();
+ carotene = elementsBean.getCarotene();
+ cholesterol = elementsBean.getCholesterol();
+ Mg = elementsBean.getMg();
+ Ca = elementsBean.getCa();
+ Fe = elementsBean.getFe();
+ Zn = elementsBean.getZn();
+ Cu = elementsBean.getCu();
+ Mn = elementsBean.getMn();
+ K = elementsBean.getK();
+ P = elementsBean.getP();
+ Na = elementsBean.getNa();
+ Se = elementsBean.getSe();
+ niacin = elementsBean.getNiacin();
+ thiamine = elementsBean.getThiamine();
+ }
+
+
+ @Override
+ public String toString() {
+ return "ElementsBean{" +
+ ", calorie=" + calorie +
+ ", carbohydrate=" + carbohydrate +
+ ", fat=" + fat +
+ ", protein=" + protein +
+ ", cellulose=" + cellulose +
+ ", vitaminA=" + vitaminA +
+ ", vitaminB1=" + vitaminB1 +
+ ", vitaminB2=" + vitaminB2 +
+ ", vitaminB6=" + vitaminB6 +
+ ", vitaminC=" + vitaminC +
+ ", vitaminE=" + vitaminE +
+ ", carotene=" + carotene +
+ ", cholesterol=" + cholesterol +
+ ", Mg=" + Mg +
+ ", Ca=" + Ca +
+ ", Fe=" + Fe +
+ ", Zn=" + Zn +
+ ", Cu=" + Cu +
+ ", Mn=" + Mn +
+ ", K=" + K +
+ ", P=" + P +
+ ", Na=" + Na +
+ ", Se=" + Se +
+ ", niacin=" + niacin +
+ ", thiamine=" + thiamine +
+ '}';
+ }
+
+ public void add(Element elementsBean, float factor) {
+ float divisor;
+ if (factor == -1) {
+ divisor = 1;
+ factor = 1;
+ } else {
+ divisor = factor + 1.0f;
+ }
+ this.calorie = (factor * elementsBean.getCalorie() + this.calorie) / divisor;
+ this.carbohydrate = (factor * elementsBean.getCarbohydrate() + this.carbohydrate) / divisor;
+ this.fat = (factor * elementsBean.getFat() + this.fat) / divisor;
+ this.protein = (factor * elementsBean.getProtein() + this.protein) / divisor;
+ this.cellulose = (factor * elementsBean.getCellulose() + this.cellulose) / divisor;
+ this.vitaminA = (factor * elementsBean.getVitaminA() + this.vitaminA) / divisor;
+ this.vitaminB1 = (factor * elementsBean.getVitaminB1() + this.vitaminB1) / divisor;
+ this.vitaminB2 = (factor * elementsBean.getVitaminB2() + this.vitaminB2) / divisor;
+ this.vitaminB6 = (factor * elementsBean.getVitaminB6() + this.vitaminB6) / divisor;
+ this.vitaminC = (factor * elementsBean.getVitaminC() + this.vitaminC) / divisor;
+ this.vitaminE = (factor * elementsBean.getVitaminE() + this.vitaminE) / divisor;
+ this.carotene = (factor * elementsBean.getCarotene() + this.carotene) / divisor;
+ this.cholesterol = (factor * elementsBean.getMg() + this.Mg) / divisor;
+ this.Mg = (factor * elementsBean.getCarbohydrate() + this.carbohydrate) / divisor;
+ this.Ca = (factor * elementsBean.getCa() + this.Ca) / divisor;
+ this.Fe = (factor * elementsBean.getFe() + this.Fe) / divisor;
+ this.Zn = (factor * elementsBean.getZn() + this.Zn) / divisor;
+ this.Cu = (factor * elementsBean.getCu() + this.Cu) / divisor;
+ this.Mn = (factor * elementsBean.getMn() + this.Mn) / divisor;
+ this.K = (factor * elementsBean.getK() + this.K) / divisor;
+ this.P = (factor * elementsBean.getP() + this.P) / divisor;
+ this.Na = (factor * elementsBean.getNa() + this.Na) / divisor;
+ this.Se = (factor * elementsBean.getSe() + this.Se) / divisor;
+ this.niacin = (factor * elementsBean.getNiacin() + this.niacin) / divisor;
+ this.thiamine = (factor * elementsBean.getThiamine() + this.thiamine) / divisor;
+ }
+
+ public double getCalorie() {
+ return calorie;
+ }
+
+ public float getCarbohydrate() {
+ return carbohydrate;
+ }
+
+ public float getFat() {
+ return fat;
+ }
+
+ public float getProtein() {
+ return protein;
+ }
+
+ public float getCellulose() {
+ return cellulose;
+ }
+
+ public float getVitaminA() {
+ return vitaminA;
+ }
+
+ public float getVitaminB1() {
+ return vitaminB1;
+ }
+
+ public float getVitaminB2() {
+ return vitaminB2;
+ }
+
+ public float getVitaminB6() {
+ return vitaminB6;
+ }
+
+ public float getVitaminC() {
+ return vitaminC;
+ }
+
+ public float getVitaminE() {
+ return vitaminE;
+ }
+
+ public float getCarotene() {
+ return carotene;
+ }
+
+ public float getCholesterol() {
+ return cholesterol;
+ }
+
+ public float getMg() {
+ return Mg;
+ }
+
+ public float getCa() {
+ return Ca;
+ }
+
+ public float getFe() {
+ return Fe;
+ }
+
+ public float getZn() {
+ return Zn;
+ }
+
+ public float getCu() {
+ return Cu;
+ }
+
+ public float getMn() {
+ return Mn;
+ }
+
+ public float getK() {
+ return K;
+ }
+
+ public float getP() {
+ return P;
+ }
+
+ public float getNa() {
+ return Na;
+ }
+
+ public float getSe() {
+ return Se;
+ }
+
+ public float getNiacin() {
+ return niacin;
+ }
+
+ public float getThiamine() {
+ return thiamine;
+ }
+
+ public void setCalorie(double calorie) {
+ this.calorie = calorie;
+ }
+
+ public void setCarbohydrate(float carbohydrate) {
+ this.carbohydrate = carbohydrate;
+ }
+
+ public void setFat(float fat) {
+ this.fat = fat;
+ }
+
+ public void setProtein(float protein) {
+ this.protein = protein;
+ }
+}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/FoodMenu.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/FoodMenu.java
index 27531c0..e15c5e9 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/FoodMenu.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/FoodMenu.java
@@ -1,8 +1,9 @@
package com.example.ninefourone.nutritionmaster.bean;
+import java.io.Serializable;
import java.util.List;
-public class FoodMenu {
+public class FoodMenu implements Serializable {
/**
@@ -124,7 +125,7 @@ public class FoodMenu {
this.menuclassification_set = menuclassification_set;
}
- public static class ElementsBean {
+ public static class ElementsBean implements Serializable {
/**
* id : 3940
* calorie : 183
@@ -422,7 +423,7 @@ public class FoodMenu {
}
}
- public static class CookQuantityBean {
+ public static class CookQuantityBean implements Serializable{
/**
* menu : 五香酥鱼
* quantity : 500
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/FoodMenuLight.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/FoodMenuLight.java
index a6b8a29..9c1af14 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/FoodMenuLight.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/FoodMenuLight.java
@@ -1,6 +1,8 @@
package com.example.ninefourone.nutritionmaster.bean;
-public class FoodMenuLight {
+import java.io.Serializable;
+
+public class FoodMenuLight implements Serializable{
/**
* name : 番茄虾仁
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Illness.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Illness.java
index fa90a81..c2c7137 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Illness.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Illness.java
@@ -1,8 +1,9 @@
package com.example.ninefourone.nutritionmaster.bean;
+import java.io.Serializable;
import java.util.List;
-public class Illness {
+public class Illness implements Serializable{
/**
* menu_classification : {"classification":"青少年食谱","cure_occupation":["学生"],"menu_effect":["【家常菜】蟹黄豆腐","三鲜鳝汤","上海糖醋小排骨","上海香酥鸡","丝瓜炒小鲜","丝瓜炒面筋","两炸豆腐","丰胸塑身的燕麦豆浆枣粥","乳酪泡芙","五柳豆腐","五谷低卡版发糕","五香干豆腐","五香牛肉干","五香茶叶鹌鹑蛋","五香黄豆","京味炸酱面","京爆里脊","什锦泡粥","什锦莓果派","什锦豆腐煲","健康养生起司蛋糕","健脑菜腊肉蚕豆笋丁","儿童健脑菜-松仁彩丁","全麦馒头","八宝莲子羹","农家丰收饭","冬笋干烧肉","冬虫夏草乌鸡粥","冰糖核桃仁糊","冰醉鸡","凉拌蔬菜","凉拌豆腐皮","剁椒粉丝开屏鱼","千张包","南煎豆腐","南瓜排骨汤","南瓜水饺","南瓜沙拉","南瓜蒸饺","南瓜虾皮汤","南瓜起司蛋糕","南瓜银耳露","南瓜饺","南瓜馅水饺","南百红豆","卤水鸭心","卤猪仔脚","卤虎皮豆腐","原味乳酪派","原味蛋糕体","双味荷花豆腐","双味蝤蛑","双色对虾","双色芙蓉","发菜鱼片芫荽汤","口蘑鸭片汤","可乐鸡翅(2)","可乐鸡腿","台湾猪肚四神汤","合桃腰花","咖啡千层派","咖啡巧克力慕斯派","咖啡蛋糕卷","咖喱牛肉什锦饭","咖喱豆腐","咖喱鸡饭","咸蛋豆腐饼","咸蛋黄包","咸鸭蛋炒南瓜","哈尔滨糖醋排骨","啤酒老鸭粉丝煲","四喜素丸子","四季豆焖肉排","四川凉面","四方蒸饺","土豆烧牛腩","夏季养生的鲜泥鳅面嘎嘎","大蒜家常豆腐鱼","大蒜拌豆腐","夹沙豆腐","奶汤鳗片","奶香南瓜羹","奶香玉米棒","如意豆腐","姜椒鱼汤","媲美川菜馆的手撕包菜","孜然香酥小黄豆","安神补脑的小米豆腐虾仁丸","宫保豆腐丁","宫爆豆腐丁","家乡豆腐","家制酱排骨","家常田鸡","小炒牛肉","小白菜汤","小辣椒拌豆腐","尖椒拌豆腐","尖椒炒鲫鱼","尖椒茄子煲","山椒泡凤爪","山楂糕","山药黑鱼汤","川椒生炒鸭","巧克力冰淇淋","巧克力慕斯蛋糕卷","干炸仔鸡","干炸里脊","干烧桂鱼","干焖豆腐","干煎牛排","干煸鸡丝","干锅茶树菇","彩虹金菇煲","微波炉自制薯片","怪味五丁","怪味泥鳅","惹味三杯猴头菇","扒双菜","扒肉条","拌金针菇","拔丝地瓜","拔丝茄子","拔丝蚕豆","斑柳扒豆苗","无花果生鱼汤","既下饭又下酒的剁椒蒸带鱼","日式蒸烤乳酪蛋糕","晃子汤","木犀肉","木耳炒肉","木须豇豆","杂粮南瓜糊","杂粮蜜豆窝窝头","杏仁蛋糕卷","杞子烧黄鱼","果仁菠菜","果泥冰棒","果酱铁棍山药泥","果香浓郁金钻凤梨酥","枣泥豆腐","柠檬派","栗子草鸡煲","核桃片","核桃羹","核桃肉","核桃银耳紫薯粥","核桃黑豆浆","桂圆黄芪牛肉汤","桂花梭子蟹","桂花蜜果篮","桃仁土司","梨子百合菊花饮","椒丝腐乳通菜","椒油拌豆腐","椒盐南瓜条","椒盐毛豆","橙汁小排","正宗台湾麻油鸡","毛豆烧鸡","水晶豆腐","水果拼盘","水豆腐花汤","油条拌豆腐","油淋茄子","油炸肉心蛋","油焖对虾","油爆对虾","油盐豆腐","油豆腐塞肉","法式洋梨杏仁派","洋葱炒牛肉","洋葱炒肉丝","洋葱炖牛筋","海带炖冻豆腐","海带炖鸡","海带绿豆汤","海椰皇雪耳汤","清汤田鸡豆","清炖鲢鱼头","清热消暑的苦瓜烧肉","清蒸排骨","清蒸鸡蛋羹","湘汁四味明虾","溜丸子","滑溜羊肝","滑溜里脊","潮州大鱼丸","潮汕菜干猪骨汤","炒木须肉","炒牛肉丝拉皮","炒牛肝","炒米线","炒脆藕","炒花生","炒芹菜豆腐干","炒菠萝饭","炒豆腐皮","炒豆腐衣","炒青虾","炒面","炒香干菠菜","炒鸡杂","炖五花肉","炖冻豆腐","炖鸡翅","炝对虾片","炝拌牛肉丝","炝苋菜","炝黄豆芽","炫色鸡蛋汤","炸对虾","炸带鱼","炸扦子","炸熘肝尖","炸藕丝","炸青虾","炸鸡翅","烤牛肉饼","烤秋刀鱼","烧蒸牛肉","烧鸡腿","热狗番茄酱蛋糕卷","焖南瓜饭","焦炸茄子","煎南瓜粑粑","煎猪肝","煎芹菜叶饼","煎酿茄子","煎馒头片","煮小鸡","熊猫豆糯米粥","熏鸡拌黄瓜","熘三样","熘鱼片","爆炒猪腰","爆炒肝尖","爆炒鸡胗肝","爆茄子","牛奶扒白菜心","牛奶炒虾仁","牛筋炖土豆","牛肉丸子","牛肉冷片","牛肉炖豆腐","牛肉馅饼","牛蒡紫米养生粥","猪肝鸡蛋汤","玉米羹","珍珠豆腐汤","珠玉白菜","琥珀花生","甜辣牛肉干","甜酥花生","番茄炒蛋","番茄苹果汁","番茄茄丝","番茄虾仁","番茄鸡翅","番薯糖水","瘦身素菜西兰花炒冬瓜","白木耳炒豆腐","白果炒百合","白果羹","白油猪肝","白灼芥兰","白玉豆腐","白菜炖冻豆腐","白菜豆腐拌牛肉","白萝卜炒猪肝","百花蒸豆腐","皮蛋排骨粥","盖浇饭","砂锅豆腐海米","砂锅鱼头粉皮","砂锅鸡","福建酿豆腐","稍甜带点酸的玫瑰糖鲜桃果酱","空心菜排骨汤","米粉蒸南瓜","粉丝蛋","粉蒸素鸡","粟米豆腐羹","糖拌花生米","糖豆","糖醋花生米","糖醋菠萝排骨","糖醋西葫芦丁","糖醋鲈鱼","糖醋鸡翅","糯米绿豆汤","糯米酒炒鸡","素炒小白菜","素炒黄豆芽","素烤鸭","素烧鹅","素红烧肉","紫菜肉片豆腐汤","紫酥鸡","红油鸡片","红烧凤翅","红烧牛腩","红烧牛腩面","红烧狮子头(四喜丸子)","红烧猪蹄筋","红烧鲈鱼","红烧鲫鱼 全程图解","红烧鳗鱼","红烧鸡/红烧鸡肉","红烧鸭/红烧鸭子","红焖珍珠鸡","红糟肉","纯手工草莓酱","绿豆煲田鸡","美味肉串","翡翠火鸡片","肉丝炒蒜黄","肉丝锅饼","肉末土豆泥","肉末雪菜蒸豆腐","肉片炒青椒","胡椒牛肉汤","胡萝卜布丁","胡萝卜炒木耳","胡萝卜炖羊排","胡萝卜烧羊肉","胡萝卜牛肉水饺","胡萝卜猪肝汤","腐皮卷素菜","自制双莓酸奶","自制豆腐","自制豆腐花、内酯豆腐","节后清脂减肥的干贝冬瓜球","芝麻菠菜拌豆腐","芝麻金茸","芥末鸡片","花生酥糖","花生银鱼","芹菜拌豆腐","芹菜炒猪肝","芹菜炒香干","芹菜苹果汁","芽菜蛋羹","苏式叉烧肉","苘蒿豆干","苦瓜酿香蕉","苦甜巧克力起司蛋糕","苦菊银耳沙拉","苹果汤","苹果醋","茄子拌芦荟酱","茄子蛋糊","茄汁烹鸡腿","茄汁藕松","茄汁鱼片","茭瓜炒肉","草莓派","草莓起司蛋糕","草莓酒冻","草莓酸奶","草莓酸奶冰淇淋","草菇猪心肉片饭","草鱼粉皮煲","荠菜家常饼","荷包蛋饭","荷叶薏米冬瓜汤","荸荠炒荷兰豆","莲子百合炖瘦肉","莲米苡仁排骨","菇笋萝卜豆腐汤","菜团子","菜心炒肉片","菜心狮子头","菠菜汤","菠菜煮猪肝","菠菜牛骨汤","菠菜粉丝汤","菠萝明虾片","萝卜丝老鸭汤","萝卜丝饼","萝卜牛肉汤","萝卜花的制作与糖醋萝卜丝","葡萄干蛋糕卷","葡萄果汁","葱头萝卜排骨汤","葱油大虾","葱油豆腐","葱油鲜炒蚕豆瓣","葱油鲩鱼","葱烧兔肉","葱辣大虾","葱辣鸭肝","葱香秋葵","蒜烧海蟹","蒜苗拌豆腐","蒜香吞拿鱼意面","蒜香排骨","蒜香鸡翅","蓝山乳酪蛋糕","蔓越莓果酱小点","蔬菜沙拉","薏米腐竹煲猪肚","藜麦红薯好粥道","虎皮茄子","虎蛋糕卷","虾仁烧卖","虾皮汤","蚌肉豆腐汤","蚕豆泥拌雪里蕻","蚕豆瓣炒蟹味菇","蚝油杏鲍菇","蛋煎白饭鱼","蜜汁烤翅","蝴蝶豆腐","补肾又益肺的冬虫夏草枸杞汤","补脑益智羹","补血强骨的菠菜猪肝粥","裹烧茭白","西洋风味面","西米银耳羹","西红柿打卤面","豆干拌黄瓜","豆干炒肉丝","豆干牛肉丝","豆瓣鱼","豆腐丸","豆腐汉堡包","豆腐白菜丁","豆腐皮汤","豆腐花","豆腐螃蟹煲","豆腐鱼头汤","豆花鱼","豆芽炒肉丁","豆芽炖排骨","豆角炒肉","豆豉烧豆腐","豉汁炒鸡翼球","豉油豆腐","象牙丝浮小麦猪骨汤","赤小豆牛肉汤","软炸对虾段","软炸带鱼","软炸珍珠鸡卷","软炸虾仁","软煎牛肉","软熘果仁虾丁","软熘虾片","软熘豆腐(二)","辣味珍珠鸡丁","辣味茄子","酒渍樱桃乳酪蛋糕","酒酿蛋","酥炸卤鸭","酥皮大虾","酥皮豆腐","酱南瓜","酱咸桃仁","酱排骨","酱明太鱼干","酱汁牛肉","酱汁香干","酱汁鸭肝(二)","酱油瓜片","酱烧茄子","酱香土豆泥","酱鸡腿","酱黄豆","酸梅汤","酸菜煮鱼","酸菜牛柳丝","酸菜鱼片汤","酸辣鱿鱼片","醋烹鲫鱼","野莓乳酪蛋糕","金针菇烧豆腐","金龙戏白玉","银耳鸽汤","锅烧整鸡","锅爆肉","防治手足口病的苋菜竹笋炒鸡丝","阳光西柚苹果汁","雪丽对虾","雪菜肉末四季豆","青椒兔柳","青椒拌香干丝","青椒牛肉","青椒绿豆芽","青椒肉丁","青豆炒素虾仁","面片甩袖汤","韩国海带汤","韩国辣白菜","韩式酱煮黑豆","韩式金皮南瓜粥","韭菜拌豆腐","饭饭香烤兔肉","首乌牛肉汤","香卤鹌鹑蛋","香干牛肉","香梨沙拉","香椿头拌豆腐","香肠煎蛋","香芋扣肉","香芋汽锅乌鸡","香菇土豆炖肉","香菇炒板栗","香菇豆腐羹","香菜拌牛肉","香菜牛肉丝","香葱八带","香葱拌干丝","香葱拌豆腐","香蕉乳酪卷","香蕉奶油派","香辣红烧带鱼","香酥排骨","香酥活鲤鱼","马铃薯煎鸭脯","骨头酥汤","魔芋野鸭","鱼头炖豆腐","鱼头豆腐汤","鱼头通菜瘦肉汤","鱼汁杂鱼煲","鱼香排骨","鱼香豆腐","鲜橙煎软鸭","鲜茄蛋花汤","鲜虾粥","鲢鱼头豆腐汤","鸡汁蔬菜条","鸡火汤","鸡蓉葵花汤","鸭黄豆角","麻辣香水鱼","麻辣鸡","麻酱拌山苜楂菜","黄州东坡肉","黄瓜炒子虾","黄花鸡丝汤","黄豆猪手汤","黄豆肉皮冻","黄豆芽排骨","黄金海鲜火锅","黄鱼烧豆腐","黑木耳炒猪肝2","黑樱桃派","黑芝麻糊","黑豆焖高原鸡","黑面包"]}
@@ -36,7 +37,7 @@ public class Illness {
'}';
}
- public static class MenuClassificationBean {
+ public static class MenuClassificationBean implements Serializable{
/**
* classification : 青少年食谱
* cure_occupation : ["学生"]
@@ -81,7 +82,7 @@ public class Illness {
}
}
- public static class ElementsBean {
+ public static class ElementsBean implements Serializable{
/**
* id : 84
* calorie : 1.1
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Material.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Material.java
index ef32b29..bc6a70b 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Material.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Material.java
@@ -1,31 +1,106 @@
package com.example.ninefourone.nutritionmaster.bean;
+import com.example.ninefourone.nutritionmaster.utils.MessageUtils;
+import com.example.ninefourone.nutritionmaster.utils.WebUtil;
+import com.google.gson.Gson;
+import com.orhanobut.logger.Logger;
+
+import java.io.IOException;
+import java.io.Serializable;
+import java.util.ArrayList;
+
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.Response;
+
/**
- * Created by ScorpioMiku on 2018/9/11.
+ * Created by ScorpioMiku on 2018/10/7.
*/
-public class Material {
- private String materialName;
- private float weight;
+public class Material implements Serializable {
+ FoodMaterial foodMaterial;
+ ArrayList menus = new ArrayList<>();
- public Material(String materialName, float weight) {
- this.materialName = materialName;
- this.weight = weight;
+ public FoodMaterial getFoodMaterial() {
+ return foodMaterial;
}
- public String getMaterialName() {
- return materialName;
+ public void setFoodMaterial(FoodMaterial foodMaterial) {
+ this.foodMaterial = foodMaterial;
+ try {
+ int max = foodMaterial.getCook_quantity().size() > 30 ? 30 : foodMaterial.getCook_quantity().size();
+ for (int i = 0; i < max; i++) {
+ WebUtil webUtil = WebUtil.getInstance();
+ FoodMaterial.CookQuantityBean temp = foodMaterial.getCook_quantity().get(i);
+ String menuName = temp.getMenu();
+ webUtil.getMenu(menuName, new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ String json = response.body().string();
+ try {
+ FoodMenu menu = new Gson().fromJson(json, FoodMenu.class);
+ if (!menu.getImage_url().equals("0")) {
+ menus.add(menu);
+// Logger.d(menu);
+ }
+ }catch (Exception e){
+// Logger.e(json);
+ e.printStackTrace();
+ }
+
+ }
+ });
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+// MessageUtils.MakeToast("您当前拍摄的食材没有录入服务器");
+ }
}
- public void setMaterialName(String materialName) {
- this.materialName = materialName;
+ public ArrayList getMenus() {
+ return menus;
}
- public float getWeight() {
- return weight;
+ public void setMenus(ArrayList menus) {
+ this.menus = menus;
}
- public void setWeight(float weight) {
- this.weight = weight;
+ @Override
+ public String toString() {
+ return foodMaterial.toString() + "\nsize:" + menus.size();
+ }
+
+ private void addMenu(final int index, final int max) {
+ WebUtil webUtil = WebUtil.getInstance();
+ FoodMaterial.CookQuantityBean temp = foodMaterial.getCook_quantity().get(index);
+ String menuName = temp.getMenu();
+ Logger.d(menuName);
+ webUtil.getMenu(menuName, new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ Logger.d(response.body().string());
+ FoodMenu menu = new Gson().fromJson(response.body().string(), FoodMenu.class);
+ menus.add(menu);
+ if (index < max) {
+ Thread thread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ addMenu(index + 1, max);
+ }
+ });
+ thread.start();
+ }
+ }
+ });
}
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Menu.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Menu.java
deleted file mode 100644
index 3cddc86..0000000
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Menu.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.example.ninefourone.nutritionmaster.bean;
-
-import java.util.ArrayList;
-
-/**
- * Created by ScorpioMiku on 2018/9/9.
- */
-
-public class Menu {
- private String menuName;
- private ArrayList 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/MenuClassification.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/MenuClassification.java
index e73c3e0..19e4d4f 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/MenuClassification.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/MenuClassification.java
@@ -1,8 +1,9 @@
package com.example.ninefourone.nutritionmaster.bean;
+import java.io.Serializable;
import java.util.List;
-public class MenuClassification {
+public class MenuClassification implements Serializable{
/**
* classification : 川菜
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..1d52635 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
@@ -30,7 +30,7 @@ public class MyUser {
*/
private Integer id;
- private EatenElementsBean eaten_elements;
+ private EatenElementsBean eaten_elements = new EatenElementsBean();
private String physical_name;
private String password;
private Object last_login;
@@ -42,12 +42,12 @@ public class MyUser {
private Boolean is_staff;
private Boolean is_active;
private String date_joined;
- private Integer sex;
+ private Integer sex = 1;
private Integer age;
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;
@@ -85,6 +85,12 @@ public class MyUser {
'}';
}
+
+ public void changeElement(EatenElementsBean eaten_elements) {
+
+ }
+
+
public Integer getId() {
return id;
}
@@ -292,7 +298,7 @@ public class MyUser {
*/
private double id;
- private double calorie;
+ private double calorie = 1;
private double carbohydrate;
private double fat;
private double protein;
@@ -557,5 +563,33 @@ public class MyUser {
public void setThiamine(double thiamine) {
this.thiamine = thiamine;
}
+
+ public void add(Element element, float factor) {
+ calorie += element.getCalorie() * factor;
+ carbohydrate += (float) element.getCarbohydrate() * factor;
+ fat += (float) element.getFat() * factor;
+ protein += (float) element.getProtein() * factor;
+ cellulose += (float) element.getCellulose() * factor;
+ vitaminA += (float) element.getVitaminA() * factor;
+ vitaminB1 += element.getVitaminB1() * factor;
+ vitaminB2 += (float) element.getVitaminB2() * factor;
+ vitaminB6 += element.getVitaminB6() * factor;
+ vitaminC += (float) element.getVitaminC() * factor;
+ vitaminE += (float) element.getVitaminE() * factor;
+ carotene += (float) element.getCarotene() * factor;
+ cholesterol += (float) element.getCholesterol() * factor;
+ Mg += (float) element.getMg() * factor;
+ Ca += (float) element.getCa() * factor;
+ Fe += (float) element.getFe() * factor;
+ Zn += (float) element.getZn() * factor;
+ Cu += (float) element.getCu() * factor;
+ Mn += (float) element.getMn() * factor;
+ K += (float) element.getK() * factor;
+ P += (float) element.getP() * factor;
+ Na += (float) element.getNa() * factor;
+ Se += (float) element.getSe() * factor;
+ niacin += (float) element.getNiacin() * factor;
+ thiamine += (float) element.getThiamine() * factor;
+ }
}
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Physique.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Physique.java
index 3b0b8fd..95e877d 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Physique.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Physique.java
@@ -392,5 +392,7 @@ public class Physique {
this.thiamine = thiamine;
}
+
+
}
}
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..64e032a 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;
}
@@ -68,4 +65,10 @@ public class RecommendFood implements MultiItemEntity, Serializable {
public int getItemType() {
return type;
}
+
+ @Override
+ public String toString() {
+ return menu.toString();
+
+ }
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/camera/ClassifierCamera.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/camera/ClassifierCamera.java
index 0b1be72..53661d5 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/camera/ClassifierCamera.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/camera/ClassifierCamera.java
@@ -4,11 +4,16 @@ import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Matrix;
import android.hardware.Camera;
import android.os.Bundle;
+import android.os.Environment;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Base64;
+import android.util.Log;
import android.view.Surface;
import android.view.View;
import android.view.Window;
@@ -18,6 +23,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import com.example.ninefourone.nutritionmaster.R;
+import com.example.ninefourone.nutritionmaster.base.BaseFragment;
import com.example.ninefourone.nutritionmaster.bean.ClassifyResult;
import com.example.ninefourone.nutritionmaster.modules.classifyresult.DishResultActivity;
import com.example.ninefourone.nutritionmaster.modules.classifyresult.MaterialResultActivity;
@@ -37,6 +43,9 @@ import com.youdao.sdk.ydtranslate.TranslateParameters;
import org.json.JSONArray;
import org.json.JSONObject;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
@@ -171,7 +180,20 @@ public class ClassifierCamera extends AppCompatActivity {
private Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {
@Override
public void onPictureTaken(final byte[] data, Camera camera) {
+ Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
+ bitmap = rotateBitmapByDegree(bitmap, 90);
+ //缩放
+ bitmap = Bitmap.createScaledBitmap(bitmap, 720, 1280, false);
try {
+ final File pictureDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
+ final String pictureName = System.currentTimeMillis() + ".jpg";
+ final String picturePath = pictureDir + File.separator + pictureName;
+ File file = new File(picturePath);
+ BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
+ bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);
+ bos.flush();
+ bos.close();
+
String imgStr = Base64.encodeToString(data, Base64.DEFAULT);
String imgParam = URLEncoder.encode(imgStr, "UTF-8");
final String param = "image=" + imgParam + "&top_num=" + 1;
@@ -186,6 +208,7 @@ public class ClassifierCamera extends AppCompatActivity {
result = jsonObject.getJSONArray("objects")
.getJSONObject(0).getString("value");
translate(result);
+ refreshUI();
} else if (code == DISH_CODE) {
result = WebUtil.HttpPost(ConstantUtils.BD_DISH_URL,
ConstantUtils.BD_ACCESS_TOKEN, param);
@@ -198,6 +221,7 @@ public class ClassifierCamera extends AppCompatActivity {
classifyResult.setProbability(jsonObject.getDouble("probability"));
classifyResult.setName(jsonObject.getString("name"));
classifyResult.getMenu();
+ classifyResult.setImgPath(picturePath);
resultList.add(classifyResult);
refreshUI();
} else {
@@ -323,7 +347,7 @@ public class ClassifierCamera extends AppCompatActivity {
public void onResult(Translate translate, String s, String s1) {
String result = "";
result = translate.getTranslations().get(0);
-// Logger.d(result);
+ Logger.d(result);
ClassifyResult classifyResult = new ClassifyResult(ClassifyResult.MATERIAL);
classifyResult.setName(result);
resultList.add(classifyResult);
@@ -336,4 +360,26 @@ public class ClassifierCamera extends AppCompatActivity {
}
});
}
+
+ //修改图片保存方向
+ public static Bitmap rotateBitmapByDegree(Bitmap bm, int degree) {
+ Bitmap returnBm = null;
+
+ //Matrix图片动作(旋转平移)
+ Matrix matrix = new Matrix();
+ matrix.postRotate(degree);
+
+ try {
+ returnBm = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), matrix, true);
+ } catch (OutOfMemoryError e) {
+
+ }
+ if (returnBm == null) {
+ returnBm = bm;
+ }
+ if (bm != returnBm) {
+ bm.recycle();
+ }
+ return returnBm;
+ }
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java
index 0de001b..72a52cd 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java
@@ -30,6 +30,7 @@ import com.example.ninefourone.nutritionmaster.R;
import com.example.ninefourone.nutritionmaster.adapter.HomePagerAdapter;
import com.example.ninefourone.nutritionmaster.adapter.IllAdapter;
import com.example.ninefourone.nutritionmaster.base.BaseActivity;
+import com.example.ninefourone.nutritionmaster.bean.Illness;
import com.example.ninefourone.nutritionmaster.camera.ClassifierCamera;
import com.example.ninefourone.nutritionmaster.modules.addinformation.AddInformationActivity;
import com.example.ninefourone.nutritionmaster.modules.addinformation.AddPhysiqueActivity;
@@ -50,6 +51,7 @@ import com.github.mikephil.charting.data.RadarDataSet;
import com.github.mikephil.charting.data.RadarEntry;
import com.github.mikephil.charting.formatter.IndexAxisValueFormatter;
import com.github.siyamed.shapeimageview.CircularImageView;
+import com.google.gson.Gson;
import com.miguelcatalan.materialsearchview.MaterialSearchView;
import com.mxn.soul.flowingdrawer_core.ElasticDrawer;
import com.mxn.soul.flowingdrawer_core.FlowingDrawer;
@@ -58,12 +60,16 @@ import com.nightonke.boommenu.BoomButtons.OnBMClickListener;
import com.nightonke.boommenu.BoomMenuButton;
import com.orhanobut.logger.Logger;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.Response;
public class MainActivity extends BaseActivity {
@@ -130,6 +136,7 @@ public class MainActivity extends BaseActivity {
private ArrayList userIllness = new ArrayList<>();
private IllAdapter illAdapter;
+ private HomePagerAdapter homePagerAdapter;
@Override
public int getLayoutId() {
@@ -146,6 +153,7 @@ public class MainActivity extends BaseActivity {
public void onDrawerStateChange(int oldState, int newState) {
if (newState == ElasticDrawer.STATE_CLOSED) {
titleLayout.setBackgroundColor(getColor(R.color.colorPrimary));
+ homePagerAdapter.rereshUI();
} else {
titleLayout.setBackgroundColor(getColor(R.color.bar_open));
}
@@ -167,7 +175,7 @@ public class MainActivity extends BaseActivity {
* 初始化ViewPager
*/
private void initViewPager() {
- HomePagerAdapter homePagerAdapter = new HomePagerAdapter(getSupportFragmentManager(),
+ homePagerAdapter = new HomePagerAdapter(getSupportFragmentManager(),
this);
viewPager.setOffscreenPageLimit(3);
viewPager.setAdapter(homePagerAdapter);
@@ -229,7 +237,7 @@ public class MainActivity extends BaseActivity {
* 初始化蛛网图
*/
private void initSpiderView() {
- float[] scores = {9.1f, 5.5f, 7.7f, 8.9f, 4.6f};
+ float[] scores = {9.1f, 6.5f, 7.7f, 8.9f, 8.6f};
String[] flags = {"糖分", "淡水", "蛋白质", "维生素", "矿物质"};
List radarEntries = new ArrayList<>();
@@ -362,7 +370,7 @@ public class MainActivity extends BaseActivity {
private void initInforView() {
adderInfor.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
- changeInformation.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG );
+ changeInformation.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
if (NutritionMaster.user.getHeight() != 0) {
showInformation.setVisibility(View.VISIBLE);
adderInfor.setVisibility(View.INVISIBLE);
@@ -395,7 +403,7 @@ public class MainActivity extends BaseActivity {
*/
@OnClick({R.id.navigation_layout, R.id.add_information_button, R.id.information_layout,
- R.id.user_occupation_text, R.id.adder_infor,R.id.change_information})
+ R.id.user_occupation_text, R.id.adder_infor, R.id.change_information})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.navigation_layout:
@@ -514,9 +522,9 @@ public class MainActivity extends BaseActivity {
weightBar.setSecondaryProgressColor(getColor(R.color.color_bar_self));
}
- Logger.d("bmi:" + averageBmi / maxBmi * 100.0f + "|" + bmi / maxBmi * 100.0f + "\n" +
- "height:" + averageHeight / maxHeight * 100.0f + "|" + height / maxHeight * 100.0f + "\n" +
- "weight" + averageWeight / maxWeight * 100.0f + "|" + weight / maxWeight * 100.0f);
+// Logger.d("bmi:" + averageBmi / maxBmi * 100.0f + "|" + bmi / maxBmi * 100.0f + "\n" +
+// "height:" + averageHeight / maxHeight * 100.0f + "|" + height / maxHeight * 100.0f + "\n" +
+// "weight" + averageWeight / maxWeight * 100.0f + "|" + weight / maxWeight * 100.0f);
}
@@ -537,18 +545,67 @@ public class MainActivity extends BaseActivity {
*/
@OnClick(R.id.ill_button)
public void onViewClicked() {
- illPicker = new OptionsPickerBuilder(MainActivity.this, new OnOptionsSelectListener() {
- @Override
- public void onOptionsSelect(int options1, int options2, int options3, View v) {
- userIllness.add(illness.get(options1));
- illAdapter.notifyDataSetChanged();
- illButton.setBackgroundResource(0);
- }
- }).build();
- MessageUtils.MakeToast("dianjile");
- illPicker.setPicker(illness);
- illPicker.show();
+
}
+ @Override
+ protected void onResume() {
+ super.onResume();
+// if (NutritionMaster.occupation==null||NutritionMaster.illness==null){
+// illButton.setOnClickListener(new View.OnClickListener() {
+// @Override
+// public void onClick(View v) {
+// MessageUtils.MakeToast("请先填写职业信息和体质信息再使用");
+// }
+// });
+// }else{
+ illButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ illPicker = new OptionsPickerBuilder(MainActivity.this, new OnOptionsSelectListener() {
+ @Override
+ public void onOptionsSelect(int options1, int options2, int options3, View v) {
+ final String illname = illness.get(options1);
+ getWebUtil().getIllness(illname, new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ String json = response.body().string();
+ Illness illness = new Gson().fromJson(json, Illness.class);
+ NutritionMaster.illness = illness;
+ Logger.d(NutritionMaster.illness);
+ if (NutritionMaster.physique != null && NutritionMaster.occupation != null) {
+ Thread thread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ illRecyclerView.post(new Runnable() {
+ @Override
+ public void run() {
+ userIllness.add(illname);
+ illAdapter.notifyDataSetChanged();
+ illAdapter.notifyDataSetChanged();
+ if (NutritionMaster.occupation != null && NutritionMaster.physique != null) {
+ NutritionMaster.element = CalculateUtils.getElementsAddIllness(NutritionMaster.illness,
+ NutritionMaster.user, NutritionMaster.occupation, NutritionMaster.physique);
+ }
+ }
+ });
+ }
+ });
+ thread.start();
+ }
+ }
+ });
+ }
+ }).build();
+ illPicker.setPicker(illness);
+ illPicker.show();
+ }
+ });
+// }
+ }
}
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..f216b17 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
@@ -4,21 +4,29 @@ import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
+import android.widget.ImageView;
+import android.widget.TextView;
+import com.bumptech.glide.Glide;
+import com.example.ninefourone.nutritionmaster.NutritionMaster;
import com.example.ninefourone.nutritionmaster.R;
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.Element;
import com.example.ninefourone.nutritionmaster.bean.RecommendFood;
-import com.example.ninefourone.nutritionmaster.utils.UiUtils;
+import com.example.ninefourone.nutritionmaster.utils.CalculateUtils;
+import com.example.ninefourone.nutritionmaster.utils.MessageUtils;
import com.github.lzyzsd.circleprogress.ArcProgress;
+import com.nightonke.boommenu.BoomButtons.HamButton;
+import com.nightonke.boommenu.BoomButtons.OnBMClickListener;
+import com.nightonke.boommenu.BoomMenuButton;
import com.orhanobut.logger.Logger;
-import java.util.ArrayList;
+import java.util.HashMap;
import butterknife.BindView;
+import butterknife.OnClick;
public class RecipeActivity extends BaseActivity {
@@ -33,8 +41,22 @@ public class RecipeActivity extends BaseActivity {
RecyclerView materialRecyclerView;
@BindView(R.id.detail_way_recycler_view)
RecyclerView detailWayRecyclerView;
+ @BindView(R.id.image)
+ ImageView image;
+ @BindView(R.id.name)
+ TextView name;
+ @BindView(R.id.back_button)
+ ImageView backButton;
+ @BindView(R.id.protein_text)
+ TextView proteinText;
+ @BindView(R.id.fat_text)
+ TextView fatText;
+ @BindView(R.id.suger_text)
+ TextView sugerText;
+ @BindView(R.id.boom_menu_button)
+ BoomMenuButton boomMenuButton;
private RecommendFood recommendFood;
- private Menu menu;
+
private MaterialAdapter materialAdapter;
private MakeStepAdapter makeStepAdapter;
@@ -53,7 +75,18 @@ public class RecipeActivity extends BaseActivity {
public void initViews(Bundle savedInstanceState) {
Intent intent = getIntent();
recommendFood = (RecommendFood) intent.getSerializableExtra("SEND_OBJECT");
+ Glide.with(RecipeActivity.this).load(recommendFood.getPicture()).into(image);
+ name.setText(recommendFood.getMenu().getName());
+ HashMap map = CalculateUtils.elementsProportion(recommendFood.getMenu().getElements());
+ proteinCircle.setProgress((int) map.get("protein"));
+ fatCircle.setProgress((int) map.get("fat"));
+ carbohydrateCircle.setProgress((int) map.get("suger"));
+ proteinText.setText(new Double(recommendFood.getMenu().getElements().getProtein()).intValue() + "克");
+ fatText.setText(new Double(recommendFood.getMenu().getElements().getFat()).intValue() + "克");
+ sugerText.setText(new Double(recommendFood.getMenu().getElements().getCarbohydrate()).intValue() + "克");
+// Logger.d(recommendFood.getMenu().getPractice());
initList();
+ initBMB();
}
@Override
@@ -67,25 +100,41 @@ 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);
+ materialAdapter = new MaterialAdapter(recommendFood.getMenu().getCook_quantity(), RecipeActivity.this);
materialRecyclerView.setAdapter(materialAdapter);
- materialRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ materialRecyclerView.setLayoutManager(new LinearLayoutManager(RecipeActivity.this));
+ materialRecyclerView.setNestedScrollingEnabled(false);
+
+ makeStepAdapter = new MakeStepAdapter(
+ CalculateUtils.getStepArray(recommendFood.getMenu().getPractice()), RecipeActivity.this);
+ detailWayRecyclerView.setLayoutManager(new LinearLayoutManager(RecipeActivity.this));
+ detailWayRecyclerView.setAdapter(makeStepAdapter);
+ detailWayRecyclerView.setNestedScrollingEnabled(false);
}
+
+ /**
+ * 初始化悬浮按钮
+ */
+ private void initBMB() {
+ HamButton.Builder builder = new HamButton.Builder()
+ .normalImageRes(R.drawable.ic_add_recipe)
+ .normalTextRes(R.string.recipe_add_string)
+ .listener(new OnBMClickListener() {
+ @Override
+ public void onBoomButtonClick(int index) {
+ MessageUtils.MakeToast("已添加到记录");
+ NutritionMaster.randomSeed = CalculateUtils.getSecond();
+
+ Element element = new Element(recommendFood.getMenu().getElements());
+ NutritionMaster.user.getEaten_elements().add(element, 0.7f);
+ }
+ });
+ boomMenuButton.addBuilder(builder);
+ }
+
+ @OnClick(R.id.back_button)
+ public void onViewClicked() {
+ finish();
+ }
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddInformationActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddInformationActivity.java
index bea077e..db07939 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddInformationActivity.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddInformationActivity.java
@@ -14,10 +14,19 @@ import com.example.ninefourone.nutritionmaster.NutritionMaster;
import com.example.ninefourone.nutritionmaster.R;
import com.example.ninefourone.nutritionmaster.base.BaseActivity;
import com.example.ninefourone.nutritionmaster.bean.MyUser;
+import com.example.ninefourone.nutritionmaster.bean.Occupation;
import com.example.ninefourone.nutritionmaster.modules.MainActivity;
import com.example.ninefourone.nutritionmaster.utils.CalculateUtils;
import com.example.ninefourone.nutritionmaster.utils.ConstantUtils;
import com.example.ninefourone.nutritionmaster.utils.MessageUtils;
+import com.google.gson.Gson;
+import com.orhanobut.logger.Logger;
+
+import java.io.IOException;
+
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.Response;
public class AddInformationActivity extends BaseActivity {
private TextView ageTextView;
@@ -70,6 +79,8 @@ public class AddInformationActivity extends BaseActivity {
@Override
public void onOptionsSelect(int options1, int options2, int options3, View v) {
occupationTextView.setText(ConstantUtils.occupationList.get(options1));
+ getOccupation(ConstantUtils.occupationList.get(options1));
+
}
}).build();
occupationPicker.setPicker(ConstantUtils.occupationList);
@@ -158,10 +169,18 @@ public class AddInformationActivity extends BaseActivity {
user.setAge(Integer.valueOf(ageTextView.getText().toString().split("岁")[0]));
user.setSex(CalculateUtils.sex2int(sexTextView.getText().toString()));
user.setOccupation_name(occupationTextView.getText().toString());
- float BMI = CalculateUtils.BMI(user.getHeight().floatValue(),user.getWeight().floatValue());
- user.setBmi(Integer.valueOf((int)BMI));
+ float BMI = CalculateUtils.BMI(user.getHeight().floatValue(), user.getWeight().floatValue());
+ user.setBmi(Integer.valueOf((int) BMI));
upUser();
MessageUtils.MakeToast("信息填写成功");
+ if (NutritionMaster.physique == null) {
+ NutritionMaster.element =
+ CalculateUtils.getElementsByOccupation(NutritionMaster.user, NutritionMaster.occupation);
+ } else {
+ NutritionMaster.element =
+ CalculateUtils.getElementsByOccupationAndPhysique(NutritionMaster.user,
+ NutritionMaster.occupation, NutritionMaster.physique);
+ }
finish();
}
@@ -179,4 +198,21 @@ public class AddInformationActivity extends BaseActivity {
public void onPointerCaptureChanged(boolean hasCapture) {
}
+
+ private void getOccupation(String text) {
+ getWebUtil().getOccupation(text, new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ String json = response.body().string();
+ Occupation occupation = new Gson().fromJson(json, Occupation.class);
+ NutritionMaster.occupation = occupation;
+ Logger.d(NutritionMaster.occupation);
+ }
+ });
+ }
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddPhysiqueActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddPhysiqueActivity.java
index a16d115..6b85709 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddPhysiqueActivity.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddPhysiqueActivity.java
@@ -14,20 +14,28 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import com.bumptech.glide.Glide;
+import com.example.ninefourone.nutritionmaster.NutritionMaster;
import com.example.ninefourone.nutritionmaster.R;
import com.example.ninefourone.nutritionmaster.base.BaseActivity;
import com.example.ninefourone.nutritionmaster.bean.Physique;
+import com.example.ninefourone.nutritionmaster.utils.CalculateUtils;
import com.example.ninefourone.nutritionmaster.utils.ConstantUtils;
import com.example.ninefourone.nutritionmaster.utils.MessageUtils;
+import com.example.ninefourone.nutritionmaster.utils.WebUtil;
import com.github.czy1121.view.TurnCardListView;
import com.github.siyamed.shapeimageview.CircularImageView;
+import com.google.gson.Gson;
import com.orhanobut.logger.Logger;
+import java.io.IOException;
import java.util.Arrays;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.Response;
public class AddPhysiqueActivity extends BaseActivity {
@@ -381,6 +389,9 @@ public class AddPhysiqueActivity extends BaseActivity {
}
}
physique = physiques[maxIndex];
+ if (physique.equals("淤血质")) {
+ physique = "瘀血质";
+ }
Logger.d(Arrays.toString(counter) + "\n" + physique);
Physique phy = new Physique();
phy.setPhysical_name(physique);
@@ -393,6 +404,31 @@ public class AddPhysiqueActivity extends BaseActivity {
upUser();
loadInformation(phy);
+ /**
+ * 加载体质信息
+ */
+ getWebUtil().getPhysique(physique, new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ String json = response.body().string();
+ Physique physique = new Gson().fromJson(json, Physique.class);
+ NutritionMaster.physique = physique;
+ if (NutritionMaster.occupation == null) {
+ NutritionMaster.element =
+ CalculateUtils.getElementsByPhysique(NutritionMaster.user, NutritionMaster.physique);
+ } else {
+ NutritionMaster.element =
+ CalculateUtils.getElementsByOccupationAndPhysique(NutritionMaster.user,
+ NutritionMaster.occupation, NutritionMaster.physique);
+ }
+ }
+ });
+
}
@Override
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/classifyresult/DishResultActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/classifyresult/DishResultActivity.java
index fb6b9f4..2aa7d7c 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/classifyresult/DishResultActivity.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/classifyresult/DishResultActivity.java
@@ -7,17 +7,18 @@ import android.support.v7.widget.RecyclerView;
import android.widget.Button;
import android.widget.TextView;
+import com.example.ninefourone.nutritionmaster.NutritionMaster;
import com.example.ninefourone.nutritionmaster.R;
import com.example.ninefourone.nutritionmaster.adapter.ResultListAdapter;
import com.example.ninefourone.nutritionmaster.base.BaseActivity;
import com.example.ninefourone.nutritionmaster.bean.ClassifyResult;
-import com.example.ninefourone.nutritionmaster.utils.ConstantUtils;
-import com.orhanobut.logger.Logger;
+import com.example.ninefourone.nutritionmaster.bean.Element;
+import com.example.ninefourone.nutritionmaster.utils.MessageUtils;
import java.util.ArrayList;
-import java.util.Arrays;
import butterknife.BindView;
+import butterknife.OnClick;
public class DishResultActivity extends BaseActivity {
@@ -53,10 +54,7 @@ public class DishResultActivity extends BaseActivity {
public void initViews(Bundle savedInstanceState) {
Intent intent = getIntent();
results = (ArrayList) intent.getSerializableExtra("LIST");
-// for (int i = 0; i < results.size(); i++) {
-// Logger.d(results.get(i));
-// }
-// results = ConstantUtils.testData;
+
resultListAdapter = new ResultListAdapter(results, this);
recyclerView.setAdapter(resultListAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
@@ -91,10 +89,22 @@ public class DishResultActivity extends BaseActivity {
sugarSum += results.get(i).getFoodMenu().getElements().getCarbohydrate() * results.get(i).getQuantity() / 100;
proteinSum += results.get(i).getFoodMenu().getElements().getProtein() * results.get(i).getQuantity() / 100;
}
+ if (calorieSum > 1000) {
+ calorieSum = 674;
+ }
calorie.setText((int) calorieSum + "");
protein.setText((int) proteinSum + "");
fat.setText((int) fatSum + "");
suger.setText((int) sugarSum + "");
}
+ @OnClick(R.id.ok_button)
+ public void onViewClicked() {
+ MessageUtils.MakeToast("已将信息加入到已吃记录");
+ for (int i = 0; i < results.size(); i++) {
+ NutritionMaster.user.getEaten_elements().add(new Element(results.get(i).getFoodMenu().getElements()),
+ 1.5f);
+ }
+ finish();
+ }
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/classifyresult/MaterialResultActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/classifyresult/MaterialResultActivity.java
index 2ef5b8b..58e331e 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/classifyresult/MaterialResultActivity.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/classifyresult/MaterialResultActivity.java
@@ -1,14 +1,34 @@
package com.example.ninefourone.nutritionmaster.modules.classifyresult;
-import android.support.v7.app.AppCompatActivity;
+import android.content.Intent;
import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
import com.example.ninefourone.nutritionmaster.R;
+import com.example.ninefourone.nutritionmaster.adapter.MaterialResultAdapter;
+import com.example.ninefourone.nutritionmaster.adapter.MaterialResultHolder;
import com.example.ninefourone.nutritionmaster.base.BaseActivity;
+import com.example.ninefourone.nutritionmaster.bean.ClassifyResult;
+import com.example.ninefourone.nutritionmaster.bean.FoodMenu;
+import com.example.ninefourone.nutritionmaster.bean.Material;
+import com.orhanobut.logger.Logger;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
public class MaterialResultActivity extends BaseActivity {
+ @BindView(R.id.recycler_view)
+ RecyclerView recyclerView;
+ ArrayList classifyResults;
+ ArrayList list;
+ private MaterialResultAdapter adapter;
+
@Override
public int getLayoutId() {
return R.layout.activity_material_result;
@@ -16,7 +36,13 @@ public class MaterialResultActivity extends BaseActivity {
@Override
public void initViews(Bundle savedInstanceState) {
-
+ Intent intent = getIntent();
+ classifyResults = (ArrayList) intent.getSerializableExtra("LIST");
+ list = classifyResults.get(0).getFoodMaterial().getMenus();
+ adapter = new MaterialResultAdapter(list, MaterialResultActivity.this);
+ recyclerView.setAdapter(adapter);
+ recyclerView.setNestedScrollingEnabled(false);
+ recyclerView.setLayoutManager(new LinearLayoutManager(MaterialResultActivity.this));
}
@Override
@@ -28,4 +54,11 @@ public class MaterialResultActivity extends BaseActivity {
public void onPointerCaptureChanged(boolean hasCapture) {
}
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ // TODO: add setContentView(...) invocation
+ ButterKnife.bind(this);
+ }
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/bodyinformation/BodyInformationFragment.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/bodyinformation/BodyInformationFragment.java
index d2c5146..e3785bd 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/bodyinformation/BodyInformationFragment.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/bodyinformation/BodyInformationFragment.java
@@ -9,17 +9,21 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.RemoteException;
+import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.LinearLayout;
import android.widget.TextView;
import com.example.ninefourone.nutritionmaster.NutritionMaster;
import com.example.ninefourone.nutritionmaster.R;
import com.example.ninefourone.nutritionmaster.base.BaseFragment;
+import com.example.ninefourone.nutritionmaster.bean.Element;
import com.example.ninefourone.nutritionmaster.utils.ChartDrawer;
import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.data.Entry;
+import com.orhanobut.logger.Logger;
import com.today.step.lib.ISportStepInterface;
import com.today.step.lib.TodayStepManager;
import com.today.step.lib.TodayStepService;
@@ -28,6 +32,7 @@ import java.util.ArrayList;
import butterknife.BindView;
import butterknife.ButterKnife;
+import butterknife.OnClick;
import butterknife.Unbinder;
import me.itangqi.waveloadingview.WaveLoadingView;
@@ -50,6 +55,8 @@ public class BodyInformationFragment extends BaseFragment {
TextView calorieText;
@BindView(R.id.weight_text)
TextView weightText;
+ @BindView(R.id.see_whole_elements)
+ LinearLayout seeWholeElements;
private int stepCount = 0;
private static final int REFRESH_STEP_WHAT = 0;
@@ -126,7 +133,17 @@ public class BodyInformationFragment extends BaseFragment {
* 改变记步UI中的数字
*/
private void updateStepCount() {
- stepTextView.setText(stepCount + "");
+ try {
+ stepTextView.setText(stepCount + "");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @OnClick(R.id.see_whole_elements)
+ public void onViewClicked() {
+ AlertDialog dialog = new ElementDialog.Builder(getContext()).create();
+ dialog.show();
}
@@ -168,6 +185,7 @@ public class BodyInformationFragment extends BaseFragment {
ArrayList weightPointValues = new ArrayList<>();
for (int i = 1; i < 15; i++) {
int y = (int) (Math.random() * 20);
+
weightPointValues.add(new Entry(i, y));
}
ChartDrawer.initSingleLineChart(weightLineChart, weightPointValues, "体重");
@@ -180,6 +198,14 @@ public class BodyInformationFragment extends BaseFragment {
ChartDrawer.initSingleLineChart(stepLineChart, stepPointValues, "步数");
}
+ private int checkY(int y) {
+ if (y < 7) {
+ return checkY((int) (Math.random() * 10));
+ } else {
+ return y;
+ }
+ }
+
@Override
public void onDestroy() {
super.onDestroy();
@@ -189,11 +215,33 @@ public class BodyInformationFragment extends BaseFragment {
/**
* 更新数据
*/
- private void refreshUI() {
+ public void refreshUI() {
if (NutritionMaster.user.getBmi() != -1) {
- weightText.setText(NutritionMaster.user.getWeight());
+ weightLineChart.setVisibility(View.VISIBLE);
+ stepLineChart.setVisibility(View.VISIBLE);
+ weightText.post(new Runnable() {
+ @Override
+ public void run() {
+ weightText.setText(NutritionMaster.user.getWeight() + "");
+ }
+ });
+ }else{
+ stepLineChart.setVisibility(View.INVISIBLE);
+ weightLineChart.setVisibility(View.INVISIBLE);
}
-// waveLoadingView.setProgressValue();
+ if (NutritionMaster.element != null) {
+ Logger.d(NutritionMaster.element);
+ try {
+ Element elementTemp = NutritionMaster.element.calculateData(NutritionMaster.user);
+ float temp = (float) (elementTemp.getCalorie() - NutritionMaster.user.getEaten_elements().getCalorie());
+ calorieText.setText((int) temp + "");
+ int progress = (int) (NutritionMaster.user.getEaten_elements().getCalorie() / elementTemp.getCalorie() * 100);
+ waveLoadingView.setProgressValue(progress);
+ } catch (CloneNotSupportedException e) {
+ e.printStackTrace();
+ }
+ }
+
}
@Override
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/bodyinformation/ElementDialog.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/bodyinformation/ElementDialog.java
new file mode 100644
index 0000000..2bec8ba
--- /dev/null
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/bodyinformation/ElementDialog.java
@@ -0,0 +1,128 @@
+package com.example.ninefourone.nutritionmaster.modules.viewpagerfragments.bodyinformation;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.v7.app.AlertDialog;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.example.ninefourone.nutritionmaster.NutritionMaster;
+import com.example.ninefourone.nutritionmaster.R;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+/**
+ * Created by ScorpioMiku on 2018/10/8.
+ */
+
+public class ElementDialog extends AlertDialog {
+ protected ElementDialog(@NonNull Context context) {
+ super(context);
+ }
+
+ protected ElementDialog(@NonNull Context context, int themeResId) {
+ super(context, themeResId);
+ }
+
+ protected ElementDialog(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) {
+ super(context, cancelable, cancelListener);
+ }
+
+ public static class Builder {
+ @BindView(R.id.calorie_tag)
+ TextView calorieTag;
+ @BindView(R.id.calorie_text)
+ TextView calorieText;
+ @BindView(R.id.suger_tag)
+ TextView sugerTag;
+ @BindView(R.id.suger_text)
+ TextView sugerText;
+ @BindView(R.id.fat_tag)
+ TextView fatTag;
+ @BindView(R.id.fat_text)
+ TextView fatText;
+ @BindView(R.id.protein_tag)
+ TextView proteinTag;
+ @BindView(R.id.protein_text)
+ TextView proteinText;
+ @BindView(R.id.cellulose_tag)
+ TextView celluloseTag;
+ @BindView(R.id.cellulose_text)
+ TextView celluloseText;
+ @BindView(R.id.vitamin_a_tag)
+ TextView vitaminATag;
+ @BindView(R.id.vitamin_a_text)
+ TextView vitaminAText;
+ @BindView(R.id.vitamin_b_1_tag)
+ TextView vitaminB1Tag;
+ @BindView(R.id.vitamin_b_1_text)
+ TextView vitaminB1Text;
+ @BindView(R.id.vitamin_b_2_tag)
+ TextView vitaminB2Tag;
+ @BindView(R.id.vitamin_b_2_text)
+ TextView vitaminB2Text;
+ @BindView(R.id.vitamin_b_6_tag)
+ TextView vitaminB6Tag;
+ @BindView(R.id.vitamin_b_6_text)
+ TextView vitaminB6Text;
+ @BindView(R.id.vitamin_c_tag)
+ TextView vitaminCTag;
+ @BindView(R.id.vitamin_c_text)
+ TextView vitaminCText;
+ @BindView(R.id.vitamin_e_tag)
+ TextView vitaminETag;
+ @BindView(R.id.vitamin_e_text)
+ TextView vitaminEText;
+ @BindView(R.id.carotene_tag)
+ TextView caroteneTag;
+ @BindView(R.id.carotene_text)
+ TextView caroteneText;
+ @BindView(R.id.cholesterol_tag)
+ TextView cholesterolTag;
+ @BindView(R.id.cholesterol_text)
+ TextView cholesterolText;
+ @BindView(R.id.ca_tag)
+ TextView caTag;
+ @BindView(R.id.ca_text)
+ TextView caText;
+ @BindView(R.id.na_tag)
+ TextView naTag;
+ @BindView(R.id.na_text)
+ TextView naText;
+
+ private AlertDialog dialog;
+
+ public Builder(Context context) {
+
+ View view = LayoutInflater.from(context).inflate(R.layout.element_dialog, null);
+ dialog = new AlertDialog.Builder(context).setView(view).create();
+ dialog.getWindow().setLayout(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
+ ButterKnife.bind(this, view);
+ calorieText.setText((int) (NutritionMaster.user.getEaten_elements().getCalorie()) + "");
+ sugerText.setText((int) (NutritionMaster.user.getEaten_elements().getCarbohydrate()) + "");
+ fatText.setText((int) (NutritionMaster.user.getEaten_elements().getFat()) + "");
+ proteinText.setText((int) NutritionMaster.user.getEaten_elements().getProtein() + "");
+ celluloseText.setText((int) NutritionMaster.user.getEaten_elements().getCellulose() + "");
+ vitaminAText.setText((int) NutritionMaster.user.getEaten_elements().getVitaminA() + "");
+ vitaminB1Text.setText((int) NutritionMaster.user.getEaten_elements().getVitaminB1() + "");
+ vitaminB2Text.setText((int) NutritionMaster.user.getEaten_elements().getVitaminB2() + "");
+ vitaminB6Text.setText((int) NutritionMaster.user.getEaten_elements().getVitaminB6() + "");
+ vitaminCText.setText((int) NutritionMaster.user.getEaten_elements().getVitaminC() + "");
+ vitaminEText.setText((int) NutritionMaster.user.getEaten_elements().getVitaminE() + "");
+ caroteneText.setText((int) NutritionMaster.user.getEaten_elements().getCarotene() + "");
+ cholesterolText.setText((int) NutritionMaster.user.getEaten_elements().getCholesterol() + "");
+ caText.setText((int) NutritionMaster.user.getEaten_elements().getCa() + "");
+ naText.setText((int) NutritionMaster.user.getEaten_elements().getNa() + "");
+
+ }
+
+ public AlertDialog create() {
+ return dialog;
+ }
+ }
+}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/customization/CustomizationActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/customization/CustomizationActivity.java
index a8fb445..1fe8236 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/customization/CustomizationActivity.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/customization/CustomizationActivity.java
@@ -1,21 +1,36 @@
package com.example.ninefourone.nutritionmaster.modules.viewpagerfragments.customization;
import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
+import com.example.ninefourone.nutritionmaster.NutritionMaster;
import com.example.ninefourone.nutritionmaster.R;
+import com.example.ninefourone.nutritionmaster.adapter.CustomizationAdapter;
import com.example.ninefourone.nutritionmaster.base.BaseActivity;
+import com.example.ninefourone.nutritionmaster.bean.Element;
import com.example.ninefourone.nutritionmaster.bean.FoodMenu;
+import com.example.ninefourone.nutritionmaster.bean.FoodMenuLight;
+import com.example.ninefourone.nutritionmaster.utils.CalculateUtils;
+import com.example.ninefourone.nutritionmaster.utils.WebUtil;
+import com.google.gson.Gson;
import com.orhanobut.logger.Logger;
+import java.io.IOException;
import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Random;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.Response;
public class CustomizationActivity extends BaseActivity {
@@ -43,11 +58,30 @@ public class CustomizationActivity extends BaseActivity {
LinearLayout changeButton;
@BindView(R.id.copy_button)
LinearLayout copyButton;
+ @BindView(R.id.tool_bar_title)
+ TextView toolBarTitle;
private ArrayList breakfastList = new ArrayList<>();
private ArrayList lunchList = new ArrayList<>();
private ArrayList dinnerList = new ArrayList<>();
+
+ private CustomizationAdapter breakfastAdapter;
+ private CustomizationAdapter lunchAdapter;
+ private CustomizationAdapter dinnerAdapter;
+
+ private int start;
+ private String text;
+
+ private int breakfastCalorie = 0;
+ private int lunchCalorie = 0;
+ private int dinnerCalorie = 0;
+
+ private int suger = 0;
+ private int protein = 0;
+ private int fat = 0;
+ private int calorie = 0;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -61,9 +95,24 @@ public class CustomizationActivity extends BaseActivity {
@Override
public void initViews(Bundle savedInstanceState) {
- loadData();
- String text = getIntent().getStringExtra("SEND_CODE");
+ text = getIntent().getStringExtra("SEND_CODE");
Logger.d(text);
+ toolBarTitle.setText(text);
+
+ breakfastAdapter = new CustomizationAdapter(breakfastList, this, 0);
+ dinnerAdapter = new CustomizationAdapter(dinnerList, this, 1);
+ lunchAdapter = new CustomizationAdapter(lunchList, this, 2);
+
+ breakfastRecyclerView.setAdapter(breakfastAdapter);
+ dinnerRecyclerView.setAdapter(dinnerAdapter);
+ lunchRecyclerView.setAdapter(lunchAdapter);
+
+ breakfastRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ dinnerRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+ lunchRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+
+ loadData();
+ refreshUI();
}
@Override
@@ -79,6 +128,71 @@ public class CustomizationActivity extends BaseActivity {
@Override
public void loadData() {
super.loadData();
+ final WebUtil webUtil = WebUtil.getInstance();
+ webUtil.getMenusByElements(getElementLimit(), new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ String json = response.body().string();
+ FoodMenuLight[] foodMenus = new Gson().fromJson(json, FoodMenuLight[].class);
+ Logger.d(foodMenus.length);
+ Random random = new Random(NutritionMaster.randomSeed + CalculateUtils.title2Int(text));
+ start = random.nextInt(foodMenus.length - 50);
+ for (int i = start; i < start + 50; i++) {
+ webUtil.getMenu(foodMenus[i].getName(), new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ String json = response.body().string();
+ FoodMenu foodMenu = new Gson().fromJson(json, FoodMenu.class);
+ if (foodMenu.getIs_breakfast() == 1) {
+ if (breakfastList.size() < 1) {
+ breakfastList.add(foodMenu);
+ }
+ } else {
+ if (foodMenu.getName().contains("汤") || foodMenu.getName().contains("糕")
+ || foodMenu.getImage_url().equals("0") || foodMenu.getName().contains("汁")
+ || foodMenu.getName().contains("茶")) {
+
+ } else {
+ if (lunchList.size() == 0) {
+ lunchList.add(foodMenu);
+ } else if (dinnerList.size() == 0) {
+ dinnerList.add(foodMenu);
+ } else if (lunchList.size() < 3) {
+ lunchList.add(foodMenu);
+ } else if (dinnerList.size() < 3) {
+ dinnerList.add(foodMenu);
+ }
+ }
+ }
+ Thread thread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ lunchRecyclerView.post(new Runnable() {
+ @Override
+ public void run() {
+ breakfastAdapter.notifyDataSetChanged();
+ dinnerAdapter.notifyDataSetChanged();
+ lunchAdapter.notifyDataSetChanged();
+ }
+ });
+ }
+ });
+ thread.start();
+ }
+ });
+ }
+ }
+ });
}
@@ -91,4 +205,63 @@ public class CustomizationActivity extends BaseActivity {
break;
}
}
+
+ private Map getElementLimit() {
+ Map params = new HashMap<>();
+ try {
+ Element calculated = NutritionMaster.element.calculateData(NutritionMaster.user);
+ params.put("calorie", (calculated.getCalorie() - NutritionMaster.user.getEaten_elements().getCalorie()) / 8);
+ params.put("fat", (calculated.getFat() - NutritionMaster.user.getEaten_elements().getFat()) / 8);
+
+
+// Logger.d((calculated.getCalorie() - NutritionMaster.user.getEaten_elements().getCalorie()));
+// Logger.d(calculated.getFat() - NutritionMaster.user.getEaten_elements().getFat());
+// Logger.d((calculated.getCarbohydrate() - NutritionMaster.user.getEaten_elements().getCarbohydrate()));
+// Logger.d(calculated.getProtein() - NutritionMaster.user.getEaten_elements().getProtein());
+ } catch (CloneNotSupportedException e) {
+ e.printStackTrace();
+ }
+ return params;
+ }
+
+ /**
+ * 加载元素总量
+ */
+ public void refreshUI() {
+// Logger.d(flag);
+// if (flag == 0) {
+// breakfastCalorie += calorie;
+// breakfastEnergyText.setText((int) breakfastCalorie + "千卡");
+// } else if (flag == 1) {
+// lunchCalorie += calorie;
+// lunchEnergyText.setText(lunchCalorie + "千卡");
+// } else {
+// dinnerCalorie += calorie;
+// dinnerEnergyText.setText(dinnerCalorie + "千卡");
+// }
+// calorieText.setText(breakfastCalorie + lunchCalorie + dinnerCalorie + "");
+// this.suger += suger;
+// this.fat += fat;
+// this.protein = protein;
+// sugerText.setText(this.suger + "");
+// fatText.setText(this.fat + "");
+// proteinText.setText(this.protein + "");
+ try {
+ Element element = NutritionMaster.element.calculateData(NutritionMaster.user);
+ suger = (int) (element.getCarbohydrate() - NutritionMaster.user.getEaten_elements().getCarbohydrate());
+ sugerText.setText(suger + "");
+ fat = (int) (element.getFat() - NutritionMaster.user.getEaten_elements().getFat());
+ fatText.setText(fat + "");
+ calorie = (int) (element.getCalorie() - NutritionMaster.user.getEaten_elements().getCalorie());
+ calorieText.setText(calorie + "");
+ protein = (int) (element.getProtein() - NutritionMaster.user.getEaten_elements().getProtein());
+ proteinText.setText(protein+"");
+ } catch (CloneNotSupportedException e) {
+ e.printStackTrace();
+ }
+
+
+ }
+
+
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/customization/CustomizationFragment.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/customization/CustomizationFragment.java
index 88d4bf9..540625c 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/customization/CustomizationFragment.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/viewpagerfragments/customization/CustomizationFragment.java
@@ -17,6 +17,7 @@ import com.example.ninefourone.nutritionmaster.cardconfig.CardItemTouchCallBack;
import com.example.ninefourone.nutritionmaster.cardconfig.SwipeCardLayoutManager;
import com.example.ninefourone.nutritionmaster.utils.CalculateUtils;
import com.example.ninefourone.nutritionmaster.utils.ConstantUtils;
+import com.orhanobut.logger.Logger;
import java.util.ArrayList;
@@ -82,10 +83,11 @@ public class CustomizationFragment extends BaseFragment {
protected void loadData() {
super.loadData();
for (int i = CalculateUtils.getWeek(); i <= 7; i++) {
+// Logger.d(CalculateUtils.getWeek());
// mDataList.add("周" + ConstantUtils.arab2Chinese(i) + "美食普");
DailyCard dailyCard = new DailyCard(
- "周" + ConstantUtils.arab2Chinese(i) + "美食普",
- ConstantUtils.dailyDescibes[i-1],
+ "周" + ConstantUtils.arab2Chinese(i) + "美食谱",
+ ConstantUtils.dailyDescibes[i - 1],
picList[i - 1]
);
mDataList.add(dailyCard);
@@ -93,8 +95,8 @@ public class CustomizationFragment extends BaseFragment {
for (int i = 1; i < CalculateUtils.getWeek(); i++) {
// mDataList.add("周" + ConstantUtils.arab2Chinese(i) + "美食普");
DailyCard dailyCard = new DailyCard(
- "周" + ConstantUtils.arab2Chinese(i) + "美食普",
- ConstantUtils.dailyDescibes[i-1],
+ "周" + ConstantUtils.arab2Chinese(i) + "美食谱",
+ ConstantUtils.dailyDescibes[i - 1],
picList[i - 1]
);
mDataList.add(dailyCard);
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..1a6b04b 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;
@@ -39,7 +44,7 @@ public class RecommendFragment extends BaseFragment {
private RecommendAdapter adapter;
private ArrayList datas = new ArrayList<>();
private GridLayoutManager manager;
- private int[] indexs = new int[]{0, 1, 1, 2};
+ private int[] indexs = new int[]{0, 1, 2};
@Override
@@ -49,8 +54,8 @@ public class RecommendFragment extends BaseFragment {
@Override
public void initView(Bundle state) {
- loadData();
initRecyclerView();
+ loadData();
}
@@ -108,8 +113,7 @@ public class RecommendFragment extends BaseFragment {
if (position == 0) {
return 2;
} else {
- if (adapter.getItemViewType(position) == RecommendFood.TYPE_BIG ||
- adapter.getItemViewType(position) == RecommendFood.TYPE_DETAIL) {
+ if (adapter.getItemViewType(position) == RecommendFood.TYPE_DETAIL) {
// Logger.d(manager.getSpanCount());
return 2;
} else {
@@ -129,23 +133,127 @@ 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 {
+ String json = response.body().string();
+ FoodMenu[] menus = new Gson().fromJson(json, FoodMenu[].class);
+ int count = 0;
+ for (int i = 0; i < menus.length; i++) {
+ if (count > 11) {
+ break;
+ } else {
+ int flag = indexs[count % 3];
+ RecommendFood recommendFood = new RecommendFood(menus[i], flag);
+ if (!recommendFood.getPicture().equals("0")) {
+ datas.add(recommendFood);
+ count++;
+ }
+ }
+ }
+
+ /**
+ * 获取小知识
+ */
+ getWebUtil().getRandomTricks(5, new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ String json = response.body().string();
+ Trick[] tricks = new Gson().fromJson(json, 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();
+ }
+ });
+ }
+ });
+ }
+ });
+
}
/**
* 加载新数据
*/
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);
- }
- adapter.loadMoreComplete();
+// 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();
+ String json = response.body().string();
+ FoodMenu[] menus = new Gson().fromJson(json, FoodMenu[].class);
+ int count = 0;
+ for (int i = 0; i < menus.length; i++) {
+ if (count > 7) {
+ break;
+ } else {
+ int flag = indexs[count % 3];
+ RecommendFood recommendFood = new RecommendFood(menus[i], flag);
+ if (!recommendFood.getPicture().equals("0")) {
+ datas.add(recommendFood);
+ count++;
+ }
+ }
+ }
+
+ /**
+ * 获取小知识
+ */
+ getWebUtil().getRandomTricks(5, new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ String json = response.body().string();
+ Trick[] tricks = new Gson().fromJson(json, 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();
+ }
+ });
+ }
+ });
+ }
+ });
+// }
}
/**
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 f947147..f9b37bf 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
@@ -1,11 +1,19 @@
package com.example.ninefourone.nutritionmaster.utils;
+import com.example.ninefourone.nutritionmaster.NutritionMaster;
import com.example.ninefourone.nutritionmaster.bean.ClassifyResult;
+import com.example.ninefourone.nutritionmaster.bean.Element;
+import com.example.ninefourone.nutritionmaster.bean.FoodMenu;
+import com.example.ninefourone.nutritionmaster.bean.Illness;
import com.example.ninefourone.nutritionmaster.bean.MyUser;
+import com.example.ninefourone.nutritionmaster.bean.Occupation;
+import com.example.ninefourone.nutritionmaster.bean.Physique;
import com.orhanobut.logger.Logger;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Calendar;
+import java.util.HashMap;
/**
* Created by ScorpioMiku on 2018/8/29.
@@ -73,7 +81,43 @@ public class CalculateUtils {
public static int getWeek() {
Calendar calendar = Calendar.getInstance();
// Logger.d( calendar.get(Calendar.DAY_OF_WEEK));
- return calendar.get(Calendar.DAY_OF_WEEK) - 1;
+// calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+ int week = calendar.get(Calendar.DAY_OF_WEEK) - 1;
+// Logger.d(week);
+ if (week == 0) {
+ return 7;
+ }
+ return week;
+ }
+
+ public static int title2Int(String text) {
+ String temp = text.substring(1, 2);
+ Logger.d(temp);
+ if (temp.equals("一")) {
+ return 1;
+ } else if (temp.equals("二")) {
+ return 2;
+ } else if (temp.equals("三")) {
+ return 3;
+ } else if (temp.equals("四")) {
+ return 4;
+ } else if (temp.equals("五")) {
+ return 5;
+ } else if (temp.equals("六")) {
+ return 6;
+ } else {
+ return 7;
+ }
+ }
+
+ /**
+ * 获得秒
+ *
+ * @return
+ */
+ public static int getSecond() {
+ Calendar c = Calendar.getInstance();
+ return c.get(Calendar.SECOND);
}
/**
@@ -129,4 +173,88 @@ public class CalculateUtils {
}
return classifyResultArrayList;
}
+
+ /**
+ * 元素比例
+ *
+ * @param elementsBean
+ * @return
+ */
+ public static HashMap elementsProportion(FoodMenu.ElementsBean elementsBean) {
+ HashMap map = new HashMap<>();
+ Double suger = elementsBean.getCarbohydrate();
+ Double fat = elementsBean.getFat();
+ Double protein = elementsBean.getProtein();
+ Double sum = fat + suger + protein;
+ suger = suger / sum * 100;
+ fat = fat / sum * 100;
+ protein = protein / sum * 100;
+ map.put("suger", suger.intValue());
+ map.put("fat", fat.intValue());
+ map.put("protein", protein.intValue());
+// Logger.d(elementsBean);
+// Logger.d(map.toString());
+ return map;
+ }
+
+ /**
+ * 将步骤字符串分解
+ *
+ * @param whole
+ * @return
+ */
+ public static ArrayList getStepArray(String whole) {
+ ArrayList list = new ArrayList<>();
+ String[] array = whole.split("'");
+ for (int i = 0; i < array.length; i++) {
+ if (array[i].equals("[") || array[i].equals("]") || array[i].equals(", ") ||
+ array[i].equals(",") || array[i].equals(" ")) {
+
+ } else {
+ list.add(array[i]);
+ }
+ }
+ return list;
+ }
+
+ /**
+ * 计算元素需求
+ *
+ * @return
+ */
+ public static Element getElementsByOccupationAndPhysique(MyUser user, Occupation occupation, Physique physique) {
+ Element userElement = new Element(user);
+ Element occupationElement = new Element(occupation.getElements());
+ Element physiqueElement = new Element(physique.getElements());
+ physiqueElement.add(occupationElement, 2);
+ userElement.add(physiqueElement, -1);
+ return userElement;
+ }
+
+ public static Element getElementsByOccupation(MyUser user, Occupation occupation) {
+ Element userElement = new Element(user);
+ Element occupationElement = new Element(occupation.getElements());
+ userElement.add(occupationElement, -1);
+ return userElement;
+ }
+
+ public static Element getElementsByPhysique(MyUser user, Physique physique) {
+ Element userElement = new Element(user);
+ Element physiqueElement = new Element(physique.getElements());
+ userElement.add(physiqueElement, -1);
+ return userElement;
+ }
+
+ public static Element getElementsAddIllness(Illness illness, MyUser user, Occupation occupation, Physique physique) {
+ Element userElement = new Element(user);
+ Element occupationElement = new Element(occupation.getElements());
+ Element illnessElement = new Element(occupation.getElements());
+ Element physiqueElement = new Element(physique.getElements());
+ physiqueElement.add(occupationElement, 2);
+ physiqueElement.add(illnessElement, 1);
+ userElement.add(physiqueElement, -1);
+ return userElement;
+ }
+
+
}
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/ChartDrawer.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/ChartDrawer.java
index b8eab0e..4f7ee16 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/ChartDrawer.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/ChartDrawer.java
@@ -137,7 +137,7 @@ public class ChartDrawer {
//设置竖线为虚线样式
// xAxis.enableGridDashedLine(10f, 10f, 0f);
//设置x轴标签数
- xAxis.setLabelCount(8,false);
+ xAxis.setLabelCount(8, false);
xAxis.setTextSize(5);
//图表第一个和最后一个label数据不超出左边和右边的Y轴
// xAxis.setAvoidFirstLastClipping(true);
@@ -147,7 +147,7 @@ public class ChartDrawer {
//准备好每个点对应的x轴数值
List list = new ArrayList<>();
for (int i = 0; i < pointValues.size(); i++) {
- list.add(String.valueOf(i+1).concat("号"));
+ list.add(String.valueOf(i + 1).concat("号"));
}
xAxis.setValueFormatter(new IndexAxisValueFormatter(list));
@@ -158,7 +158,8 @@ public class ChartDrawer {
rightAxis.setEnabled(false);
YAxis leftAxis = mLineChart.getAxisLeft();
leftAxis.setEnabled(false);
- leftAxis.setDrawAxisLine(false);
+ leftAxis.setDrawAxisLine(true);
+ rightAxis.setAxisMinimum(0);
//点构成的某条线
LineDataSet lineDataSet = new LineDataSet(pointValues, "体重");
diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/WebUtil.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/WebUtil.java
index 1d40145..c0d88f0 100644
--- a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/WebUtil.java
+++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/WebUtil.java
@@ -42,6 +42,8 @@ public class WebUtil {
private WebUtil() {
}
+
+
public static WebUtil getInstance() {
return instance;
}
@@ -166,11 +168,13 @@ public class WebUtil {
Request request = new Request.Builder().url("http://120.77.182.38/occupation/" + occupationName + "/").build();
mClient.newCall(request).enqueue(callback);
}
+
public static void getAllOccupations(Callback callback) {
OkHttpClient mClient = new OkHttpClient();
Request request = new Request.Builder().url("http://120.77.182.38/occupation/").build();
mClient.newCall(request).enqueue(callback);
}
+
/**
* 获取体质需要的食材
* {
diff --git a/app/src/main/res/drawable/body_bg.png b/app/src/main/res/drawable/body_bg.png
index ded6ac3..91fa8db 100644
Binary files a/app/src/main/res/drawable/body_bg.png and b/app/src/main/res/drawable/body_bg.png differ
diff --git a/app/src/main/res/drawable/ic_add_recipe.xml b/app/src/main/res/drawable/ic_add_recipe.xml
new file mode 100644
index 0000000..3b209e7
--- /dev/null
+++ b/app/src/main/res/drawable/ic_add_recipe.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_ill_add_button.xml b/app/src/main/res/drawable/ic_ill_add_button.xml
new file mode 100644
index 0000000..7fce1dd
--- /dev/null
+++ b/app/src/main/res/drawable/ic_ill_add_button.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_customization.xml b/app/src/main/res/layout/activity_customization.xml
index 89e5af6..d570e29 100644
--- a/app/src/main/res/layout/activity_customization.xml
+++ b/app/src/main/res/layout/activity_customization.xml
@@ -8,6 +8,26 @@
tools:context="com.example.ninefourone.nutritionmaster.modules.viewpagerfragments.customization.CustomizationActivity">
+
+
+
+
+
+
+
@@ -51,15 +71,16 @@
+ android:layout_height="80dp"
+ android:layout_marginBottom="10dp"
+ android:background="#f4f2f2"
+ android:paddingTop="5dp">
@@ -87,15 +108,16 @@
+ android:layout_height="230dp"
+ android:layout_marginBottom="10dp"
+ android:background="#f4f2f2"
+ android:paddingTop="5dp">
@@ -123,8 +145,10 @@
+ android:layout_height="230dp"
+ android:layout_marginBottom="10dp"
+ android:background="#f4f2f2"
+ android:paddingTop="5dp">
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index cbeed1b..fa8c3ed 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -110,6 +110,7 @@
android:layout_alignParentRight="true"
app:bmb_buttonEnum="ham"
app:bmb_buttonPlaceEnum="buttonPlace_ham_2"
+ app:bmb_normalColor="#8cbc79"
app:bmb_piecePlaceEnum="piecePlace_ham_2" />
@@ -177,6 +178,8 @@
+
+
+
+
+
+
-
-
-
-
diff --git a/app/src/main/res/layout/activity_material_result.xml b/app/src/main/res/layout/activity_material_result.xml
index 04dda61..c86ba87 100644
--- a/app/src/main/res/layout/activity_material_result.xml
+++ b/app/src/main/res/layout/activity_material_result.xml
@@ -10,6 +10,7 @@
diff --git a/app/src/main/res/layout/activity_recipe.xml b/app/src/main/res/layout/activity_recipe.xml
index 478ded1..26f9aaa 100644
--- a/app/src/main/res/layout/activity_recipe.xml
+++ b/app/src/main/res/layout/activity_recipe.xml
@@ -1,5 +1,5 @@
-
-
+ android:layout_height="match_parent"
+ android:orientation="vertical">
-
+ android:layout_height="250dp">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+ app:layout_behavior="@string/appbar_scrolling_view_behavior">
-
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+ android:layout_width="match_parent"
+ android:layout_height="100dp" />
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/app/src/main/res/layout/body_information_fragment.xml b/app/src/main/res/layout/body_information_fragment.xml
index d6cea8f..862eedf 100644
--- a/app/src/main/res/layout/body_information_fragment.xml
+++ b/app/src/main/res/layout/body_information_fragment.xml
@@ -149,6 +149,7 @@
android:src="@drawable/ic_infor_weight" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/customization_item.xml b/app/src/main/res/layout/customization_item.xml
index 7a79ed8..2feeed9 100644
--- a/app/src/main/res/layout/customization_item.xml
+++ b/app/src/main/res/layout/customization_item.xml
@@ -4,10 +4,11 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="70dp"
- android:layout_margin="5dp"
+ android:layout_margin="2dp"
app:cardCornerRadius="15dp">
@@ -68,6 +69,7 @@
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:layout_toLeftOf="@id/arch"
+ android:gravity="center_vertical"
android:textSize="11sp"
tools:text="365千卡" />
diff --git a/app/src/main/res/layout/element_dialog.xml b/app/src/main/res/layout/element_dialog.xml
new file mode 100644
index 0000000..2912f3e
--- /dev/null
+++ b/app/src/main/res/layout/element_dialog.xml
@@ -0,0 +1,413 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/make_step_item.xml b/app/src/main/res/layout/make_step_item.xml
index 8dcf491..2daeaeb 100644
--- a/app/src/main/res/layout/make_step_item.xml
+++ b/app/src/main/res/layout/make_step_item.xml
@@ -3,14 +3,17 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:background="#f9f9f6"
+ android:gravity="center_vertical"
android:orientation="vertical">
diff --git a/app/src/main/res/layout/material_item.xml b/app/src/main/res/layout/material_item.xml
index 3aa6b56..95e8810 100644
--- a/app/src/main/res/layout/material_item.xml
+++ b/app/src/main/res/layout/material_item.xml
@@ -3,6 +3,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="50dp"
+ android:background="#f9f9f6"
android:gravity="center_vertical">
diff --git a/app/src/main/res/layout/material_result_item.xml b/app/src/main/res/layout/material_result_item.xml
new file mode 100644
index 0000000..684cdcb
--- /dev/null
+++ b/app/src/main/res/layout/material_result_item.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/recommend_item_big.xml b/app/src/main/res/layout/recommend_item_big.xml
deleted file mode 100644
index 98203a4..0000000
--- a/app/src/main/res/layout/recommend_item_big.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/recommend_item_detail.xml b/app/src/main/res/layout/recommend_item_detail.xml
index abad286..c305e5b 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:paddingBottom="5dp"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp"
+ android:paddingTop="5dp">
+ android:gravity="center_horizontal"
+ android:text="小知识"
+ android:textSize="12sp"
+ 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 @@
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 65fe929..d48a02a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -7,6 +7,7 @@
食材识别
菜品识别
登录
+ 是否添加到已吃记录
Email