diff --git a/app/src/main/java/com/cappielloantonio/tempo/subsonic/api/system/SystemClient.java b/app/src/main/java/com/cappielloantonio/tempo/subsonic/api/system/SystemClient.java index d4a6521a..c5227da7 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/subsonic/api/system/SystemClient.java +++ b/app/src/main/java/com/cappielloantonio/tempo/subsonic/api/system/SystemClient.java @@ -5,6 +5,9 @@ import android.util.Log; import com.cappielloantonio.tempo.subsonic.RetrofitClient; import com.cappielloantonio.tempo.subsonic.Subsonic; import com.cappielloantonio.tempo.subsonic.base.ApiResponse; +import com.cappielloantonio.tempo.util.Preferences; + +import java.util.concurrent.TimeUnit; import retrofit2.Call; @@ -21,7 +24,15 @@ public class SystemClient { public Call ping() { Log.d(TAG, "ping()"); - return systemService.ping(subsonic.getParams()); + Call pingCall = systemService.ping(subsonic.getParams()); + if (Preferences.isInUseServerAddressLocal()) { + pingCall.timeout() + .timeout(1, TimeUnit.SECONDS); + } else { + pingCall.timeout() + .timeout(3, TimeUnit.SECONDS); + } + return pingCall; } public Call getLicense() { diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/activity/MainActivity.java b/app/src/main/java/com/cappielloantonio/tempo/ui/activity/MainActivity.java index c959648b..c9d3bd41 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/activity/MainActivity.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/activity/MainActivity.java @@ -82,6 +82,7 @@ public class MainActivity extends BaseActivity { @Override protected void onStart() { super.onStart(); + pingServer(); initService(); } @@ -351,6 +352,7 @@ public class MainActivity extends BaseActivity { Preferences.switchInUseServerAddress(); App.refreshSubsonicClient(); pingServer(); + resetView(); } else { Preferences.setOpenSubsonic(subsonicResponse.getOpenSubsonic() != null && subsonicResponse.getOpenSubsonic()); } @@ -361,6 +363,7 @@ public class MainActivity extends BaseActivity { Preferences.switchInUseServerAddress(); App.refreshSubsonicClient(); pingServer(); + resetView(); } else { mainViewModel.ping().observe(this, subsonicResponse -> { if (subsonicResponse == null) { @@ -376,6 +379,13 @@ public class MainActivity extends BaseActivity { } } + private void resetView() { + resetViewModel(); + int id = Objects.requireNonNull(navController.getCurrentDestination()).getId(); + navController.popBackStack(id, true); + navController.navigate(id); + } + private void getOpenSubsonicExtensions() { if (Preferences.getToken() != null) { mainViewModel.getOpenSubsonicExtensions().observe(this, openSubsonicExtensions -> { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 37b0e501..70aa972f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -312,6 +312,9 @@ https://github.com/eddyizm/tempo Follow the development Github + https://github.com/eddyizm/tempo/discussions + Join community discussions and support + User support Set image resolution Language Log out diff --git a/app/src/main/res/xml/global_preferences.xml b/app/src/main/res/xml/global_preferences.xml index 586e003e..f240a304 100644 --- a/app/src/main/res/xml/global_preferences.xml +++ b/app/src/main/res/xml/global_preferences.xml @@ -376,6 +376,14 @@ android:data="@string/settings_github_link" /> + + + +