Skip to content
Permalink
cd491a4515
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
263 lines (190 sloc) 7.42 KB
package com.example.booksharing21;
import android.app.FragmentManager;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.nfc.Tag;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager2.adapter.FragmentViewHolder;
import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.model.Model;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.ChildEventListener;
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.Query;
import com.google.firebase.database.ValueEventListener;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.ListenerRegistration;
import com.google.firebase.firestore.QueryDocumentSnapshot;
import com.google.firebase.firestore.QuerySnapshot;
import com.google.firebase.storage.StorageReference;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
import java.util.EventListener;
import java.util.List;
import static android.content.ContentValues.TAG;
import static com.example.booksharing21.R.id.homeFragment;
import static com.example.booksharing21.R.id.stop;
/**
* A simple {@link Fragment} subclass.
* Use the {@link HomeFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class HomeFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
private Object Tag;
public HomeFragment() {
// Required empty public constructor
}
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment HomeFragment.
*/
// TODO: Rename and change types and number of parameters
public static HomeFragment fragment;
public static HomeFragment newInstance(String param1, String param2) {
if(fragment == null)
{
fragment = new HomeFragment();
}
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
public ArrayList<info> infoList ;
public HelperAdapter helperAdapter;
public RecyclerView inforec;
public FirebaseFirestore db;
public DatabaseReference mDatabase;
public String userid = FirebaseAuth.getInstance().getCurrentUser().getUid();
public Context mContext;
// https://www.youtube.com/watch?v=BrDX6VTgTkg&t=617s (Retrieve data to the recycler view)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_home, container, false);
// Database Reference
db = FirebaseFirestore.getInstance();
mDatabase = FirebaseDatabase.getInstance().getReference("posts");
// Layout
inforec = view.findViewById(R.id.re_view);
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
inforec.setLayoutManager(layoutManager);
inforec.setHasFixedSize(true);
layoutManager.setReverseLayout(true);
layoutManager.setStackFromEnd(true);
// Array list
infoList = new ArrayList<>();
// Clear infoList
ClearAll();
onStart();
onStop();
return view;
}
private void ClearAll() {
if (infoList!=null){
infoList.clear();
if (helperAdapter != null){
helperAdapter.notifyDataSetChanged();
}
}
infoList = new ArrayList<>();
}
ValueEventListener listener;
// getting book info from db
private void GetDataFromFirebase() {
listener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
ClearAll();
for (DataSnapshot dataSnapshot : snapshot.getChildren()) {
info info = new info();
info.setPostid(dataSnapshot.child("postid").getValue().toString());
info.setUrl(dataSnapshot.child("url").getValue().toString());
info.setBookname(dataSnapshot.child("book name").getValue().toString());
info.setAuthor(dataSnapshot.child("author").getValue().toString());
info.setIsbn(dataSnapshot.child("isbn").getValue().toString());
infoList.add(info);
}
helperAdapter = new HelperAdapter(getContext(), infoList);
inforec.setAdapter(helperAdapter);
helperAdapter.notifyDataSetChanged();
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
Toast.makeText(getActivity(), "No books published yet", Toast.LENGTH_LONG).show();
}
};
mDatabase.addListenerForSingleValueEvent(listener);
}
public void database(){
DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference(".info/connected");
connectedRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
boolean connected = snapshot.getValue(Boolean.class);
if (connected) {
System.out.println("connected");
} else {
System.out.println("not connected");
}
}
@Override
public void onCancelled(DatabaseError error) {
System.err.println("Listener was cancelled");
}
});
}
@Override
public void onStart()
{
super.onStart();
database();
GetDataFromFirebase(); //onStart Called
}
public void onStop() {
super.onStop();
mDatabase.removeEventListener(listener);
}
}