Add pin renaming

filtering
Floens 10 years ago
parent 9a2dc8535b
commit 7e991eb45c
  1. 14
      Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java
  2. 36
      Clover/app/src/main/java/org/floens/chan/ui/controller/RootNavigationController.java
  3. 2
      Clover/app/src/main/res/values/strings.xml

@ -278,6 +278,18 @@ public class PinAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> 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() { watchCountText.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -361,5 +373,7 @@ public class PinAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> im
void openSettings(); void openSettings();
void onPinRemoved(Pin pin); void onPinRemoved(Pin pin);
void onPinLongClocked(Pin pin);
} }
} }

@ -17,14 +17,19 @@
*/ */
package org.floens.chan.ui.controller; package org.floens.chan.ui.controller;
import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.support.design.widget.Snackbar; import android.support.design.widget.Snackbar;
import android.support.v4.widget.DrawerLayout; import android.support.v4.widget.DrawerLayout;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;
import android.widget.EditText;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import org.floens.chan.Chan; import org.floens.chan.Chan;
@ -205,6 +210,37 @@ public class RootNavigationController extends NavigationController implements Pi
snackbar.show(); 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) { public void onEvent(WatchManager.PinAddedMessage message) {
pinAdapter.onPinAdded(message.pin); pinAdapter.onPinAdded(message.pin);
drawerLayout.openDrawer(drawer); drawerLayout.openDrawer(drawer);

@ -61,6 +61,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<string name="action_up">Top</string> <string name="action_up">Top</string>
<string name="action_down">Bottom</string> <string name="action_down">Bottom</string>
<string name="action_order">Order</string> <string name="action_order">Order</string>
<string name="action_rename_pin">Rename pin</string>
<string name="action_rename">Rename</string>
<string name="order_bump">Bump order</string> <string name="order_bump">Bump order</string>
<string name="order_reply">Reply count</string> <string name="order_reply">Reply count</string>

Loading…
Cancel
Save