Show undo snackbar when removing pins

filtering
Floens 10 years ago
parent 36510dc50c
commit 88f7b0bd31
  1. 5
      Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java
  2. 31
      Clover/app/src/main/java/org/floens/chan/ui/controller/RootNavigationController.java
  3. 2
      Clover/app/src/main/res/values/strings.xml

@ -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<RecyclerView.ViewHolder> 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<RecyclerView.ViewHolder> im
boolean isHighlighted(Pin pin);
void openSettings();
void onPinRemoved(Pin pin);
}
}

@ -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<Pin> list = Chan.getWatchManager().getWatchingPins();
List<Pin> list = watchManager.getWatchingPins();
int count = 0;
boolean color = false;
if (list.size() > 0) {

@ -25,6 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<string name="ok">OK</string>
<string name="exit">Exit</string>
<string name="delete">Delete</string>
<string name="undo">Undo</string>
<plurals name="minutes">
<item quantity="one">%d minute</item>
@ -107,6 +108,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<string name="drawer_board">Board</string>
<string name="drawer_catalog">Catalog</string>
<string name="drawer_pinned">Watching threads</string>
<string name="drawer_pin_removed">Removed \'%1$s\'</string>
<string name="post_highlight_id">Highlight ID</string>
<string name="post_text_copied">Text copied to clipboard</string>

Loading…
Cancel
Save