From bec0b91256e474c7b1ddec47f5b4a86d24dd71df Mon Sep 17 00:00:00 2001 From: Fadil Sutomo Date: Sat, 14 Mar 2015 00:25:12 +0700 Subject: Fix #2421: Fix offline media deletion --- .../android/ui/media/MediaBrowserActivity.java | 38 ++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) (limited to 'WordPress/src/main/java/org/wordpress/android/ui/media/MediaBrowserActivity.java') diff --git a/WordPress/src/main/java/org/wordpress/android/ui/media/MediaBrowserActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/media/MediaBrowserActivity.java index 21424f365..7f50c072b 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/media/MediaBrowserActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/media/MediaBrowserActivity.java @@ -3,9 +3,13 @@ package org.wordpress.android.ui.media; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; +import android.content.BroadcastReceiver; +import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.database.Cursor; import android.graphics.drawable.ColorDrawable; +import android.net.ConnectivityManager; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.ActionBar; @@ -36,6 +40,7 @@ import org.wordpress.android.ui.media.MediaGridFragment.Filter; import org.wordpress.android.ui.media.MediaGridFragment.MediaGridListener; import org.wordpress.android.ui.media.MediaItemFragment.MediaItemFragmentCallback; import org.wordpress.android.ui.media.services.MediaDeleteService; +import org.wordpress.android.util.NetworkUtils; import org.wordpress.android.widgets.WPAlertDialogFragment; import org.xmlrpc.android.ApiHelper; import org.xmlrpc.android.ApiHelper.GetFeatures.Callback; @@ -66,6 +71,21 @@ public class MediaBrowserActivity extends WPDrawerActivity implements MediaGridL private FeatureSet mFeatureSet; private String mQuery; + private BroadcastReceiver mReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (ConnectivityManager.CONNECTIVITY_ACTION.equals(action)) { + // Coming from zero connection. Continue what's pending for delete + String blogId = String.valueOf(WordPress.getCurrentBlog().getLocalTableBlogId()); + if (WordPress.wpDB.getMediaDeleteQueueItems(blogId).getCount() > 0) { + startMediaDeleteService(); + } + } + } + }; + + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -105,6 +125,18 @@ public class MediaBrowserActivity extends WPDrawerActivity implements MediaGridL } } + @Override + public void onStart() { + super.onStart(); + registerReceiver(mReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); + } + + @Override + public void onStop() { + unregisterReceiver(mReceiver); + super.onStop(); + } + @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); @@ -471,7 +503,9 @@ public class MediaBrowserActivity extends WPDrawerActivity implements MediaGridL } private void startMediaDeleteService() { - startService(new Intent(this, MediaDeleteService.class)); + if (NetworkUtils.isNetworkAvailable(this)) { + startService(new Intent(this, MediaDeleteService.class)); + } } @Override @@ -541,7 +575,7 @@ public class MediaBrowserActivity extends WPDrawerActivity implements MediaGridL // mark items for delete without actually deleting items yet, // and then refresh the grid WordPress.wpDB.setMediaFilesMarkedForDelete(blogId, sanitizedIds); - startService(new Intent(this, MediaDeleteService.class)); + startMediaDeleteService(); if (mMediaGridFragment != null) { mMediaGridFragment.clearSelectedItems(); mMediaGridFragment.refreshMediaFromDB(); -- cgit v1.2.3 From c8968158f0f4525ec4a63a90007a423956cfb8ae Mon Sep 17 00:00:00 2001 From: Fadil Sutomo Date: Tue, 10 Mar 2015 13:26:37 +0700 Subject: Fix #213: Update counter after media deletion/addition --- .../java/org/wordpress/android/ui/media/MediaBrowserActivity.java | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'WordPress/src/main/java/org/wordpress/android/ui/media/MediaBrowserActivity.java') diff --git a/WordPress/src/main/java/org/wordpress/android/ui/media/MediaBrowserActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/media/MediaBrowserActivity.java index 21424f365..5bc4e8494 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/media/MediaBrowserActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/media/MediaBrowserActivity.java @@ -136,6 +136,11 @@ public class MediaBrowserActivity extends WPDrawerActivity implements MediaGridL private final FragmentManager.OnBackStackChangedListener mOnBackStackChangedListener = new FragmentManager.OnBackStackChangedListener() { public void onBackStackChanged() { + FragmentManager manager = getFragmentManager(); + MediaGridFragment mediaGridFragment = (MediaGridFragment)manager.findFragmentById(R.id.mediaGridFragment); + if (mediaGridFragment.isVisible()) { + mediaGridFragment.refreshSpinnerAdapter(); + } setupBaseLayout(); } }; -- cgit v1.2.3