package monnethic.mobile.wallet;

import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import com.example.monnthic.monnethicmobile.R;
import java.util.ArrayList;
import monnethic.mobile.restApi.WalletApiHandler;

public class SelectWalletActivity extends AppCompatActivity {
    private ArrayList<Wallet> userWallets;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_select_wallet);

        ListView listView = (ListView) findViewById(R.id.listViewWallet);
        Intent intent = getIntent();
        String user_hash = intent.getStringExtra("USER_HASH");
        String[] params = {user_hash};

        Log.i("SelectWalletActivity", "user_hash : "+user_hash);
        try {
            userWallets = new getUserWalletTask().execute(params).get();
        } catch (Exception e){
            e.printStackTrace();
        }

        Log.i("SelectWalletActivity", "userWallets : "+userWallets);
        WalletAdapter adapter = new WalletAdapter(this,userWallets);
        //ArrayAdapter<Wallet> adapter = new ArrayAdapter<Wallet>(this, R.layout.activity_select_wallet, userWallets);
        listView.setAdapter(adapter);

        //TODO
        //ON CLICK ITEM
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Wallet w = (Wallet) listView.getItemAtPosition(i);
                Toast.makeText(getBaseContext(),w.getType(),Toast.LENGTH_SHORT).show();
            }
        });
    }

    //AsyncTask for login
    static private class getUserWalletTask extends AsyncTask<String,String,ArrayList<Wallet>> {
        @Override
        protected ArrayList<Wallet> doInBackground(String... params) {
            ArrayList<Wallet> walletsList = new ArrayList<>();
            try{
                WalletApiHandler walletApiHandler = new WalletApiHandler();
                walletsList = walletApiHandler.getUserWallets(params);
                Log.i("SelectWalletActivity", "walletsList : "+walletsList);
            }catch (Exception e){
                e.printStackTrace();
            }
            Log.i("SelectWalletActivity", "BEFORE RETURN : walletsList : "+walletsList);
            return walletsList;
        }
    }
}