Я получаю данные в таком виде:
{
"duration": 5,
"intervals": 60,
"time_work_start": 540,
"time_work_end": 1080,
"lunch_start": 780,
"lunch_end": 840,
"workweek": {
"1": "Понедельник",
"2": "Вторник"
},
"time_delay": 15
}
Тело запроса выглядит так:
public class BodyUserSettings implements Serializable {
@SerializedName("duration")
@Expose
private String duration;
@SerializedName("intervals")
@Expose
private String intervals;
@SerializedName("time_work_start")
@Expose
private String timeWorkStart;
@SerializedName("time_work_end")
@Expose
private String timeWorkEnd;
@SerializedName("lunch_start")
@Expose
private String lunchStart;
@SerializedName("lunch_end")
@Expose
private String lunchEnd;
@SerializedName("workweek")
@Expose
private Workweek workweek;
@SerializedName("time_delay")
@Expose
private String timeDelay;
public String getDuration() {
return duration;
}
public void setDuration(String duration) {
this.duration = duration;
}
public BodyUserSettings withDuration(String duration) {
this.duration = duration;
return this;
}
public String getIntervals() {
return intervals;
}
public void setIntervals(String intervals) {
this.intervals = intervals;
}
public BodyUserSettings withIntervals(String intervals) {
this.intervals = intervals;
return this;
}
public String getTimeWorkStart() {
return timeWorkStart;
}
public void setTimeWorkStart(String timeWorkStart) {
this.timeWorkStart = timeWorkStart;
}
public BodyUserSettings withTimeWorkStart(String timeWorkStart) {
this.timeWorkStart = timeWorkStart;
return this;
}
public String getTimeWorkEnd() {
return timeWorkEnd;
}
public void setTimeWorkEnd(String timeWorkEnd) {
this.timeWorkEnd = timeWorkEnd;
}
public BodyUserSettings withTimeWorkEnd(String timeWorkEnd) {
this.timeWorkEnd = timeWorkEnd;
return this;
}
public String getLunchStart() {
return lunchStart;
}
public void setLunchStart(String lunchStart) {
this.lunchStart = lunchStart;
}
public BodyUserSettings withLunchStart(String lunchStart) {
this.lunchStart = lunchStart;
return this;
}
public String getLunchEnd() {
return lunchEnd;
}
public void setLunchEnd(String lunchEnd) {
this.lunchEnd = lunchEnd;
}
public BodyUserSettings withLunchEnd(String lunchEnd) {
this.lunchEnd = lunchEnd;
return this;
}
public Workweek getWorkweek() {
return workweek;
}
public void setWorkweek(Workweek workweek) {
this.workweek = workweek;
}
public BodyUserSettings withWorkweek(Workweek workweek) {
this.workweek = workweek;
return this;
}
public String getTimeDelay() {
return timeDelay;
}
public void setTimeDelay(String timeDelay) {
this.timeDelay = timeDelay;
}
public BodyUserSettings withTimeDelay(String timeDelay) {
this.timeDelay = timeDelay;
return this;
}
public class Workweek implements Serializable {
@SerializedName("1")
@Expose
private String _1;
@SerializedName("2")
@Expose
private String _2;
public Workweek(String _1, String _2) {
super();
this._1 = _1;
this._2 = _2;
}
public String getId() {
return _1;
}
public void setId(String id) {
this._1 = id;
}
public Workweek withId(String _1) {
this._1 = _1;
return this;
}
public String getTitle() {
return _2;
}
public void setTitle(String _2) {
this._2 = _2;
}
public Workweek withTitle(String _2) {
this._2 = _2;
return this;
}
}
}
POST-запрос:
@POST("/settings")
Call<BodyUserSettings> postIdToken(@Body BodyIdToken id_token);
В mainactivity:
private void sendRequestIdTokenToServer() {
BodyIdToken hexPost = new BodyIdToken();
hexPost.idToken = mIdToken;
Call<BodyUserSettings> call = mService.postIdToken(hexPost);
call.enqueue(new Callback<BodyUserSettings>() {
@Override
public void onResponse(@NonNull Call<BodyUserSettings> call, @NonNull Response<BodyUserSettings> response) {
mBodyUserSettings = response.body();
mMainDatabase.saveSettings(mBodyUserSettings);
mMainDatabase.saveWorkweekDays(mBodyWorkweek);
}
@Override
public void onFailure(@NonNull Call<BodyUserSettings> call, @NonNull Throwable t) {
}
});
}
Таблицы в SQLite:
private final String CREATE_SETTINGS_TABLE = "CREATE TABLE IF NOT EXISTS " +
SETTINGS_TABLE + "(" +
_id + " INTEGER PRIMARY KEY AUTOINCREMENT," +
DURATION + "INTEGER," +
INTERVALS + " INTEGER," +
TIME_WORK_START + " INTEGER," +
TIME_WORK_END + " INTEGER," +
LAUNCH_START + " INTEGER," +
LAUNCH_END + " INTEGER," +
WORKWEEK + " INTEGER," +
TIME_DELAY + " INTEGER" + ")";
private final String CREATE_WORKWEEK_TABLE = "CREATE TABLE IF NOT EXISTS " +
WORKWEEK_TABLE + "(" +
_id + " INTEGER PRIMARY KEY," +
ID_DAY + " TEXT," +
TITLE_DAY + " TEXT" + ")";
Сохранение в SQLite
public void saveSettings(BodyUserSettings settings) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(DURATION, settings.getDuration());
cv.put(INTERVALS, settings.getIntervals());
cv.put(TIME_WORK_START, settings.getTimeWorkStart());
cv.put(TIME_WORK_END, settings.getTimeWorkEnd());
cv.put(LAUNCH_START, settings.getLunchStart());
cv.put(LAUNCH_END, settings.getLunchEnd());
cv.put(WORKWEEK, String.valueOf(settings.getWorkweek()));
cv.put(TIME_DELAY, settings.getTimeDelay());
db.insert(SETTINGS_TABLE, null, cv);
Log.d("LOG_TAG_saveSettings ", "save: " +
settings.getDuration() + "; " +
settings.getIntervals() + "; " +
settings.getTimeWorkStart() + "; " +
settings.getTimeWorkEnd() + "; " +
settings.getLunchStart() + "; " +
settings.getLunchEnd() + "; " +
settings.getWorkweek() + "; " +
settings.getTimeDelay() + ".");
db.close();
}
public void saveWorkweekDays(BodyUserSettings.Workweek workweek) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(ID_DAY, workweek.getId());
cv.put(TITLE_DAY, workweek.getTitle());
db.insert(WORKWEEK_TABLE, null, cv);
Log.d("LOG_TAG_saveWorkweek", "save " +
workweek.getId() + "; " +
workweek.getTitle() + ".");
db.close();
}
}
И в итоге я получаю данные в таком виде:
D/LOG_TAG_saveSettings: save: 5; 60; 540; 1080; 780; 840; com.example.myApp.data.network.entities.BodyUserSettings$Workweek@3ed84f07; 15.
Не пойму, как мне корректно отобразить данные из workweek. Может они вообще неправильно сохраняются. Что я делаю не так?
Если использовать парсинг JSON, то как потом это сохранить в SQLite?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хочу прикрутить к андроид приложению авторизацию на сайт https://wspkbtu
Я не очень понимают отличие findFirst() от findAny() в Java Stream API
Есть файл, и там есть некоторые строки, мне нужно через Java дописать в конец файла еще строку (или строки)Вот мой метод который это должен был...
Есть вопросКак мне сделать эффект на div сразу после создания