package com.mechinn.android.ouralliance.gson.frc2015; import android.content.Context; import android.net.Uri; import com.activeandroid.ActiveAndroid; import com.activeandroid.query.Select; import com.google.gson.reflect.TypeToken; import com.mechinn.android.ouralliance.data.JsonWrapper; import com.mechinn.android.ouralliance.data.Team; import com.mechinn.android.ouralliance.data.frc2015.MatchScouting2015; import com.mechinn.android.ouralliance.data.frc2015.TeamScouting2015; import com.mechinn.android.ouralliance.data.frc2015.TeamScouting2015Wrapper; import com.mechinn.android.ouralliance.event.ToastEvent; import com.mechinn.android.ouralliance.gson.ImportJson; import com.mechinn.android.ouralliance.gson.OurAllianceGson; import java.io.IOException; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; import timber.log.Timber; /** * Created by mechinn on 3/28/15. */ public class ImportJsonEventTeamScouting2015 extends ImportJson { public ImportJsonEventTeamScouting2015(Context context, Uri uri) { super(context, uri); } public ImportJsonEventTeamScouting2015(Context context, JsonWrapper jsonWrapper) { super(context,jsonWrapper); } public void run() throws IOException { super.run(); TeamScouting2015Wrapper jsonTeams = (TeamScouting2015Wrapper) getJsonWrapper(); if(null==getJsonWrapper()) { jsonTeams = OurAllianceGson.BUILDER.fromJson(getJson(), TeamScouting2015Wrapper.class); } List<TeamScouting2015> dbTeams = new Select().from(TeamScouting2015.class).execute(); ActiveAndroid.beginTransaction(); try { for(TeamScouting2015 jsonTeam : jsonTeams.getData()) { boolean found = false; if(null!=dbTeams) { for (TeamScouting2015 dbTeam : dbTeams) { // Timber.d("checking if "+jsonTeam+" equal to "+dbTeam); if (jsonTeam.getTeam().equals(dbTeam.getTeam())) { Timber.d(jsonTeam+" after "+dbTeam); if (jsonTeam.getModified().after(dbTeam.getModified())) { dbTeam.copy(jsonTeam); Timber.d("saving " + dbTeam); dbTeam.saveMod(); } else { // Timber.d("ignore "+jsonTeam); } dbTeams.remove(dbTeam); found = true; break; } } } if(!found) { jsonTeam.saveMod(); } } ActiveAndroid.setTransactionSuccessful(); ToastEvent.toast("Restore complete"); } finally { ActiveAndroid.endTransaction(); } } }