Fix remove/add list
This commit is contained in:
parent
31225c092d
commit
2187b3a990
|
@ -245,12 +245,13 @@ public class SyncTimelinesAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
APIResponse apiResponse = null;
|
APIResponse apiResponse;
|
||||||
if( MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA) {
|
if( MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA) {
|
||||||
List<app.fedilab.android.client.Entities.List> lists = null;
|
List<app.fedilab.android.client.Entities.List> listsAPI = null;
|
||||||
try {
|
try {
|
||||||
apiResponse = new API(contextReference.get()).getLists();
|
apiResponse = new API(contextReference.get()).getLists();
|
||||||
lists = apiResponse.getLists();
|
listsAPI = apiResponse.getLists();
|
||||||
|
//Check potential duplicated lists in db
|
||||||
List<ManageTimelines> duplicated_id = new ArrayList<>();
|
List<ManageTimelines> duplicated_id = new ArrayList<>();
|
||||||
List<String> present_id = new ArrayList<>();
|
List<String> present_id = new ArrayList<>();
|
||||||
for (ManageTimelines manageTimeline : manageTimelines) {
|
for (ManageTimelines manageTimeline : manageTimelines) {
|
||||||
|
@ -264,9 +265,9 @@ public class SyncTimelinesAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
manageTimelines.removeAll(duplicated_id);
|
manageTimelines.removeAll(duplicated_id);
|
||||||
if (lists != null && lists.size() > 0) {
|
if (listsAPI != null && listsAPI.size() > 0) {
|
||||||
//Loop through results
|
//Loop through results
|
||||||
for (app.fedilab.android.client.Entities.List list : lists) {
|
for (app.fedilab.android.client.Entities.List list : listsAPI) {
|
||||||
boolean isInDb = false;
|
boolean isInDb = false;
|
||||||
ManageTimelines timelines_tmp = null;
|
ManageTimelines timelines_tmp = null;
|
||||||
for (ManageTimelines manageTimeline : manageTimelines) {
|
for (ManageTimelines manageTimeline : manageTimelines) {
|
||||||
|
@ -278,6 +279,7 @@ public class SyncTimelinesAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//The current list is not registred in the database
|
||||||
if (!isInDb) {
|
if (!isInDb) {
|
||||||
ManageTimelines manageTL = new ManageTimelines();
|
ManageTimelines manageTL = new ManageTimelines();
|
||||||
manageTL.setListTimeline(list);
|
manageTL.setListTimeline(list);
|
||||||
|
@ -285,30 +287,43 @@ public class SyncTimelinesAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
manageTL.setType(ManageTimelines.Type.LIST);
|
manageTL.setType(ManageTimelines.Type.LIST);
|
||||||
manageTL.setPosition(manageTimelines.size());
|
manageTL.setPosition(manageTimelines.size());
|
||||||
new TimelinesDAO(contextReference.get(), db).insert(manageTL);
|
new TimelinesDAO(contextReference.get(), db).insert(manageTL);
|
||||||
|
manageTimelines.add(manageTL);
|
||||||
} else {
|
} else {
|
||||||
//Update list
|
//Update list
|
||||||
timelines_tmp.setListTimeline(list);
|
timelines_tmp.setListTimeline(list);
|
||||||
new TimelinesDAO(contextReference.get(), db).update(timelines_tmp);
|
new TimelinesDAO(contextReference.get(), db).update(timelines_tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (ManageTimelines manageTimelines : manageTimelines) {
|
ArrayList<ManageTimelines> manageTimelinesToRemove = new ArrayList<>();
|
||||||
if (manageTimelines.getListTimeline() == null)
|
for (ManageTimelines dbtTimelines : manageTimelines) {
|
||||||
|
if (dbtTimelines.getListTimeline() == null)
|
||||||
continue;
|
continue;
|
||||||
boolean shouldBeRemoved = true;
|
boolean shouldBeRemoved = true;
|
||||||
for (app.fedilab.android.client.Entities.List list : lists) {
|
for (app.fedilab.android.client.Entities.List list : listsAPI) {
|
||||||
if (list.getId().equals(manageTimelines.getListTimeline().getId())) {
|
if (list.getId().equals(dbtTimelines.getListTimeline().getId())) {
|
||||||
shouldBeRemoved = false;
|
shouldBeRemoved = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (shouldBeRemoved) {
|
if (shouldBeRemoved) {
|
||||||
new TimelinesDAO(contextReference.get(), db).remove(manageTimelines);
|
new TimelinesDAO(contextReference.get(), db).remove(dbtTimelines);
|
||||||
|
manageTimelinesToRemove.add(dbtTimelines);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
if( manageTimelinesToRemove.size() > 0 ){
|
||||||
for (ManageTimelines manageTimelines : manageTimelines) {
|
manageTimelines.removeAll(manageTimelinesToRemove);
|
||||||
if (manageTimelines.getListTimeline() == null)
|
}
|
||||||
continue;
|
} else { //No lists, all are removed if exist in db
|
||||||
new TimelinesDAO(contextReference.get(), db).remove(manageTimelines);
|
ArrayList<ManageTimelines> manageTimelinesToRemove = new ArrayList<>();
|
||||||
|
if( apiResponse.getError() == null) { //Only done if there is no errors when fetching lists
|
||||||
|
for (ManageTimelines manageTimelines : manageTimelines) {
|
||||||
|
if (manageTimelines.getListTimeline() == null)
|
||||||
|
continue;
|
||||||
|
new TimelinesDAO(contextReference.get(), db).remove(manageTimelines);
|
||||||
|
manageTimelinesToRemove.add(manageTimelines);
|
||||||
|
}
|
||||||
|
if( manageTimelinesToRemove.size() > 0 ){
|
||||||
|
manageTimelines.removeAll(manageTimelinesToRemove);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
|
|
|
@ -6,7 +6,7 @@ buildscript {
|
||||||
google()
|
google()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:3.4.2'
|
classpath 'com.android.tools.build:gradle:3.5.0'
|
||||||
|
|
||||||
// NOTE: Do not place your application dependencies here; they belong
|
// NOTE: Do not place your application dependencies here; they belong
|
||||||
// in the individual module build.gradle files
|
// in the individual module build.gradle files
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#Thu Apr 18 13:00:25 CEST 2019
|
#Fri Aug 23 15:40:43 CEST 2019
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
|
||||||
|
|
Loading…
Reference in New Issue