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

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

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


1- الملف activity_commands.xml


غادي تمشي للمجلد java  فيه غادي تزيد Activity جديدة سميها CommandsActivity منبعد مكتزاد سير ل res/layout فيها غادي تلقى الملف activity_commands.xml فهاد ل Activity هي لي غادي تمكن صاحب المطعم من متابعة les commandes لي كيجيوه فهاد الملف كاين RecyclerView لي غادي تاخد les commandes و TextView لي غادي تعرض في حالة مكانت حتى commande  الكود ديال الملف هو:

                                    
                                        <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    tools:context="com.example.belasri.restaurantapp.CommandsActivity">
    <android.support.v7.widget.RecyclerView
        android:id="@+id/commands"
        android:visibility="visible"
        android:padding="10dp"
        android:layout_marginBottom="10dp"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </android.support.v7.widget.RecyclerView>
    <TextView
        android:id="@+id/noCmds"
        android:text="Aucune Commande"
        android:textSize="30sp"
        android:textAlignment="center"
        android:visibility="gone"
        android:layout_centerInParent="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</RelativeLayout>
                                    
                                

2- الملف command_item.xml


فالمجلد res/layout فيه كنزيد ملف كنسميه command_item.xml فيه 2 TextViews لي غادي يكون فيهم الإسم والعنوان ديال لي رسل ل commande ولي منبعد غادي تزاد فل RecyclerView لي زدنا فالملف السابق الكود ديال الملف هو :


                                    
                                        <?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    app:cardBackgroundColor="@android:color/white"
    app:cardCornerRadius="5dp"
    app:cardElevation="2dp">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:background="#e74c00"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/fullname"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="?android:selectableItemBackground"
                tools:text="Samadi Samir"
                android:fontFamily="sans-serif"
                android:maxLines="1"
                android:gravity="left"
                android:padding="10sp"
                android:textColor="#fff"
                android:textStyle="bold"
                android:textSize="20sp" />
            <View
                android:background="#fff"
                android:layout_width="match_parent"
                android:layout_height="1dp"></View>
            <TextView
                android:id="@+id/adress"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="?android:selectableItemBackground"
                android:gravity="left"
                android:padding="10sp"
                android:text="14 rue anwal"
                android:fontFamily="sans-serif"
                android:maxLines="1"
                android:textAlignment="center"
                android:textColor="#fff"
                android:textStyle="bold"
                android:textSize="20sp" />
        </LinearLayout>
    </LinearLayout>
</android.support.v7.widget.CardView>
                                    
                                

3- CommandsActivity.java



غادي تمشي للمجلد java  فيه غادي تلقى الملف CommandsActivity.java فيه غادي يكون الكود لي كيمكن من عرض ل commandes لي عندنا فقاعدة البيانات فكنسترجع TextViews و RecyclerView منبعد كنزيد référence ل table لي هي Commands لي  ف firebase منبعد كنخدم بنفس الطريقة باش خدمنا فل menu وكنسترجع المعلومات الخاصة بل commande وكنعرضها ف textviews ولي ملي كنكليكي عليها كتديني للملف الخاص بعرض تفاصيل ال commande ولي غادي نزيدوه منبعد الكود ديال الملف هو :


                                      
                                        package com.example.belasri.restaurantapp;

import android.content.Context;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.belasri.restaurantapp.model.Command;
import com.example.belasri.restaurantapp.model.Item;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.squareup.picasso.Picasso;

public class CommandsActivity extends AppCompatActivity {
    private DatabaseReference commandsDb;
    private TextView title,noCmd;
    private RecyclerView recyclerview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_commands);
        recyclerview = (RecyclerView) findViewById(R.id.commands);
        noCmd = (TextView) findViewById(R.id.noCmds);
        commandsDb = FirebaseDatabase.getInstance().getReference().child("Commands");
        LinearLayoutManager linearManager = new LinearLayoutManager(this);
        linearManager.setOrientation(linearManager.VERTICAL);
        recyclerview.setLayoutManager(new GridLayoutManager(this,2));
        recyclerview.setItemAnimator(new DefaultItemAnimator());
        showCommands();
    }

    private void showCommands() {
        FirebaseRecyclerAdapter<Command, CommandsViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Command, CommandsViewHolder>(
                Command.class,
                R.layout.list_item,
                CommandsViewHolder.class,
                commandsDb
        ) {
            @Override
            protected void onDataChanged() {
                super.onDataChanged();
                if(getItemCount() == 0){
                    recyclerview.setVisibility(View.GONE);
                    noCmd.setVisibility(View.VISIBLE);
                }else {
                    recyclerview.setVisibility(View.VISIBLE);
                    noCmd.setVisibility(View.GONE);
                }

            }
            @Override
            protected void populateViewHolder(CommandsViewHolder viewHolder, Command model, int position) {
                final String command_id = getRef(position).getKey().toString();
                viewHolder.setFullname(model.getFullname());
                viewHolder.setAdress(model.getAdress());
                viewHolder.view.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Intent singleCommand = new Intent(CommandsActivity.this,CommandDetailsActivity.class);
                        singleCommand.putExtra("command_id",command_id);
                        startActivity(singleCommand);
                    }
                });
            }
        };
        recyclerview.setAdapter(firebaseRecyclerAdapter);
    }
    public static class CommandsViewHolder extends RecyclerView.ViewHolder{
        View view;
        public CommandsViewHolder(View itemView) {
            super(itemView);
            view = itemView;
        }
        public void setFullname(String fullname){
            TextView fullnameText = (TextView) view.findViewById(R.id.fullname);
            fullnameText.setText(fullname);
        }
        public void setAdress(String adress){
            TextView adressText = (TextView) view.findViewById(R.id.adress);
            adressText.setText(adress);
        }
    }
}
                                      
                                    

4- الملف activity_command_details.xml



غادي تمشي للمجلد java  فيه غادي تزيد Activity جديدة سميها CommandDetailsActivity منبعد مكتزاد سير ل res/layout فيها غادي تلقى الملف activity_commands.xml فهاد ل Activity هي لي غادي تكون فيها تفاصيل على commande ضغط عليها المستخدم بالإضافة للمعلومات الخاصة بلي دار ل commande الكود ديال الملف هو:


                                        
                                            <?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>
        <RelativeLayout
            android:padding="5dp"
            android:layout_width="match_parent"
            android:elevation="5dp"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/menuQte"
                android:text="2"
                android:padding="5dp"
                android:textSize="20dp"
                android:textColor="@color/colorAccent"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <TextView
                android:id="@+id/menuTitle"
                android:text="Pizza fruits de mer"
                android:padding="5dp"
                android:layout_toRightOf="@+id/menuQte"
                android:textSize="20dp"
                android:textColor="@color/colorAccent"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </RelativeLayout>
        <LinearLayout
            android:orientation="vertical"
            android:padding="5dp"
            android:elevation="5dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/commandNom"
                android:layout_marginTop="10dp"
                android:text="Imad Belasri"
                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/commandAdress"
                android:layout_marginTop="10dp"
                android:text="14 rue afrah fes"
                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/commandTel"
                android:layout_marginTop="10dp"
                android:text="0788990099"
                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>
                                        
                                    

كلمات مفاتيح :