Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ###########################################
- Add food
- ###########################################
- package com.example.valii.restaurantapp;
- import android.content.Intent;
- import android.media.Image;
- import android.net.Uri;
- import android.provider.ContactsContract;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.text.TextUtils;
- import android.view.View;
- import android.widget.EditText;
- import android.widget.ImageButton;
- import android.widget.Toast;
- import com.google.android.gms.tasks.OnSuccessListener;
- import com.google.firebase.database.DatabaseReference;
- import com.google.firebase.database.FirebaseDatabase;
- import com.google.firebase.storage.FirebaseStorage;
- import com.google.firebase.storage.StorageReference;
- import com.google.firebase.storage.UploadTask;
- public class AddFood extends AppCompatActivity {
- private ImageButton foodImage;
- private static final int GALLREQ = 1;
- private EditText name,desc,price,gramaj;
- private Uri uri = null;
- private StorageReference storageReference = null;
- private DatabaseReference mRef;
- private FirebaseDatabase firebaseDatabase;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_add_food);
- name = (EditText) findViewById(R.id.itemName);
- desc = (EditText) findViewById(R.id.itemDesc);
- price = (EditText) findViewById(R.id.itemPrice);
- gramaj = (EditText) findViewById(R.id.itemGramaj);
- storageReference = FirebaseStorage.getInstance().getReference();
- mRef = FirebaseDatabase.getInstance().getReference("Item");
- }
- public void imageButtonClicked(View view){
- Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT);
- galleryIntent.setType("image/*");
- startActivityForResult(galleryIntent,GALLREQ);
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if(requestCode == GALLREQ && resultCode == RESULT_OK){
- uri = data.getData();
- foodImage = (ImageButton) findViewById(R.id.foodImageButton);
- foodImage.setImageURI(uri);
- }
- }
- public void addItemButtonClicked(View view){
- final String name_text = name.getText().toString().trim();
- final String desc_text = desc.getText().toString().trim();
- final String price_text = price.getText().toString().trim();
- final String gramaj_text = price.getText().toString().trim();
- if(!TextUtils.isEmpty(name_text) && !TextUtils.isEmpty(desc_text) && !TextUtils.isEmpty(price_text)){
- StorageReference filepath = storageReference.child(uri.getLastPathSegment());
- filepath.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
- @Override
- public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
- final Uri downloadurl = taskSnapshot.getDownloadUrl();
- Toast.makeText(AddFood.this,"Item added successfully",Toast.LENGTH_LONG).show();
- final DatabaseReference newPost = mRef.push();
- newPost.child("name").setValue(name_text);
- newPost.child("desc").setValue(desc_text);
- newPost.child("price").setValue(price_text);
- newPost.child("gramaj").setValue(gramaj_text);
- newPost.child("image").setValue(downloadurl.toString());
- }
- });
- }
- }
- }
- ############################################
- Admin activity
- ############################################
- package com.example.valii.restaurantapp;
- import android.content.Intent;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import android.view.View;
- public class AdminActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_admin);
- }
- public void addFoodButtonClicked(View view){
- Intent addFoodIntent = new Intent(AdminActivity.this,AddFood.class);
- startActivity(addFoodIntent);
- }
- public void viewOrders(View view){
- startActivity(new Intent(AdminActivity.this,OpenOrders.class));
- }
- }
- #####################################
- Login Activity
- #####################################
- package com.example.valii.restaurantapp;
- import android.content.Intent;
- import android.support.annotation.NonNull;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.text.TextUtils;
- import android.view.View;
- import android.widget.EditText;
- import android.widget.Toast;
- import com.google.android.gms.tasks.OnCompleteListener;
- import com.google.android.gms.tasks.Task;
- import com.google.firebase.auth.AuthResult;
- 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;
- public class LoginActivity extends AppCompatActivity {
- private EditText userEmail, userPass;
- private String access;
- private FirebaseAuth mAuth;
- private DatabaseReference mDatabase;
- private String access0 ="0";
- private String access1 ="1";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_login);
- userEmail = (EditText) findViewById(R.id.userEmail);
- userPass = (EditText)findViewById(R.id.userPass);
- mAuth = FirebaseAuth.getInstance();
- mDatabase = FirebaseDatabase.getInstance().getReference().child("users");
- }
- public void signinButtonClicked(View view){
- String email = userEmail.getText().toString().trim();
- String pass = userPass.getText().toString().trim();
- if(!TextUtils.isEmpty(email) && !TextUtils.isEmpty(pass)){
- mAuth.signInWithEmailAndPassword(email,pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
- @Override
- public void onComplete(@NonNull Task<AuthResult> task) {
- if(task.isSuccessful()){
- checkAccess();
- checkUserExists();
- }
- else{
- Toast.makeText(LoginActivity.this,"Username or Password invalid!",Toast.LENGTH_LONG).show();
- }
- }
- });
- }
- else{
- Toast.makeText(LoginActivity.this,"Fill in all the blanks!",Toast.LENGTH_LONG).show();
- }
- }
- public void checkAccess() {
- final String user_id = mAuth.getCurrentUser().getUid();
- mDatabase.child(user_id).addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- access = (String) dataSnapshot.child("Access").getValue();
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- }
- });
- }
- public void checkUserExists() {
- final String user_id = mAuth.getCurrentUser().getUid();
- mDatabase.addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- if (dataSnapshot.hasChild(user_id)) {
- if (access.equals(access0)) {
- Intent menuIntent = new Intent(LoginActivity.this, MenuActivity.class);
- startActivity(menuIntent);
- }
- else if(access.equals(access1)){
- Intent adminIntent = new Intent(LoginActivity.this, AdminActivity.class);
- startActivity(adminIntent);
- }
- else{
- Toast.makeText(LoginActivity.this,"Oops something went wrong!",Toast.LENGTH_LONG).show();
- }
- }
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- }
- });
- }
- public void signupButtonClicked(View view) {
- Intent loginIntent = new Intent(LoginActivity.this,MainActivity.class);
- startActivity(loginIntent);
- }
- }
- ######################################
- Main activity
- ######################################
- package com.example.valii.restaurantapp;
- import android.content.Intent;
- import android.support.annotation.NonNull;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.text.Editable;
- import android.text.TextUtils;
- import android.view.View;
- import android.widget.EditText;
- import android.widget.Toast;
- import com.google.android.gms.tasks.OnCompleteListener;
- import com.google.android.gms.tasks.Task;
- import com.google.firebase.auth.AuthResult;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.database.DatabaseReference;
- import com.google.firebase.database.FirebaseDatabase;
- public class MainActivity extends AppCompatActivity {
- private EditText email,pass,pass2,phone;
- private String access;
- private DatabaseReference mDatabase;
- private FirebaseAuth mAuth;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- email = (EditText) findViewById(R.id.editEmail);
- pass = (EditText) findViewById(R.id.editPass);
- pass2 =(EditText) findViewById(R.id.editPass2);
- phone = (EditText) findViewById(R.id.editPhone);
- access = "0";
- mAuth = FirebaseAuth.getInstance();
- mDatabase = FirebaseDatabase.getInstance().getReference().child("users");
- }
- public void signupButtonClicked(View view){
- final String email_text = email.getText().toString().trim();
- String pass_text = pass.getText().toString().trim();
- String pass2_text = pass2.getText().toString().trim();
- final String phone_text = phone.getText().toString().trim();
- if(!TextUtils.isEmpty(email_text) && !TextUtils.isEmpty(pass_text) && !TextUtils.isEmpty(pass2_text)){
- if( pass_text.equals(pass2_text)) {
- mAuth.createUserWithEmailAndPassword(email_text, pass_text).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
- public void onComplete(@NonNull Task<AuthResult> task) {
- if (task.isSuccessful()) {
- String user_id = mAuth.getCurrentUser().getUid();
- DatabaseReference current_user = mDatabase.child(user_id);
- current_user.child("Name").setValue(email_text);
- current_user.child("Access").setValue(access);
- current_user.child("Phone").setValue(phone_text);
- Intent login = new Intent(MainActivity.this, LoginActivity.class);
- startActivity(login);
- }
- else{
- Toast.makeText(MainActivity.this,"Email already in use!!",Toast.LENGTH_LONG).show();
- }
- }
- });
- }
- else{
- Toast.makeText(MainActivity.this,"Passwords do not match!",Toast.LENGTH_LONG).show();
- }
- }
- else{
- Toast.makeText(MainActivity.this,"Fill in all the blanks!",Toast.LENGTH_LONG).show();
- }
- }
- public void signinButtonClicked(View view){
- Intent loginIntent = new Intent(MainActivity.this,LoginActivity.class);
- startActivity(loginIntent);
- }
- }
- #######################################
- Menu Acrivity
- #######################################
- package com.example.valii.restaurantapp;
- import android.content.Context;
- import android.content.Intent;
- import android.support.annotation.NonNull;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.support.v7.widget.LinearLayoutManager;
- import android.support.v7.widget.RecyclerView;
- import android.text.method.SingleLineTransformationMethod;
- import android.view.View;
- import android.widget.ImageView;
- import android.widget.TextView;
- import com.firebase.ui.database.FirebaseRecyclerAdapter;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.database.DatabaseReference;
- import com.google.firebase.database.FirebaseDatabase;
- import com.squareup.picasso.Picasso;
- import org.w3c.dom.Text;
- public class MenuActivity extends AppCompatActivity {
- private RecyclerView mFoodList;
- private DatabaseReference mDatabase;
- private FirebaseAuth mAuth;
- private FirebaseAuth.AuthStateListener mAuthListener;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_menu);
- mFoodList = (RecyclerView) findViewById(R.id.foodList);
- mFoodList.setHasFixedSize(true);
- mFoodList.setLayoutManager(new LinearLayoutManager(this));
- mDatabase = FirebaseDatabase.getInstance().getReference().child("Item");
- mAuth = FirebaseAuth.getInstance();
- mAuthListener = new FirebaseAuth.AuthStateListener() {
- @Override
- public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
- if(firebaseAuth.getCurrentUser() == null){
- Intent loginIntent = new Intent(MenuActivity.this,MainActivity.class);
- loginIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
- startActivity(loginIntent);
- }
- }
- };
- }
- @Override
- protected void onStart() {
- super.onStart();
- mAuth.addAuthStateListener(mAuthListener);
- FirebaseRecyclerAdapter <Meniu, FoodViewHolder> FBRA = new FirebaseRecyclerAdapter<Meniu, FoodViewHolder>(
- Meniu.class,
- R.layout.singlemenuitem,
- FoodViewHolder.class,
- mDatabase
- ) {
- @Override
- protected void populateViewHolder(FoodViewHolder viewHolder, Meniu model, int position) {
- viewHolder.setName(model.getName());
- viewHolder.setPrice(model.getPrice());
- viewHolder.setDesc(model.getDesc());
- viewHolder.setImage(getApplicationContext(),model.getImage());
- final String food_key = getRef(position).getKey().toString();
- viewHolder.mView.setOnClickListener(new View.OnClickListener(){
- @Override
- public void onClick(View v){
- Intent singleFoodActivity = new Intent(MenuActivity.this, SingleFoodActivity.class);
- singleFoodActivity.putExtra("FoodId",food_key);
- startActivity(singleFoodActivity);
- }
- });
- }
- };
- mFoodList.setAdapter(FBRA);
- }
- public static class FoodViewHolder extends RecyclerView.ViewHolder{
- View mView;
- public FoodViewHolder(View itemView){
- super(itemView);
- mView = itemView;
- }
- public void setName(String name){
- TextView food_name = (TextView) mView.findViewById(R.id.foodName);
- food_name.setText(name);
- }
- public void setDesc(String desc){
- TextView food_desc = (TextView) mView.findViewById(R.id.foodDesc);
- food_desc.setText(desc);
- }
- public void setPrice(String price){
- TextView food_price = (TextView) mView.findViewById(R.id.foodPrice);
- food_price.setText(price);
- }
- public void setImage(Context ctx, String image){
- ImageView food_image = (ImageView) mView.findViewById(R.id.foodImage);
- Picasso.with(ctx).load(image).into(food_image);
- }
- }
- }
- ###################################
- Open Orders
- ###################################
- package com.example.valii.restaurantapp;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.support.v7.widget.LinearLayoutManager;
- import android.support.v7.widget.RecyclerView;
- import android.view.View;
- import android.widget.TextView;
- import com.firebase.ui.database.FirebaseRecyclerAdapter;
- import com.google.firebase.database.DatabaseReference;
- import com.google.firebase.database.FirebaseDatabase;
- public class OpenOrders extends AppCompatActivity {
- private RecyclerView mFoodList;
- private DatabaseReference mDatabase;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_open_orders);
- mFoodList = (RecyclerView) findViewById(R.id.orderLayout);
- mFoodList.setHasFixedSize(true);
- mFoodList.setLayoutManager(new LinearLayoutManager(this));
- mDatabase = FirebaseDatabase.getInstance().getReference().child("Orders");
- }
- @Override
- protected void onStart() {
- super.onStart();
- FirebaseRecyclerAdapter <Order,OrderViewHolder> FRBA = new FirebaseRecyclerAdapter<Order, OrderViewHolder>(
- Order.class,
- R.layout.singleorderlayout,
- OrderViewHolder.class,
- mDatabase
- ) {
- @Override
- protected void populateViewHolder(OrderViewHolder viewHolder, Order model, int position) {
- viewHolder.setUserName(model.getUsername());
- viewHolder.setItemName(model.getItemname());
- }
- };
- mFoodList.setAdapter(FRBA);
- }
- public static class OrderViewHolder extends RecyclerView.ViewHolder{
- View orderView;
- public OrderViewHolder(View itemView) {
- super(itemView);
- orderView = itemView;
- }
- public void setUserName(String username){
- TextView username_content = (TextView) orderView.findViewById(R.id.orderUserName);
- username_content.setText(username);
- }
- public void setItemName(String itemname){
- TextView itemname_content = (TextView) orderView.findViewById(R.id.orderItemName);
- itemname_content.setText(itemname);
- }
- }
- }
- ###################################
- Single Food Activity
- ###################################
- package com.example.valii.restaurantapp;
- import android.content.Intent;
- import android.support.annotation.NonNull;
- 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.android.gms.tasks.OnCompleteListener;
- import com.google.android.gms.tasks.Task;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.auth.FirebaseUser;
- 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 SingleFoodActivity extends AppCompatActivity {
- private String food_key = null;
- private DatabaseReference mDatabase, userData;
- private TextView singleFoodTitle,singleFoodDesc,singleFoodPrice;
- private ImageView singleFoodImage;
- private Button orderButton;
- private FirebaseAuth mAuth;
- private FirebaseUser current_user;
- private DatabaseReference mRef;
- private String food_name,food_price,food_desc,food_image;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_single_food);
- food_key = getIntent().getExtras().getString("FoodId");
- mDatabase = FirebaseDatabase.getInstance().getReference().child("Item");
- singleFoodDesc = (TextView) findViewById(R.id.singleDesc);
- singleFoodTitle = (TextView) findViewById(R.id.singleTitle);
- singleFoodPrice = (TextView) findViewById(R.id.singlePrice);
- singleFoodImage = (ImageView) findViewById(R.id.singleImageView);
- mAuth = FirebaseAuth.getInstance();
- current_user = mAuth.getCurrentUser();
- userData = FirebaseDatabase.getInstance().getReference().child("users").child(current_user.getUid());
- mRef = FirebaseDatabase.getInstance().getReference().child("Orders");
- mDatabase.child(food_key).addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- food_name = (String) dataSnapshot.child("name").getValue();
- food_price = (String) dataSnapshot.child("price").getValue();
- food_desc = (String) dataSnapshot.child("desc").getValue();
- food_image = (String) dataSnapshot.child("image").getValue();
- singleFoodTitle.setText(food_name);
- singleFoodDesc.setText(food_desc);
- singleFoodPrice.setText(food_price);
- Picasso.with(SingleFoodActivity.this).load(food_image).into(singleFoodImage);
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- }
- });
- }
- public void orderItemClicked(View view){
- final DatabaseReference newOrder = mRef.push();
- userData.addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- newOrder.child("itemname").setValue(food_name);
- newOrder.child("username").setValue(dataSnapshot.child("Name").getValue()).addOnCompleteListener(new OnCompleteListener<Void>() {
- @Override
- public void onComplete(@NonNull Task<Void> task) {
- Toast.makeText(SingleFoodActivity.this,"Order placed!",Toast.LENGTH_LONG).show();
- startActivity(new Intent(SingleFoodActivity.this,MenuActivity.class));
- }
- });
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- }
- });
- }
- }
- ###################################################
- XML - MainActivity
- ###################################################
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout 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:orientation="vertical"
- android:background="@drawable/background"
- android:paddingBottom="16dp"
- android:paddingLeft="16dp"
- android:paddingRight="16dp"
- android:paddingTop="16dp"
- tools:context="com.example.valii.restaurantapp.MainActivity">
- <TextView
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:textAlignment="center"
- android:textColor="#ffffff"
- android:textSize="20dp"
- android:text="Sign Up"
- />
- <EditText
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="Enter email"
- android:textColor="#ffffff"
- android:id="@+id/editEmail"
- android:textColorHint="#ffffff"
- />
- <EditText
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="Enter password"
- android:inputType="textPassword"
- android:textColor="#ffffff"
- android:id="@+id/editPass"
- android:textColorHint="#ffffff"
- />
- <EditText
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="Repeat password"
- android:inputType="textPassword"
- android:textColor="#ffffff"
- android:id="@+id/editPass2"
- android:textColorHint="#ffffff"
- />
- <EditText
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="Enter phone number"
- android:textColor="#ffffff"
- android:id="@+id/editPhone"
- android:textColorHint="#ffffff"
- />
- <Button
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="Sign Up"
- android:onClick="signupButtonClicked"
- />
- <TextView
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="Already have an account?"
- android:textColor="#ffffff"
- android:layout_marginTop="150dp"
- />
- <Button
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="Sign In"
- android:onClick="signinButtonClicked"
- />
- </LinearLayout>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement