summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayScheduledTootsFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayScheduledTootsFragment.java')
-rw-r--r--app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayScheduledTootsFragment.java43
1 files changed, 38 insertions, 5 deletions
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayScheduledTootsFragment.java b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayScheduledTootsFragment.java
index 75580b77d..38cf65f0b 100644
--- a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayScheduledTootsFragment.java
+++ b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayScheduledTootsFragment.java
@@ -37,14 +37,20 @@ import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
+import android.widget.Toast;
+import java.util.ArrayList;
import java.util.List;
+import es.dmoral.toasty.Toasty;
import fr.gouv.etalab.mastodon.R;
+import fr.gouv.etalab.mastodon.asynctasks.RetrieveFeedsAsyncTask;
import fr.gouv.etalab.mastodon.asynctasks.RetrieveScheduledTootsAsyncTask;
+import fr.gouv.etalab.mastodon.client.APIResponse;
import fr.gouv.etalab.mastodon.client.Entities.StoredStatus;
import fr.gouv.etalab.mastodon.drawers.ScheduledTootsListAdapter;
import fr.gouv.etalab.mastodon.helper.Helper;
+import fr.gouv.etalab.mastodon.interfaces.OnRetrieveFeedsInterface;
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveScheduledTootsInterface;
import fr.gouv.etalab.mastodon.sqlite.BoostScheduleDAO;
import fr.gouv.etalab.mastodon.sqlite.Sqlite;
@@ -57,7 +63,7 @@ import static fr.gouv.etalab.mastodon.helper.Helper.changeDrawableColor;
* Created by Thomas on 16/07/2017.
* Fragment to display scheduled toots
*/
-public class DisplayScheduledTootsFragment extends Fragment implements OnRetrieveScheduledTootsInterface {
+public class DisplayScheduledTootsFragment extends Fragment implements OnRetrieveScheduledTootsInterface, OnRetrieveFeedsInterface {
private Context context;
@@ -66,10 +72,14 @@ public class DisplayScheduledTootsFragment extends Fragment implements OnRetriev
private ListView lv_scheduled_toots;
private TextView warning_battery_message;
private typeOfSchedule type;
+ private List<StoredStatus> storedStatuses;
+ private boolean firstCall;
+ private ScheduledTootsListAdapter scheduledTootsListAdapter;
public enum typeOfSchedule{
TOOT,
- BOOST
+ BOOST,
+ SERVER
}
@Override
@@ -83,21 +93,44 @@ public class DisplayScheduledTootsFragment extends Fragment implements OnRetriev
if( type == null)
type = typeOfSchedule.TOOT;
lv_scheduled_toots = rootView.findViewById(R.id.lv_scheduled_toots);
-
+ firstCall = true;
mainLoader = rootView.findViewById(R.id.loader);
warning_battery_message = rootView.findViewById(R.id.warning_battery_message);
textviewNoAction = rootView.findViewById(R.id.no_action);
mainLoader.setVisibility(View.VISIBLE);
-
+ storedStatuses = new ArrayList<>();
//Removes all scheduled toots that have sent
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
if( type == typeOfSchedule.TOOT)
new StatusStoredDAO(context, db).removeAllSent();
else if( type == typeOfSchedule.BOOST)
new BoostScheduleDAO(context, db).removeAllSent();
+ else if( type == typeOfSchedule.SERVER)
+ asyncTask = new RetrieveFeedsAsyncTask(context, RetrieveFeedsAsyncTask.Type.SCHEDULED_TOOTS, null, DisplayScheduledTootsFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+
+ scheduledTootsListAdapter = new ScheduledTootsListAdapter(context, type, storedStatuses, textviewNoAction);
+ lv_scheduled_toots.setAdapter(scheduledTootsListAdapter);
return rootView;
}
+ @Override
+ public void onRetrieveFeeds(APIResponse apiResponse) {
+ if( apiResponse.getError() != null && apiResponse.getError().getStatusCode() != 404 ){
+ Toasty.error(context, apiResponse.getError().getError(), Toast.LENGTH_LONG).show();
+ return;
+ }
+ mainLoader.setVisibility(View.GONE);
+ if(apiResponse.getStoredStatuses() != null && apiResponse.getStoredStatuses().size() > 0 ){
+ storedStatuses.addAll(apiResponse.getStoredStatuses());
+ textviewNoAction.setVisibility(View.GONE);
+ lv_scheduled_toots.setVisibility(View.VISIBLE);
+ scheduledTootsListAdapter.notifyDataSetChanged();
+ }else if( firstCall){
+ textviewNoAction.setVisibility(View.VISIBLE);
+ lv_scheduled_toots.setVisibility(View.GONE);
+ }
+ firstCall = false;
+ }
@Override
public void onResume(){
@@ -180,7 +213,7 @@ public class DisplayScheduledTootsFragment extends Fragment implements OnRetriev
mainLoader.setVisibility(View.GONE);
if( storedStatuses != null && storedStatuses.size() > 0 ){
- ScheduledTootsListAdapter scheduledTootsListAdapter = new ScheduledTootsListAdapter(context, type, storedStatuses, textviewNoAction);
+ scheduledTootsListAdapter = new ScheduledTootsListAdapter(context, type, storedStatuses, textviewNoAction);
lv_scheduled_toots.setAdapter(scheduledTootsListAdapter);
textviewNoAction.setVisibility(View.GONE);
}else {