fix: Lag during startup when local url is not available

This commit is contained in:
SinTan1729 2025-09-23 02:26:26 -05:00
parent 1223062388
commit be4346b3d1
No known key found for this signature in database
GPG key ID: 0538DD402EA50898
2 changed files with 30 additions and 1 deletions

View file

@ -40,6 +40,9 @@ import com.google.android.material.color.DynamicColors;
import com.google.common.util.concurrent.MoreExecutors;
import java.util.Objects;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
@UnstableApi
@ -82,6 +85,7 @@ public class MainActivity extends BaseActivity {
@Override
protected void onStart() {
super.onStart();
pingServer();
initService();
}
@ -351,6 +355,7 @@ public class MainActivity extends BaseActivity {
Preferences.switchInUseServerAddress();
App.refreshSubsonicClient();
pingServer();
resetView();
} else {
Preferences.setOpenSubsonic(subsonicResponse.getOpenSubsonic() != null && subsonicResponse.getOpenSubsonic());
}
@ -361,6 +366,7 @@ public class MainActivity extends BaseActivity {
Preferences.switchInUseServerAddress();
App.refreshSubsonicClient();
pingServer();
resetView();
} else {
mainViewModel.ping().observe(this, subsonicResponse -> {
if (subsonicResponse == null) {
@ -376,6 +382,18 @@ public class MainActivity extends BaseActivity {
}
}
private void resetView() {
resetViewModel();
try {
int id = Objects.requireNonNull(navController.getCurrentDestination()).getId();
navController.popBackStack(id, true);
navController.navigate(id);
} catch(NullPointerException e) {
e.printStackTrace();
quit();
}
}
private void getOpenSubsonicExtensions() {
if (Preferences.getToken() != null) {
mainViewModel.getOpenSubsonicExtensions().observe(this, openSubsonicExtensions -> {