Thursday, June 10, 2021

Published June 10, 2021 by Anonymous with 0 comment

How to Build a Cryptocurrency Tracker Android App?

package com.gtappdevelopers.cryptotracker;

  

import android.os.Bundle;

import android.text.Editable;

import android.text.TextWatcher;

import android.view.View;

import android.widget.EditText;

import android.widget.ProgressBar;

import android.widget.Toast;

  

import androidx.appcompat.app.AppCompatActivity;

import androidx.recyclerview.widget.LinearLayoutManager;

import androidx.recyclerview.widget.RecyclerView;

  

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.JsonObjectRequest;

import com.android.volley.toolbox.Volley;

  

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

  

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Map;

  

public class MainActivity extends AppCompatActivity {

  

    

      

    private RecyclerView currencyRV;

    private EditText searchEdt;

    private ArrayList<CurrencyModal> currencyModalArrayList;

    private CurrencyRVAdapter currencyRVAdapter;

    private ProgressBar loadingPB;

  

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        searchEdt = findViewById(R.id.idEdtCurrency);

          

          

        loadingPB = findViewById(R.id.idPBLoading);

        currencyRV = findViewById(R.id.idRVcurrency);

        currencyModalArrayList = new ArrayList<>();

          

          

        currencyRVAdapter = new CurrencyRVAdapter(currencyModalArrayList, this);

          

          

        currencyRV.setLayoutManager(new LinearLayoutManager(this));

          

          

        currencyRV.setAdapter(currencyRVAdapter);

          

        

        getData();

        

        

          

        searchEdt.addTextChangedListener(new TextWatcher() {

            @Override

            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

  

            }

  

            @Override

            public void onTextChanged(CharSequence s, int start, int before, int count) {

  

            }

  

            @Override

            public void afterTextChanged(Editable s) {

                

                  

                filter(s.toString());

            }

        });

    }

  

    private void filter(String filter) {

        

          

        ArrayList<CurrencyModal> filteredlist = new ArrayList<>();

        

        for (CurrencyModal item : currencyModalArrayList) {

            

              

            if (item.getName().toLowerCase().contains(filter.toLowerCase())) {

                filteredlist.add(item);

            }

        }

        

          

        if (filteredlist.isEmpty()) {

            

            Toast.makeText(this, "No currency found..", Toast.LENGTH_SHORT).show();

        } else {

            

              

            currencyRVAdapter.filterList(filteredlist);

        }

    }

  

    private void getData() {

        

        

        RequestQueue queue = Volley.newRequestQueue(this);

        

        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {

            @Override

            public void onResponse(JSONObject response) {

                

                  

                

                  

                loadingPB.setVisibility(View.GONE);

                try {

                    

                    JSONArray dataArray = response.getJSONArray("data");

                    for (int i = 0; i < dataArray.length(); i++) {

                        JSONObject dataObj = dataArray.getJSONObject(i);

                        String symbol = dataObj.getString("symbol");

                        String name = dataObj.getString("name");

                        JSONObject quote = dataObj.getJSONObject("quote");

                        JSONObject USD = quote.getJSONObject("USD");

                        double price = USD.getDouble("price");

                        

                        currencyModalArrayList.add(new CurrencyModal(name, symbol, price));

                    }

                    

                    currencyRVAdapter.notifyDataSetChanged();

                } catch (JSONException e) {

                    

                    e.printStackTrace();

                    Toast.makeText(MainActivity.this, "Something went amiss. Please try again later", Toast.LENGTH_SHORT).show();

                }

            }

        }, new Response.ErrorListener() {

            @Override

            public void onErrorResponse(VolleyError error) {

                

                Toast.makeText(MainActivity.this, "Something went amiss. Please try again later", Toast.LENGTH_SHORT).show();

            }

        }) {

            @Override

            public Map<String, String> getHeaders() {

                

                  

                HashMap<String, String> headers = new HashMap<>();

                headers.put("X-CMC_PRO_API_KEY", "Enter your API key");

                

                return headers;

            }

        };

        

          

        queue.add(jsonObjectRequest);

    }

}

Adblock test (Why?)


Original page link

Best Cool Tech Gadgets

Top favorite technology gadgets
      edit

0 comments:

Post a Comment