This commit is contained in:
parent
e99326e76b
commit
8344b38749
|
|
@ -2,6 +2,12 @@ package com.example.dcav2gui;
|
|||
|
||||
import static com.example.dcav2gui.MainActivity.globalSettings;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.example.dcav2gui.ui.earners.EarnerData;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonElement;
|
||||
|
|
@ -24,6 +30,118 @@ public class EarnerInterface {
|
|||
private static final String API_KEY = globalSettings.earnApiKey;
|
||||
private static final OkHttpClient httpClient = new OkHttpClient();
|
||||
|
||||
|
||||
public static void sendRequestGlobalData(Context context) {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
EarnerGlobalData result = getEarnerGlobalData(true);
|
||||
new Handler(Looper.getMainLooper()).post(() -> showSimpleDialog("Global data", result.toString(), context));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
new Handler(Looper.getMainLooper()).post(() -> Toast.makeText(context, "Failed to get global status", Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
public static void sendRequestTotalBalance(String exchange, Context context) {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
JsonObject result = getTotalBalance(exchange, true);
|
||||
String dialogTitle = "Balances";
|
||||
String dialogMessage = "Trading balance: " + result.get("trading_balance").getAsString() +
|
||||
" | Earning balance " + result.get("earning_balance").getAsString();
|
||||
new Handler(Looper.getMainLooper()).post(() -> showSimpleDialog(dialogTitle, dialogMessage, context));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
new Handler(Looper.getMainLooper()).post(() -> Toast.makeText(context, "Failed to get total balance", Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
public static void sendRequestGetStepSize(String exchange, Context context) {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
JsonObject result = getStepSize(exchange, true);
|
||||
new Handler(Looper.getMainLooper()).post(() -> showJsonDialog(result, context));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
new Handler(Looper.getMainLooper()).post(() -> Toast.makeText(context, "Failed to get step size", Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
public static void sendRequestGetPercentage(String exchange, Context context) {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
JsonObject result = getPercentage(exchange, true);
|
||||
new Handler(Looper.getMainLooper()).post(() -> showJsonDialog(result, context));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
new Handler(Looper.getMainLooper()).post(() -> Toast.makeText(context, "Failed to get percentage", Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
public static void sendRequestLastSubscription(String exchange, Context context) {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
JsonObject result = getLastSubscription(exchange, true);
|
||||
new Handler(Looper.getMainLooper()).post(() -> showJsonDialog(result, context));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
new Handler(Looper.getMainLooper()).post(() -> Toast.makeText(context, "Failed to get last subscription", Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
public static void sendRequestLastRedemption(String exchange, Context context) {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
JsonObject result = getLastRedemption(exchange, true);
|
||||
new Handler(Looper.getMainLooper()).post(() -> showJsonDialog(result, context));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
new Handler(Looper.getMainLooper()).post(() -> Toast.makeText(context, "Failed to get last redemption", Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
public static void sendRequestGetTimeBetweenSubscriptions(String exchange, Context context) {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
JsonObject result = getTimeBetweenSubscriptions(exchange, true);
|
||||
new Handler(Looper.getMainLooper()).post(() -> showJsonDialog(result, context));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
new Handler(Looper.getMainLooper()).post(() -> Toast.makeText(context, "Failed to get last redemption", Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
public static void sendRequestGetTimeBetweenRedemptions(String exchange, Context context) {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
JsonObject result = getTimeBetweenRedemptions(exchange, true);
|
||||
new Handler(Looper.getMainLooper()).post(() -> showJsonDialog(result, context));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
new Handler(Looper.getMainLooper()).post(() -> Toast.makeText(context, "Failed to get last redemption", Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
public static void sendRequestGetMinimumAmountInTradingAccount(String exchange, Context context) {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
JsonObject result = getMinimumAmountInTradingAccount(exchange, true);
|
||||
new Handler(Looper.getMainLooper()).post(() -> showJsonDialog(result, context));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
new Handler(Looper.getMainLooper()).post(() -> Toast.makeText(context, "Failed to get last redemption", Toast.LENGTH_SHORT).show());
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
public static EarnerGlobalData getEarnerGlobalData(boolean retry) throws IOException {
|
||||
double uptime = 0.0;
|
||||
List<EarnerData> earnerList = new ArrayList<>();
|
||||
|
|
@ -555,6 +673,26 @@ public class EarnerInterface {
|
|||
}
|
||||
|
||||
|
||||
public static void showSimpleDialog(String title, String message, Context context) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
||||
|
||||
builder.setTitle(title);
|
||||
builder.setMessage(message);
|
||||
builder.setPositiveButton("OK", null);
|
||||
builder.show();
|
||||
}
|
||||
|
||||
public static void showJsonDialog(JsonObject result, Context context) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
||||
|
||||
for (String key: result.keySet()) {
|
||||
builder.setTitle(key);
|
||||
builder.setMessage(result.get(key).getAsString());
|
||||
}
|
||||
builder.setPositiveButton("OK", null);
|
||||
builder.show();
|
||||
}
|
||||
|
||||
public static class EarnerGlobalData {
|
||||
private final double uptime;
|
||||
private final List<EarnerData> earnerList;
|
||||
|
|
|
|||
|
|
@ -2,8 +2,10 @@ package com.example.dcav2gui.ui.earners;
|
|||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.PopupMenu;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
|
@ -13,11 +15,13 @@ import androidx.lifecycle.ViewModelProvider;
|
|||
|
||||
import com.example.dcav2gui.EarnerInterface;
|
||||
import com.example.dcav2gui.R;
|
||||
import com.example.dcav2gui.WorkerInterface;
|
||||
import com.example.dcav2gui.databinding.FragmentEarnersBinding;
|
||||
import com.example.dcav2gui.ui.exchanges.adapters.WorkerCardAdapter;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class EarnFragment extends Fragment {
|
||||
public class EarnFragment extends Fragment implements EarnerCardAdapter.OnCardLongClickListener {
|
||||
private EarnerCardAdapter earnerCardAdapter;
|
||||
private TextView statusBar;
|
||||
|
||||
|
|
@ -31,6 +35,7 @@ public class EarnFragment extends Fragment {
|
|||
statusBar = root.findViewById(R.id.earners_status_bar);
|
||||
EarnerViewModel earnerViewModel = new ViewModelProvider(this).get(EarnerViewModel.class);
|
||||
earnerCardAdapter = new EarnerCardAdapter(binding.earnersCardsContainer);
|
||||
earnerCardAdapter.setOnCardLongClickListener(this);
|
||||
|
||||
earnerViewModel.getEarnerData().observe(getViewLifecycleOwner(), new Observer<EarnerInterface.EarnerGlobalData>() {
|
||||
@Override
|
||||
|
|
@ -44,4 +49,59 @@ public class EarnFragment extends Fragment {
|
|||
|
||||
return root;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCardLongClick(String exchange, View view) {
|
||||
if (view != null) {
|
||||
PopupMenu popupMenu = new PopupMenu(getContext(), view);
|
||||
popupMenu.getMenuInflater().inflate(R.menu.earner_popup_menu, popupMenu.getMenu());
|
||||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
if (item.getItemId() == R.id.earnerMenuGlobalStatus) {
|
||||
EarnerInterface.sendRequestGlobalData(getContext());
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.earnerMenuTotalBalance) {
|
||||
EarnerInterface.sendRequestTotalBalance(exchange, getContext());
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.earnerMenuGetStepSize) {
|
||||
EarnerInterface.sendRequestGetStepSize(exchange, getContext());
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.earnerMenuSetStepSize) {
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.earnerMenuLastSubscription) {
|
||||
EarnerInterface.sendRequestLastSubscription(exchange, getContext());
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.earnerMenuLastRedemption) {
|
||||
EarnerInterface.sendRequestLastRedemption(exchange, getContext());
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.earnerMenuTogglePause) {
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.earnerMenuGetPercentage) {
|
||||
EarnerInterface.sendRequestGetPercentage(exchange, getContext());
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.earnerMenuSetPercentage) {
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.earnerMenuGetTimeBetweenSubscriptions) {
|
||||
EarnerInterface.sendRequestGetTimeBetweenSubscriptions(exchange, getContext());
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.earnerMenuSetTimeBetweenSubscriptions) {
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.earnerMenuGetTimeBetweenRedemptions) {
|
||||
EarnerInterface.sendRequestGetTimeBetweenRedemptions(exchange, getContext());
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.earnerMenuSetTimeBetweenRedemptions) {
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.earnerMenuGetMinimumAmountInTradingAccount) {
|
||||
EarnerInterface.sendRequestGetMinimumAmountInTradingAccount(exchange, getContext());
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.earnerMenuSetMinimumAmountInTradingAccount) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
popupMenu.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public class EarnerCardAdapter {
|
|||
|
||||
|
||||
public interface OnCardLongClickListener {
|
||||
void onCardLongClick(String pair, View v);
|
||||
void onCardLongClick(String exchange, View v);
|
||||
}
|
||||
|
||||
private EarnerCardAdapter.OnCardLongClickListener onCardLongClickListener;
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@
|
|||
<menu>
|
||||
<item android:id="@+id/earnerMenuGetPercentage"
|
||||
android:title="Get percentage" />
|
||||
<item android:id="@+id/earnerMenuGetStepSize"
|
||||
android:title="Get step size" />
|
||||
<item android:id="@+id/earnerMenuGetTimeBetweenSubscriptions"
|
||||
android:title="Get time between subscriptions" />
|
||||
<item android:id="@+id/earnerMenuGetTimeBetweenRedemptions"
|
||||
|
|
@ -28,6 +30,8 @@
|
|||
<menu>
|
||||
<item android:id="@+id/earnerMenuSetPercentage"
|
||||
android:title="Set percentage" />
|
||||
<item android:id="@+id/earnerMenuSetStepSize"
|
||||
android:title="Set step size" />
|
||||
<item android:id="@+id/earnerMenuSetTimeBetweenSubscriptions"
|
||||
android:title="Set time between subscriptions" />
|
||||
<item android:id="@+id/earnerMenuSetTimeBetweenRedemptions"
|
||||
|
|
|
|||
Loading…
Reference in New Issue