diff --git a/app/.idea/caches/build_file_checksums.ser b/app/.idea/caches/build_file_checksums.ser
index 8caf6cca..ab9abf24 100644
Binary files a/app/.idea/caches/build_file_checksums.ser and b/app/.idea/caches/build_file_checksums.ser differ
diff --git a/app/.idea/gradle.xml b/app/.idea/gradle.xml
index 5396c6c0..53028c90 100644
--- a/app/.idea/gradle.xml
+++ b/app/.idea/gradle.xml
@@ -1,5 +1,6 @@
+
+
+
+
+
+
+
+
+
+
+ file://$PROJECT_DIR$/src/main/java/com/brian/stocks/stock/StocksFragment.java
+ 162
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/brian/stocks/home/CashFragment.java b/app/src/main/java/com/brian/stocks/home/CashFragment.java
index 9832e2fd..11319a17 100644
--- a/app/src/main/java/com/brian/stocks/home/CashFragment.java
+++ b/app/src/main/java/com/brian/stocks/home/CashFragment.java
@@ -119,8 +119,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
private void showAlert() {
AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
alert.setIcon(R.mipmap.ic_launcher_round)
- .setTitle("Alert")
- .setMessage("Coming soon")
+ .setTitle("Coming soon")
+ .setMessage(" Make sure no one can access")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
diff --git a/app/src/main/java/com/brian/stocks/home/CoinsFragment.java b/app/src/main/java/com/brian/stocks/home/CoinsFragment.java
index 50e00012..af07f0ae 100644
--- a/app/src/main/java/com/brian/stocks/home/CoinsFragment.java
+++ b/app/src/main/java/com/brian/stocks/home/CoinsFragment.java
@@ -15,6 +15,7 @@
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
+import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
@@ -82,6 +83,7 @@ public class CoinsFragment extends Fragment {
private Socket mSocket;
private String mOnramperApikey;
private String onRamperCoins="";
+ private String xanpoolApikey;
{
try {
@@ -147,14 +149,18 @@ public void OnDeposit(int position) {
}
@Override
- public void OnRamp(final int position) {
+ public void OnBuyNow(final int position) {
final CoinInfo coin = coinList.get(position);
CoinSymbol = coin.getCoinSymbol();
CoinId = coin.getCoinId();
- if(coin.getBuyNowOption() == 2) { // btc, eth, usdc, dai
+ if(coin.getBuyNowOption() >= 2) { // btc, eth, usdc, dai
AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
View view = getLayoutInflater().inflate(R.layout.dialog_coin_buy_option, null);
final RadioGroup coinRdg = view.findViewById(R.id.coin_rdg);
+ if(coin.getBuyNowOption() == 2) {
+ RadioButton rdb3 = view.findViewById(R.id.coin_rdb_3);
+ rdb3.setVisibility(View.GONE);
+ }
alert.setView(view)
.setIcon(R.mipmap.ic_launcher_round)
.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
@@ -164,6 +170,7 @@ public void onClick(DialogInterface dialog, int which) {
if (coinRdg.getCheckedRadioButtonId() == R.id.coin_rdb_1)
doGenerateWalletAddress("", 1); // ramp
else if(coinRdg.getCheckedRadioButtonId() == R.id.coin_rdb_2)doGenerateWalletAddress("", 2); // onramp
+ else if(coinRdg.getCheckedRadioButtonId() == R.id.coin_rdb_3)doGenerateWalletAddress("", 3); // xanpool
else {
Toast.makeText(getContext(), "Please select option", Toast.LENGTH_SHORT).show();
return;
@@ -232,7 +239,7 @@ public void onClick(DialogInterface dialog, int id) {
}
private void showWalletAddressDialog(JSONObject data) {
- if (data.has("deposit_amount")) {
+ if (CoinSymbol.equals("XMT")) {
DepositERC20Dialog DepositDialogERC20;
DepositDialogERC20 = new DepositERC20Dialog(R.layout.fragment_coin_deposit_erc20, data, CoinSymbol);
DepositDialogERC20.setListener(new DepositERC20Dialog.Listener() {
@@ -343,6 +350,7 @@ public void onResponse(JSONObject response) {
mTotalEffect.setText(response.getString("total_effect")+" %");
mUSDBalance.setText(response.getString("usd_balance"));
mOnramperApikey = response.getString("onramper_api_key");
+ xanpoolApikey = response.getString("xanpool_api_key");
if(response.getString("total_effect").startsWith("-"))
mTotalEffect.setTextColor(RED);
else mTotalEffect.setTextColor(GREEN);
@@ -422,7 +430,7 @@ else if(type == 1){
// "https://ri-widget-staging-ropsten.firebaseapp.com/"
);
rampInstantSDK.show();
- } else {
+ } else if(type == 2){
String coin_address = CoinSymbol+":["+address+"]";
String excludeCryptos = "&excludeCryptos=EOS,USDT,XLM,BUSD,GUSD,HUSD,PAX,USDS";
String url = "https://widget.onramper.dev?color=1d2d50&apiKey="+mOnramperApikey+"&defaultCrypto="+CoinSymbol+excludeCryptos+"&defaultAddrs="+coin_address+"&onlyCryptos="+onRamperCoins;
@@ -430,6 +438,21 @@ else if(type == 1){
browserIntent.putExtra("uri", url);
startActivity(browserIntent);
}
+ else if(type == 3){ //xanpool
+ String base = "https://checkout.xanpool.com/";
+ String apikey = "?apiKey="+xanpoolApikey;
+ String wallet = "&wallet=" + address;
+ String cryptoCurrency = "&cryptoCurrency=" + CoinSymbol;
+ String transactionType = "&transactionType=buy";
+ String isWebview = "&isWebview=true";
+ String partnerData = "&partnerData=88824d8683434f4e";
+
+ String url = base + apikey + wallet + cryptoCurrency + transactionType + isWebview;
+ Log.d("xanpool url:", url);
+ Intent browserIntent = new Intent(getActivity(), WebViewActivity.class);
+ browserIntent.putExtra("uri", url);
+ startActivity(browserIntent);
+ }
}
else
Toast.makeText(getContext(), response.optString("error"), Toast.LENGTH_SHORT).show();
diff --git a/app/src/main/java/com/brian/stocks/home/InvestedStockFragment.java b/app/src/main/java/com/brian/stocks/home/InvestedStockFragment.java
index cfd916d0..f549cc33 100644
--- a/app/src/main/java/com/brian/stocks/home/InvestedStockFragment.java
+++ b/app/src/main/java/com/brian/stocks/home/InvestedStockFragment.java
@@ -153,6 +153,7 @@ public void onResponse(JSONObject response) {
refreshLayout.setRefreshing(false);
stocksList.clear();
try {
+ Log.d("invested stocks response", response.toString());
mTotalBalance.setText("$ " + response.getString("total_balance"));
mStockBalance.setText("$ " + response.getString("stock_balance"));
mTextStockProfit.setText("$ " + response.getString("stock_profit"));
diff --git a/app/src/main/java/com/brian/stocks/home/TransferCoinFragment.java b/app/src/main/java/com/brian/stocks/home/TransferCoinFragment.java
index c2c2faf0..64799f6b 100644
--- a/app/src/main/java/com/brian/stocks/home/TransferCoinFragment.java
+++ b/app/src/main/java/com/brian/stocks/home/TransferCoinFragment.java
@@ -123,16 +123,19 @@ public void onClick(View v) {
public void onClick(DialogInterface dialog, int which) {
if (TextUtils.isEmpty(editEmail.getText().toString())) {
editEmail.setError("!");
+ Toast.makeText(getContext(), "Please fill into form.", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(editName.getText().toString())) {
editName.setError("!");
+ Toast.makeText(getContext(), "Please fill into form.", Toast.LENGTH_SHORT).show();
return;
}
Pattern p = Pattern.compile("\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}\\b");
final Matcher m = p.matcher(editEmail.getText().toString());
if (!m.find()) {
editEmail.setError("Invalid email format");
+ Toast.makeText(getContext(), "Invalid email format.", Toast.LENGTH_SHORT).show();
return;
}
sendContact();
diff --git a/app/src/main/java/com/brian/stocks/home/adapters/CoinAdapter.java b/app/src/main/java/com/brian/stocks/home/adapters/CoinAdapter.java
index 769c5702..3d103355 100644
--- a/app/src/main/java/com/brian/stocks/home/adapters/CoinAdapter.java
+++ b/app/src/main/java/com/brian/stocks/home/adapters/CoinAdapter.java
@@ -40,7 +40,7 @@ public class OrderViewHolder extends RecyclerView.ViewHolder {
TextView tvCoinName, tvCoinRate, tvCoinEstAmount, tvCoinBalance, tvCoinEffect;
ImageView coinIcon;
LinearLayout llCoinBalance;
- Button btnDeposit, btnRamp;
+ Button btnDeposit, btnBuyNow;
public OrderViewHolder(View view) {
super(view);
@@ -53,7 +53,7 @@ public OrderViewHolder(View view) {
coinIcon = view.findViewById(R.id.coin_icon);
llCoinBalance = view.findViewById(R.id.ll_coin_balance);
btnDeposit = view.findViewById(R.id.btn_deposit);
- btnRamp = view.findViewById(R.id.btn_ramp);
+ btnBuyNow = view.findViewById(R.id.btn_coin_buy);
}
}
@@ -118,19 +118,19 @@ public void onClick(View view) {
listener.OnDeposit(position);
}
});
- holder.btnRamp.setOnClickListener(new View.OnClickListener() {
+ holder.btnBuyNow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- listener.OnRamp(position);
+ listener.OnBuyNow(position);
}
});
String coins = "BTC ETH DAI XDAI USDC DOT";
// if(coins.contains(item.getCoinSymbol())) {
- if(item.getBuyNowOption() != 0 && item.getBuyNowOption() != 3) {
- holder.btnRamp.setVisibility(View.VISIBLE);
+ if(item.getBuyNowOption() != 0 && item.getBuyNowOption() != 100) {
+ holder.btnBuyNow.setVisibility(View.VISIBLE);
}
else {
- holder.btnRamp.setVisibility(View.GONE);
+ holder.btnBuyNow.setVisibility(View.GONE);
}
}
@@ -153,6 +153,6 @@ public interface Listener {
* @param position
*/
void OnDeposit(int position);
- void OnRamp(int position);
+ void OnBuyNow(int position);
}
}
diff --git a/app/src/main/java/com/brian/stocks/model/StocksInfo.java b/app/src/main/java/com/brian/stocks/model/StocksInfo.java
index 6c5e2a27..949c0304 100644
--- a/app/src/main/java/com/brian/stocks/model/StocksInfo.java
+++ b/app/src/main/java/com/brian/stocks/model/StocksInfo.java
@@ -33,7 +33,9 @@ public String getStocksName() {
public String getStocksNameOther() {
try {
- return data.getString("name");
+ String name = data.getString("name");
+ if(name.equals("null")) name="";
+ return name;
} catch (JSONException e) {
e.printStackTrace();
return null;
@@ -85,7 +87,7 @@ public String getStockAvgPrice(){
public String getStocksPrice() {
try {
- return data.getString("vw");
+ return String.format("%.2f", Double.parseDouble(data.getString("vw")));
} catch (JSONException e) {
e.printStackTrace();
return "0.0";
@@ -102,7 +104,7 @@ public void setStockAggregate(JSONArray aggregate) {
public String getStockTodayChange() {
try {
- return data.getString("todaysChange");
+ return String.format("%.4f", Double.parseDouble(data.getString("todaysChange")));
} catch (JSONException e) {
e.printStackTrace();
return "0.0";
@@ -111,7 +113,7 @@ public String getStockTodayChange() {
public String getStockTodayChangePercent() {
try {
- return data.getString("todaysChangePerc");
+ return String.format("%.4f", Double.parseDouble(data.getString("todaysChangePerc")));
} catch (JSONException e) {
e.printStackTrace();
return "0.0";
@@ -156,6 +158,14 @@ public String getStockOrderID(){
}
}
+ public String getStockOrderCost(){
+ try {
+ return data.getString("est_cost");
+ } catch (JSONException e) {
+ return "";
+ }
+ }
+
public String getStockOrderDate(){
try {
return data.getString("created_at").split(" ")[0];
diff --git a/app/src/main/java/com/brian/stocks/stock/StocksFragment.java b/app/src/main/java/com/brian/stocks/stock/StocksFragment.java
index a593170c..a7ecaf49 100644
--- a/app/src/main/java/com/brian/stocks/stock/StocksFragment.java
+++ b/app/src/main/java/com/brian/stocks/stock/StocksFragment.java
@@ -101,6 +101,8 @@ public void OnGoToTrade(int position) {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
getAllStocks(false);
+ aggregates=new JSONArray();
+ getAggregate();
return true;
}
return false;
@@ -141,6 +143,9 @@ public void onRefresh() {
private void getAggregate() {
String url = URLHelper.GET_ALL_STOCKS_AGGREGATE;
+ if(!mSearch.equalsIgnoreCase(""))
+ url = url + "?search="+mSearch;
+ Log.d("stock aggregate url", url);
AndroidNetworking.get(url)
.addHeaders("Content-Type", "application/json")
.addHeaders("accept", "application/json")
@@ -172,8 +177,8 @@ public void onResponse(JSONObject response) {
public void onError(ANError error) {
// handle error
- Toast.makeText(getContext(), "Please try again. Network error.", Toast.LENGTH_SHORT).show();
- Log.d("errorm", "" + error.getMessage());
+// Toast.makeText(getContext(), "Please try again. Network error.", Toast.LENGTH_SHORT).show();
+ Log.d("errorm", "" + error.getErrorBody());
}
});
}
@@ -229,7 +234,6 @@ public void onResponse(JSONObject response) {
if(stocks != null)
for(int i = 0; i < stocks.length(); i ++) {
try {
- Log.d("stocksitem", stocks.get(i).toString());
StocksInfo stock = new StocksInfo((JSONObject) stocks.get(i));
if(aggregates.length() > 0)
stock.setStockAggregate(aggregates.optJSONArray(i));
@@ -269,8 +273,8 @@ public void onError(ANError error) {
loadToast.error();
// handle error
- Toast.makeText(getContext(), "Please try again. Network error.", Toast.LENGTH_SHORT).show();
- Log.d("errorm", "" + error.getMessage());
+ Toast.makeText(getContext(), error.getErrorBody(), Toast.LENGTH_SHORT).show();
+ Log.d("errorm", "" + error.getErrorBody());
}
});
}
diff --git a/app/src/main/java/com/brian/stocks/stock/stockorder/OrderStockFragment.java b/app/src/main/java/com/brian/stocks/stock/stockorder/OrderStockFragment.java
index d0065651..4fe5c00c 100644
--- a/app/src/main/java/com/brian/stocks/stock/stockorder/OrderStockFragment.java
+++ b/app/src/main/java/com/brian/stocks/stock/stockorder/OrderStockFragment.java
@@ -9,12 +9,14 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.LinearLayout;
import android.widget.Toast;
import com.androidnetworking.AndroidNetworking;
import com.androidnetworking.common.Priority;
import com.androidnetworking.error.ANError;
import com.androidnetworking.interfaces.JSONObjectRequestListener;
+import com.anychart.enums.Layout;
import com.brian.stocks.R;
import com.brian.stocks.stock.stocktrade.StocksOrderActivity;
import com.brian.stocks.helper.SharedHelper;
@@ -36,6 +38,7 @@ public class OrderStockFragment extends Fragment {
private StockOrderAdapter mAdapter;
private List stocksList = new ArrayList<>();
private RecyclerView stocksListView;
+ LinearLayout emptyLayout;
public OrderStockFragment() {
// Required empty public constructor
@@ -59,6 +62,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_order_stock, container, false);
stocksListView = (RecyclerView) rootView.findViewById(R.id.list_stocks_view);
+ emptyLayout = rootView.findViewById(R.id.empty_layout);
mAdapter = new StockOrderAdapter(stocksList, false);
@@ -107,6 +111,8 @@ public void onResponse(JSONObject response) {
if(getContext() != null)
SharedHelper.putKey(getContext(), "stock_balance", response.optString("stock_balance"));
mAdapter.notifyDataSetChanged();
+ if(stocksList.size() > 0)
+ emptyLayout.setVisibility(View.GONE);
}
@Override
@@ -123,12 +129,8 @@ private void GoToOrder(int position) {
StocksInfo stock = stocksList.get(position);
Intent intent = new Intent(getActivity(), StocksOrderActivity.class);
intent.putExtra("stock_name", stock.getStocksOrderName());
- intent.putExtra("stock_price", stock.getStocksPrice());
intent.putExtra("stock_limit_price", stock.getStockOrderLimitPrice());
- intent.putExtra("stock_shares", stock.getStocksShares());
intent.putExtra("stock_order_shares", stock.getStocksOrderShares());
- intent.putExtra("stock_today_change", stock.getStockTodayChange());
- intent.putExtra("stock_today_change_perc", stock.getStockTodayChangePercent());
intent.putExtra("stock_order_id", stock.getStockOrderID());
intent.putExtra("stock_order_side", stock.getStockOrderSide());
intent.putExtra("stock_order_type", stock.getStockOrderType());
diff --git a/app/src/main/java/com/brian/stocks/stock/stockorder/StockOrderAdapter.java b/app/src/main/java/com/brian/stocks/stock/stockorder/StockOrderAdapter.java
index 0828e427..2daf3e97 100644
--- a/app/src/main/java/com/brian/stocks/stock/stockorder/StockOrderAdapter.java
+++ b/app/src/main/java/com/brian/stocks/stock/stockorder/StockOrderAdapter.java
@@ -22,7 +22,7 @@ public StockOrderAdapter(List arrItems, boolean viewType) {
public class OrderViewHolder extends RecyclerView.ViewHolder {
- TextView tvStocksName, tvStocksShared, tvStocksOrderStatus, tvStocksOrderSide, tvStocksOrderDate;
+ TextView tvStocksName, tvStocksShared, tvStocksOrderStatus, tvStocksOrderSide, tvStocksOrderDate, tvStocksOrderCost;
@SuppressLint("ResourceAsColor")
public OrderViewHolder(View view) {
@@ -33,6 +33,7 @@ public OrderViewHolder(View view) {
tvStocksOrderStatus = view.findViewById(R.id.stocks_order_status);
tvStocksOrderSide = view.findViewById(R.id.stocks_order_side);
tvStocksOrderDate = view.findViewById(R.id.stocks_order_date);
+ tvStocksOrderCost = view.findViewById(R.id.stocks_order_cost);
}
}
@@ -55,6 +56,7 @@ public void onBindViewHolder(@NonNull final OrderViewHolder holder, final int po
holder.tvStocksOrderSide.setText(item.getStockOrderSide());
holder.tvStocksOrderStatus.setText(item.getStockOrderStatus());
holder.tvStocksOrderDate.setText(item.getStockOrderDate());
+ holder.tvStocksOrderCost.setText("$ "+item.getStockOrderCost());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
diff --git a/app/src/main/java/com/brian/stocks/stock/stockorder/StockTradeHistoryFragment.java b/app/src/main/java/com/brian/stocks/stock/stockorder/StockTradeHistoryFragment.java
index e05290cf..387219ac 100644
--- a/app/src/main/java/com/brian/stocks/stock/stockorder/StockTradeHistoryFragment.java
+++ b/app/src/main/java/com/brian/stocks/stock/stockorder/StockTradeHistoryFragment.java
@@ -8,6 +8,7 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.LinearLayout;
import android.widget.Toast;
import com.androidnetworking.AndroidNetworking;
@@ -34,6 +35,7 @@ public class StockTradeHistoryFragment extends Fragment {
private StockOrderAdapter mAdapter;
private List stocksList = new ArrayList<>();
private RecyclerView stocksListView;
+ LinearLayout emptyLayout;
public StockTradeHistoryFragment() {
// Required empty public constructor
@@ -57,6 +59,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_stock_trade_history, container, false);
stocksListView = (RecyclerView) rootView.findViewById(R.id.list_stocks_view);
+ emptyLayout = rootView.findViewById(R.id.empty_layout);
mAdapter = new StockOrderAdapter(stocksList, false);
stocksListView.setLayoutManager(new LinearLayoutManager(getContext()));
@@ -102,6 +105,8 @@ public void onResponse(JSONObject response) {
}
mAdapter.notifyDataSetChanged();
+ if(stocksList.size() > 0)
+ emptyLayout.setVisibility(View.GONE);
}
@Override
diff --git a/app/src/main/java/com/brian/stocks/stock/stocktrade/StockReplaceActivity.java b/app/src/main/java/com/brian/stocks/stock/stocktrade/StockReplaceActivity.java
index 747fbfdf..03b90b50 100644
--- a/app/src/main/java/com/brian/stocks/stock/stocktrade/StockReplaceActivity.java
+++ b/app/src/main/java/com/brian/stocks/stock/stocktrade/StockReplaceActivity.java
@@ -268,8 +268,7 @@ public void onResponse(JSONObject response) {
public void onError(ANError error) {
loadToast.error();
// handle error
- Toast.makeText(getBaseContext(), "Please try again. Network error.", Toast.LENGTH_SHORT).show();
- Log.d("errorm", "" + error.getMessage());
+ Toast.makeText(getBaseContext(), error.getErrorBody(), Toast.LENGTH_SHORT).show();
}
});
}
diff --git a/app/src/main/java/com/brian/stocks/stock/stocktrade/StockSellActivity.java b/app/src/main/java/com/brian/stocks/stock/stocktrade/StockSellActivity.java
index 452db79f..6b306474 100644
--- a/app/src/main/java/com/brian/stocks/stock/stocktrade/StockSellActivity.java
+++ b/app/src/main/java/com/brian/stocks/stock/stocktrade/StockSellActivity.java
@@ -137,10 +137,10 @@ public void onClick(View view) {
Toast.makeText(getBaseContext(), "Please input shares", Toast.LENGTH_SHORT).show();
return;
}
- if(Double.parseDouble(mEditShares.getText().toString()) > Double.parseDouble(mStockShares)){
- Toast.makeText(getBaseContext(), "Insufficient Shares", Toast.LENGTH_SHORT).show();
- return;
- }
+// if(Double.parseDouble(mEditShares.getText().toString()) > Double.parseDouble(mStockShares)){
+// Toast.makeText(getBaseContext(), "Insufficient Shares", Toast.LENGTH_SHORT).show();
+// return;
+// }
if(Double.parseDouble(mEstCost) == 0){
Toast.makeText(getBaseContext(), "Please fill in all", Toast.LENGTH_SHORT).show();
return;
@@ -238,7 +238,8 @@ public void onResponse(JSONObject response) {
loadToast.success();
mStockBalance = response.optString("stock_balance");
mTextStockBalance.setText("$ "+mStockBalance);
- mStockShares = BigDecimalDouble.newInstance().sub(mStockShares, mEditShares.getText().toString());
+ mStockShares = response.optString("shares");
+ mTextStockShares.setText(mStockShares);
Toast.makeText(getBaseContext(), response.optString("message"), Toast.LENGTH_SHORT).show();
}
@@ -246,8 +247,8 @@ public void onResponse(JSONObject response) {
public void onError(ANError error) {
loadToast.error();
// handle error
- Toast.makeText(getBaseContext(), "Please try again. Network error.", Toast.LENGTH_SHORT).show();
- Log.d("errorm", "" + error.getMessage());
+ Toast.makeText(getBaseContext(), error.getErrorBody(), Toast.LENGTH_SHORT).show();
+ Log.d("errorm", "" + error.getErrorBody());
}
});
}
diff --git a/app/src/main/java/com/brian/stocks/stock/stocktrade/StocksOrderActivity.java b/app/src/main/java/com/brian/stocks/stock/stocktrade/StocksOrderActivity.java
index 56651ee0..d4fadb65 100644
--- a/app/src/main/java/com/brian/stocks/stock/stocktrade/StocksOrderActivity.java
+++ b/app/src/main/java/com/brian/stocks/stock/stocktrade/StocksOrderActivity.java
@@ -4,6 +4,8 @@
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+
+import com.brian.stocks.model.StocksInfo;
import com.google.android.material.tabs.TabLayout;
import androidx.viewpager.widget.ViewPager;
import androidx.appcompat.app.AppCompatActivity;
@@ -44,6 +46,8 @@ public class StocksOrderActivity extends AppCompatActivity {
private ViewPager mStockChartViewPager;
private TabLayout mStockTabBar;
StockChartTabAdapter mPageAdapter;
+ private String price, shares;
+ private boolean loading = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -63,19 +67,17 @@ protected void onCreate(Bundle savedInstanceState) {
mIntent = getIntent();
mStockName.setText(mIntent.getStringExtra("stock_name"));
- String price = mIntent.getStringExtra("stock_price");
- String[] separatedPrice = price.split("\\.");
- mStockPriceInteger.setText(separatedPrice[0].trim());
- mStockPriceFloat.setText("."+separatedPrice[1].trim());
mStockShares.setText(mIntent.getStringExtra("stock_shares"));
StockSide = mIntent.getStringExtra("stock_order_side");
- mStockTodayChange.setText("$ "+mIntent.getStringExtra("stock_today_change"));
- mStockTodayChangePerc.setText("( % "+mIntent.getStringExtra("stock_today_change_perc")+" )");
+
mBtnEdit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
+ if(!loading)
onEditOrder();
+ else
+ Toast.makeText(getBaseContext(), "Please wait for loading", Toast.LENGTH_SHORT).show();
}
});
@@ -162,20 +164,20 @@ public void onResponse(JSONObject response) {
public void onError(ANError error) {
loadToast.error();
// handle error
- Toast.makeText(getBaseContext(), "Please try again. Network error.", Toast.LENGTH_SHORT).show();
- Log.d("errorm", "" + error.getMessage());
+ Toast.makeText(getBaseContext(), error.getErrorBody(), Toast.LENGTH_SHORT).show();
+ Log.d("errorm", "" + error.getErrorBody());
}
});
}
private void onEditOrder() {
Intent intent = new Intent(this, StockReplaceActivity.class);
- intent.putExtra("stock_price", mIntent.getStringExtra("stock_price"));
+ intent.putExtra("stock_price", price);
intent.putExtra("stock_limit_price", mIntent.getStringExtra("stock_limit_price"));
intent.putExtra("stock_name", mIntent.getStringExtra("stock_name"));
intent.putExtra("stock_symbol", mStockSymbol.getText());
intent.putExtra("stock_order_id", mIntent.getStringExtra("stock_order_id"));
- intent.putExtra("stock_shares", mIntent.getStringExtra("stock_shares"));
+ intent.putExtra("stock_shares", shares);
intent.putExtra("stock_order_shares", mIntent.getStringExtra("stock_order_shares"));
intent.putExtra("stock_order_type", mIntent.getStringExtra("stock_order_type"));
intent.putExtra("stock_balance", StockBalance);
@@ -204,6 +206,7 @@ private void getStockDetailData() {
public void onResponse(JSONObject response) {
Log.d("response", "" + response);
loadToast.success();
+ loading = false;
try {
mAggregateDay = response.getJSONArray("aggregate_day");
mAggregateWeek = response.getJSONArray("aggregate_week");
@@ -225,6 +228,14 @@ public void onResponse(JSONObject response) {
mStockSymbol.setText(response.optString("symbol"));
StockBalance = response.optString("stock_balance");
+ StocksInfo stock = new StocksInfo(response.optJSONObject("stock"));
+ price = stock.getStocksPrice();
+ String[] separatedPrice = price.split("\\.");
+ mStockPriceInteger.setText(separatedPrice[0].trim());
+ mStockPriceFloat.setText("."+separatedPrice[1].trim());
+ mStockTodayChange.setText("$ "+stock.getStockTodayChange());
+ mStockTodayChangePerc.setText("( % "+ stock.getStockTodayChangePercent() + " )");
+ shares = stock.getStocksShares();
} catch (JSONException e) {
e.printStackTrace();
diff --git a/app/src/main/java/com/brian/stocks/stock/stocktrade/StocksTradingActivity.java b/app/src/main/java/com/brian/stocks/stock/stocktrade/StocksTradingActivity.java
index a3d3d3e5..52ec1607 100644
--- a/app/src/main/java/com/brian/stocks/stock/stocktrade/StocksTradingActivity.java
+++ b/app/src/main/java/com/brian/stocks/stock/stocktrade/StocksTradingActivity.java
@@ -40,7 +40,7 @@ public class StocksTradingActivity extends AppCompatActivity {
private double StockPrice = 0.0;
TextView mTextCompanySummary, mTextCompanyWeb, mTextCompanyIndustry;
- private JSONArray mAggregateDay, mAggregateWeek, mAggregateMonth, mAggregate6Month, mAggregateYear, mAggregateAll;
+ private JSONArray mAggregateDay = new JSONArray(), mAggregateWeek = new JSONArray(), mAggregateMonth = new JSONArray(), mAggregate6Month = new JSONArray(), mAggregateYear = new JSONArray(), mAggregateAll = new JSONArray();
private ViewPager mStockChartViewPager;
private TabLayout mStockTabBar;
StockChartTabAdapter mPageAdapter;
@@ -103,6 +103,8 @@ public void onClick(View view) {
mBtnSell.setVisibility(View.GONE);
}
+ mPageAdapter=new StockChartTabAdapter(getSupportFragmentManager());
+
getStockDetailData();
}
@@ -176,23 +178,53 @@ private void getStockDetailData() {
public void onResponse(JSONObject response) {
Log.d("response", "" + response);
loadToast.success();
+
try {
mAggregateDay = response.getJSONArray("aggregate_day");
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ try {
mAggregateWeek = response.getJSONArray("aggregate_week");
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ try {
mAggregateMonth = response.getJSONArray("aggregate_month");
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ try {
mAggregate6Month = response.getJSONArray("aggregate_month6");
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ try {
mAggregateYear = response.getJSONArray("aggregate_year");
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+
+ try {
mAggregateAll = response.getJSONArray("aggregate_all");
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
- mPageAdapter=new StockChartTabAdapter(getSupportFragmentManager());
mPageAdapter.addCharData(mAggregateDay);
mPageAdapter.addCharData(mAggregateWeek);
mPageAdapter.addCharData(mAggregateMonth);
mPageAdapter.addCharData(mAggregate6Month);
mPageAdapter.addCharData(mAggregateYear);
mPageAdapter.addCharData(mAggregateAll);
- mStockChartViewPager.setAdapter(mPageAdapter);
- mStockTabBar.setupWithViewPager(mStockChartViewPager);
+ mStockChartViewPager.setAdapter(mPageAdapter);
+ mStockTabBar.setupWithViewPager(mStockChartViewPager);
+
+ try {
StockBalance = response.optString("stock_balance");
@@ -217,7 +249,7 @@ public void onResponse(JSONObject response) {
public void onError(ANError error) {
loadToast.error();
// handle error
- Toast.makeText(getBaseContext(), "Please try again. Network error.", Toast.LENGTH_SHORT).show();
+ Toast.makeText(getBaseContext(), error.getMessage(), Toast.LENGTH_SHORT).show();
Log.d("errorm", "" + error.getMessage());
}
});
diff --git a/app/src/main/java/com/brian/stocks/home/CoinExchangeFragment.java b/app/src/main/java/com/brian/stocks/xmt/CoinExchangeFragment.java
similarity index 94%
rename from app/src/main/java/com/brian/stocks/home/CoinExchangeFragment.java
rename to app/src/main/java/com/brian/stocks/xmt/CoinExchangeFragment.java
index 59e3d121..1636a107 100644
--- a/app/src/main/java/com/brian/stocks/home/CoinExchangeFragment.java
+++ b/app/src/main/java/com/brian/stocks/xmt/CoinExchangeFragment.java
@@ -1,8 +1,7 @@
-package com.brian.stocks.home;
+package com.brian.stocks.xmt;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
-import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
@@ -55,7 +54,7 @@ public class CoinExchangeFragment extends Fragment {
private Button mBtnTrade;
private TabLayout tabLayout;
private EditText mEditQuantity, mEditPrice;
- private TextView mTextCoinBuy2, mTextCoinSell2, mTextCoinBuyBalance, mTextCoinSellBalance, mTextOutputTrade, mTextAsksTotalUSD, mTextBidsTotalUSD, mTextPriceUSD;
+ private TextView mTextChangeVolume, mTextChangeRate, mTextCoinBuy2, mTextCoinSell2, mTextCoinBuyBalance, mTextCoinSellBalance, mTextOutputTrade, mTextAsksTotalUSD, mTextBidsTotalUSD, mTextPriceUSD;
private static String CoinSymbol;
private View mView;
private DecimalFormat df = new DecimalFormat("#.########");
@@ -367,7 +366,7 @@ private void getData() {
.getAsJSONObject(new JSONObjectRequestListener() {
@Override
public void onResponse(JSONObject response) {
- //Log.d("coin assets response", "" + response.toString());
+ Log.d("coin assets response", "" + response.toString());
try {
if (!response.has("success") || response.getBoolean("success") == false) {
ordersList.clear();
@@ -379,6 +378,8 @@ public void onResponse(JSONObject response) {
mTextBidsTotalUSD.setText("Bids ($0)");
mTextCoinBuyBalance.setText(df.format(0.0));
mTextCoinSellBalance.setText(df.format(0.0));
+ mTextChangeVolume.setText("Volume 24h: "+df.format(0.0)+" USD");
+ mTextChangeRate.setText("Rate 24h: "+df.format(0.0)+" USD");
updateComponents();
return;
}
@@ -394,6 +395,9 @@ public void onResponse(JSONObject response) {
JSONObject responseObj = null;
try {
+ mTextChangeVolume.setText("Volume 24h: "+df.format(Float.parseFloat(response.getString("change_volume")))+" USD");
+ mTextChangeRate.setText("Rate 24h: "+df.format(Float.parseFloat(response.getString("change_rate")))+" USD");
+
mTextCoinBuyBalance.setText(df.format(Float.parseFloat(response.getString("coin2_balance"))));
mTextCoinSellBalance.setText(df.format(Float.parseFloat(response.getString("coin1_balance"))));
responseObj = response.getJSONObject("orders");
@@ -488,6 +492,8 @@ public void onError(ANError error) {
mTextPriceUSD.setText("$0");
mTextAsksTotalUSD.setText("Asks ($0");
mTextBidsTotalUSD.setText("Bids ($0)");
+ mTextChangeVolume.setText("Volume 24h: "+df.format(0.0)+" USD");
+ mTextChangeRate.setText("Rate 24h: "+df.format(0.0)+" USD");
mTextCoinBuyBalance.setText(df.format(0.0));
mTextCoinSellBalance.setText(df.format(0.0));
updateComponents();
@@ -521,7 +527,7 @@ private void sendData() {
.getAsJSONObject(new JSONObjectRequestListener() {
@Override
public void onResponse(JSONObject response) {
- //Log.d("coin post response", "" + response.toString());
+ Log.d("xmt trading response", "" + response.toString());
if (!response.has("success")) {
/*
try {
@@ -531,6 +537,7 @@ public void onResponse(JSONObject response) {
}
*/
+ Toast.makeText(getContext(), "Order failed.", Toast.LENGTH_SHORT).show();
return;
}
@@ -596,6 +603,10 @@ private void initComponents() {
mTextCoinBuyBalance = mView.findViewById(R.id.coin_buy_balance);
mTextCoinSellBalance = mView.findViewById(R.id.coin_sell_balance);
+
+ mTextChangeVolume = mView.findViewById(R.id.coin_volume_change);
+ mTextChangeRate = mView.findViewById(R.id.coin_rate_change);
+
orderView = mView.findViewById(R.id.orders_view);
orderAdapter = new OrderAdapter(ordersList);
orderView.setLayoutManager(new LinearLayoutManager(getContext()));
@@ -626,6 +637,7 @@ private void initListeners() {
mBtnTrade.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
+ if(validate())
sendData();
/*
if(mEditSellingAmount.getText().toString().equals("")||
@@ -708,6 +720,19 @@ public void afterTextChanged(Editable editable) {
});
}
+ private boolean validate() {
+ boolean validation = true;
+ if(mEditPrice.getText().toString().equals("")) {
+ mEditPrice.setError("!");
+ validation = false;
+ }
+ if(mEditQuantity.getText().toString().equals("")) {
+ mEditQuantity.setError("!");
+ validation = false;
+ }
+ return validation;
+ }
+
private double getPrice() throws JSONException {
if(selType.equalsIgnoreCase("buy")) {
if (asksList.isEmpty()) {
diff --git a/app/src/main/java/com/brian/stocks/xmt/XMTTradingActivity.java b/app/src/main/java/com/brian/stocks/xmt/XMTTradingActivity.java
index 979b7127..18e01f10 100644
--- a/app/src/main/java/com/brian/stocks/xmt/XMTTradingActivity.java
+++ b/app/src/main/java/com/brian/stocks/xmt/XMTTradingActivity.java
@@ -7,7 +7,6 @@
import android.os.Bundle;
import com.brian.stocks.R;
-import com.brian.stocks.home.CoinExchangeFragment;
public class XMTTradingActivity extends AppCompatActivity {
diff --git a/app/src/main/res/layout/activity_sign_in.xml b/app/src/main/res/layout/activity_sign_in.xml
index 03024805..74aae4a6 100644
--- a/app/src/main/res/layout/activity_sign_in.xml
+++ b/app/src/main/res/layout/activity_sign_in.xml
@@ -107,7 +107,7 @@
android:id="@+id/loginBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="30dp"
+ android:layout_marginTop="0dp"
android:layout_marginHorizontal="20dp"
android:text="Log In"
android:textColor="@color/white" />
diff --git a/app/src/main/res/layout/activity_stock_buy.xml b/app/src/main/res/layout/activity_stock_buy.xml
index 5ed697e6..f90e7361 100644
--- a/app/src/main/res/layout/activity_stock_buy.xml
+++ b/app/src/main/res/layout/activity_stock_buy.xml
@@ -64,6 +64,7 @@
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
android:orientation="horizontal">
@@ -283,10 +286,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginHorizontal="80dp"
- android:background="@drawable/feather_red_button"
android:text="Replace"
- android:textColor="@android:color/white"
- android:textSize="25dp"
/>
diff --git a/app/src/main/res/layout/activity_stock_sell.xml b/app/src/main/res/layout/activity_stock_sell.xml
index f5c0cb8e..b186d05b 100644
--- a/app/src/main/res/layout/activity_stock_sell.xml
+++ b/app/src/main/res/layout/activity_stock_sell.xml
@@ -64,6 +64,7 @@
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
android:orientation="horizontal">
diff --git a/app/src/main/res/layout/activity_stocks_order.xml b/app/src/main/res/layout/activity_stocks_order.xml
index 28a0457a..10eb275f 100644
--- a/app/src/main/res/layout/activity_stocks_order.xml
+++ b/app/src/main/res/layout/activity_stocks_order.xml
@@ -130,19 +130,17 @@
@@ -70,6 +72,8 @@
android:id="@+id/stock_profit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:inputType="text"
+ android:maxLines="1"
android:textSize="17dp"
android:textColor="@color/green"
android:text="$ 0.0"/>
@@ -100,6 +104,8 @@
android:id="@+id/total_balance"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:inputType="text"
+ android:maxLines="1"
android:textSize="17dp"
android:textColor="@color/colorBlue"
android:text="$ 0.0"/>
@@ -124,6 +130,8 @@
android:id="@+id/margin_balance"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:inputType="text"
+ android:maxLines="1"
android:textSize="17dp"
android:textColor="@color/colorBlue"
android:text="$ 0.0"/>
diff --git a/app/src/main/res/layout/fragment_order_stock.xml b/app/src/main/res/layout/fragment_order_stock.xml
index 67244c5b..b4baf93d 100644
--- a/app/src/main/res/layout/fragment_order_stock.xml
+++ b/app/src/main/res/layout/fragment_order_stock.xml
@@ -11,5 +11,18 @@
android:layout_marginHorizontal="10dp"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_stock_trade_history.xml b/app/src/main/res/layout/fragment_stock_trade_history.xml
index da79a3c4..8a9bc745 100644
--- a/app/src/main/res/layout/fragment_stock_trade_history.xml
+++ b/app/src/main/res/layout/fragment_stock_trade_history.xml
@@ -11,5 +11,17 @@
android:layout_marginHorizontal="10dp"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
-
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_coin.xml b/app/src/main/res/layout/item_coin.xml
index 3c4f656f..4980b8bd 100644
--- a/app/src/main/res/layout/item_coin.xml
+++ b/app/src/main/res/layout/item_coin.xml
@@ -16,14 +16,16 @@
-
+ android:orientation="vertical">
+
+
+