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 a7465302..869aaefd 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 @@ -278,6 +278,18 @@ public class PinAdapter extends RecyclerView.Adapter im } }); + itemView.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + int pos = getAdapterPosition() - PIN_OFFSET; + if (pos >= 0 && pos < pins.size()) { + callback.onPinLongClocked(pins.get(pos)); + } + + return true; + } + }); + watchCountText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -361,5 +373,7 @@ public class PinAdapter extends RecyclerView.Adapter im void openSettings(); void onPinRemoved(Pin pin); + + void onPinLongClocked(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 5b87bdc2..91004ea7 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 @@ -17,14 +17,19 @@ */ package org.floens.chan.ui.controller; +import android.app.AlertDialog; import android.content.Context; +import android.content.DialogInterface; 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.text.TextUtils; import android.view.Gravity; import android.view.View; +import android.widget.EditText; import android.widget.FrameLayout; +import android.widget.LinearLayout; import android.widget.TextView; import org.floens.chan.Chan; @@ -205,6 +210,37 @@ public class RootNavigationController extends NavigationController implements Pi snackbar.show(); } + @Override + public void onPinLongClocked(final Pin pin) { + LinearLayout wrap = new LinearLayout(context); + wrap.setPadding(dp(16), dp(16), dp(16), 0); + final EditText text = new EditText(context); + text.setSingleLine(); + text.setText(pin.loadable.title); + wrap.addView(text, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); + + AlertDialog dialog = new AlertDialog.Builder(context) + .setPositiveButton(R.string.action_rename, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String value = text.getText().toString(); + + if (!TextUtils.isEmpty(value)) { + pin.loadable.title = value; + pinAdapter.notifyDataSetChanged(); + } + } + }) + .setNegativeButton(R.string.cancel, null) + .setTitle(R.string.action_rename_pin) + .setView(wrap) + .create(); + + AndroidUtils.requestKeyboardFocus(dialog, text); + + dialog.show(); + } + public void onEvent(WatchManager.PinAddedMessage message) { pinAdapter.onPinAdded(message.pin); drawerLayout.openDrawer(drawer); diff --git a/Clover/app/src/main/res/values/strings.xml b/Clover/app/src/main/res/values/strings.xml index 421518b9..61b3f66c 100644 --- a/Clover/app/src/main/res/values/strings.xml +++ b/Clover/app/src/main/res/values/strings.xml @@ -61,6 +61,8 @@ along with this program. If not, see . Top Bottom Order + Rename pin + Rename Bump order Reply count