1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2025-02-21 14:51:10 +01:00

Prevent display of empty changelog

This commit is contained in:
José Rebelo 2023-08-09 19:37:27 +01:00
parent 3dc7fcad00
commit 942e853ca7
2 changed files with 22 additions and 11 deletions

View File

@ -63,7 +63,6 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.appbar.MaterialToolbar; import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.color.DynamicColors;
import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.navigation.NavigationView; import com.google.android.material.navigation.NavigationView;
@ -95,7 +94,7 @@ import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;
import nodomain.freeyourgadget.gadgetbridge.model.DailyTotals; import nodomain.freeyourgadget.gadgetbridge.model.DailyTotals;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceService; import nodomain.freeyourgadget.gadgetbridge.model.DeviceService;
import nodomain.freeyourgadget.gadgetbridge.util.AndroidUtils; import nodomain.freeyourgadget.gadgetbridge.util.AndroidUtils;
import nodomain.freeyourgadget.gadgetbridge.util.ChangeLog; import nodomain.freeyourgadget.gadgetbridge.util.GBChangeLog;
import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper; import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper;
import nodomain.freeyourgadget.gadgetbridge.util.GB; import nodomain.freeyourgadget.gadgetbridge.util.GB;
import nodomain.freeyourgadget.gadgetbridge.util.Prefs; import nodomain.freeyourgadget.gadgetbridge.util.Prefs;
@ -362,8 +361,8 @@ public class ControlCenterv2 extends AppCompatActivity
checkAndRequestPermissions(); checkAndRequestPermissions();
} }
ChangeLog cl = createChangeLog(); GBChangeLog cl = createChangeLog();
if (cl.isFirstRun()) { if (cl.isFirstRun() && cl.hasChanges(cl.isFirstRunEver())) {
try { try {
cl.getMaterialLogDialog().show(); cl.getMaterialLogDialog().show();
} catch (Exception ignored) { } catch (Exception ignored) {
@ -452,9 +451,13 @@ public class ControlCenterv2 extends AppCompatActivity
startActivity(i); startActivity(i);
return false; return false;
case R.id.external_changelog: case R.id.external_changelog:
ChangeLog cl = createChangeLog(); GBChangeLog cl = createChangeLog();
try { try {
if (cl.hasChanges(false)) {
cl.getMaterialLogDialog().show(); cl.getMaterialLogDialog().show();
} else {
cl.getMaterialFullLogDialog().show();
}
} catch (Exception ignored) { } catch (Exception ignored) {
GB.toast(getBaseContext(), "Error showing Changelog", Toast.LENGTH_LONG, GB.ERROR); GB.toast(getBaseContext(), "Error showing Changelog", Toast.LENGTH_LONG, GB.ERROR);
} }
@ -468,12 +471,12 @@ public class ControlCenterv2 extends AppCompatActivity
return false; return false;
} }
private ChangeLog createChangeLog() { private GBChangeLog createChangeLog() {
String css = ChangeLog.DEFAULT_CSS; String css = GBChangeLog.DEFAULT_CSS;
css += "body { " css += "body { "
+ "color: " + AndroidUtils.getTextColorHex(getBaseContext()) + "; " + "color: " + AndroidUtils.getTextColorHex(getBaseContext()) + "; "
+ "}"; + "}";
return new ChangeLog(this, css); return new GBChangeLog(this, css);
} }
private void launchDiscoveryActivity() { private void launchDiscoveryActivity() {

View File

@ -24,10 +24,11 @@ import androidx.appcompat.app.AlertDialog;
import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import de.cketti.library.changelog.ChangeLog;
import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.R;
public class ChangeLog extends de.cketti.library.changelog.ChangeLog { public class GBChangeLog extends ChangeLog {
public ChangeLog(Context context, String css) { public GBChangeLog(Context context, String css) {
super(context, css); super(context, css);
} }
@ -39,6 +40,13 @@ public class ChangeLog extends de.cketti.library.changelog.ChangeLog {
return getMaterialDialog(true); return getMaterialDialog(true);
} }
/**
* Checks whether there are changes to display.
*/
public boolean hasChanges(final boolean full) {
return !getChangeLog(full).isEmpty();
}
protected AlertDialog getMaterialDialog(boolean full) { protected AlertDialog getMaterialDialog(boolean full) {
WebView wv = new WebView(mContext); WebView wv = new WebView(mContext);
wv.setBackgroundColor(0); // transparent wv.setBackgroundColor(0); // transparent