package com.tiktakindia.tiktak.Profile;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.tiktakindia.tiktak.R;
import com.tiktakindia.tiktak.SimpleClasses.Variables;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

public class Bank_Details extends AppCompatActivity {

    LinearLayout linearLayoutEdit, linearLayoutVisible;
    EditText e1, e2, e3, e4, tvAccNumber, tvIFSC, tvUserName;
    ImageView imageViewBack;
    private SharedPreferences sharedPreferences;

    @Override
    public void onBackPressed() {
        super.onBackPressed();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bank__details);

        linearLayoutEdit = findViewById(R.id.llEdit);
        linearLayoutVisible = findViewById(R.id.llVisible);
        imageViewBack = findViewById(R.id.ivBack);

        sharedPreferences = getSharedPreferences(Variables.pref_name, MODE_PRIVATE);

        imageViewBack.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
                //startActivity(new Intent(Bank_Details.this,Pro));

            }
        });

        tvAccNumber = findViewById(R.id.tvAccNumber);
        tvIFSC = findViewById(R.id.tvIFSC);
        tvUserName = findViewById(R.id.tvUserName);

        e1 = findViewById(R.id.etAccNumber);
        e2 = findViewById(R.id.etReAcc_Number);
        e3 = findViewById(R.id.etIFSC);
        e4 = findViewById(R.id.etName);

        tvAccNumber.setText(Variables.sharedPreferences.getString(Variables.bank_number, ""));
        tvIFSC.setText(Variables.sharedPreferences.getString(Variables.ifsc_code, ""));
        tvUserName.setText(Variables.sharedPreferences.getString(Variables.ac_holder_name, ""));

        e1.setText(Variables.sharedPreferences.getString(Variables.bank_number, ""));
        e2.setText(Variables.sharedPreferences.getString(Variables.bank_number, ""));
        e3.setText(Variables.sharedPreferences.getString(Variables.ifsc_code, ""));
        e4.setText(Variables.sharedPreferences.getString(Variables.ac_holder_name, ""));
    }

    public void ivEdit(View view) {

        linearLayoutEdit.setVisibility(View.VISIBLE);
        linearLayoutVisible.setVisibility(View.GONE);
    }

    public void btnSave(View view) {


        if (e1.getText().toString().equals("")) {

            Toast.makeText(this, "Please enter account number", Toast.LENGTH_SHORT).show();
        } else if (e2.getText().toString().equals("")) {

            Toast.makeText(this, "Please Re enter account number", Toast.LENGTH_SHORT).show();
        } else if (!e1.getText().toString().equals(e2.getText().toString())) {

            Toast.makeText(this, "Account number not matched", Toast.LENGTH_SHORT).show();

        } else if (e3.getText().toString().equals("")) {

            Toast.makeText(this, "Please enter IFSC code", Toast.LENGTH_SHORT).show();
        } else if (e4.getText().toString().equals("")) {

            Toast.makeText(this, "Please enter account holder name", Toast.LENGTH_SHORT).show();

        } else {

            Variables.sharedPreferences = getSharedPreferences(Variables.pref_name, MODE_PRIVATE);
            Variables.user_id = Variables.sharedPreferences.getString(Variables.u_id, "");

            Log.d("resp", e1.getText().toString());
            Log.d("resp", e3.getText().toString());
            Log.d("resp", e4.getText().toString());
            Log.d("resp", Variables.sharedPreferences.getString(Variables.u_id, ""));

            Call_Api_For_Signup(e1.getText().toString(), e3.getText().toString(), e4.getText().toString(), Variables.sharedPreferences.getString(Variables.u_id, ""));
        }
    }

    private void Call_Api_For_Signup(String acc_num, String ifscc, String name, String id) {

        StringRequest stringRequest = new StringRequest(Request.Method.POST, Variables.addBankDetails,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        Log.i("onResponse: ", response);
                        /*{"code":"200","msg":[{"response":"Bank Details Updated"}]}*/

                        try {
                            JSONObject jsonObject = new JSONObject(response);
                            JSONArray jsonArray = jsonObject.getJSONArray("msg");
                            JSONObject userdata = jsonArray.getJSONObject(0);
                            Toast.makeText(getApplicationContext(), userdata.optString("response"), Toast.LENGTH_SHORT).show();

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

                        SharedPreferences.Editor editor = sharedPreferences.edit();

                        editor.putString(Variables.bank_number, acc_num);
                        editor.putString(Variables.ac_holder_name, name);
                        editor.putString(Variables.ifsc_code, ifscc);
                        editor.apply();

                        tvAccNumber.setText(acc_num);
                        tvIFSC.setText(ifscc);
                        tvUserName.setText(name);

                        e1.setText("");
                        e2.setText("");
                        e3.setText("");
                        e4.setText("");

                        linearLayoutEdit.setVisibility(View.GONE);
                        linearLayoutVisible.setVisibility(View.VISIBLE);

                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                        Log.e("onErrorResponse: ", error.toString());

                        Toast.makeText(getApplicationContext(), " error" + error.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                }) {

            @Override
            public Map<String, String> getParams() throws AuthFailureError {

                Map<String, String> map = new HashMap<>();
                map.put("bank_number", acc_num);
                map.put("ifsc_code", ifscc);
                map.put("name", name);
                map.put("user_id", id);
                Log.i("map", map.toString());
                return map;
            }
        };

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }

}