diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/OwnerStatusActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/OwnerStatusActivity.java index ce1172dd2..92a2b55a4 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/OwnerStatusActivity.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/OwnerStatusActivity.java @@ -17,8 +17,11 @@ package fr.gouv.etalab.mastodon.activities; import android.annotation.SuppressLint; import android.app.DatePickerDialog; +import android.content.BroadcastReceiver; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import android.content.IntentFilter; import android.content.SharedPreferences; import android.database.sqlite.SQLiteDatabase; import android.graphics.Bitmap; @@ -26,6 +29,7 @@ import android.graphics.drawable.BitmapDrawable; import android.os.AsyncTask; import android.os.Bundle; import android.support.annotation.NonNull; +import android.support.v4.content.LocalBroadcastManager; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.ActionBar; import android.support.v7.app.AlertDialog; @@ -109,6 +113,10 @@ public class OwnerStatusActivity extends BaseActivity implements OnRetrieveFeeds filterToots = new FilterToots(); + LocalBroadcastManager.getInstance(this) + .registerReceiver(backupFinishedReceiver, + new IntentFilter(Helper.INTENT_BACKUP_FINISH)); + Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); @@ -274,6 +282,8 @@ public class OwnerStatusActivity extends BaseActivity implements OnRetrieveFeeds dateIni = new StatusCacheDAO(OwnerStatusActivity.this, db).getSmallerDate(StatusCacheDAO.ARCHIVE_CACHE); if( dateEnd == null) dateEnd = new StatusCacheDAO(OwnerStatusActivity.this, db).getGreaterDate(StatusCacheDAO.ARCHIVE_CACHE); + if( dateIni == null || dateEnd == null) + return true; String dateInitString = Helper.shortDateToString(dateIni); String dateEndString = Helper.shortDateToString(dateEnd); @@ -421,8 +431,10 @@ public class OwnerStatusActivity extends BaseActivity implements OnRetrieveFeeds this.statuses.addAll(statuses); statusListAdapter.notifyItemRangeInserted(previousPosition, statuses.size()); }else { - RelativeLayout no_result = findViewById(R.id.no_result); - no_result.setVisibility(View.VISIBLE); + if( textviewNoAction.getVisibility() != View.VISIBLE) { + RelativeLayout no_result = findViewById(R.id.no_result); + no_result.setVisibility(View.VISIBLE); + } } swipeRefreshLayout.setRefreshing(false); firstLoad = false; @@ -430,4 +442,22 @@ public class OwnerStatusActivity extends BaseActivity implements OnRetrieveFeeds } + private BroadcastReceiver backupFinishedReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + max_id = null; + firstLoad = true; + flag_loading = true; + swiped = true; + new RetrieveFeedsAsyncTask(OwnerStatusActivity.this, filterToots, null, OwnerStatusActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + } + }; + + @Override + public void onDestroy() { + super.onDestroy(); + LocalBroadcastManager.getInstance(this) + .unregisterReceiver(backupFinishedReceiver); + } + } diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java index 1440d60fb..2a5b01e03 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/helper/Helper.java @@ -302,11 +302,13 @@ public class Helper { //Intent public static final String INTENT_ACTION = "intent_action"; public static final String INTENT_TARGETED_ACCOUNT = "intent_targeted_account"; + public static final String INTENT_BACKUP_FINISH = "intent_backup_finish"; //Receiver public static final String RECEIVE_DATA = "receive_data"; public static final String RECEIVE_FEDERATED_DATA = "receive_federated_data"; public static final String RECEIVE_LOCAL_DATA = "receive_local_data"; public static final String RECEIVE_PICTURE = "receive_picture"; + //User agent public static final String USER_AGENT = "Mastalab/"+ BuildConfig.VERSION_NAME + " Android/"+ Build.VERSION.RELEASE; diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/services/BackupStatusInDataBaseService.java b/app/src/main/java/fr/gouv/etalab/mastodon/services/BackupStatusInDataBaseService.java index 256dd93da..895451e04 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/services/BackupStatusInDataBaseService.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/services/BackupStatusInDataBaseService.java @@ -23,11 +23,13 @@ import android.graphics.BitmapFactory; import android.os.Handler; import android.os.Looper; import android.support.annotation.Nullable; +import android.support.v4.content.LocalBroadcastManager; import android.widget.Toast; import java.util.ArrayList; import java.util.List; import fr.gouv.etalab.mastodon.R; import fr.gouv.etalab.mastodon.activities.MainActivity; +import fr.gouv.etalab.mastodon.activities.OwnerStatusActivity; import fr.gouv.etalab.mastodon.client.API; import fr.gouv.etalab.mastodon.client.APIResponse; import fr.gouv.etalab.mastodon.client.Entities.Account; @@ -115,7 +117,10 @@ public class BackupStatusInDataBaseService extends IntentService { } }while (max_id != null && canContinue); - + if(backupStatus.size() > 0){ + Intent backupIntent = new Intent(Helper.INTENT_BACKUP_FINISH); + LocalBroadcastManager.getInstance(this).sendBroadcast(backupIntent); + } message = getString(R.string.data_backup_success, String.valueOf(backupStatus.size())); Intent mainActivity = new Intent(BackupStatusInDataBaseService.this, MainActivity.class); mainActivity.putExtra(Helper.INTENT_ACTION, Helper.BACKUP_INTENT);