diff --git a/Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java b/Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java index 84f8c356..a7465302 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java @@ -25,7 +25,6 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; -import org.floens.chan.Chan; import org.floens.chan.R; import org.floens.chan.core.model.Pin; import org.floens.chan.core.settings.ChanSettings; @@ -174,7 +173,7 @@ public class PinAdapter extends RecyclerView.Adapter im @Override public void removeItem(int position) { - Chan.getWatchManager().removePin(pins.get(position - PIN_OFFSET)); + callback.onPinRemoved(pins.get(position - PIN_OFFSET)); } @Override @@ -360,5 +359,7 @@ public class PinAdapter extends RecyclerView.Adapter im boolean isHighlighted(Pin pin); void openSettings(); + + void onPinRemoved(Pin pin); } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/RootNavigationController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/RootNavigationController.java index 6020e648..5b87bdc2 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/RootNavigationController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/RootNavigationController.java @@ -19,11 +19,13 @@ package org.floens.chan.ui.controller; import android.content.Context; import android.content.res.Configuration; +import android.support.design.widget.Snackbar; import android.support.v4.widget.DrawerLayout; import android.support.v7.widget.RecyclerView; import android.view.Gravity; import android.view.View; import android.widget.FrameLayout; +import android.widget.TextView; import org.floens.chan.Chan; import org.floens.chan.R; @@ -43,11 +45,13 @@ import java.util.List; import de.greenrobot.event.EventBus; import static org.floens.chan.utils.AndroidUtils.dp; +import static org.floens.chan.utils.AndroidUtils.getAttrColor; public class RootNavigationController extends NavigationController implements PinAdapter.Callback { + private WatchManager watchManager; + public DrawerLayout drawerLayout; public FrameLayout drawer; - private RecyclerView recyclerView; private PinAdapter pinAdapter; @@ -59,6 +63,8 @@ public class RootNavigationController extends NavigationController implements Pi public void onCreate() { super.onCreate(); + watchManager = Chan.getWatchManager(); + EventBus.getDefault().register(this); view = inflateRes(R.layout.controller_navigation_drawer); @@ -77,7 +83,7 @@ public class RootNavigationController extends NavigationController implements Pi new SwipeListener(context, recyclerView, pinAdapter); - pinAdapter.onPinsChanged(Chan.getWatchManager().getPins()); + pinAdapter.onPinsChanged(watchManager.getPins()); toolbar.setCallback(this); @@ -169,7 +175,7 @@ public class RootNavigationController extends NavigationController implements Pi @Override public void onWatchCountClicked(Pin pin) { - Chan.getWatchManager().toggleWatch(pin); + watchManager.toggleWatch(pin); } @Override @@ -182,6 +188,23 @@ public class RootNavigationController extends NavigationController implements Pi pushController(new MainSettingsController(context)); } + @Override + public void onPinRemoved(final Pin pin) { + watchManager.removePin(pin); + + Snackbar snackbar = Snackbar.make(drawerLayout, context.getString(R.string.drawer_pin_removed, pin.loadable.title), Snackbar.LENGTH_LONG); + TextView snackbarText = (TextView) snackbar.getView().findViewById(R.id.snackbar_text); + snackbarText.setTextColor(0xffffffff); + snackbar.setAction(R.string.undo, new View.OnClickListener() { + @Override + public void onClick(View v) { + watchManager.addPin(pin); + } + }); + snackbar.setActionTextColor(getAttrColor(context, R.attr.colorAccent)); + snackbar.show(); + } + public void onEvent(WatchManager.PinAddedMessage message) { pinAdapter.onPinAdded(message.pin); drawerLayout.openDrawer(drawer); @@ -203,7 +226,7 @@ public class RootNavigationController extends NavigationController implements Pi } private void updateBadge() { - List list = Chan.getWatchManager().getWatchingPins(); + List list = watchManager.getWatchingPins(); int count = 0; boolean color = false; if (list.size() > 0) { diff --git a/Clover/app/src/main/res/values/strings.xml b/Clover/app/src/main/res/values/strings.xml index fc00c777..c81f08e4 100644 --- a/Clover/app/src/main/res/values/strings.xml +++ b/Clover/app/src/main/res/values/strings.xml @@ -25,6 +25,7 @@ along with this program. If not, see . OK Exit Delete + Undo %d minute @@ -107,6 +108,7 @@ along with this program. If not, see . Board Catalog Watching threads + Removed \'%1$s\' Highlight ID Text copied to clipboard