joris

EngagedFragment

Nov 10th, 2016
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.45 KB | None | 0 0
  1. package com.bertho.gmyl.fragments;
  2.  
  3.  
  4. import android.os.Bundle;
  5. import android.support.design.widget.Snackbar;
  6. import android.support.v4.app.Fragment;
  7. import android.support.v7.app.AppCompatActivity;
  8. import android.util.Log;
  9. import android.view.LayoutInflater;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.widget.Button;
  13. import android.widget.EditText;
  14. import android.widget.RelativeLayout;
  15. import android.widget.TextView;
  16.  
  17. import com.bertho.gmyl.R;
  18. import com.bertho.gmyl.model.Engaged;
  19. import com.bertho.gmyl.realm.RealmHelper;
  20. import com.google.firebase.database.DataSnapshot;
  21. import com.google.firebase.database.DatabaseError;
  22. import com.google.firebase.database.DatabaseReference;
  23. import com.google.firebase.database.FirebaseDatabase;
  24. import com.google.firebase.database.ValueEventListener;
  25.  
  26. public class EngagedFragment extends Fragment implements View.OnClickListener {
  27.  
  28.     private static final String TAG = EngagedFragment.class.getSimpleName();
  29.  
  30.     private EditText nama, email, nohp;
  31.     private Button btnSaveConnection;
  32.     private DatabaseReference mFirebaseDatabase;
  33.     private FirebaseDatabase mFirebaseInstance;
  34.     private RelativeLayout mRoot;
  35.     private View rootView;
  36.     private String userId;
  37.     private TextView lblNama, lblEmail, lblNohp;
  38.     private RelativeLayout relativeLayout;
  39.  
  40.     private RealmHelper realmHelper;
  41.  
  42.  
  43.     public EngagedFragment() {
  44.         // Required empty public constructor
  45.     }
  46.  
  47.     @Override
  48.     public void onCreate(Bundle savedInstanceState) {
  49.         super.onCreate(savedInstanceState);
  50.     }
  51.  
  52.     @Override
  53.     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  54.  
  55.         rootView = inflater.inflate(R.layout.fragment_engaged, container, false);
  56.  
  57.         realmHelper = new RealmHelper(getActivity());
  58.  
  59.         String appName = getResources().getString(R.string.app_name);
  60.  
  61.         loadLocalDB();
  62.  
  63.         nama = (EditText) rootView.findViewById(R.id.txtName);
  64.         email = (EditText) rootView.findViewById(R.id.txtEmail);
  65.         nohp = (EditText) rootView.findViewById(R.id.txtNoHp);
  66.  
  67.         lblNama = (TextView) rootView.findViewById(R.id.lblNameval);
  68.         lblEmail = (TextView) rootView.findViewById(R.id.lblEmailval);
  69.         lblNohp = (TextView) rootView.findViewById(R.id.lblNohpval);
  70.         relativeLayout = (RelativeLayout) rootView.findViewById(R.id.panelLabelDetail);
  71.         btnSaveConnection = (Button) rootView.findViewById(R.id.btnEngaged);
  72.  
  73.  
  74.         mFirebaseInstance = FirebaseDatabase.getInstance();
  75.  
  76.         mFirebaseDatabase = mFirebaseInstance.getReference("tbl_engaged");
  77.  
  78.         mFirebaseInstance.getReference("titleapp").setValue(appName);
  79.  
  80.         mFirebaseInstance.getReference("titleapp").addValueEventListener(new ValueEventListener() {
  81.             @Override
  82.             public void onDataChange(DataSnapshot dataSnapshot) {
  83.                 Log.e(TAG, "TITLE UPDATED FROM FIREBASE");
  84.                 String appTitle = dataSnapshot.getValue(String.class);
  85.                 ((AppCompatActivity)getActivity()).getSupportActionBar().setTitle(appTitle);
  86.             }
  87.  
  88.             @Override
  89.             public void onCancelled(DatabaseError error) {
  90.                 Log.e(TAG, "FAILED TO READ TITLE FROM FIREBASE.", error.toException());
  91.             }
  92.         });
  93.  
  94.         btnSaveConnection.setOnClickListener(this);
  95.  
  96.         return rootView;
  97.     }
  98.  
  99.     private void showSnack(String notify) {
  100.         mRoot = (RelativeLayout) rootView.findViewById(R.id.frag_engaged);
  101.         Snackbar snackbar = Snackbar.make(mRoot, notify, Snackbar.LENGTH_LONG);
  102.         snackbar.show();
  103.     }
  104.  
  105.     public interface SubmitListener {
  106.         void onSubmit();
  107.     }
  108.  
  109.     private SubmitListener onSubmitListener;
  110.  
  111.     public void setSubmitListener(SubmitListener onSubmitListener){
  112.         this.onSubmitListener = onSubmitListener;
  113.     }
  114.  
  115.     public SubmitListener getOnSubmitListener(){
  116.         return onSubmitListener;
  117.     }
  118.  
  119.     public void onClick(View v) {
  120.  
  121.         if(v.getId() == R.id.btnEngaged) {
  122.  
  123.             String txtName = nama.getText().toString();
  124.             String txtEmail = email.getText().toString();
  125.             String txtNo = nohp.getText().toString();
  126.  
  127.             if(txtName.equals("") || txtName.isEmpty()) {
  128.                 showSnack("Name must filled");
  129.                 nama.requestFocus();
  130.             } else if (txtEmail.equals("") || txtEmail.isEmpty()) {
  131.                 showSnack("Email must filled");
  132.                 email.requestFocus();
  133.             } else if (txtNo.equals("") || txtNo.isEmpty()) {
  134.                 showSnack("No.HP must filled");
  135.                 nohp.requestFocus();
  136.             } else {
  137.                 createUser(txtName, txtEmail, txtNo);
  138.                 saveToLocalDB(txtName, txtEmail, txtNo);
  139.             }
  140.         }
  141.     }
  142.  
  143.     private void saveToLocalDB(String txtName, String txtEmail, String txtNo) {
  144.         realmHelper.addEngaged(txtName, txtEmail, txtNo);
  145.         onSubmitListener.onSubmit();
  146.     }
  147.  
  148.     private void loadLocalDB() {
  149.         realmHelper.getAllData();
  150.     }
  151.  
  152.     private void createUser(String name, String email, String nohp) {
  153.         userId = mFirebaseDatabase.push().getKey();
  154.         Engaged user = new Engaged(name, email, nohp);
  155.         mFirebaseDatabase.child(userId).setValue(user);
  156.         addUserChangeListener();
  157.     }
  158.  
  159.     private void addUserChangeListener() {
  160.  
  161.         mFirebaseDatabase.child(userId).addValueEventListener(new ValueEventListener() {
  162.             @Override
  163.             public void onDataChange(DataSnapshot dataSnapshot) {
  164.                 Engaged user = dataSnapshot.getValue(Engaged.class);
  165.  
  166.                 if (user == null) {
  167.                     Log.e(TAG, "ENGAGED DATA IS NULL");
  168.                     return;
  169.                 }
  170.  
  171.                 Log.e(TAG, "ENGAGED DATA IS CHANGED!" + user.name + ", " + user.email);
  172.  
  173.                 lblNama.setText(user.name);
  174.                 lblEmail.setText(user.email);
  175.                 lblNohp.setText(user.nohp);
  176.  
  177.                 //relativeLayout.setVisibility(View.VISIBLE);
  178.  
  179.                 nama.setText("");
  180.                 email.setText("");
  181.                 nohp.setText("");
  182.             }
  183.  
  184.             @Override
  185.             public void onCancelled(DatabaseError error) {
  186.                 // Failed to read value
  187.                 Log.e(TAG, "FAILED TO READ USER", error.toException());
  188.             }
  189.         });
  190.     }
  191. }
Add Comment
Please, Sign In to add comment