Revised the gestures of the server adapter

This commit is contained in:
CappielloAntonio 2021-08-09 17:55:30 +02:00
parent 642c41f0c0
commit d88094b0cf
11 changed files with 195 additions and 21 deletions

View file

@ -5,8 +5,11 @@ import android.app.Application;
import androidx.lifecycle.LiveData;
import com.cappielloantonio.play.database.AppDatabase;
import com.cappielloantonio.play.database.dao.QueueDao;
import com.cappielloantonio.play.database.dao.ServerDao;
import com.cappielloantonio.play.model.Server;
import com.cappielloantonio.play.model.Song;
import com.cappielloantonio.play.util.QueueUtil;
import java.util.List;
@ -38,6 +41,20 @@ public class ServerRepository {
thread.start();
}
public void order(List<Server> servers) {
try {
final Thread delete = new Thread(new DeleteAllThreadSafe(serverDao));
final Thread insertAll = new Thread(new InsertAllThreadSafe(serverDao, servers));
delete.start();
delete.join();
insertAll.start();
insertAll.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private static class InsertThreadSafe implements Runnable {
private ServerDao serverDao;
private Server server;
@ -67,4 +84,32 @@ public class ServerRepository {
serverDao.delete(server);
}
}
private static class InsertAllThreadSafe implements Runnable {
private ServerDao serverDao;
private List<Server> servers;
public InsertAllThreadSafe(ServerDao queueDao, List<Server> servers) {
this.serverDao = queueDao;
this.servers = servers;
}
@Override
public void run() {
serverDao.insertAll(servers);
}
}
private static class DeleteAllThreadSafe implements Runnable {
private ServerDao serverDao;
public DeleteAllThreadSafe(ServerDao serverDao) {
this.serverDao = serverDao;
}
@Override
public void run() {
serverDao.deleteAll();
}
}
}

View file

@ -25,14 +25,19 @@ public class SystemRepository {
.enqueue(new Callback<SubsonicResponse>() {
@Override
public void onResponse(Call<SubsonicResponse> call, retrofit2.Response<SubsonicResponse> response) {
if (response.body().getStatus().getValue().equals(ResponseStatus.FAILED)) {
callback.onError(new Exception(response.body().getError().getCode().getValue() + " - " + response.body().getError().getMessage()));
} else if (response.body().getStatus().getValue().equals(ResponseStatus.OK)) {
String salt = response.raw().request().url().queryParameter("s");
String token = response.raw().request().url().queryParameter("t");
callback.onSuccess(token, salt);
} else {
callback.onError(new Exception("Empty response"));
if(response.body() != null) {
if (response.body().getStatus().getValue().equals(ResponseStatus.FAILED)) {
callback.onError(new Exception(response.body().getError().getCode().getValue() + " - " + response.body().getError().getMessage()));
} else if (response.body().getStatus().getValue().equals(ResponseStatus.OK)) {
String salt = response.raw().request().url().queryParameter("s");
String token = response.raw().request().url().queryParameter("t");
callback.onSuccess(token, salt);
} else {
callback.onError(new Exception("Empty response"));
}
}
else {
callback.onError(new Exception(String.valueOf(response.code())));
}
}