تطبيق restaurant بأندرويد و firebase الجزء الرابع


فهاد الجزء الرابع  من تطبيق restaurant بأندرويد و firebaseغادي نكملو الملفات لي بقاو ولي غادي يمكنو المستخدم من مشاهدة تفاصيل commande اختارها كما غادي نشوفو الملفات لي غادي يمكنوا من مشاهدة تفاصيل ديال plat اختارو المستخدم.





نظرة سريعة بالفيديو

1- الملف Command.java

فالمجلد model فيه زيد ملف جديد عبارة عن java class  سميه Command.java فيه غادي نخزنو المعلومات الخاصة بكل commande فعندنا المعلومات على شكل des variables و كاين ل constructeur ولgetters وsetters فهاد الملف كان خاص نزيدوه فالجزء السابق الكود ديال الملف هو:

                                package com.example.belasri.restaurantapp.model;

public class Command {
    private String fullname;
    private String phone;
    private String adress;
    private String qte;
    private String menu_id;

    public Command(String fullname, String phone, String adress, String qte, String menu_id) {
        this.fullname = fullname;
        this.phone = phone;
        this.adress = adress;
        this.qte = qte;
        this.menu_id = menu_id;
    }
    public Command(){

    }

    public String getFullname() {
        return fullname;
    }

    public void setFullname(String fullname) {
        this.fullname = fullname;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAdress() {
        return adress;
    }

    public void setAdress(String adress) {
        this.adress = adress;
    }

    public String getQte() {
        return qte;
    }

    public void setQte(String qte) {
        this.qte = qte;
    }

    public String getMenu_id() {
        return menu_id;
    }

    public void setMenu_id(String menu_id) {
        this.menu_id = menu_id;
    }
}
                            

2- CommandDetailsActivity.java


غادي تمشي للمجلد java  فيه غادي تلقى الملف CommandDetailsActivity.java فيه غادي يكون الكود لي كيمكن من مشاهدة التفاصيل ديال ل commande لي اختار المستخدم من بعد مكنسترجع TextViews ول Bouton منبعد كندير référence ل la table لي هي Commands منبعد كنسترجع ل id ديال ل command لي ضغط عليها المستخدم وبه كنبحث ف table على ل commande ومنبعد كنسترجع المعلومات الخاصين بها كاملين وكنعرضهم ف TextViews بالإضافة للصورة وفل onclick ديال ل لBouton لي كتمكن gérant باش يمسح  commande عندي الكود لي كيمكنو من مسح ل commande ومنبعد كنوجهوا لل MainActivity الكود ديال الملف هو :


                                package com.example.belasri.restaurantapp;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.squareup.picasso.Picasso;

public class CommandDetailsActivity extends AppCompatActivity {
    private TextView menuName,menuAdress,menuTel,menuPrice,menuQte;
    private ImageView MenuImageView;
    private FirebaseDatabase database;
    private DatabaseReference reference;
    private String command_id = null;
    private Button mDeleteBtn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_command_details);
        menuName = (TextView) findViewById(R.id.commandNom);
        menuAdress = (TextView) findViewById(R.id.commandAdress);
        menuTel = (TextView) findViewById(R.id.commandTel);
        menuPrice = (TextView) findViewById(R.id.price);
        menuQte = (TextView) findViewById(R.id.menuQte);
        MenuImageView = (ImageView) findViewById(R.id.menuDetailsImage);
        mDeleteBtn = (Button) findViewById(R.id.deleteBtn);
        command_id = getIntent().getStringExtra("command_id");
        reference = FirebaseDatabase.getInstance().getReference().child("Commands");
        getData();
    }
    private void getData() {
        reference.child(command_id).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(final DataSnapshot dataSnapshot) {
                final String name = (String) dataSnapshot.child("name").getValue();
                final String adress = (String) dataSnapshot.child("adress").getValue();
                final String phone = (String) dataSnapshot.child("phone").getValue();
                final String price = (String) dataSnapshot.child("price").getValue();
                final String qte = (String) dataSnapshot.child("qte").getValue();
                final String  image = (String) dataSnapshot.child("imageUrl").getValue();
                int total = Integer.parseInt(qte) * Integer.parseInt(price);
                menuName.setText(name);
                menuTel.setText(phone);
                menuQte.setText(qte);
                menuAdress.setText(adress);
                menuPrice.setText(total + " dh");
                Picasso.with(CommandDetailsActivity.this).load(image).into(MenuImageView);
                mDeleteBtn.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dataSnapshot.getRef().removeValue();
                        Toast.makeText(CommandDetailsActivity.this, "Supprimé", Toast.LENGTH_SHORT).show();
                        Intent home = new Intent(CommandDetailsActivity.this,CommandsActivity.class);
                        startActivity(home);
                    }
                });
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
    }
}
                            

3- activity_menu_details.xml

غادي تمشي للمجلد java  فيه غادي تزيد Activity جديدة سميها MenuDetailsActivity منبعد مكتزاد سير ل res/layout فيها غادي تلقى الملف activity_menu_details.xml فهاد ل Activity هي لي غادي تمكن صاحب المطعم من مشاهدة تفاصيل plat اختارو ولي المعلومات ديالو غادي يكونوا ف TextViews  وغادي تكون فيها ايضا bouton لي كتمكنوا من مسح هاد ل plat من la table الكود ديال الملف هو:


                                <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFE"
    tools:context="com.example.belasri.restaurantapp.MenuDetailsActivity">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:layout_width="match_parent"
            android:elevation="3dp"
            android:layout_height="wrap_content">
            <ImageView
                android:id="@+id/menuDetailsImage"
                android:src="@drawable/pizza"
                android:scaleType="fitXY"
                android:layout_width="match_parent"
                android:layout_height="250dp" />
        </LinearLayout>
        <LinearLayout
            android:orientation="vertical"
            android:padding="5dp"
            android:layout_width="match_parent"
            android:elevation="5dp"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/menuTitle"
                android:text="Pizza fruits de mer"
                android:padding="5dp"
                android:textSize="20dp"
                android:textColor="@color/colorAccent"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </LinearLayout>
        <LinearLayout
            android:orientation="vertical"
            android:padding="5dp"
            android:elevation="5dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/menuDesc"
                android:layout_marginTop="10dp"
                android:text="Material Design Icons' growing icon collection allows designers and developers targeting various platforms to download icons in the format, color and size they need for any project."
                android:padding="5dp"
                android:textColor="#000000"
                android:maxLines="10"
                android:textSize="20dp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
            <TextView
                android:id="@+id/price"
                android:layout_marginTop="10dp"
                android:text="150 dh"
                android:padding="5dp"
                android:textColor="#000000"
                android:maxLines="10"
                android:textSize="20dp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </LinearLayout>
        <Button
            android:id="@+id/deleteBtn"
            android:layout_marginTop="10dp"
            android:text="Supprimer"
            android:textColor="#fff"
            android:textSize="20sp"
            android:layout_marginBottom="10dp"
            android:background="@color/colorPrimary"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
</ScrollView>
                            

4- MenuDetailsActivity.java


غادي تمشي للمجلد java  فيه غادي تلقى الملف MenuDetailsActivity.java فيه غادي يكون الكود لي كيمكن من مشاهدة التفاصيل ديال ل plat لي اختار المستخدم من بعد مكنسترجع TextViews ول Bouton منبعد كندير référence ل la table لي هي Menu منبعد كنسترجع ل id ديال ل plat لي ضغط عليه المستخدم وبه كنبحث ف table على ل plat ومنبعد كنسترجع المعلومات الخاصين به كاملين وكنعرضهم ف TextViews بالإضافة للصورة وفل onclick ديال ل لBouton لي كتمكن gérant باش يمسح  plat عندي الكود لي كيمكنو من مسح ل plat ومنبعد كنوجهوا لل MainActivity الكود ديال الملف هو :


                                    package com.example.belasri.restaurantapp;

import android.content.Intent;
import android.support.design.widget.BottomNavigationView;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.example.belasri.restaurantapp.helpers.BottomNavigationViewHelper;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.squareup.picasso.Picasso;

public class MenuDetailsActivity extends AppCompatActivity {
    private TextView menuTitle,menuDesc,menuPrice;
    private ImageView MenuImageView;
    private FirebaseDatabase database;
    private DatabaseReference reference;
    private String menu_id = null;
    private Button mDeleteBtn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu_details);
        menuTitle = (TextView) findViewById(R.id.menuTitle);
        menuDesc = (TextView) findViewById(R.id.menuDesc);
        menuPrice = (TextView) findViewById(R.id.price);
        MenuImageView = (ImageView) findViewById(R.id.menuDetailsImage);
        mDeleteBtn = (Button) findViewById(R.id.deleteBtn);
        menu_id = getIntent().getStringExtra("menu_id");
        reference = FirebaseDatabase.getInstance().getReference().child("Menu");
        getData();
    }
    private void getData(){
        reference.child(menu_id).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(final DataSnapshot dataSnapshot) {
                final String title = (String) dataSnapshot.child("title").getValue();
                final String description = (String) dataSnapshot.child("description").getValue();
                final String price = (String) dataSnapshot.child("price").getValue();
                final String  image = (String) dataSnapshot.child("imageUrl").getValue();
                menuTitle.setText(title);
                menuDesc.setText(description);
                menuPrice.setText(price + " dh");
                Picasso.with(MenuDetailsActivity.this).load(image).into(MenuImageView);
                mDeleteBtn.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dataSnapshot.getRef().removeValue();
                        Toast.makeText(MenuDetailsActivity.this, "Supprimé", Toast.LENGTH_SHORT).show();
                        Intent home = new Intent(MenuDetailsActivity.this,MainActivity.class);
                        startActivity(home);
                    }
                });
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
    }
}
                                

5- الملف AndroidManifest.xml

فالملف AndroidManifest.xml كنعطي للتطبيق ل permission باش يقرا ال mémoire ديال التلفون الكود لي غادي تزيد هو :

                                    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
                                


إشترك في قناتنا على اليوتيوب

بحث في الموقع


إشترك للتوصل بالجديد