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 1a897d6..64bef4d 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/NutritionMaster.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/NutritionMaster.java @@ -6,6 +6,7 @@ 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; @@ -45,7 +46,7 @@ public class NutritionMaster extends Application { public static Physique physique = null; public static Occupation occupation = null; public static Element element = null; - + public static Illness illness = null; @Override 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/bean/Element.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Element.java index 5b7b9d5..39d654f 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Element.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/bean/Element.java @@ -158,6 +158,35 @@ public class Element implements Cloneable { } + 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{" + 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 bc8528a..812b030 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 @@ -42,7 +42,7 @@ 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; 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 97f9f2e..48a1a5d 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); @@ -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: @@ -537,17 +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(); - 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/addinformation/AddPhysiqueActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/addinformation/AddPhysiqueActivity.java index 7972438..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 @@ -389,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); 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 f976af2..f9c2c16 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 @@ -206,7 +206,7 @@ public class BodyInformationFragment extends BaseFragment { /** * 更新数据 */ - private void refreshUI() { + public void refreshUI() { if (NutritionMaster.user.getBmi() != -1) { weightText.post(new Runnable() { @Override 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 b27c039..e6fea79 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 @@ -3,6 +3,7 @@ package com.example.ninefourone.nutritionmaster.utils; 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; @@ -194,20 +195,33 @@ public class CalculateUtils { Element userElement = new Element(user); Element occupationElement = new Element(occupation.getElements()); Element physiqueElement = new Element(physique.getElements()); - occupationElement.add(physiqueElement, 2); - userElement.add(occupationElement, -1); + 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/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_main.xml b/app/src/main/res/layout/activity_main.xml index 9bdba26..fa8c3ed 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -179,17 +179,6 @@ - - - + + +