Exemplo n.º 1
0
  public Observable<GameServer> refreshFavourites() {
    return Observable.create(
        subscriber -> {
          new Thread(
                  () -> {
                    favourites.forEach(
                        x -> {
                          gameService
                              .getServerStatus(new Tuple(x.getIp(), x.getPort()))
                              .subscribe(
                                  s -> {
                                    if (!subscriber.isUnsubscribed()) {
                                      subscriber.onNext(
                                          ServerStatusParser.statusToServer(
                                              (String[]) s, new Tuple(x.getIp(), x.getPort())));
                                    }
                                  });
                        });

                    if (!subscriber.isUnsubscribed()) {
                      subscriber.onCompleted();
                    }
                  })
              .start();
        });
  }
Exemplo n.º 2
0
  public Observable<GameServer> getNewServerList() {
    servers.clear();

    return Observable.create(
        subscriber -> {
          new Thread(
                  () -> {
                    masterService
                        .getServers(masterServer)
                        .subscribe(
                            list -> {
                              list.parallelStream()
                                  .forEach(
                                      ipTuple -> {
                                        if (!subscriber.isUnsubscribed()) {
                                          gameService
                                              .getServerStatus(ipTuple)
                                              .subscribe(
                                                  serverStatus -> {
                                                    GameServer server =
                                                        ServerStatusParser.statusToServer(
                                                            serverStatus, ipTuple);
                                                    servers.add(server);
                                                    subscriber.onNext(server);
                                                  });
                                        }
                                      });
                            });

                    if (!subscriber.isUnsubscribed()) {
                      subscriber.onCompleted();
                    }
                  })
              .start();
        });
  }
Exemplo n.º 3
0
 public Observable<String[]> getServerStatus(GameServer server) {
   return gameService.getServerStatus(new Tuple(server.getIp(), server.getPort()));
 }