Fix & improvements
- Added coin list in navigation drawer - Rework the coin list interface to load dynamicly - Fix dust not being counted in balance
This commit is contained in:
parent
d0069f4ad5
commit
aeb9c9cd18
@ -10,7 +10,6 @@ import android.support.v4.app.FragmentManager;
|
|||||||
import android.support.v4.app.FragmentTransaction;
|
import android.support.v4.app.FragmentTransaction;
|
||||||
import android.support.v4.widget.DrawerLayout;
|
import android.support.v4.widget.DrawerLayout;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
@ -19,6 +18,7 @@ import android.widget.CompoundButton;
|
|||||||
import android.widget.Switch;
|
import android.widget.Switch;
|
||||||
|
|
||||||
import com.nauk.moodl.Activities.HomeActivityFragments.MarketCapitalization;
|
import com.nauk.moodl.Activities.HomeActivityFragments.MarketCapitalization;
|
||||||
|
import com.nauk.moodl.Activities.HomeActivityFragments.Overview;
|
||||||
import com.nauk.moodl.Activities.HomeActivityFragments.Summary;
|
import com.nauk.moodl.Activities.HomeActivityFragments.Summary;
|
||||||
import com.nauk.moodl.Activities.HomeActivityFragments.Watchlist;
|
import com.nauk.moodl.Activities.HomeActivityFragments.Watchlist;
|
||||||
import com.nauk.moodl.HideBalanceSwitch;
|
import com.nauk.moodl.HideBalanceSwitch;
|
||||||
@ -38,6 +38,7 @@ public class HomeActivity extends AppCompatActivity {
|
|||||||
private Fragment watchlistFragment;
|
private Fragment watchlistFragment;
|
||||||
private Fragment holdingsFragment;
|
private Fragment holdingsFragment;
|
||||||
private Fragment marketFragment;
|
private Fragment marketFragment;
|
||||||
|
private Fragment overviewFragment;
|
||||||
private Fragment currentFragment;
|
private Fragment currentFragment;
|
||||||
|
|
||||||
|
|
||||||
@ -57,6 +58,7 @@ public class HomeActivity extends AppCompatActivity {
|
|||||||
watchlistFragment = new Watchlist();
|
watchlistFragment = new Watchlist();
|
||||||
holdingsFragment = new Summary();
|
holdingsFragment = new Summary();
|
||||||
marketFragment = new MarketCapitalization();
|
marketFragment = new MarketCapitalization();
|
||||||
|
overviewFragment = new Overview();
|
||||||
|
|
||||||
drawerLayout = findViewById(R.id.drawer_layout);
|
drawerLayout = findViewById(R.id.drawer_layout);
|
||||||
NavigationView navigationView = findViewById(R.id.nav_view);
|
NavigationView navigationView = findViewById(R.id.nav_view);
|
||||||
@ -65,7 +67,7 @@ public class HomeActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
showFragment(holdingsFragment);
|
showFragment(holdingsFragment);
|
||||||
|
|
||||||
navigationView.setCheckedItem(R.id.navigation_currencies_list);
|
navigationView.setCheckedItem(R.id.navigation_holdings);
|
||||||
|
|
||||||
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
|
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
|
||||||
@Override
|
@Override
|
||||||
@ -78,12 +80,15 @@ public class HomeActivity extends AppCompatActivity {
|
|||||||
case R.id.navigation_watchlist:
|
case R.id.navigation_watchlist:
|
||||||
showFragment(watchlistFragment);
|
showFragment(watchlistFragment);
|
||||||
break;
|
break;
|
||||||
case R.id.navigation_currencies_list:
|
case R.id.navigation_holdings:
|
||||||
showFragment(holdingsFragment);
|
showFragment(holdingsFragment);
|
||||||
break;
|
break;
|
||||||
case R.id.navigation_market_cap:
|
case R.id.navigation_market_cap:
|
||||||
showFragment(marketFragment);
|
showFragment(marketFragment);
|
||||||
break;
|
break;
|
||||||
|
case R.id.navigation_overview:
|
||||||
|
showFragment(overviewFragment);
|
||||||
|
break;
|
||||||
case R.id.navigation_settings:
|
case R.id.navigation_settings:
|
||||||
Intent settingIntent = new Intent(getApplicationContext(), SettingsActivity.class);
|
Intent settingIntent = new Intent(getApplicationContext(), SettingsActivity.class);
|
||||||
startActivity(settingIntent);
|
startActivity(settingIntent);
|
||||||
@ -158,22 +163,6 @@ public class HomeActivity extends AppCompatActivity {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
|
||||||
// Handle action bar item clicks here. The action bar will
|
|
||||||
// automatically handle clicks on the Home/Up button, so long
|
|
||||||
// as you specify a parent activity in AndroidManifest.xml.
|
|
||||||
int id = item.getItemId();
|
|
||||||
|
|
||||||
switch (id)
|
|
||||||
{
|
|
||||||
case R.id.navigation_settings:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.onOptionsItemSelected(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface IconCallBack
|
public interface IconCallBack
|
||||||
{
|
{
|
||||||
void onSuccess(Bitmap bitmap);
|
void onSuccess(Bitmap bitmap);
|
||||||
|
@ -0,0 +1,158 @@
|
|||||||
|
package com.nauk.moodl.Activities.HomeActivityFragments;
|
||||||
|
|
||||||
|
import android.graphics.Bitmap;
|
||||||
|
import android.graphics.BitmapFactory;
|
||||||
|
import android.os.AsyncTask;
|
||||||
|
import android.support.v4.app.Fragment;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
|
import android.support.v7.graphics.Palette;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.AbsListView;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.ListView;
|
||||||
|
|
||||||
|
import com.nauk.moodl.Activities.HomeActivity;
|
||||||
|
import com.nauk.moodl.DataManagers.CurrencyData.Currency;
|
||||||
|
import com.nauk.moodl.DataManagers.CurrencyData.CurrencyCardview;
|
||||||
|
import com.nauk.moodl.DataManagers.CurrencyData.CurrencyDetailsList;
|
||||||
|
import com.nauk.moodl.DataManagers.CurrencyData.CurrencyTickerList;
|
||||||
|
import com.nauk.moodl.DataManagers.PreferencesManager;
|
||||||
|
import com.nauk.moodl.LayoutManagers.OverviewListAdapter;
|
||||||
|
import com.nauk.moodl.MoodlBox;
|
||||||
|
import com.nauk.moodl.R;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Administrator on 27/05/2018.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class Overview extends Fragment {
|
||||||
|
|
||||||
|
private CurrencyTickerList currencyTickerList;
|
||||||
|
private CurrencyDetailsList currencyDetailsList;
|
||||||
|
private PreferencesManager preferenceManager;
|
||||||
|
private OverviewListAdapter overviewListAdapter;
|
||||||
|
|
||||||
|
boolean flag_loading;
|
||||||
|
|
||||||
|
private ListView listLayout;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
|
||||||
|
{
|
||||||
|
View fragmentView = inflater.inflate(R.layout.fragment_overview_homeactivity, container, false);
|
||||||
|
|
||||||
|
currencyTickerList = CurrencyTickerList.getInstance(getContext());
|
||||||
|
currencyDetailsList = CurrencyDetailsList.getInstance(getContext());
|
||||||
|
|
||||||
|
preferenceManager = new PreferencesManager(getContext());
|
||||||
|
|
||||||
|
listLayout = fragmentView.findViewById(R.id.linearLayoutOverview);
|
||||||
|
|
||||||
|
listLayout.setOnScrollListener(new AbsListView.OnScrollListener() {
|
||||||
|
@Override
|
||||||
|
public void onScrollStateChanged(AbsListView view, int scrollState) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
|
||||||
|
if(firstVisibleItem + visibleItemCount == totalItemCount && totalItemCount != 0)
|
||||||
|
{
|
||||||
|
if(!flag_loading)
|
||||||
|
{
|
||||||
|
flag_loading = true;
|
||||||
|
|
||||||
|
updateList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
updateList();
|
||||||
|
|
||||||
|
return fragmentView;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateList()
|
||||||
|
{
|
||||||
|
new AsyncTask<Void, Void, Void>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Void doInBackground(Void... voids) {
|
||||||
|
|
||||||
|
currencyTickerList.getCurrenciesFrom(listLayout.getCount(), preferenceManager.getDefaultCurrency(), new UpdateCallBack() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<Currency> currencyList)
|
||||||
|
{
|
||||||
|
for(Currency currency : currencyList)
|
||||||
|
{
|
||||||
|
String iconUrl = MoodlBox.getIconUrl(currency.getSymbol(), currencyDetailsList);
|
||||||
|
|
||||||
|
if(iconUrl != null)
|
||||||
|
{
|
||||||
|
MoodlBox.getBitmapFromURL(iconUrl, currency.getSymbol(), getResources(), getContext(), new HomeActivity.IconCallBack() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(Bitmap bitmap) {
|
||||||
|
currency.setIcon(bitmap);
|
||||||
|
updateChartColor(currency);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Bitmap icon = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher_moodl);
|
||||||
|
icon = Bitmap.createScaledBitmap(icon, 50, 50, false);
|
||||||
|
|
||||||
|
currency.setIcon(icon);
|
||||||
|
updateChartColor(currency);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(overviewListAdapter == null)
|
||||||
|
{
|
||||||
|
overviewListAdapter = new OverviewListAdapter(getContext(), currencyList);
|
||||||
|
|
||||||
|
listLayout.setAdapter(overviewListAdapter);
|
||||||
|
listLayout.setTextFilterEnabled(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
overviewListAdapter.addAll(currencyList);
|
||||||
|
overviewListAdapter.notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
flag_loading = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}.execute();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateChartColor(Currency currency)
|
||||||
|
{
|
||||||
|
if(currency.getIcon() != null)
|
||||||
|
{
|
||||||
|
Palette.Builder builder = Palette.from(currency.getIcon());
|
||||||
|
|
||||||
|
currency.setChartColor(builder.generate().getDominantColor(0));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
currency.setChartColor(12369084);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface UpdateCallBack
|
||||||
|
{
|
||||||
|
void onSuccess(List<Currency> currencyList);
|
||||||
|
}
|
||||||
|
}
|
@ -16,7 +16,6 @@ import android.support.v4.view.GravityCompat;
|
|||||||
import android.support.v4.widget.DrawerLayout;
|
import android.support.v4.widget.DrawerLayout;
|
||||||
import android.support.v4.widget.SwipeRefreshLayout;
|
import android.support.v4.widget.SwipeRefreshLayout;
|
||||||
import android.support.v7.graphics.Palette;
|
import android.support.v7.graphics.Palette;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -39,11 +38,6 @@ import com.nauk.moodl.MoodlBox;
|
|||||||
import com.nauk.moodl.PlaceholderManager;
|
import com.nauk.moodl.PlaceholderManager;
|
||||||
import com.nauk.moodl.R;
|
import com.nauk.moodl.R;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.net.HttpURLConnection;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -514,7 +508,7 @@ public class Summary extends Fragment implements HideBalanceSwitch {
|
|||||||
|
|
||||||
private void loadCurrency(Currency currency)
|
private void loadCurrency(Currency currency)
|
||||||
{
|
{
|
||||||
if(!currency.getSymbol().equals("USD") && (currency.getBalance() * currency.getValue()) > preferencesManager.getMinimumAmount())
|
if(!currency.getSymbol().equals("USD"))
|
||||||
{
|
{
|
||||||
currency.setName(balanceManager.getCurrencyName(currency.getSymbol()));
|
currency.setName(balanceManager.getCurrencyName(currency.getSymbol()));
|
||||||
currency.setId(balanceManager.getCurrencyId(currency.getSymbol()));
|
currency.setId(balanceManager.getCurrencyId(currency.getSymbol()));
|
||||||
@ -693,7 +687,7 @@ public class Summary extends Fragment implements HideBalanceSwitch {
|
|||||||
{
|
{
|
||||||
if(!currencyTickerList.isUpToDate())
|
if(!currencyTickerList.isUpToDate())
|
||||||
{
|
{
|
||||||
currencyTickerList.update(new BalanceManager.IconCallBack() {
|
currencyTickerList.updateListing(new BalanceManager.IconCallBack() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess() {
|
public void onSuccess() {
|
||||||
countCoins(false, false, true);
|
countCoins(false, false, true);
|
||||||
|
@ -11,7 +11,6 @@ import android.support.v4.view.GravityCompat;
|
|||||||
import android.support.v4.widget.DrawerLayout;
|
import android.support.v4.widget.DrawerLayout;
|
||||||
import android.support.v4.widget.SwipeRefreshLayout;
|
import android.support.v4.widget.SwipeRefreshLayout;
|
||||||
import android.support.v7.graphics.Palette;
|
import android.support.v7.graphics.Palette;
|
||||||
import android.support.v7.widget.CardView;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -22,7 +21,6 @@ import android.widget.LinearLayout;
|
|||||||
|
|
||||||
import com.nauk.moodl.Activities.CurrencySelectionActivity;
|
import com.nauk.moodl.Activities.CurrencySelectionActivity;
|
||||||
import com.nauk.moodl.Activities.HomeActivity;
|
import com.nauk.moodl.Activities.HomeActivity;
|
||||||
import com.nauk.moodl.Activities.SettingsActivity;
|
|
||||||
import com.nauk.moodl.DataManagers.BalanceManager;
|
import com.nauk.moodl.DataManagers.BalanceManager;
|
||||||
import com.nauk.moodl.DataManagers.CurrencyData.Currency;
|
import com.nauk.moodl.DataManagers.CurrencyData.Currency;
|
||||||
import com.nauk.moodl.DataManagers.CurrencyData.CurrencyCardview;
|
import com.nauk.moodl.DataManagers.CurrencyData.CurrencyCardview;
|
||||||
@ -36,10 +34,6 @@ import com.nauk.moodl.R;
|
|||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.net.HttpURLConnection;
|
|
||||||
|
|
||||||
import static com.nauk.moodl.MoodlBox.collapseW;
|
import static com.nauk.moodl.MoodlBox.collapseW;
|
||||||
import static com.nauk.moodl.MoodlBox.expandW;
|
import static com.nauk.moodl.MoodlBox.expandW;
|
||||||
import static java.lang.Math.abs;
|
import static java.lang.Math.abs;
|
||||||
@ -107,7 +101,7 @@ public class Watchlist extends Fragment {
|
|||||||
protected Void doInBackground(Void... voids) {
|
protected Void doInBackground(Void... voids) {
|
||||||
if(!currencyTickerList.isUpToDate())
|
if(!currencyTickerList.isUpToDate())
|
||||||
{
|
{
|
||||||
currencyTickerList.update(new BalanceManager.IconCallBack() {
|
currencyTickerList.updateListing(new BalanceManager.IconCallBack() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess() {
|
public void onSuccess() {
|
||||||
tickerUpdated = true;
|
tickerUpdated = true;
|
||||||
|
@ -9,6 +9,7 @@ import com.android.volley.Response;
|
|||||||
import com.android.volley.VolleyError;
|
import com.android.volley.VolleyError;
|
||||||
import com.android.volley.toolbox.StringRequest;
|
import com.android.volley.toolbox.StringRequest;
|
||||||
import com.android.volley.toolbox.Volley;
|
import com.android.volley.toolbox.Volley;
|
||||||
|
import com.nauk.moodl.Activities.HomeActivityFragments.Overview;
|
||||||
import com.nauk.moodl.DataManagers.BalanceManager;
|
import com.nauk.moodl.DataManagers.BalanceManager;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
@ -16,9 +17,8 @@ import org.json.JSONException;
|
|||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Guitoune on 22/04/2018.
|
* Created by Guitoune on 22/04/2018.
|
||||||
@ -26,7 +26,8 @@ import java.util.regex.Pattern;
|
|||||||
|
|
||||||
public class CurrencyTickerList {
|
public class CurrencyTickerList {
|
||||||
|
|
||||||
final private static String TICKERLISTURL = "https://api.coinmarketcap.com/v2/listings/";
|
final private static String LISTINGURL = "https://api.coinmarketcap.com/v2/listings/";
|
||||||
|
final private static String TICKERLISTURL1 = "https://api.coinmarketcap.com/v2/ticker/?start=";
|
||||||
private RequestQueue requestQueue;
|
private RequestQueue requestQueue;
|
||||||
private List<Currency> currencyTickerList;
|
private List<Currency> currencyTickerList;
|
||||||
private static CurrencyTickerList INSTANCE;
|
private static CurrencyTickerList INSTANCE;
|
||||||
@ -52,10 +53,34 @@ public class CurrencyTickerList {
|
|||||||
return upToDate;
|
return upToDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void update(final BalanceManager.IconCallBack callBack)
|
public void getCurrenciesFrom(int indexFrom, final String toSymbol, Overview.UpdateCallBack callBack)
|
||||||
|
{
|
||||||
|
String requetsString = TICKERLISTURL1 + indexFrom + "&limit=50&convert=" + toSymbol;
|
||||||
|
|
||||||
|
StringRequest strRequest = new StringRequest(Request.Method.GET, requetsString,
|
||||||
|
new Response.Listener<String>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(String response) {
|
||||||
|
if (response.length() > 0)
|
||||||
|
{
|
||||||
|
processTickersResult(response, toSymbol, callBack);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Response.ErrorListener() {
|
||||||
|
@Override
|
||||||
|
public void onErrorResponse(VolleyError error) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
requestQueue.add(strRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateListing(final BalanceManager.IconCallBack callBack)
|
||||||
{
|
{
|
||||||
currencyTickerList = new ArrayList<>();
|
currencyTickerList = new ArrayList<>();
|
||||||
StringRequest strRequest = new StringRequest(Request.Method.GET, TICKERLISTURL,
|
StringRequest strRequest = new StringRequest(Request.Method.GET, LISTINGURL,
|
||||||
new Response.Listener<String>() {
|
new Response.Listener<String>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(String response) {
|
public void onResponse(String response) {
|
||||||
@ -93,6 +118,40 @@ public class CurrencyTickerList {
|
|||||||
return tickerId;
|
return tickerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void processTickersResult(String response, String toSymbol, Overview.UpdateCallBack callBack)
|
||||||
|
{
|
||||||
|
List<Currency> currencyList = new ArrayList<>();
|
||||||
|
|
||||||
|
try {
|
||||||
|
JSONObject masterJsonObject = new JSONObject(response);
|
||||||
|
|
||||||
|
if(masterJsonObject.keys().hasNext())
|
||||||
|
{
|
||||||
|
JSONObject currencyJsonObject = masterJsonObject.getJSONObject(masterJsonObject.keys().next());
|
||||||
|
Iterator<?> keys = currencyJsonObject.keys();
|
||||||
|
|
||||||
|
while(keys.hasNext())
|
||||||
|
{
|
||||||
|
String key = keys.next().toString();
|
||||||
|
JSONObject subCurrencyJsonObject = currencyJsonObject.getJSONObject(key);
|
||||||
|
Currency newCurrency = new Currency(subCurrencyJsonObject.getString("name"), subCurrencyJsonObject.getString("symbol"), subCurrencyJsonObject.getInt("id"));
|
||||||
|
newCurrency.setRank(subCurrencyJsonObject.getInt("rank"));
|
||||||
|
JSONObject quoteJsonObject = subCurrencyJsonObject.getJSONObject("quotes");
|
||||||
|
JSONObject symJsonObject = quoteJsonObject.getJSONObject(toSymbol);
|
||||||
|
newCurrency.setValue(symJsonObject.getDouble("price"));
|
||||||
|
newCurrency.setDayFluctuationPercentage((float) symJsonObject.getDouble("percent_change_24h"));
|
||||||
|
newCurrency.setDayFluctuation(newCurrency.getDayFluctuationPercentage() * newCurrency.getValue() / 100);
|
||||||
|
|
||||||
|
currencyList.add(newCurrency);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (JSONException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
callBack.onSuccess(currencyList);
|
||||||
|
}
|
||||||
|
|
||||||
public void processTickerListResult(String response, BalanceManager.IconCallBack callBack)
|
public void processTickerListResult(String response, BalanceManager.IconCallBack callBack)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
@ -0,0 +1,62 @@
|
|||||||
|
package com.nauk.moodl.LayoutManagers;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
|
import android.support.annotation.Nullable;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import com.nauk.moodl.DataManagers.CurrencyData.Currency;
|
||||||
|
import com.nauk.moodl.PlaceholderManager;
|
||||||
|
import com.nauk.moodl.R;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.nauk.moodl.MoodlBox.numberConformer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Administrator on 28/05/2018.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class OverviewListAdapter extends ArrayAdapter<Currency> {
|
||||||
|
|
||||||
|
private Context context;
|
||||||
|
|
||||||
|
public OverviewListAdapter(Context context, List<Currency> currencies)
|
||||||
|
{
|
||||||
|
super(context, android.R.layout.simple_list_item_1, currencies);
|
||||||
|
this.context = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent)
|
||||||
|
{
|
||||||
|
Currency currency = getItem(position);
|
||||||
|
|
||||||
|
if(convertView == null)
|
||||||
|
{
|
||||||
|
convertView = LayoutInflater.from(getContext()).inflate(R.layout.cardview_watchlist, parent, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
TextView symbolTxtView = convertView.findViewById(R.id.currencySymbolTextView);
|
||||||
|
TextView nameTxtView = convertView.findViewById(R.id.currencyNameTextView);
|
||||||
|
TextView valueTxtView = convertView.findViewById(R.id.currencyValueTextView);
|
||||||
|
TextView fluctuationTxtView = convertView.findViewById(R.id.currencyFluctuationTextView);
|
||||||
|
TextView percentageTxtView = convertView.findViewById(R.id.currencyFluctuationPercentageTextView);
|
||||||
|
ImageView iconImageView = convertView.findViewById(R.id.currencyIcon);
|
||||||
|
|
||||||
|
symbolTxtView.setText(currency.getSymbol());
|
||||||
|
nameTxtView.setText(currency.getName());
|
||||||
|
valueTxtView.setText(PlaceholderManager.getValueString(numberConformer(currency.getValue()), getContext()));
|
||||||
|
fluctuationTxtView.setText(PlaceholderManager.getValueParenthesisString(numberConformer(currency.getDayFluctuation()), getContext()));
|
||||||
|
percentageTxtView.setText(PlaceholderManager.getPercentageString(numberConformer(currency.getDayFluctuationPercentage()), getContext()));
|
||||||
|
iconImageView.setImageBitmap(currency.getIcon());
|
||||||
|
|
||||||
|
return convertView;
|
||||||
|
}
|
||||||
|
}
|
67
app/src/main/res/layout/fragment_overview_homeactivity.xml
Normal file
67
app/src/main/res/layout/fragment_overview_homeactivity.xml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:fitsSystemWindows="true">
|
||||||
|
|
||||||
|
<android.support.design.widget.AppBarLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="@dimen/fragment_padding"
|
||||||
|
android:background="@drawable/gradient_background">
|
||||||
|
|
||||||
|
<android.support.v7.widget.Toolbar
|
||||||
|
android:id="@+id/toolbar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="?attr/actionBarSize"
|
||||||
|
app:layout_collapseMode="pin">
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:layout_collapseMode="pin"
|
||||||
|
android:layout_margin="10dp">
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:id="@+id/drawer_button"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/action_settings"
|
||||||
|
android:background="@drawable/ic_drawer_white_24dp"
|
||||||
|
android:visibility="visible"
|
||||||
|
android:layout_gravity="start|center_vertical"
|
||||||
|
android:contentDescription="Drawer"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="Coin list"
|
||||||
|
android:textSize="18sp"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textStyle="bold"/>
|
||||||
|
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
</android.support.v7.widget.Toolbar>
|
||||||
|
|
||||||
|
</android.support.design.widget.AppBarLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="?attr/actionBarSize"
|
||||||
|
android:background="@color/summary_background"
|
||||||
|
android:paddingTop="15dp">
|
||||||
|
|
||||||
|
<ListView android:id="@+id/linearLayoutOverview"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="?attr/actionBarSize"
|
||||||
|
android:orientation="vertical"
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</android.support.constraint.ConstraintLayout>
|
@ -3,8 +3,8 @@
|
|||||||
<group android:checkableBehavior="single">
|
<group android:checkableBehavior="single">
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/navigation_currencies_list"
|
android:id="@+id/navigation_holdings"
|
||||||
android:icon="@drawable/ic_view_list_black_24dp"
|
android:icon="@drawable/ic_account_balance_wallet_black_24dp"
|
||||||
android:title="@string/title_home" />
|
android:title="@string/title_home" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
@ -17,6 +17,11 @@
|
|||||||
android:icon="@drawable/ic_pie_chart_black_24dp"
|
android:icon="@drawable/ic_pie_chart_black_24dp"
|
||||||
android:title="@string/title_market_cap" />
|
android:title="@string/title_market_cap" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/navigation_overview"
|
||||||
|
android:icon="@drawable/ic_view_list_black_24dp"
|
||||||
|
android:title="Coin list"/>
|
||||||
|
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
<item android:title="Other">
|
<item android:title="Other">
|
||||||
|
Loading…
Reference in New Issue
Block a user