Fix issue when not tags or followed instances

This commit is contained in:
tom79 2019-04-24 06:57:21 +02:00
parent 69762e650c
commit a7ad3f8c9d
1 changed files with 49 additions and 45 deletions

View File

@ -160,29 +160,31 @@ public class SyncTimelinesAsyncTask extends AsyncTask<Void, Void, Void> {
List<TagTimeline> tagsInDb = new SearchDAO(contextReference.get(), db).getAll();
List<RemoteInstance> instancesInDb = new InstancesDAO(contextReference.get(), db).getAllInstances();
for(TagTimeline tag: tagsInDb){
boolean isInDb = false;
ManageTimelines timelines_tmp = null;
for(ManageTimelines manageTimeline: manageTimelines){
if( manageTimeline.getTagTimeline() == null )
continue;
if(manageTimeline.getTagTimeline().getId() == tag.getId()){
isInDb = true;
timelines_tmp = manageTimeline;
break;
if( tagsInDb != null) {
for (TagTimeline tag : tagsInDb) {
boolean isInDb = false;
ManageTimelines timelines_tmp = null;
for (ManageTimelines manageTimeline : manageTimelines) {
if (manageTimeline.getTagTimeline() == null)
continue;
if (manageTimeline.getTagTimeline().getId() == tag.getId()) {
isInDb = true;
timelines_tmp = manageTimeline;
break;
}
}
if (!isInDb) {
ManageTimelines manageTL = new ManageTimelines();
manageTL.setTagTimeline(tag);
manageTL.setDisplayed(true);
manageTL.setType(ManageTimelines.Type.TAG);
manageTL.setPosition(manageTimelines.size());
new TimelinesDAO(contextReference.get(), db).insert(manageTL);
} else {
//Update list
timelines_tmp.setTagTimeline(tag);
new TimelinesDAO(contextReference.get(), db).update(timelines_tmp);
}
}
if( !isInDb){
ManageTimelines manageTL = new ManageTimelines();
manageTL.setTagTimeline(tag);
manageTL.setDisplayed(true);
manageTL.setType(ManageTimelines.Type.TAG);
manageTL.setPosition(manageTimelines.size());
new TimelinesDAO(contextReference.get(), db).insert(manageTL);
}else{
//Update list
timelines_tmp.setTagTimeline(tag);
new TimelinesDAO(contextReference.get(), db).update(timelines_tmp);
}
}
for(ManageTimelines manageTimelines: manageTimelines){
@ -199,31 +201,33 @@ public class SyncTimelinesAsyncTask extends AsyncTask<Void, Void, Void> {
}
}
for(RemoteInstance instance: instancesInDb){
boolean isInDb = false;
ManageTimelines timelines_tmp = null;
for(ManageTimelines manageTimeline: manageTimelines){
if( manageTimeline.getRemoteInstance() == null )
continue;
if(manageTimeline.getRemoteInstance().getId().equals(instance.getId())){
isInDb = true;
timelines_tmp = manageTimeline;
break;
if( instancesInDb != null){
for(RemoteInstance instance: instancesInDb){
boolean isInDb = false;
ManageTimelines timelines_tmp = null;
for(ManageTimelines manageTimeline: manageTimelines){
if( manageTimeline.getRemoteInstance() == null )
continue;
if(manageTimeline.getRemoteInstance().getId().equals(instance.getId())){
isInDb = true;
timelines_tmp = manageTimeline;
break;
}
}
if( !isInDb){
ManageTimelines manageTL = new ManageTimelines();
manageTL.setRemoteInstance(instance);
manageTL.setDisplayed(true);
manageTL.setType(ManageTimelines.Type.INSTANCE);
manageTL.setPosition(manageTimelines.size());
new TimelinesDAO(contextReference.get(), db).insert(manageTL);
}else{
//Update list
timelines_tmp.setRemoteInstance(instance);
new TimelinesDAO(contextReference.get(), db).update(timelines_tmp);
}
}
if( !isInDb){
ManageTimelines manageTL = new ManageTimelines();
manageTL.setRemoteInstance(instance);
manageTL.setDisplayed(true);
manageTL.setType(ManageTimelines.Type.INSTANCE);
manageTL.setPosition(manageTimelines.size());
new TimelinesDAO(contextReference.get(), db).insert(manageTL);
}else{
//Update list
timelines_tmp.setRemoteInstance(instance);
new TimelinesDAO(contextReference.get(), db).update(timelines_tmp);
}
}
for(ManageTimelines manageTimelines: manageTimelines){
if( manageTimelines.getRemoteInstance() == null )