Earn requests done

This commit is contained in:
Nicolás Sánchez 2025-03-13 10:33:11 -03:00
parent 958ed62b45
commit 4dbf1177a2
3 changed files with 277 additions and 5 deletions

View File

@ -6,9 +6,13 @@ import android.app.AlertDialog;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.text.InputType;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import com.example.dcav2gui.ui.earners.EarnerData;
import com.example.dcav2gui.ui.home.HomeFragment;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
@ -87,7 +91,7 @@ public class EarnerInterface {
try {
JsonObject result = getLastSubscription(exchange, true);
String dialogTitle = "Last subscription";
String dialogMessage = result.get("last_subscription").toString();
String dialogMessage = HomeFragment.timeStampConverter(result.get("last_subscription").getAsJsonObject().get(exchange).getAsDouble(),false);
new Handler(Looper.getMainLooper()).post(() -> showSimpleDialog(dialogTitle, dialogMessage, context));
} catch (IOException e) {
e.printStackTrace();
@ -101,7 +105,7 @@ public class EarnerInterface {
try {
JsonObject result = getLastRedemption(exchange, true);
String dialogTitle = "Last redemption";
String dialogMessage = result.get("last_redemption").toString();
String dialogMessage = HomeFragment.timeStampConverter(result.get("last_redemption").getAsJsonObject().get(exchange).getAsDouble(),false);
new Handler(Looper.getMainLooper()).post(() -> showSimpleDialog(dialogTitle, dialogMessage, context));
} catch (IOException e) {
e.printStackTrace();
@ -117,7 +121,7 @@ public class EarnerInterface {
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());
new Handler(Looper.getMainLooper()).post(() -> Toast.makeText(context, "Failed to get time between subscriptions", Toast.LENGTH_SHORT).show());
}
}).start();
}
@ -129,7 +133,7 @@ public class EarnerInterface {
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());
new Handler(Looper.getMainLooper()).post(() -> Toast.makeText(context, "Failed to get time between redemptions", Toast.LENGTH_SHORT).show());
}
}).start();
}
@ -141,11 +145,263 @@ public class EarnerInterface {
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());
new Handler(Looper.getMainLooper()).post(() -> Toast.makeText(context, "Failed to get minimum amount in trading account", Toast.LENGTH_SHORT).show());
}
}).start();
}
public static void sendRequestTogglePause(String exchange, Context context) {
new Thread(() -> {
try {
JsonObject result = togglePause(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 toggle pause", Toast.LENGTH_SHORT).show());
}
}).start();
}
public static void sendRequestSetStepSize(String exchange, Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Change step size on "+ exchange);
final EditText input = new EditText(context);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
input.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
builder.setView(input);
builder.setPositiveButton("Set", (dialog, which) -> {
final double amountToAdd = Double.parseDouble(input.getText().toString());
new Thread(() -> {
try {
JsonObject response = setStepSize(exchange, amountToAdd,true);
new Handler(Looper.getMainLooper()).post(() -> {
showJsonDialog(response, context);
});
} catch (IOException e) {
e.printStackTrace();
// Show an error dialog on the main thread
new Handler(Looper.getMainLooper()).post(() -> {
AlertDialog.Builder errorBuilder = new AlertDialog.Builder(context);
errorBuilder.setTitle("Error");
errorBuilder.setMessage("Failed to change step size: " + e.getMessage());
errorBuilder.setPositiveButton("OK", null);
errorBuilder.show();
});
}
}).start();
});
builder.setNegativeButton("Cancel", (dialog, which) -> dialog.cancel());
builder.show();
}
public static void sendRequestSetPercentage(String exchange, Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Change percentage on "+ exchange);
final EditText input = new EditText(context);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
input.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
builder.setView(input);
builder.setPositiveButton("Set", (dialog, which) -> {
final double newPercentage = Double.parseDouble(input.getText().toString());
new Thread(() -> {
try {
JsonObject response = setPercentage(exchange, newPercentage,true);
new Handler(Looper.getMainLooper()).post(() -> {
showJsonDialog(response, context);
});
} catch (IOException e) {
e.printStackTrace();
// Show an error dialog on the main thread
new Handler(Looper.getMainLooper()).post(() -> {
AlertDialog.Builder errorBuilder = new AlertDialog.Builder(context);
errorBuilder.setTitle("Error");
errorBuilder.setMessage("Failed to change percentage: " + e.getMessage());
errorBuilder.setPositiveButton("OK", null);
errorBuilder.show();
});
}
}).start();
});
builder.setNegativeButton("Cancel", (dialog, which) -> dialog.cancel());
builder.show();
}
public static void sendRequestSetTimeBetweenSubscriptions(String exchange, Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Change time between subscriptions on "+ exchange);
final EditText input = new EditText(context);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
input.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
builder.setView(input);
builder.setPositiveButton("Set", (dialog, which) -> {
final double newTime = Double.parseDouble(input.getText().toString());
new Thread(() -> {
try {
JsonObject response = setTimeBetweenSubscriptions(exchange, newTime,true);
new Handler(Looper.getMainLooper()).post(() -> {
showJsonDialog(response, context);
});
} catch (IOException e) {
e.printStackTrace();
// Show an error dialog on the main thread
new Handler(Looper.getMainLooper()).post(() -> {
AlertDialog.Builder errorBuilder = new AlertDialog.Builder(context);
errorBuilder.setTitle("Error");
errorBuilder.setMessage("Failed to change time between subscriptions: " + e.getMessage());
errorBuilder.setPositiveButton("OK", null);
errorBuilder.show();
});
}
}).start();
});
builder.setNegativeButton("Cancel", (dialog, which) -> dialog.cancel());
builder.show();
}
public static void sendRequestSetTimeBetweenRedemptions(String exchange, Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Change time between redemptions on "+ exchange);
final EditText input = new EditText(context);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
input.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
builder.setView(input);
builder.setPositiveButton("Set", (dialog, which) -> {
final double newTime = Double.parseDouble(input.getText().toString());
new Thread(() -> {
try {
JsonObject response = setTimeBetweenRedemptions(exchange, newTime,true);
new Handler(Looper.getMainLooper()).post(() -> {
showJsonDialog(response, context);
});
} catch (IOException e) {
e.printStackTrace();
// Show an error dialog on the main thread
new Handler(Looper.getMainLooper()).post(() -> {
AlertDialog.Builder errorBuilder = new AlertDialog.Builder(context);
errorBuilder.setTitle("Error");
errorBuilder.setMessage("Failed to change time between redemptions: " + e.getMessage());
errorBuilder.setPositiveButton("OK", null);
errorBuilder.show();
});
}
}).start();
});
builder.setNegativeButton("Cancel", (dialog, which) -> dialog.cancel());
builder.show();
}
public static void sendRequestSetMinimumAmountInTradingAccount(String exchange, Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Change minimum amount in trading account on "+ exchange);
final EditText input = new EditText(context);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
input.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
builder.setView(input);
builder.setPositiveButton("Set", (dialog, which) -> {
final double minimumAmount = Double.parseDouble(input.getText().toString());
new Thread(() -> {
try {
JsonObject response = setMinimumAmountInTradingAccount(exchange, minimumAmount,true);
new Handler(Looper.getMainLooper()).post(() -> {
showJsonDialog(response, context);
});
} catch (IOException e) {
e.printStackTrace();
// Show an error dialog on the main thread
new Handler(Looper.getMainLooper()).post(() -> {
AlertDialog.Builder errorBuilder = new AlertDialog.Builder(context);
errorBuilder.setTitle("Error");
errorBuilder.setMessage("Failed to change minimum amount in trading account: " + e.getMessage());
errorBuilder.setPositiveButton("OK", null);
errorBuilder.show();
});
}
}).start();
});
builder.setNegativeButton("Cancel", (dialog, which) -> dialog.cancel());
builder.show();
}
public static void sendRequestSubscribeFunds(String exchange, Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Subscribe funds on "+ exchange);
final EditText input = new EditText(context);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
input.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
builder.setView(input);
builder.setPositiveButton("Set", (dialog, which) -> {
final double amountToSubscribe = Double.parseDouble(input.getText().toString());
new Thread(() -> {
try {
JsonObject response = subscribeFunds(exchange, amountToSubscribe,true);
new Handler(Looper.getMainLooper()).post(() -> {
showJsonDialog(response, context);
});
} catch (IOException e) {
e.printStackTrace();
// Show an error dialog on the main thread
new Handler(Looper.getMainLooper()).post(() -> {
AlertDialog.Builder errorBuilder = new AlertDialog.Builder(context);
errorBuilder.setTitle("Error");
errorBuilder.setMessage("Failed to subscribe funds: " + e.getMessage());
errorBuilder.setPositiveButton("OK", null);
errorBuilder.show();
});
}
}).start();
});
builder.setNegativeButton("Cancel", (dialog, which) -> dialog.cancel());
builder.show();
}
public static void sendRequestRedeemFunds(String exchange, Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Redeem funds on "+ exchange);
final EditText input = new EditText(context);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
input.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
builder.setView(input);
builder.setPositiveButton("Set", (dialog, which) -> {
final double amountToRedeem = Double.parseDouble(input.getText().toString());
new Thread(() -> {
try {
JsonObject response = redeemFunds(exchange, amountToRedeem,true);
new Handler(Looper.getMainLooper()).post(() -> {
showJsonDialog(response, context);
});
} catch (IOException e) {
e.printStackTrace();
// Show an error dialog on the main thread
new Handler(Looper.getMainLooper()).post(() -> {
AlertDialog.Builder errorBuilder = new AlertDialog.Builder(context);
errorBuilder.setTitle("Error");
errorBuilder.setMessage("Failed to redeem funds: " + e.getMessage());
errorBuilder.setPositiveButton("OK", null);
errorBuilder.show();
});
}
}).start();
});
builder.setNegativeButton("Cancel", (dialog, which) -> dialog.cancel());
builder.show();
}
public static EarnerGlobalData getEarnerGlobalData(boolean retry) throws IOException {
double uptime = 0.0;
List<EarnerData> earnerList = new ArrayList<>();

View File

@ -68,6 +68,7 @@ public class EarnFragment extends Fragment implements EarnerCardAdapter.OnCardLo
EarnerInterface.sendRequestGetStepSize(exchange, getContext());
return true;
} else if (item.getItemId() == R.id.earnerMenuSetStepSize) {
EarnerInterface.sendRequestSetStepSize(exchange, getContext());
return true;
} else if (item.getItemId() == R.id.earnerMenuLastSubscription) {
EarnerInterface.sendRequestLastSubscription(exchange, getContext());
@ -76,26 +77,37 @@ public class EarnFragment extends Fragment implements EarnerCardAdapter.OnCardLo
EarnerInterface.sendRequestLastRedemption(exchange, getContext());
return true;
} else if (item.getItemId() == R.id.earnerMenuTogglePause) {
EarnerInterface.sendRequestTogglePause(exchange, getContext());
return true;
} else if (item.getItemId() == R.id.earnerMenuGetPercentage) {
EarnerInterface.sendRequestGetPercentage(exchange, getContext());
return true;
} else if (item.getItemId() == R.id.earnerMenuSetPercentage) {
EarnerInterface.sendRequestSetPercentage(exchange, getContext());
return true;
} else if (item.getItemId() == R.id.earnerMenuGetTimeBetweenSubscriptions) {
EarnerInterface.sendRequestGetTimeBetweenSubscriptions(exchange, getContext());
return true;
} else if (item.getItemId() == R.id.earnerMenuSetTimeBetweenSubscriptions) {
EarnerInterface.sendRequestSetTimeBetweenSubscriptions(exchange, getContext());
return true;
} else if (item.getItemId() == R.id.earnerMenuGetTimeBetweenRedemptions) {
EarnerInterface.sendRequestGetTimeBetweenRedemptions(exchange, getContext());
return true;
} else if (item.getItemId() == R.id.earnerMenuSetTimeBetweenRedemptions) {
EarnerInterface.sendRequestSetTimeBetweenRedemptions(exchange, getContext());
return true;
} else if (item.getItemId() == R.id.earnerMenuGetMinimumAmountInTradingAccount) {
EarnerInterface.sendRequestGetMinimumAmountInTradingAccount(exchange, getContext());
return true;
} else if (item.getItemId() == R.id.earnerMenuSetMinimumAmountInTradingAccount) {
EarnerInterface.sendRequestSetMinimumAmountInTradingAccount(exchange, getContext());
return true;
} else if (item.getItemId() == R.id.earnerMenuSubscribe){
EarnerInterface.sendRequestSubscribeFunds(exchange, getContext());
return true;
} else if (item.getItemId() == R.id.earnerMenuRedeem) {
EarnerInterface.sendRequestRedeemFunds(exchange, getContext());
return true;
}
return false;

View File

@ -10,6 +10,10 @@
android:title="Last redemption" />
<item android:id="@+id/earnerMenuTogglePause"
android:title="Toggle pause" />
<item android:id="@+id/earnerMenuSubscribe"
android:title="Subscribe" />
<item android:id="@+id/earnerMenuRedeem"
android:title="Redeem" />
<item android:id="@+id/earnerMenuGet"
android:title="Get..." >
<menu>