package com.amsavarthan.social.hify.ui.fragment; import android.app.Fragment; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.cardview.widget.CardView; import com.amsavarthan.social.hify.R; import com.google.android.material.bottomnavigation.BottomNavigationView; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.firestore.FirebaseFirestore; import com.marcoscg.dialogsheet.DialogSheet; import es.dmoral.toasty.Toasty; import static android.content.Context.MODE_PRIVATE; import static com.amsavarthan.social.hify.ui.activities.MainActivity.add_post; import static com.amsavarthan.social.hify.ui.activities.MainActivity.showFragment; import static com.amsavarthan.social.hify.ui.activities.MainActivity.toolbar; /** * Created by amsavarthan on 29/3/18. */ public class Dashboard extends Fragment implements BottomNavigationView.OnNavigationItemSelectedListener, BottomNavigationView.OnNavigationItemReselectedListener{ @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.frag_dashboard, container, false); } @Override public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); BottomNavigationView bottomNavigationView=view.findViewById(R.id.bottom_nav); bottomNavigationView.setOnNavigationItemSelectedListener(this); bottomNavigationView.setOnNavigationItemReselectedListener(this); loadfragment(new Home()); checkforNotifications(); checkFriendRequest(); } public void loadfragment(androidx.fragment.app.Fragment fragment) { ((AppCompatActivity)getActivity()).getSupportFragmentManager() .beginTransaction() .replace(R.id.frame_container, fragment) .commit(); } @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()){ case R.id.action_home: add_post.setVisible(true); loadfragment(new Home()); break; case R.id.action_discover: add_post.setVisible(false); loadfragment(new Discover()); break; } return true; } @Override public void onNavigationItemReselected(@NonNull MenuItem item) { switch (item.getItemId()){ case R.id.action_home: break; case R.id.action_discover: break; } } private CardView request_alert; private TextView request_alert_text; private void checkforNotifications(){ } private void checkFriendRequest(){ request_alert=getView().findViewById(R.id.friend_req_alert); request_alert_text=getView().findViewById(R.id.friend_req_alert_text); FirebaseFirestore.getInstance().collection("Users") .document(FirebaseAuth.getInstance().getCurrentUser().getUid()) .collection("Friend_Requests") .addSnapshotListener(getActivity(), (queryDocumentSnapshots, e) -> { if(e!=null){ e.printStackTrace(); return; } if(!queryDocumentSnapshots.isEmpty()){ try { request_alert_text.setText(String.format(getString(R.string.you_have_d_new_friend_request_s), queryDocumentSnapshots.size())); request_alert.setVisibility(View.VISIBLE); request_alert.setAlpha(0.0f); request_alert.animate() .setDuration(300) .scaleX(1.0f) .scaleY(1.0f) .alpha(1.0f) .start(); request_alert.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (FirebaseAuth.getInstance().getCurrentUser().isEmailVerified()) { toolbar.setTitle("Manage Friends"); try { ((AppCompatActivity) getActivity()).getSupportActionBar().setTitle("Manage Friends"); } catch (Exception e) { Log.e("Error", e.getMessage()); } showFragment(FriendsFragment.newInstance("request")); } else { showDialog(); } } }); }catch (Exception e1){ e1.printStackTrace(); } } }); } public void showDialog(){ new DialogSheet(getView().getContext()) .setTitle("Information") .setMessage("Email has not been verified, please verify and continue. If you have verified we recommend you to logout and login again") .setPositiveButton("Send again", v -> FirebaseAuth.getInstance().getCurrentUser().sendEmailVerification() .addOnSuccessListener(aVoid -> Toasty.success(getView().getContext(), "Verification email sent", Toasty.LENGTH_SHORT,true).show()) .addOnFailureListener(e -> Log.e("Error", e.getMessage()))) .setNegativeButton("Ok", v -> { }) .setCancelable(true) .setRoundedCorners(true) .setColoredNavigationBar(true) .show(); } }