Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.newsdroid1;
- import android.content.Intent;
- import android.os.Bundle;
- import androidx.annotation.NonNull;
- import androidx.core.view.MenuItemCompat;
- import androidx.fragment.app.Fragment;
- import androidx.recyclerview.widget.LinearLayoutManager;
- import androidx.recyclerview.widget.RecyclerView;
- import android.text.TextUtils;
- import android.util.Log;
- 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.SearchView;
- import com.example.newsdroid1.Adapters.AdapterPosts;
- 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 java.util.ArrayList;
- import java.util.List;
- import static androidx.constraintlayout.widget.Constraints.TAG;
- /**
- * A simple {@link Fragment} subclass.
- */
- public class HomeFragment extends Fragment {
- FirebaseAuth firebaseAuth;
- RecyclerView recyclerView;
- List<ModelPost> postList;
- AdapterPosts adapterPosts;
- public HomeFragment() {
- // Required empty public constructor
- }
- @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);
- firebaseAuth = FirebaseAuth.getInstance();
- recyclerView = view.findViewById(R.id.postsRecyclerView);
- LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
- layoutManager.setStackFromEnd(true);
- layoutManager.setReverseLayout(true);
- recyclerView.setLayoutManager(layoutManager);
- postList = new ArrayList<>();
- loadPosts();
- return view;
- }
- private void loadPosts() {
- DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Posts");
- ref.addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
- postList.clear();
- for(DataSnapshot ds: dataSnapshot.getChildren()){
- ModelPost model = ds.getValue(ModelPost.class);
- postList.add(model);
- adapterPosts = new AdapterPosts(getActivity(), postList);
- recyclerView.setAdapter(adapterPosts);
- }
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- }
- });
- }
- private void searchPosts(final String searchQuery){
- DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Posts");
- ref.addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
- postList.clear();
- for(DataSnapshot ds: dataSnapshot.getChildren()){
- ModelPost model = ds.getValue(ModelPost.class);
- if(model.getpTitle().toLowerCase().contains(searchQuery.toLowerCase())){
- postList.add(model);
- }
- adapterPosts = new AdapterPosts(getActivity(), postList);
- recyclerView.setAdapter(adapterPosts);
- }
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- }
- });
- }
- private void checkUserStatus(){
- FirebaseUser user = firebaseAuth.getCurrentUser();
- if(user != null){
- }
- else{
- startActivity(new Intent(getActivity(), MainActivity.class));
- getActivity().finish();
- }
- }
- public void onCreate( Bundle savedInstanceState){
- setHasOptionsMenu(true);
- super.onCreate(savedInstanceState);
- }
- public void onCreateOptionsMenu (Menu menu, MenuInflater inflater){
- inflater.inflate(R.menu.menu_main, menu);
- menu.findItem(R.id.action_add_post).setVisible(false);
- menu.findItem(R.id.action_add_search).setVisible(false);
- menu.findItem(R.id.action_logout).setVisible(false);
- MenuItem item = menu.findItem(R.id.action_add_search);
- final SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);
- searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
- @Override
- public boolean onQueryTextSubmit(String s) {
- if(!TextUtils.isEmpty(s)){
- searchPosts(s);
- }
- else{
- loadPosts();
- }
- return false;
- }
- @Override
- public boolean onQueryTextChange(String s) {
- if(!TextUtils.isEmpty(s)){
- searchPosts(s);
- }
- else{
- loadPosts();
- }
- return false;
- }
- });
- super.onCreateOptionsMenu(menu, inflater);
- }
- public boolean onOptionsItemSelected(MenuItem item){
- int id = item.getItemId();
- if( id == R.id.action_logout){
- firebaseAuth.signOut();
- checkUserStatus();
- }
- if( id == R.id.action_add_post){
- startActivity(new Intent(getActivity(),AddPostActivity.class));
- }
- return super.onOptionsItemSelected(item);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement