Code
Code
package com.example.project2;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
tvTc=findViewById(R.id.textViewTandC);
tvTc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,t_and_c.class));
}
});
b1=findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(),sellerLogin.class));
}
});
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId())
{
case R.id.adminActionBar:
startActivity(new Intent(MainActivity.this,AdminLogin.class));
break;
case R.id.vendorDt:
startActivity(new Intent(MainActivity.this,sellerLogin.class));
break;
}
return super.onOptionsItemSelected(item);
}
}
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="59dp"
android:background="@drawable/button_style"
android:text="Are you a Vendor ?"
android:textColor="#fff"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.833" />
<TextView
android:id="@+id/textViewTandC"
android:layout_width="290dp"
android:layout_height="58dp"
android:gravity="center"
android:text="By Proceeding you agree with the Terms and conditions"
android:textColor="#4703C6"
android:textSize="15dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.937"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.976" />
<TextView
android:id="@+id/textView14"
android:layout_width="301dp"
android:layout_height="104dp"
android:gravity="center"
android:text="BookWorm"
android:textColor="#fff"
android:textSize="40dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.67" />
</androidx.constraintlayout.widget.ConstraintLayout>
SELLER LOGIN
package com.example.project2;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.net.wifi.hotspot2.pps.Credential;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
//import com.example.project2.ui.login.LoginActivity;
//import com.example.project2.ui.home.HomeFragment;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.android.material.textfield.TextInputEditText;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
EditText edmail;
ProgressDialog pdg;
TextInputEditText edpass;
TextView Forgot;
TextView textforgot;
Button loginVendor;
@Override
edmail=findViewById(R.id.editTextmail);
edpass=findViewById(R.id.editTextInputLayout);
textforgot=findViewById(R.id.textViewForgot);
Forgot=findViewById(R.id.forgotpassword);
loginVendor=findViewById(R.id.buttonlogin);
Forgot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(sellerLogin.this, "Sucess", Toast.LENGTH_LONG).show();
startActivity(new Intent(getApplicationContext(),sellerRegistration.class));
}
});
loginVendor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String mail=edmail.getText().toString();
String pass=edpass.getText().toString();
startActivity(it);
edmail.setText("");
edpass.setText("");
}
else{
Toast.makeText(sellerLogin.this, "No user found ", Toast.LENGTH_SHORT).show();
}
}
}).addOnSuccessListener(new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult authResult) {
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(sellerLogin.this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}
});
textforgot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(sellerLogin.this,forgotpassword.class));
}
});
}
}
<androidx.cardview.widget.CardView
android:layout_width="396dp"
android:layout_height="232dp"
app:cardBackgroundColor="#F8F5F5"
app:cardCornerRadius="20dp"
app:cardElevation="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<EditText
android:id="@+id/editTextmail"
android:layout_width="match_parent"
android:layout_height="78dp"
android:layout_marginTop="20dp"
android:layout_marginBottom="10dp"
android:drawableLeft="@drawable/ic_baseline_email_24"
android:ems="10"
android:hint=" Email"
android:inputType="textPersonName"
android:maxLength="20"
android:minHeight="48dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.223" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout"
android:layout_width="match_parent"
android:layout_height="122dp"
android:layout_marginTop="100dp"
app:boxBackgroundColor="@color/purple_500"
app:boxBackgroundMode="outline"
app:counterEnabled="true"
app:counterMaxLength="8"
app:endIconMode="password_toggle"
app:helperText="Required"
app:helperTextEnabled="true"
app:helperTextTextColor="#E10909"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.392"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.374">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/editTextInputLayout"
android:layout_width="match_parent"
android:layout_height="70dp"
android:drawableLeft="@drawable/ic_baseline_lock_24"
android:hint="Enter a password"
android:inputType="textPassword" />
</com.google.android.material.textfield.TextInputLayout>
</androidx.cardview.widget.CardView>
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<Button
android:id="@+id/buttonlogin"
android:layout_width="287dp"
android:layout_height="41dp"
android:background="@drawable/button_style"
android:text="Login"
android:textSize="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.863" />
<TextView
android:id="@+id/textView2"
android:layout_width="345dp"
android:layout_height="56dp"
android:gravity="center"
android:text="LOGIN"
android:textSize="30dp"
android:textColor="#fff"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.066" />
<TextView
android:id="@+id/forgotpassword"
android:layout_width="match_parent"
android:layout_height="42dp"
android:layout_marginBottom="4dp"
android:gravity="center"
android:textStyle="bold"
android:maxLength="10"
android:text="Sign Up"
android:textColor="#FFFFFF"
android:textSize="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.497"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/textViewForgot"
android:layout_width="171dp"
android:layout_height="31dp"
android:gravity="right"
android:text="Forgot Password ?"
android:textColor="#E4172FF6"
android:textSize="18dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.933"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.744" />
</androidx.constraintlayout.widget.ConstraintLayout>
Forgot Password
package com.example.project2;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
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;
EditText mailf;
EditText num_fetch;
Button fetchPassword;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_forgotpassword);
mailf=findViewById(R.id.EmailForgotPassword);
fetchPassword=findViewById(R.id.buttonVerifyEmail);
num_fetch=findViewById(R.id.NumberFetch);
fetchPassword.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Toast.makeText(forgotpassword.this, "success", Toast.LENGTH_SHORT).show();
DatabaseReference ref=FirebaseDatabase.getInstance().getReference("Vendor1");
ref.child(num_fetch.getText().toString()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
String mail=snapshot.child("email").getValue().toString();
if(mail.equals(mailf.getText().toString())) {
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
});
<EditText
android:id="@+id/editTextQuestion1Security"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:background="@drawable/edittextsyle"
android:inputType="textPersonName"
android:minHeight="48dp"
android:hint="Where did your parents meet ?"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.497"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.177" />
<EditText
android:id="@+id/editTextQuestion3Security"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/edittextsyle"
android:inputType="textPersonName"
android:minHeight="48dp"
android:hint="Which is your favorite form of exercise ?"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/buttonQuestionCheck"
android:layout_width="262dp"
android:layout_height="61dp"
android:background="@drawable/button_style"
android:text="Verify"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.436"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.786" />
<EditText
android:id="@+id/editTextQuestion2Security"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/edittextsyle"
android:ems="10"
android:hint="What was your secreet food ?"
android:inputType="textPersonName"
android:minHeight="48dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.388"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.313" />
<TextView
android:id="@+id/textViewDetails"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="Your Password will be visible here"
android:gravity="center"
android:textSize="20dp"
android:textColor="#fff"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.602" />
<Button
android:id="@+id/buttonChange"
android:layout_width="327dp"
android:layout_height="60dp"
android:background="@drawable/button_style"
android:text="Change password"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/buttonQuestionCheck" />
</androidx.constraintlayout.widget.ConstraintLayout>
Change Password / Verify
package com.example.project2;
import androidx.activity.result.ActivityResultLauncher;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
//import com.example.project2.ui.login.LoginActivity;
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.google.firebase.database.core.view.Change;
import java.util.Iterator;
import java.util.Locale;
ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_password_question);
Intent it=getIntent();
String number=it.getStringExtra("phno");
// Toast.makeText(this, "login sucessfull", Toast.LENGTH_SHORT).show();
DatabaseReference dbr=FirebaseDatabase.getInstance().getReference();
verify=findViewById(R.id.buttonQuestionCheck);
edques1=findViewById(R.id.editTextQuestion1Security);
edques2=findViewById(R.id.editTextQuestion2Security);
edques3=findViewById(R.id.editTextQuestion3Security);
Detail=findViewById(R.id.textViewDetails);
ChangePassword=(Button) findViewById(R.id.buttonChange);
verify.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
progressDialog=new ProgressDialog(v.getContext());
progressDialog.setTitle("Fetching password");
progressDialog.setMessage("Fetching password please wait");
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.show();
String ques1F=edques1.getText().toString().trim();
String ques2F=edques2.getText().toString();
String ques3F=edques3.getText().toString();
Toast.makeText(PasswordQuestion.this, number, Toast.LENGTH_SHORT).show();
DatabaseReference
reference=FirebaseDatabase.getInstance().getReference("Vendor1").child(number);
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if(snapshot.exists()) {
String ques1V = snapshot.child("ques1").getValue(String.class).trim();
String ques2V=snapshot.child("ques2").getValue(String.class).trim();
String ques3V=snapshot.child("ques3").getValue(String.class).trim();
if(ques1F.equals(ques1V) && ques2F.equals(ques2V) &&ques3F.equals(ques3V))
{
// Toast.makeText(PasswordQuestion.this, "success",
Toast.LENGTH_SHORT).show();
progressDialog.dismiss();
String pwd=snapshot.child("password").getValue(String.class);
Detail.setText(pwd);
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
});
ChangePassword.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(PasswordQuestion.this, ChangePassword.class));
}
});
Change Password
package com.example.project2;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
EditText password1,password2;
EditText phoneNumber;
Button change;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_change_password);
password1=findViewById(R.id.editTextChangePassword1);
password2=findViewById(R.id.editTextChangePassword2);
change=findViewById(R.id.buttonChangePass);
phoneNumber=findViewById(R.id.editTextChangePassword3);
change.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String pass1=password1.getText().toString();
String pass2=password2.getText().toString();
String phone=phoneNumber.getText().toString();
}
}
<EditText
android:id="@+id/editTextChangePassword1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:background="@drawable/edittextsyle"
android:hint="Enter password"
android:inputType="textPersonName"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.282" />
<EditText
android:id="@+id/editTextChangePassword2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:background="@drawable/edittextsyle"
android:hint="Enter Confirm password"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/buttonChangePass"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/button_style"
android:text="Change password"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.852" />
<EditText
android:id="@+id/editTextChangePassword3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:background="@drawable/edittextsyle"
android:inputType="textPersonName"
android:hint="Enter your phoneNumber"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.422"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.677" />
</androidx.constraintlayout.widget.ConstraintLayout>
Package com.example.project2;
import android.os.Bundle;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
import com.example.project2.databinding.ActivityHomePageVendorBinding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityHomePageVendorBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
Fragment Home
package com.example.project2.ui.home;
import android.app.SearchManager;
import android.content.ClipData;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.SearchView;
import androidx.core.view.MenuItemCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.project2.R;
import com.example.project2.VendorAdapter;
import com.example.project2.VendorModal;
import com.example.project2.contact_support;
import com.example.project2.databinding.FragmentHomeBinding;
import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import java.util.ArrayList;
import java.util.List;
fb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getContext(), contact_support.class));
}
});
rcv=binding.RecyclerView1;
rcv.setLayoutManager(new LinearLayoutManager(getContext()));
rcv.setAdapter(adapter);
// Toast.makeText(getContext(), "Hello Recycler Toast", Toast.LENGTH_SHORT).show();
setHasOptionsMenu(true);
adapter.startListening();
// adapter.stopListening();
return root;
}
@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
inflater.inflate(R.menu.searchmenu,menu);
MenuItem item=menu.findItem(R.id.search_menu);
SearchView searchView=(SearchView)item.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
processSearch(query);
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
processSearch(newText);
return false;
}
});
super.onCreateOptionsMenu(menu, inflater);
}
DatabaseReference vendorRef =
FirebaseDatabase.getInstance().getReference().child("Products");
FirebaseRecyclerOptions<VendorModal> options = new
FirebaseRecyclerOptions.Builder<VendorModal>()
.setQuery(vendorRef.orderByChild("BookName").startAt(msg).endAt(msg+"\uf8ff"),
VendorModal.class)
.build();
adapter=new VendorAdapter(options,getContext());
adapter.startListening();
rcv.setAdapter(adapter);
}
}
<TextView
android:id="@+id/text_home"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:textAlignment="center"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/floatingActionButton"
android:layout_width="58dp"
android:layout_height="63dp"
android:clickable="true"
android:elevation="34dp"
android:gravity="center"
android:src="@drawable/ic_baseline_contact_support_24"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.954"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.854" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/RecyclerView1"
android:layout_width="match_parent"
android:layout_height="740dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.928"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/nav_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="0dp"
android:layout_marginEnd="0dp"
android:background="#74FAFAFA"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/bottom_nav_menu" />
<fragment
android:id="@+id/nav_host_fragment_activity_home_page_vendor"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:layout_constraintBottom_toTopOf="@id/nav_view"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0"
app:navGraph="@navigation/mobile_navigation">
</fragment>
</androidx.constraintlayout.widget.ConstraintLayout>
*BOOKS WILL APPEAR IN THE RECYCLER VIEW THEN ON CLICK ON THE OF THE ITEM BELOW
IS THE XML CODE
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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="@drawable/book_detail"
tools:context=".PageDetailsVendor">
<TextView
android:id="@+id/TextBookTitleDetails"
android:layout_width="match_parent"
android:layout_height="68dp"
android:gravity="center"
android:text="BooK Title"
android:textColor="#FFFFFF"
android:textSize="33dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.351" />
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/ShapeAbleImageView"
android:layout_width="253dp"
android:layout_height="157dp"
android:layout_marginTop="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:strokeWidth="2dp" />
<TextView
android:id="@+id/BookAuthorDetails"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="128dp"
android:gravity="center"
android:text="Book Author"
android:textColor="#fff"
android:textSize="17dp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ShapeAbleImageView" />
<TextView
android:id="@+id/VendorPhNumberDetails"
android:layout_width="223dp"
android:layout_height="57dp"
android:layout_marginBottom="16dp"
android:drawableLeft="@drawable/ic_baseline_local_phone_24"
android:gravity="left"
android:text="Seller Number"
android:textColor="#fff"
android:textSize="25dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.867"
app:layout_constraintStart_toStartOf="parent" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
app:layout_constraintBottom_toTopOf="@+id/VendorPhNumberDetails"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:orientation="vertical">
<TextView
android:id="@+id/textViewDescDetail"
android:layout_width="match_parent"
android:layout_height="294dp"
android:text="Content"
android:textColor="#fff"
android:textSize="20dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.804" />
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
THE JAVA CODE OF THE ABOVE
package com.example.project2;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.material.imageview.ShapeableImageView;
import com.squareup.picasso.Picasso;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_page_details_vendor);
Intent FetchIntent=getIntent();
String desc=FetchIntent.getStringExtra("Desc").toString();
String imgpath=FetchIntent.getStringExtra("imgPath");
String auth=FetchIntent.getStringExtra("auth");
String B_name=FetchIntent.getStringExtra("Title");
String contact=FetchIntent.getStringExtra("phone");
TextView descView=findViewById(R.id.textViewDescDetail);
TextView bookName=findViewById(R.id.TextBookTitleDetails);
TextView bookAuth=findViewById(R.id.BookAuthorDetails);
TextView SellerNum=findViewById(R.id.VendorPhNumberDetails);
ShapeableImageView img=findViewById(R.id.ShapeAbleImageView);
bookName.setText(B_name);
bookAuth.setText(auth);
SellerNum.setText(contact);
descView.setText(desc);
SellerNum.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent dial=new Intent(Intent.ACTION_DIAL);
dial.setData(Uri.parse("tel: +91"+contact));
startActivity(dial);
}
});
Toast.makeText(this, "success", Toast.LENGTH_SHORT).show();
Picasso.get().load(imgpath).into(img);
}
}
import android.app.ProgressDialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import com.example.project2.AdminAddNewProduct;
import com.example.project2.R;
import com.example.project2.databinding.FragmentDashboardBinding;
import com.example.project2.inventory;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.storage.StorageReference;
import es.dmoral.toasty.Toasty;
inventory=binding.buttonInventory;
inventory.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Toast.makeText(getContext(), "Inventory", Toast.LENGTH_SHORT).show();
Toasty.success(getContext(),"Sucess!",Toasty.LENGTH_SHORT,true).show();
startActivity(new Intent(getContext(), inventory.class));
}
});
@Override
public void onDestroyView() {
super.onDestroyView();
binding = null;
}
}
XML ADD PRODUCT
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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=".ui.dashboard.DashboardFragment">
<ImageButton
android:id="@+id/buttonInventory"
android:layout_width="415dp"
android:layout_height="374dp"
android:layout_marginBottom="364dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@drawable/add_product_trolly" />
<ImageView
android:id="@+id/buttonAddproduct"
android:layout_width="417dp"
android:layout_height="353dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/buttonInventory"
app:layout_constraintVertical_bias="0.6"
app:srcCompat="@drawable/trolly_invetory" />
<TextView
android:id="@+id/textView4"
android:layout_width="233dp"
android:layout_height="129dp"
android:layout_marginTop="56dp"
android:text="Inventory"
android:textColor="#fff"
android:textSize="45dp"
android:gravity="center"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.161"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView13"
android:layout_width="176dp"
android:layout_height="98dp"
android:gravity="center"
android:text="ADD New Product"
android:textColor="#fff"
android:textSize="23dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.497"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.974" />
</androidx.constraintlayout.widget.ConstraintLayout>
INVENTORY(JAVA CODE)
package com.example.project2;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
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 es.dmoral.toasty.Toasty;
public class inventory extends AppCompatActivity {
Button inventorySeller;
EditText phno;
EditText password;
ProgressDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inventory);
inventorySeller=findViewById(R.id.buttonInventoryDetails);
phno=findViewById(R.id.editTextPhoneNumberInventory);
password=findViewById(R.id.inventoryPasswrd);
inventorySeller.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (inventorySeller.getText().toString().isEmpty() ||
password.getText().toString().isEmpty()) {
Toast.makeText(inventory.this, "Enter all details", Toast.LENGTH_SHORT).show();
} else {
dialog = new ProgressDialog(inventory.this);
dialog.setTitle("Logging In");
dialog.setMessage("Logging you in");
dialog.setCanceledOnTouchOutside(false);
dialog.show();
if (phno.getText().toString().length() == 10) {
DatabaseReference reference =
FirebaseDatabase.getInstance().getReference("Vendor1").child(phno.getText().toString());
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()) {
String pwd = password.getText().toString();
String phoneNumber = snapshot.getKey();
String pwdV = snapshot.child("password").getValue().toString();
if (phoneNumber.equals(phno.getText().toString()) &&
pwd.equals(pwdV)) {
Toasty.success(inventory.this, "Success", Toast.LENGTH_SHORT,
true).show();
Intent it = new Intent(inventory.this, inventoryDetails.class);
it.putExtra("phone_number", phoneNumber);
dialog.dismiss();
startActivity(it);
} else {
dialog.dismiss();
Toasty.error(inventory.this, "Password is incorrect",
Toast.LENGTH_SHORT, true).show();
}
} else {
dialog.dismiss();
Toast.makeText(inventory.this, "Number Not found ",
Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
// Toast.makeText(inventory.this, "Failure", Toast.LENGTH_SHORT).show();
}
});
} else {
Toast.makeText(inventory.this, "The number is incorrect",
Toast.LENGTH_SHORT).show();
}
}
}
});
}
}
XML (CODE)
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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:background="@drawable/details_class"
android:layout_height="match_parent"
tools:context=".inventory">
<androidx.cardview.widget.CardView
android:layout_width="376dp"
android:layout_height="378dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:cardElevation="20dp"
app:cardCornerRadius="27dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="376dp"
android:layout_height="378dp"
android:background="#157FEF"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.542"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.459">
<Button
android:id="@+id/buttonInventoryDetails"
android:layout_width="266dp"
android:layout_height="58dp"
android:background="@drawable/button_style"
android:text="Fetch inventory"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.409"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.909" />
<EditText
android:id="@+id/editTextPhoneNumberInventory"
android:layout_width="365dp"
android:layout_height="50dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:ems="10"
android:textColor="#fff"
android:hint="Please Enter your Phone Number (Seller)"
android:inputType="phone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.2" />
<com.google.android.material.textfield.TextInputLayout
android:layout_width="374dp"
android:layout_height="wrap_content"
app:helperText="Enter your password"
app:endIconMode="password_toggle"
app:counterEnabled="true"
app:counterMaxLength="9"
app:passwordToggleEnabled="true"
android:elevation="20dp"
app:boxBackgroundMode="outline"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/inventoryPasswrd"
android:layout_width="match_parent"
android:textColor="#fff"
android:layout_height="wrap_content"
android:hint="Enter your password"
/>
</com.google.android.material.textfield.TextInputLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>