Skip to content

Commit

Permalink
- Fix problems with cryptonodepooljs stats
Browse files Browse the repository at this point in the history
- Update start button state
  • Loading branch information
Mas7erMind committed Mar 16, 2020
1 parent f24633f commit ab241b0
Show file tree
Hide file tree
Showing 5 changed files with 80 additions and 65 deletions.
104 changes: 57 additions & 47 deletions app/src/main/java/io/scalaproject/androidminer/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -531,12 +531,11 @@ public void updateUI() {
tvWorkerName.setText(sWorkerName);

updatePayoutWidgetStatus();
updateStartButton();
refreshLogOutputView();
updateCores();
}

private void updateStartButton() {
public void updateStartButton() {
if (isValidConfig()) {
enableStartBtn(true);
}
Expand Down Expand Up @@ -590,15 +589,9 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) {
}

setTitle(getResources().getString(R.string.miner));

ProviderManager.afterSave();
ProviderManager.request.setListener(payoutListener).start();
if(!ProviderManager.data.isNew) {
updatePayoutWidget(ProviderManager.data);
enablePayoutWidget(true, "XLA");
}

updateStatsListener();
updateUI();

break;
case R.id.settings:
SettingsFragment settings_fragment = (SettingsFragment) getSupportFragmentManager().findFragmentByTag("settings_fragment");
Expand All @@ -618,6 +611,16 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) {
return true;
}

public void updateStatsListener() {
ProviderManager.afterSave();
ProviderManager.request.setListener(payoutListener).start();

if(!ProviderManager.data.isNew) {
updatePayoutWidget(ProviderManager.data);
enablePayoutWidget(true, "XLA");
}
}

@Override
public void onBackPressed() {
if (drawer.isDrawerOpen(GravityCompat.START)) {
Expand Down Expand Up @@ -741,44 +744,51 @@ private void setMiningButtonState(Boolean state) {
Drawable buttonDrawable = btnStart.getBackground();
buttonDrawable = DrawableCompat.wrap(buttonDrawable);

if (state) {
updateHashrate("n/a");
DrawableCompat.setTint(buttonDrawable, getResources().getColor(R.color.bg_lighter));
btnStart.setBackground(buttonDrawable);
btnStart.setText("Stop");

// Hashrate button
btnMinerH.setEnabled(true);
buttonDrawable = btnMinerH.getBackground();
buttonDrawable = DrawableCompat.wrap(buttonDrawable);
DrawableCompat.setTint(buttonDrawable, getResources().getColor(R.color.bg_lighter));
btnMinerH.setBackground(buttonDrawable);
btnMinerH.setTextColor(getResources().getColor(R.color.c_white));

// Pause button
enablePauseBtn(true);

// Resume button
enableResumeBtn(false);
} else {
updateHashrate("0");
DrawableCompat.setTint(buttonDrawable, getResources().getColor(R.color.bg_green));
btnStart.setBackground(buttonDrawable);
btnStart.setText("Start");

// Hashrate button
btnMinerH.setEnabled(false);
buttonDrawable = btnMinerH.getBackground();
buttonDrawable = DrawableCompat.wrap(buttonDrawable);
DrawableCompat.setTint(buttonDrawable, getResources().getColor(R.color.bg_black));
btnMinerH.setBackground(buttonDrawable);
btnMinerH.setTextColor(getResources().getColor(R.color.c_black));

// Pause button
enablePauseBtn(false);
if(isValidConfig()) {
enableStartBtn(true);

// Resume button
enableResumeBtn(false);
if (state) {
updateHashrate("n/a");
DrawableCompat.setTint(buttonDrawable, getResources().getColor(R.color.bg_lighter));
btnStart.setBackground(buttonDrawable);
btnStart.setText("Stop");

// Hashrate button
btnMinerH.setEnabled(true);
buttonDrawable = btnMinerH.getBackground();
buttonDrawable = DrawableCompat.wrap(buttonDrawable);
DrawableCompat.setTint(buttonDrawable, getResources().getColor(R.color.bg_lighter));
btnMinerH.setBackground(buttonDrawable);
btnMinerH.setTextColor(getResources().getColor(R.color.c_white));

// Pause button
enablePauseBtn(true);

// Resume button
enableResumeBtn(false);
} else {
updateHashrate("0");
DrawableCompat.setTint(buttonDrawable, getResources().getColor(R.color.bg_green));
btnStart.setBackground(buttonDrawable);
btnStart.setText("Start");

// Hashrate button
btnMinerH.setEnabled(false);
buttonDrawable = btnMinerH.getBackground();
buttonDrawable = DrawableCompat.wrap(buttonDrawable);
DrawableCompat.setTint(buttonDrawable, getResources().getColor(R.color.bg_black));
btnMinerH.setBackground(buttonDrawable);
btnMinerH.setTextColor(getResources().getColor(R.color.c_black));

// Pause button
enablePauseBtn(false);

// Resume button
enableResumeBtn(false);
}
}
else {
enableStartBtn(false);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,8 @@ public void onClick(View view) {
NavigationView nav = main.findViewById(R.id.nav_view);
nav.getMenu().getItem(0).setChecked(true);

main.updateStartButton();
main.updateStatsListener();
main.updateUI();
}
});
Expand Down
14 changes: 8 additions & 6 deletions app/src/main/java/io/scalaproject/androidminer/Tools.java
Original file line number Diff line number Diff line change
Expand Up @@ -280,13 +280,15 @@ static float getCurrentCPUTemperature() {

String file = readFile("/sys/devices/virtual/thermal/thermal_zone0/temp", '\n',new byte[4096]);
if (file != null) {
output = Float.parseFloat(file);
output = output / 1000;
output = (float) Long.parseLong(file);
}

/*if(output > 0.0f && Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
if(output > 0.0f && Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
output = output / 1000;
}*/
}

if(output > 100.0f) // ugly temporary workaround
output = 0.0f;

return output;
}
Expand Down Expand Up @@ -329,7 +331,7 @@ static public String parseCurrency(String value, long coinUnits, long denominati
return nf.format(d2) + " " + symbol.toUpperCase();
}

static public Long tryParseLong(String s, Long fallback) {
static public Long tryParseLong(String s, Long fallback) {
try {
return Long.parseLong(s);
} catch (Exception e) {
Expand All @@ -345,7 +347,7 @@ private static Double tryParseDouble(String s) {
}
}

static public String getReadableHashRateString(long hashrate) {
static public String getReadableHashRateString(long hashrate) {
BigDecimal bn = new BigDecimal(hashrate);
BigDecimal bnThousand = new BigDecimal(1000);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ static public void afterSave() {
static public void generate() {
request.stop();
request.mPoolItem = null;
mPools.clear();

//User Defined
add("custom", "custom", "3333", 0, "", "");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,27 +44,27 @@ protected void onBackgroundFetchData() {

JSONObject joStats = new JSONObject(dataStatsNetwork);
JSONObject joStatsConfig = joStats.getJSONObject("config");
JSONObject joStatsLastBlock = joStats.getJSONObject("lastblock");
//JSONObject joStatsLastBlock = joStats.getJSONObject("lastblock");
JSONObject joStatsNetwork = joStats.getJSONObject("network");
JSONObject joStatsPool = joStats.getJSONObject("pool");

mBlockData.coin.name = joStatsConfig.optString("coin").toUpperCase();
long coinUnits = mBlockData.coin.units = tryParseLong(joStatsConfig.optString("coinUnits"), 1L);
String symbol = mBlockData.coin.symbol = joStatsConfig.optString("symbol").toUpperCase();
long denominationUnit = mBlockData.coin.denominationUnit = tryParseLong(joStatsConfig.optString("denominationUnit"), 1L);
mBlockData.coin.units = tryParseLong(joStatsConfig.optString("coinUnits"), 1L);
mBlockData.coin.symbol = joStatsConfig.optString("symbol").toUpperCase();
mBlockData.coin.denominationUnit = tryParseLong(joStatsConfig.optString("denominationUnit"), 1L);

mBlockData.pool.lastBlockHeight = joStatsPool.optString("height");
//mBlockData.pool.lastBlockHeight = joStatsPool.optString("height");
mBlockData.pool.difficulty = getReadableHashRateString(joStatsPool.optLong("totalDiff"));
mBlockData.pool.lastBlockTime = pTime.format(new Date(joStatsLastBlock.optLong("timestamp") * 1000));
mBlockData.pool.lastRewardAmount = parseCurrency(joStatsLastBlock.optString("reward", "0"), coinUnits, denominationUnit, symbol);
mBlockData.pool.lastBlockTime = pTime.format(new Date(joStatsPool.optLong("lastBlockFound")));
//mBlockData.pool.lastRewardAmount = parseCurrency(joStatsLastBlock.optString("reward", "0"), mBlockData.coin.units, mBlockData.coin.denominationUnit, mBlockData.coin.symbol);
mBlockData.pool.hashrate = String.valueOf(tryParseLong(joStatsPool.optString("hashrate"),0L) / 1000L);
mBlockData.pool.blocks = joStatsPool.optString("totalBlocks", "0");
mBlockData.pool.minPayout = parseCurrency(joStatsConfig.optString("minPaymentThreshold", "0"), coinUnits, denominationUnit, symbol);
mBlockData.pool.blocks = joStatsPool.optString("roundHashes", "0");
mBlockData.pool.minPayout = parseCurrency(joStatsConfig.optString("minPaymentThreshold", "0"), mBlockData.coin.units, mBlockData.coin.denominationUnit, mBlockData.coin.symbol);

mBlockData.network.lastBlockHeight = joStatsLastBlock.optString("height");
mBlockData.network.lastBlockHeight = joStatsNetwork.optString("height");
mBlockData.network.difficulty = getReadableHashRateString(joStatsNetwork.optLong("difficulty"));
mBlockData.network.lastBlockTime = pTime.format(new Date(joStatsLastBlock.optLong("timestamp") * 1000));
mBlockData.network.lastRewardAmount = parseCurrency(joStatsLastBlock.optString("reward", "0"), coinUnits, denominationUnit, symbol);
mBlockData.network.lastBlockTime = pTime.format(new Date(joStatsNetwork.optLong("timestamp") * 1000));
mBlockData.network.lastRewardAmount = parseCurrency(joStatsNetwork.optString("reward", "0"), mBlockData.coin.units, mBlockData.coin.denominationUnit, mBlockData.coin.symbol);
} catch (JSONException e) {
Log.i(LOG_TAG, "NETWORK\n" + e.toString());
e.printStackTrace();
Expand Down

0 comments on commit ab241b0

Please sign in to comment.