ItemSelection.java 12.1 KB
package etelligens.com.foodsafety.activities;

import static etelligens.com.foodsafety.utils.EndPoint.ETE_BASE_URL;
import static etelligens.com.foodsafety.utils.EndPoint.ETE_GET_ALL_CHOOSE_OUTLETS;
import static etelligens.com.foodsafety.utils.EndPoint.ETE_GET_ALL_PARTNER;
import static etelligens.com.foodsafety.utils.Keyword.DB_LOGIN_USER_DATA;
import static etelligens.com.foodsafety.utils.Keyword.ETE_DATA;
import static etelligens.com.foodsafety.utils.Keyword.ETE_MSG;
import static etelligens.com.foodsafety.utils.Keyword.ETE_STATUS;
import static etelligens.com.foodsafety.utils.Keyword.MY_SOCKET_TIMEOUT;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.android.volley.AuthFailureError;
import com.android.volley.DefaultRetryPolicy;
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.google.gson.Gson;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

import etelligens.com.foodsafety.R;
import etelligens.com.foodsafety.activities.dashboard.SharedHelper;
import etelligens.com.foodsafety.adapter.ItemSelectionAdapter;
import etelligens.com.foodsafety.adapter.ItemSelectionAdapter2;
import etelligens.com.foodsafety.model.ItemSelectionM;
import etelligens.com.foodsafety.utils.BaseActivity;
import etelligens.com.foodsafety.utils.Tools;

public class ItemSelection extends BaseActivity implements View.OnClickListener {

    RecyclerView rvItemSelecction;
    ImageView imgBack;
    ArrayList<ItemSelectionM> itemSelectionMS = new ArrayList<>();
    ItemSelectionAdapter itemSelectionAdapter;
    ItemSelectionAdapter2 itemSelectionAdapter2;
    String selectionType = "", idValue = "0";
    SharedPreferences.Editor spEdit;
    SharedPreferences userData;
    String newPartID = "";
    String parent_id = "";
    String pId = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_item_selection);
        getSavedData();
        getselectedLanguage();
        userData = Objects.requireNonNull(getApplicationContext()).getSharedPreferences(DB_LOGIN_USER_DATA, Context.MODE_PRIVATE);
        spEdit = userData.edit();

        newPartID = SharedHelper.getKey(this, "newPartID");

        Intent extras = getIntent();
        if (extras != null) {
            if (extras.getStringExtra("selection_type") != null) {
                selectionType = extras.getStringExtra("selection_type");
            }
        }
        if (extras != null) {
            idValue = extras.getStringExtra("idValue");
            pId=extras.getStringExtra("id");
        }

        rvItemSelecction = findViewById(R.id.rv_item_selection);
        imgBack = findViewById(R.id.img_back);
        imgBack.setOnClickListener(this);

        rvItemSelecction.setHasFixedSize(true);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.VERTICAL, true);
        rvItemSelecction.setLayoutManager(linearLayoutManager);

        if (selectionType != null) {
            if (selectionType.equalsIgnoreCase(getString(R.string.tv_patner))) {
                partnerListMethod();
            }
            if (selectionType.equalsIgnoreCase(getString(R.string.tv_outlet))) {
                outletListMethod();
            }
        }
    }

    private void partnerListMethod() {
        loadershow();
        String pUrl = null;

        if (currentLang != null) {
            pUrl = ETE_GET_ALL_PARTNER + "?" + "language=" + currentLang + "&is_navigate=1";
        } else {
            pUrl = ETE_GET_ALL_PARTNER + "?is_navigate=1";
        }
        Log.e("ekfqkljgl: ", pUrl);
        System.out.println(pUrl);

        StringRequest stringRequest = new StringRequest(Request.Method.GET, pUrl,
                response -> {
                    try {
                        JSONObject jsonResponse = new JSONObject(response);
                        int status = jsonResponse.getInt(ETE_STATUS);
                        String msg = jsonResponse.getString(ETE_MSG);

                        if (status == 1) {
                            Gson gson = new Gson();
                            JSONArray jsonArray = jsonResponse.getJSONArray(ETE_DATA);

                            for (int i = 0; i < jsonArray.length(); i++) {
                                JSONObject jsonData = jsonArray.getJSONObject(i);
                                ItemSelectionM itemSelectionM = gson.fromJson(String.valueOf(jsonData), ItemSelectionM.class);
                                itemSelectionMS.add(itemSelectionM);
                            }
                            itemSelectionAdapter = new ItemSelectionAdapter(getApplicationContext(), itemSelectionMS, ItemSelection.this,
                                    new ItemSelectionAdapter.PassData() {
                                        @Override
                                        public void descriptionData(ItemSelectionM itemSelectionM) {

                                        }

                                        @Override
                                        public void catgorydata(ItemSelectionM itemSelectionM) {

                                        }

                                        @Override
                                        public void getSelectedPartnerID(String id) {

                                            SharedHelper.putKey(getApplicationContext(), "parent_id", id);

                                        }
                                    });
                            rvItemSelecction.setAdapter(itemSelectionAdapter);

                        } else {
                            if (msg.equals(R.string.token_expired)) {
                                Tools.clearData(ItemSelection.this);
                            }
                            Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
                        }
                        loaderHide();
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                },
                error -> loaderHide()) {
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {

                HashMap<String, String> headers = new HashMap<String, String>();
                headers.put("Authorization", "Bearer " + loginToken);

                return headers;
            }
        };
        stringRequest.setRetryPolicy(new DefaultRetryPolicy(MY_SOCKET_TIMEOUT,
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

        final RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
        requestQueue.add(stringRequest);

        requestQueue.addRequestFinishedListener(request -> requestQueue.getCache().clear());
    }

    private void outletListMethod() {

        loadershow();
        String pUrl = null;

        if (currentLang != null) {
            if (idValue == null || idValue.equals("") || idValue.equals("0") || idValue.equals("null")) {
                pUrl = ETE_GET_ALL_CHOOSE_OUTLETS + pId + "?" + "language=" + currentLang;
            } else
                pUrl =  ETE_GET_ALL_CHOOSE_OUTLETS + idValue + "?" + "language=" + currentLang;
        } else {
            if (newPartID.equals("") || newPartID.equals("0") || newPartID.equals("null") || newPartID.equals(null)) {
                if (parent_id.equals("")) {
                    pUrl =  ETE_GET_ALL_CHOOSE_OUTLETS + pId + "?" + "language=" + "en";
                } else {
                    pUrl =  ETE_GET_ALL_CHOOSE_OUTLETS + SharedHelper.getKey(getApplicationContext(), "parent_ids") + "?" + "language=" + "en";
                }
            } else {
                pUrl =  ETE_GET_ALL_CHOOSE_OUTLETS + SharedHelper.getKey(getApplicationContext(), "newPartID") + "?" + "language=" + "en";

            }

        }

        System.out.println(pUrl);
        Log.e("ekfqkljgl: ", "outlet: " + pUrl);
        Log.e("ekfqkljgl: ", ": " + SharedHelper.getKey(getApplicationContext(), "ids"));
        StringRequest stringRequest = new StringRequest(Request.Method.GET, pUrl,
                response -> {
                    try {
                        JSONObject jsonResponse = new JSONObject(response);
                        int status = jsonResponse.getInt(ETE_STATUS);
                        String msg = jsonResponse.getString(ETE_MSG);

                        if (status == 1) {
                            Gson gson = new Gson();
                            JSONArray jsonArray = jsonResponse.getJSONArray(ETE_DATA);

                            for (int i = 0; i < jsonArray.length(); i++) {
                                JSONObject jsonData = jsonArray.getJSONObject(i);
                                parent_id = jsonData.getString("parent_id");
                                SharedHelper.putKey(getApplicationContext(), "parent_ids", parent_id);
                                ItemSelectionM itemSelectionM = gson.fromJson(String.valueOf(jsonData), ItemSelectionM.class);
                                itemSelectionMS.add(itemSelectionM);
                            }

                            itemSelectionAdapter2 = new ItemSelectionAdapter2(getApplicationContext(), itemSelectionMS, ItemSelection.this,
                                    new ItemSelectionAdapter2.PassData2() {
                                        @Override
                                        public void descriptionData(ItemSelectionM itemSelectionM) {

                                        }

                                        @Override
                                        public void catgorydata(ItemSelectionM itemSelectionM) {

                                        }

                                        @Override
                                        public void getSelectedPartnerID(String id) {

                                            SharedHelper.putKey(getApplicationContext(), "parent_id", id);

                                        }
                                    });
                            rvItemSelecction.setAdapter(itemSelectionAdapter2);


                        } else {
                            if (msg.equals(R.string.token_expired)) {
                                Tools.clearData(ItemSelection.this);
                            }
                            Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
                        }

                        loaderHide();
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                },
                error -> loaderHide()) {
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {

                HashMap<String, String> headers = new HashMap<String, String>();
                headers.put("Authorization", "Bearer " + loginToken);

                return headers;
            }
        };
        stringRequest.setRetryPolicy(new DefaultRetryPolicy(MY_SOCKET_TIMEOUT,
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

        final RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
        requestQueue.add(stringRequest);

        requestQueue.addRequestFinishedListener(request -> requestQueue.getCache().clear());
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.img_back: {
                finish();
            }
            break;
        }
    }
}