Added Subsonic client singleton

This commit is contained in:
CappielloAntonio 2021-07-24 14:49:13 +02:00
parent 702b454bf6
commit 4053500080

View file

@ -7,6 +7,8 @@ import android.content.SharedPreferences;
import androidx.preference.PreferenceManager; import androidx.preference.PreferenceManager;
import com.cappielloantonio.play.helper.ThemeHelper; import com.cappielloantonio.play.helper.ThemeHelper;
import com.cappielloantonio.play.subsonic.Subsonic;
import com.cappielloantonio.play.subsonic.SubsonicPreferences;
import com.cappielloantonio.play.util.PreferenceUtil; import com.cappielloantonio.play.util.PreferenceUtil;
import org.jellyfin.apiclient.AppInfo; import org.jellyfin.apiclient.AppInfo;
@ -23,6 +25,7 @@ public class App extends Application {
private static final String TAG = "App"; private static final String TAG = "App";
private static App instance; private static App instance;
private static ApiClient apiClient; private static ApiClient apiClient;
private static Subsonic subsonic;
@Override @Override
public void onCreate() { public void onCreate() {
@ -60,4 +63,21 @@ public class App extends Application {
return jellyfin.createApi(server, null, AndroidDevice.fromContext(context), new ApiEventListener()); return jellyfin.createApi(server, null, AndroidDevice.fromContext(context), new ApiEventListener());
} }
public static Subsonic getSubsonicClientInstance(Context context) {
if (subsonic == null) {
subsonic = getSubsonicClient(context);
}
return subsonic;
}
private static Subsonic getSubsonicClient(Context context) {
String server = PreferenceUtil.getInstance(context).getServer();
String username = PreferenceUtil.getInstance(context).getUser();
String password = PreferenceUtil.getInstance(context).getPassword();
SubsonicPreferences preferences = new SubsonicPreferences(server, username, password);
return new Subsonic(preferences);
}
} }