Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.bertho.gmyl.fragments;
- import android.os.Bundle;
- import android.support.design.widget.Snackbar;
- import android.support.v4.app.Fragment;
- import android.support.v7.app.AppCompatActivity;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.RelativeLayout;
- import android.widget.TextView;
- import com.bertho.gmyl.R;
- import com.bertho.gmyl.model.Engaged;
- import com.bertho.gmyl.realm.RealmHelper;
- 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;
- public class EngagedFragment extends Fragment implements View.OnClickListener {
- private static final String TAG = EngagedFragment.class.getSimpleName();
- private EditText nama, email, nohp;
- private Button btnSaveConnection;
- private DatabaseReference mFirebaseDatabase;
- private FirebaseDatabase mFirebaseInstance;
- private RelativeLayout mRoot;
- private View rootView;
- private String userId;
- private TextView lblNama, lblEmail, lblNohp;
- private RelativeLayout relativeLayout;
- private RealmHelper realmHelper;
- public EngagedFragment() {
- // Required empty public constructor
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- rootView = inflater.inflate(R.layout.fragment_engaged, container, false);
- realmHelper = new RealmHelper(getActivity());
- String appName = getResources().getString(R.string.app_name);
- loadLocalDB();
- nama = (EditText) rootView.findViewById(R.id.txtName);
- email = (EditText) rootView.findViewById(R.id.txtEmail);
- nohp = (EditText) rootView.findViewById(R.id.txtNoHp);
- lblNama = (TextView) rootView.findViewById(R.id.lblNameval);
- lblEmail = (TextView) rootView.findViewById(R.id.lblEmailval);
- lblNohp = (TextView) rootView.findViewById(R.id.lblNohpval);
- relativeLayout = (RelativeLayout) rootView.findViewById(R.id.panelLabelDetail);
- btnSaveConnection = (Button) rootView.findViewById(R.id.btnEngaged);
- mFirebaseInstance = FirebaseDatabase.getInstance();
- mFirebaseDatabase = mFirebaseInstance.getReference("tbl_engaged");
- mFirebaseInstance.getReference("titleapp").setValue(appName);
- mFirebaseInstance.getReference("titleapp").addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- Log.e(TAG, "TITLE UPDATED FROM FIREBASE");
- String appTitle = dataSnapshot.getValue(String.class);
- ((AppCompatActivity)getActivity()).getSupportActionBar().setTitle(appTitle);
- }
- @Override
- public void onCancelled(DatabaseError error) {
- Log.e(TAG, "FAILED TO READ TITLE FROM FIREBASE.", error.toException());
- }
- });
- btnSaveConnection.setOnClickListener(this);
- return rootView;
- }
- private void showSnack(String notify) {
- mRoot = (RelativeLayout) rootView.findViewById(R.id.frag_engaged);
- Snackbar snackbar = Snackbar.make(mRoot, notify, Snackbar.LENGTH_LONG);
- snackbar.show();
- }
- public interface SubmitListener {
- void onSubmit();
- }
- private SubmitListener onSubmitListener;
- public void setSubmitListener(SubmitListener onSubmitListener){
- this.onSubmitListener = onSubmitListener;
- }
- public SubmitListener getOnSubmitListener(){
- return onSubmitListener;
- }
- public void onClick(View v) {
- if(v.getId() == R.id.btnEngaged) {
- String txtName = nama.getText().toString();
- String txtEmail = email.getText().toString();
- String txtNo = nohp.getText().toString();
- if(txtName.equals("") || txtName.isEmpty()) {
- showSnack("Name must filled");
- nama.requestFocus();
- } else if (txtEmail.equals("") || txtEmail.isEmpty()) {
- showSnack("Email must filled");
- email.requestFocus();
- } else if (txtNo.equals("") || txtNo.isEmpty()) {
- showSnack("No.HP must filled");
- nohp.requestFocus();
- } else {
- createUser(txtName, txtEmail, txtNo);
- saveToLocalDB(txtName, txtEmail, txtNo);
- }
- }
- }
- private void saveToLocalDB(String txtName, String txtEmail, String txtNo) {
- realmHelper.addEngaged(txtName, txtEmail, txtNo);
- onSubmitListener.onSubmit();
- }
- private void loadLocalDB() {
- realmHelper.getAllData();
- }
- private void createUser(String name, String email, String nohp) {
- userId = mFirebaseDatabase.push().getKey();
- Engaged user = new Engaged(name, email, nohp);
- mFirebaseDatabase.child(userId).setValue(user);
- addUserChangeListener();
- }
- private void addUserChangeListener() {
- mFirebaseDatabase.child(userId).addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- Engaged user = dataSnapshot.getValue(Engaged.class);
- if (user == null) {
- Log.e(TAG, "ENGAGED DATA IS NULL");
- return;
- }
- Log.e(TAG, "ENGAGED DATA IS CHANGED!" + user.name + ", " + user.email);
- lblNama.setText(user.name);
- lblEmail.setText(user.email);
- lblNohp.setText(user.nohp);
- //relativeLayout.setVisibility(View.VISIBLE);
- nama.setText("");
- email.setText("");
- nohp.setText("");
- }
- @Override
- public void onCancelled(DatabaseError error) {
- // Failed to read value
- Log.e(TAG, "FAILED TO READ USER", error.toException());
- }
- });
- }
- }
Add Comment
Please, Sign In to add comment