package com.mercandalli.android.apps.files.file.cloud.response; import android.util.Log; import com.google.gson.Gson; import com.google.gson.annotations.SerializedName; import com.mercandalli.android.apps.files.file.FileModel; import com.mercandalli.android.apps.files.file.FileTypeModel; import com.mercandalli.android.apps.files.file.filespace.FileSpaceModel; import com.mercandalli.android.library.base.java.StringUtils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import java.util.TimeZone; public class FileResponse { @SerializedName("id") private int mId; @SerializedName("id_user") private int mIdUser; @SerializedName("id_file_parent") private int mIdFileParent; @SerializedName("name") private String mName; @SerializedName("url") private String mUrl; @SerializedName("size") private long mSize; @SerializedName("public") private long mPublic; @SerializedName("type") private String mType; @SerializedName("directory") private long mDirectory; @SerializedName("date_creation") private String mDateCreation; @SerializedName("is_apk_update") private int mIsApkUpdate; @SerializedName("content") private String mContent; public FileModel createModel() { Date dateCreation = null; SimpleDateFormat dateFormatGmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US); dateFormatGmt.setTimeZone(TimeZone.getTimeZone("UTC")); try { dateCreation = dateFormatGmt.parse(mDateCreation); } catch (ParseException e) { Log.e(getClass().getName(), "Exception", e); } FileSpaceModel content = null; if (!StringUtils.isNullOrEmpty(mContent)) { Gson gson = new Gson(); FileSpaceResponse contentResponse = gson.fromJson(mContent, FileSpaceResponse.class); if (contentResponse != null) { content = contentResponse.createModel(); } } return new FileModel.FileModelBuilder() .id(mId) .idUser(mIdUser) .idFileParent(mIdFileParent) .name(mName) .url(mUrl) .size(mSize) .isPublic(mPublic == 1) .type(new FileTypeModel(mType)) .isDirectory(mDirectory == 1) .dateCreation(dateCreation) .isApkUpdate(mIsApkUpdate == 1) .content(content) .isOnline(true) .build(); } }