Skip to content

Instantly share code, notes, and snippets.

View inver's full-sized avatar
💭
ololo

Alexey Nevinsky inver

💭
ololo
View GitHub Profile
public static synchronized AircraftDb get(final Context context) {
if (instance == null) {
instance = Room.databaseBuilder(context.getApplicationContext(), AircraftDb.class, DATABASE_NAME)
.fallbackToDestructiveMigrationFrom(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
.addCallback(new Callback() {
@Override
public void onCreate(@NonNull SupportSQLiteDatabase db) {
final StopWatch sw = new StopWatch();
sw.start();
public LiveData<AircraftDto> getAircraftLiveData() {
MediatorLiveData<AircraftDto> res = new MediatorLiveData<>();
LiveData<AircraftDto> aircraftDtoLiveData = dao.getById(aircraftId);
LiveData<List<CountryDto>> countriesLiveData = dao.getCountriesByAircraftId(aircraftId);
MergerObserver merger = new MergerObserver(res, aircraftDtoLiveData, countriesLiveData);
res.addSource(aircraftDtoLiveData, merger);
res.addSource(countriesLiveData, merger);
@RequiredArgsConstructor
private static class MergerObserver implements Observer {
private AtomicInteger count = new AtomicInteger(2);
private final MediatorLiveData<AircraftDto> mediatorLiveData;
private final LiveData<AircraftDto> aircraftLiveData;
private final LiveData<List<CountryDto>> countriesLiveData;
@Override
public synchronized void onChanged(@Nullable Object object) {
@NoArgsConstructor
@EqualsAndHashCode
public class AircraftEntity {
@PrimaryKey
public int id;
@NonNull
public String name;
}
@NoArgsConstructor
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.io.IOUtils;
import ru.histone.Histone;
import ru.histone.HistoneBuilder;
import ru.histone.HistoneException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;