slavi hai 1 ano
pai
achega
6bc515fc64

+ 17 - 0
.idea/deploymentTargetDropDown.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="deploymentTargetDropDown">
+    <targetSelectedWithDropDown>
+      <Target>
+        <type value="QUICK_BOOT_TARGET" />
+        <deviceKey>
+          <Key>
+            <type value="VIRTUAL_DEVICE_PATH" />
+            <value value="C:\Users\slavi\.android\avd\Pixel_5_API_33_2.avd" />
+          </Key>
+        </deviceKey>
+      </Target>
+    </targetSelectedWithDropDown>
+    <timeTargetWasSelectedWithDropDown value="2022-12-20T16:42:27.284263200Z" />
+  </component>
+</project>

+ 1 - 1
app/src/main/java/com/example/recipeproj/AdapterRecipe.java

@@ -43,7 +43,7 @@ public class AdapterRecipe  extends BaseAdapter {
     public View getView(int position, View convertView, ViewGroup parent) {
         View v = View.inflate(mContext,R.layout.activity_recipe,null);
         TextView fullRec = v.findViewById(R.id.txtFull);
-        TextView nameRec = v.findViewById(R.id.txtName);
+       TextView nameRec = v.findViewById(R.id.txtName);
         ImageView imageView = v.findViewById(R.id.imageView2);
         TextView caloryText = v.findViewById(R.id.txtCalory);
         TextView timeText = v.findViewById(R.id.txtTime);

+ 2 - 2
app/src/main/java/com/example/recipeproj/DecodeImage.java

@@ -18,7 +18,7 @@ public class DecodeImage {
             byte[] bytes = Base64.decode(encodedImg, Base64.DEFAULT);
             return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
         }
-        else  return null;
-            //return BitmapFactory.decodeResource(DecodeImage.this.mContext.getResources(), R.drawable.images);
+        else
+            return BitmapFactory.decodeResource(DecodeImage.this.mContext.getResources(), R.drawable.images);
     }
 }

+ 223 - 32
app/src/main/java/com/example/recipeproj/ViewRecipe.java

@@ -34,13 +34,19 @@ import retrofit2.converter.gson.GsonConverterFactory;
 public class ViewRecipe extends AppCompatActivity {
     Bundle arg;
     Recipe recipe;
-    EditText fullN, nameN;
+    TextView fullN, nameN,calorys,times;
     TextView fullText;
+    ImageView imageView;
     final Context context = this;
     String itog;
-    int ves;
+    String itogRost;
+    String itogVozr;
+    float ves;
+    float rost;
+    float vozr;float call;
+    String results;
     private TextView final_text;
-
+    Bitmap bitmap=null;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -49,22 +55,164 @@ public class ViewRecipe extends AppCompatActivity {
         arg = getIntent().getExtras();
         recipe = arg.getParcelable(Recipe.class.getSimpleName());
         fullN = findViewById(R.id.txtFull);
+        calorys = findViewById(R.id.txtCalorys);
+        times = findViewById(R.id.txtTimes);
         nameN = findViewById(R.id.txtName);
-        final_text = (TextView) findViewById(R.id.txtWes);
+        imageView = findViewById(R.id.imageView3);
+
         fullN.setText(recipe.getFullRecipe());
         nameN.setText(recipe.getNameRecipe());
-        fullText.setText("fffffffffffffffffffffffffffffffffffffffffffffffff" +
-                "ffffffffffffffffffffffffffffffffffffffffffffffffffffff" +
-                "ffffffffffffffffffffffffffffffffffffffffffffff" +
-                "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" +
-                "ffffffffffffffffffffffffffffffffffffffffffffffffffff" +
-                "fffffffffffffffffffffffffffffffffffffffffffffff" +
-                "fffffffffffffffffffffffffffffffffffffffffff" +
-                "ffffffffffffffffffffffffffffffffffffffffff" +
-                "fffffffffffffffffffffffffffffffffffffffffff" +
-                "ffffffffffffffffffffffffffffffffffffffffff" +
-                "fffffffffffffffffffffffffffffffffffffffffffff" +
-                "ffffffffffffffffffffffffffffffffffffffffffff");
+        calorys.setText(recipe.getCalory());
+        times.setText(recipe.getTimeGot());
+        DecodeImage decodeImage = new DecodeImage(ViewRecipe.this);
+        Bitmap userImage = decodeImage.getUserImage(recipe.getImage());
+        imageView.setImageBitmap(userImage);
+        if(!recipe.getImage().equals("null")){
+            bitmap = userImage;
+        }
+        String currentString = recipe.getNameRecipe();
+        String[] separated = currentString.split(" ");
+         String s = separated[0];
+
+        String currentStringV = calorys.getText().toString();
+        String[] separatedV = currentStringV.split(" ");
+        String sV = separatedV[0];
+          call = Float.parseFloat(sV);
+         switch (s)
+         {
+
+             case "горбуша":
+                 fullText.setText("Время приготовления: 40 минут\n" +
+                         "Белки\tЖиры\tУглеводы\n" +
+                         "21 г\t7 г\t>0 г\n" +
+                         "Ингриденты: горбуша\n" +
+                         "горбушу отварить. Для вкуса добавить лавровый лист, специи, зелень. Без соли");
+                 break;
+             case "Курица":
+                 fullText.setText("Время приготовления: 15 минут\\\" +\n" +
+                         "Белки\tЖиры\tУглеводы\n" +
+                         "19.8 г\t16.6 г\t>2.6 г \n" +
+                         "Ингриденты: 4 куриных филе\n" +
+                         "1 яйцо\n" +
+                         "4 ст.л. оливкового масла\n" +
+                         "1 ст. миндаля\n" +
+                         "2 зубчика чеснока\n" +
+                         "специи\n" +
+                         "соль \n" +
+                         " Куриные филе промыть, обсушить. Накрыть плёнкой и отбить кухонным молотком.\n" +
+                         " Измельчить миндаль и чеснок с маслом, солью и специями.\n" +
+                         " Противень застелить фольгой, смазать маслом. Разогреть духовку.\n" +
+                         " Разбить в миску яйцо, окунуть туда филе, обсыпать миндальной панировкой и выложить на противень.\n" +
+                         " Запекать курицу в миндальной панировке при 200 градусах 20 минут. Приятного аппетита!\"");
+                 break;
+
+             case "Пастрома":
+                 fullText.setText("Время приготовления: 25 минут\\\" +\n" +
+                         "Белки\tЖиры\tУглеводы\n" +
+                         "19.3 г\t2.9 г\t>1.8 " +
+                         "Ингриденты: куриная грудка, без кожи, соль поваренная пищевая, чеснок, укроп и другие пряные травы, петрушка, масло подсолнечное" +
+                         "1. Растворить соль в воде и замочить мясо в полученном рассоле на ночь.\n" +
+                         "\n" +
+                         "2. Чеснок и зелень измельчить, смешать с растительным маслом. Обмазать филе полученной смесью.\n" +
+                         "\n" +
+                         "3. Поместить в разогретую до 250 градусов духовку на 15 минут.\n" +
+                         "\n" +
+                         "4. Выключить духовку и оставить пастрому в печи до полного остывания (около 2х часов).") ;
+                 break;
+             case "Картофельные":
+                 fullText.setText("Время приготовления: 50 минут\\\" +\n" +
+                         "Белки\tЖиры\tУглеводы\n" +
+                         "4.8 г\t8.8 г\t>20.9 г" +
+                         "Ингриденты: 200 г копчёного мяса (грудинка или другое)\n" +
+                         "1 кг картофеля (заранее отваренного в кожуре)\n" +
+                         "200 г цельнозерновой муки\n" +
+                         "4 ст.л. манки\n" +
+                         "2 луковицы\n" +
+                         "2 яйца\n" +
+                         "топлёное масло или сало для жарки\n" +
+                         "немного картофельного крахмала\n" +
+                         "перец молотый\n" +
+                         "соль\n" +
+                         "Сваренный и остуженный картофель очистить от кожуры, пропустить через мясорубку.\n" +
+                         "Добавить манку, муку, яйца и соль, замесить эластичное тесто.\n" +
+                         "Лук мелко нарезать, обжарить в масле, добавить нарезанное копчёное мясо, обжарить слегка всё вместе. По вкусу посолить и поперчить.\n" +
+                         "Из кусочков теста сформировать лепёшки, наполнить начинкой из мяса с луком, защипнуть или сделать шарики. Подобным образом слепить все кнедлики и, если липоквато, обвалять в крахмале.\n" +
+                         "Кнедлики варить в кипящей воде 15 минут, либо можно сварить в пароварке. Подавать с растопленным маслом, сметаной, квашеной капустой жареным лучком, если от начинки остался. Приятного аппетита!");
+                 break;
+             case "Грибной":
+                 fullText.setText("Время приготовления: 20 минут\\\" +\n" +
+                         "Белки\tЖиры\tУглеводы\n" +
+                         "0.7 г\t1.1 г\t>3.5 г" +
+                         "Потребуется:\n" +
+                         "\n" +
+                         "250 г замороженных грибов - белых или других,\n" +
+                         "\n" +
+                         "3 шт. картофеля,\n" +
+                         "\n" +
+                         "100 г перловки,\n" +
+                         "\n" +
+                         "1 морковь,\n" +
+                         "\n" +
+                         "1 луковица,\n" +
+                         "\n" +
+                         "2 соленых огурца,\n" +
+                         "\n" +
+                         "3 л воды,\n" +
+                         "\n" +
+                         "0,5 л рассола,\n" +
+                         "\n" +
+                         "40 г топленого масла,\n" +
+                         "\n" +
+                         "лавровый лист,\n" +
+                         "\n" +
+                         "соль,\n" +
+                         "\n" +
+                         "перец" +
+                         "1. Грибы обдать кипятком, и, если слишком крупные, порезать на куски поменьше. Залить 2,5 л горячей воды и варить 40 минут под крышкой.\n" +
+                         "\n" +
+                         "2. Перловку сварить отдельно, промыть, так бульон супа будет прозрачней.\n" +
+                         "\n" +
+                         "3. Лук и морковку почистить и обжарить в топленом масле.\n" +
+                         "\n" +
+                         "4. Картошку почистить, порезать и добавить к грибам, варить 10 минут.\n" +
+                         "\n" +
+                         "5. В суп положить перловку, мелко нарезанные огурцы, поджарку, влить рассол, добавить специи и лавровый лист.\n" +
+                         "\n" +
+                         "Готовый рассольник подавать горячим, со свежей зеленью, со сметаной. Приятного аппетита!");
+                 break;
+             default:fullText.setText("fnotfound");
+         }
+        //separated[1];
+
+
+    }
+
+    private final ActivityResultLauncher<Intent> pickImg = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
+        if (result.getResultCode() == RESULT_OK) {
+            if (result.getData() != null) {
+                Uri uri = result.getData().getData();
+                try {
+                    InputStream is = getContentResolver().openInputStream(uri);
+                    bitmap = BitmapFactory.decodeStream(is);
+                    imageView.setImageBitmap(bitmap);
+                } catch (Exception e) {
+                    Log.e(e.toString(), e.getMessage());
+                }
+            }
+        }
+    });
+    public void AddPhoto(View v){
+        Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
+        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+        pickImg.launch(intent);
+    }
+    public void ads(View v)
+    {
+        EncodeImage encodeImage = new EncodeImage();
+        //cars.setImage(encodeImage.Image(bitmap));
+        fullText.setText(encodeImage.Image(bitmap));
+        String fff = fullText.getText().toString();
+
     }
     public void calcWeight(View v)
     {
@@ -81,7 +229,8 @@ public class ViewRecipe extends AppCompatActivity {
 
         //Настраиваем отображение поля для ввода текста в открытом диалоге:
         final EditText userInput = (EditText) promptsView.findViewById(R.id.input_text);
-
+        final EditText userRost = (EditText) promptsView.findViewById(R.id.input_text1);
+        final EditText userVozr = (EditText) promptsView.findViewById(R.id.input_text2);
         //Настраиваем сообщение в диалоговом окне:
         mDialogBuilder
                 .setCancelable(false)
@@ -93,17 +242,41 @@ public class ViewRecipe extends AppCompatActivity {
 
                                 //final_text.setText(userInput.getText());
                                 itog =  userInput.getText().toString();
-                                ves = Integer.parseInt(itog);
-                                switch(recipe.getNameRecipe())
-                                {
-                                    case "тест":
-                                        ves = ves*10;
-                                        break;
-                                    case "рецепт":
-                                        ves = ves /10;
-                                        break;
+                                itogRost= userRost.getText().toString();
+                                itogVozr=userVozr.getText().toString();
+
+                                try{
+                                    ves = Integer.parseInt(itog);
+                                    vozr = Integer.parseInt(itogVozr);
+                                    rost = Integer.parseInt(itogRost);
                                 }
-                                final_text.setText("Кол-во еды в граммах: " + ves);
+                             catch (Exception e)
+                             {
+                                 ShowError("Неверно введено числовое значения какого-либо поля");
+                             }
+                               float rostC = rost/100;
+                                rostC = rostC * rostC;
+
+                             float indtel = ves/rostC;
+                                String result = String.format("%.2f",indtel);
+                             if(indtel < 17.5) results = "Ваш индекс массы тела: "+ result + "\nСостояние: анорексия";
+                             else if (17.5 < indtel && indtel < 18.5) {results = "Ваш индекс массы тела: "+ result + "\nСостояние: Дефицит массы тела";}
+                             else if (18.5 < indtel && indtel < 25.9) {results = "Ваш индекс массы тела: "+ result + "\nСостояние: Нормальное состояние";}
+                             else if (18.5 < indtel && indtel < 25.9) {results = "Ваш индекс массы тела: "+ result + "\nСостояние:  Избыточная масса тела";}
+                             else if (25.9 < indtel && indtel < 27.9) {results = "Ваш индекс массы тела: "+ result + "\nСостояние:  Ожирение первой степени";}
+                             else if (27.9 < indtel && indtel < 30.9) {results = "Ваш индекс массы тела: "+ result + "\nСостояние:  Ожирение второй степени";}
+                             else if (30.9 < indtel && indtel < 35.9) {results = "Ваш индекс массы тела: "+ result + "\nСостояние:  Ожирение третьей степени";}
+                             else if (35.9 < indtel ) {results = "Ваш индекс массы тела: "+ result + "\nСостояние:  Ожирение четвертой степени";}
+                             else{ results = "ошибка";}
+
+                               // Для мужчин: (10 х вес в кг) + (6,25 х рост в см) – (5 х возраст в г) + 5.
+                                float grammfood = (float) ((((10 * ves) + (6.25 * rost) - (5*vozr)) / call )/3) * 100;
+                                 result = String.format("%.2f",grammfood);
+                                results += "\nКоличество граммов еды на один прием: " +  result;
+                                ShowInfo(results);
+
+
+
                             }
                         })
                 .setNegativeButton("Отмена",
@@ -121,21 +294,39 @@ public class ViewRecipe extends AppCompatActivity {
 
 
 
+    }
+    public void ShowInfo(String ret)
+    {
 
-      /*  AlertDialog.Builder builder = new AlertDialog.Builder(this);
+        AlertDialog.Builder builder = new AlertDialog.Builder(this);
+        builder
+                .setTitle("Результат")
+                .setMessage(ret)
+                .setIcon(android.R.drawable.ic_dialog_alert)
+                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialogInterface, int i) {
+                        dialogInterface.dismiss();
+                    }
+                });
+        AlertDialog alert = builder.create();
+        alert.show();
+    }
+    public void ShowError(String ret)
+    {
+        AlertDialog.Builder builder = new AlertDialog.Builder(this);
         builder
-                .setTitle("Рассчитать вес")
-                .setMessage("Введите вес")
+                .setTitle("Ошибка при вводе")
+                .setMessage(ret)
                 .setIcon(android.R.drawable.ic_dialog_alert)
                 .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialogInterface, int i) {
-                        final_text.setText(userInput.getText());
                         dialogInterface.dismiss();
                     }
                 });
         AlertDialog alert = builder.create();
-        alert.show();*/
+        alert.show();
     }
 
 

BIN=BIN
app/src/main/res/drawable/images.jpg


+ 19 - 19
app/src/main/res/layout/activity_recipe.xml

@@ -24,47 +24,47 @@
             app:srcCompat="@drawable/ic_launcher_foreground"
             tools:layout_editor_absoluteX="151dp"
             tools:layout_editor_absoluteY="49dp" />
+        <TextView
+            android:id="@+id/txtName"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
 
+            android:layout_marginTop="384dp"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.301"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
         <TextView
             android:id="@+id/txtFull"
-            android:layout_width="80dp"
-            android:layout_height="80dp"
+            android:layout_width="97dp"
+            android:layout_height="145dp"
             android:layout_alignParentTop="true"
             android:layout_alignParentEnd="true"
-            android:layout_marginTop="246dp"
-            android:layout_marginEnd="314dp"
+            android:layout_marginTop="242dp"
+            android:layout_marginEnd="284dp"
             android:text="TextView" />
 
         <TextView
             android:id="@+id/txtCalory"
-            android:layout_width="80dp"
-            android:layout_height="80dp"
+            android:layout_width="97dp"
+            android:layout_height="145dp"
             android:layout_alignParentTop="true"
             android:layout_alignParentEnd="true"
-            android:layout_marginTop="247dp"
-            android:layout_marginEnd="221dp"
+            android:layout_marginTop="241dp"
+            android:layout_marginEnd="155dp"
             android:text="TextView" />
 
         <TextView
             android:id="@+id/txtTime"
-            android:layout_width="80dp"
-            android:layout_height="80dp"
+            android:layout_width="97dp"
+            android:layout_height="145dp"
             android:layout_alignParentTop="true"
             android:layout_alignParentEnd="true"
             android:layout_marginTop="246dp"
             android:layout_marginEnd="24dp"
             android:text="TextView" />
 
-        <TextView
-            android:id="@+id/txtName"
 
-            android:layout_width="80dp"
-            android:layout_height="80dp"
-            android:layout_alignParentTop="true"
-            android:layout_alignParentEnd="true"
-            android:layout_marginTop="246dp"
-            android:layout_marginEnd="117dp"
-            android:text="TextView" />
 
 
     </RelativeLayout>

+ 54 - 21
app/src/main/res/layout/activity_view_recipe.xml

@@ -26,46 +26,55 @@
             android:text="Register"
 
             android:textColor="#F4DC04"
-            android:textSize="40sp"
+            android:textSize="20sp"
             android:textStyle="bold"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent" />
 
     </ScrollView>
 
-    <EditText
-        android:id="@+id/txtName"
-        android:layout_width="124dp"
-        android:layout_height="46dp"
 
-        android:layout_marginTop="232dp"
-        app:layout_constraintBottom_toTopOf="@+id/btnBack"
+    <TextView
+        android:id="@+id/txtCalorys"
+        android:layout_width="97dp"
+        android:layout_height="145dp"
+
+        android:layout_marginTop="200dp"
         app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0.853"
+        app:layout_constraintHorizontal_bias="0.531"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintVertical_bias="0.0" />
+        app:layout_constraintTop_toTopOf="parent" />
 
     <TextView
-        android:id="@+id/txtWes"
-        android:layout_width="124dp"
-        android:layout_height="46dp"
-
+        android:id="@+id/txtName"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
 
-        android:layout_marginTop="300dp"
+        android:layout_marginTop="384dp"
         app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0.498"
+        app:layout_constraintHorizontal_bias="0.301"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
 
-    <EditText
+    <TextView
+        android:id="@+id/txtTimes"
+        android:layout_width="97dp"
+        android:layout_height="145dp"
+
+        android:layout_marginTop="24dp"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.949"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/imageView3" />
+
+    <TextView
         android:id="@+id/txtFull"
-        android:layout_width="122dp"
-        android:layout_height="49dp"
+        android:layout_width="97dp"
+        android:layout_height="145dp"
 
-        android:layout_marginTop="228dp"
+        android:layout_marginTop="200dp"
         app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0.166"
+        app:layout_constraintHorizontal_bias="0.099"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
 
@@ -83,4 +92,28 @@
         app:layout_constraintTop_toBottomOf="@+id/txtFull"
         tools:ignore="MissingConstraints" />
 
+    <ImageView
+        android:id="@+id/imageView3"
+        android:layout_width="140dp"
+        android:layout_height="143dp"
+        android:layout_marginTop="28dp"
+        android:onClick="AddPhoto"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.527"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        tools:srcCompat="@tools:sample/avatars" />
+
+    <Button
+        android:id="@+id/button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="68dp"
+        android:text="Button"
+        android:onClick="ads"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.097"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 29 - 3
app/src/main/res/layout/prompt.xml

@@ -11,14 +11,40 @@
         android:id="@+id/tv"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="Напишите текст: "
+        android:text="Ввведите вес (в кг): "
         android:textAppearance="?android:attr/textAppearanceLarge" />
 
     <EditText
         android:id="@+id/input_text"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content" >
+        android:layout_width="399dp"
+        android:layout_height="wrap_content">
+    </EditText>
+    <TextView
+        android:id="@+id/tv1"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="Ввведите рост (в см): "
+        android:textAppearance="?android:attr/textAppearanceLarge" />
+
+    <EditText
+        android:id="@+id/input_text1"
+        android:layout_width="399dp"
+        android:layout_height="wrap_content">
+    </EditText>
+        <TextView
+            android:id="@+id/tv2"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Ввведите возраст: "
+            android:textAppearance="?android:attr/textAppearanceLarge" />
+
+        <EditText
+            android:id="@+id/input_text2"
+            android:layout_width="399dp"
+            android:layout_height="wrap_content">
+
         <requestFocus />
+
     </EditText>
 
 </LinearLayout>