Long press a pin or a board edit item to delete it.

Workaround for some people.
Also, it's probably fixed now through some changes in the onTouch method from SwipeDismissListViewTouchListener:
ACTION_CANCEL was getting called, that's now prevented through requirestDisallowInterceptTouchEvent on the listView.
captchafix
Florens Douwes 11 years ago
parent 53f9e7f8c6
commit 0922a14064
  1. 6
      Clover/app/src/main/java/org/floens/chan/core/manager/ThreadManager.java
  2. 1
      Clover/app/src/main/java/org/floens/chan/core/watch/PinWatcher.java
  3. 2
      Clover/app/src/main/java/org/floens/chan/ui/SwipeDismissListViewTouchListener.java
  4. 71
      Clover/app/src/main/java/org/floens/chan/ui/activity/BaseActivity.java
  5. 1
      Clover/app/src/main/java/org/floens/chan/ui/activity/BoardActivity.java
  6. 23
      Clover/app/src/main/java/org/floens/chan/ui/activity/BoardEditor.java
  7. 2
      Clover/app/src/main/res/values/strings.xml

@ -190,6 +190,12 @@ public class ThreadManager implements Loader.LoaderListener {
lastPost = result.get(result.size() - 1).no;
}
// TODO: fix hack
Pin pin = ChanApplication.getWatchManager().findPinByLoadable(loader.getLoadable());
if (pin != null && pin.opPost == null && result.size() > 0) {
pin.opPost = result.get(0);
}
threadManagerListener.onThreadLoaded(result, append);
}

@ -129,6 +129,7 @@ public class PinWatcher implements Loader.LoaderListener {
public void onData(List<Post> result, boolean append) {
pin.isError = false;
// TODO: fix hack
if (pin.opPost == null && result.size() > 0) {
pin.opPost = result.get(0);
}

@ -189,6 +189,8 @@ public class SwipeDismissListViewTouchListener implements View.OnTouchListener {
mViewWidth = mListView.getWidth();
}
mListView.requestDisallowInterceptTouchEvent(true);
switch (motionEvent.getActionMasked()) {
case MotionEvent.ACTION_DOWN: {
if (mPaused) {

@ -37,6 +37,7 @@ import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
@ -173,7 +174,7 @@ public abstract class BaseActivity extends Activity implements PanelSlideListene
if (post == null)
return false;
changePinTitle(post);
onPinLongPress(post);
return true;
}
@ -195,10 +196,9 @@ public abstract class BaseActivity extends Activity implements PanelSlideListene
}
);
touchListener.setSlop((int) (touchListener.getSlop() * 0.4f));
pinDrawerView.setOnTouchListener(touchListener);
pinDrawerView.setOnScrollListener(touchListener.makeScrollListener());
pinDrawerView.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
}
@Override
@ -238,32 +238,45 @@ public abstract class BaseActivity extends Activity implements PanelSlideListene
ChanApplication.getWatchManager().updatePin(pin);
}
private void changePinTitle(final Pin pin) {
final EditText text = new EditText(this);
text.setSingleLine();
text.setText(pin.loadable.title);
text.setSelectAllOnFocus(true);
AlertDialog dialog = new AlertDialog.Builder(this)
.setPositiveButton(R.string.change, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface d, int which) {
String value = text.getText().toString();
if (!TextUtils.isEmpty(value)) {
pin.loadable.title = value;
updatePin(pin);
}
}
}).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface d, int which) {
}
}).setTitle(R.string.drawer_pinned_change_title).setView(text).create();
Utils.requestKeyboardFocus(dialog, text);
dialog.show();
private void onPinLongPress(final Pin pin) {
new AlertDialog.Builder(this)
.setNegativeButton(R.string.drawer_pinned_delete, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Delete pin
removePin(pin);
}
}).setPositiveButton(R.string.drawer_pinned_change_title, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Change pin title
final EditText text = new EditText(BaseActivity.this);
text.setSingleLine();
text.setText(pin.loadable.title);
text.setSelectAllOnFocus(true);
AlertDialog titleDialog = new AlertDialog.Builder(BaseActivity.this)
.setPositiveButton(R.string.change, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface d, int which) {
String value = text.getText().toString();
if (!TextUtils.isEmpty(value)) {
pin.loadable.title = value;
updatePin(pin);
}
}
}).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface d, int which) {
}
}).setTitle(R.string.drawer_pinned_change_title).setView(text).create();
Utils.requestKeyboardFocus(titleDialog, text);
titleDialog.show();
}
}).show();
}
@Override

@ -231,6 +231,7 @@ public class BoardActivity extends BaseActivity implements AdapterView.OnItemSel
threadLoadable.generateTitle(posts.get(0));
updateActionBarState();
}
pinnedAdapter.notifyDataSetChanged();
}
@Override

@ -33,6 +33,7 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Filter;
@ -126,6 +127,28 @@ public class BoardEditor extends Activity {
listView.setOnScrollListener(touchListener.makeScrollListener());
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
new AlertDialog.Builder(BoardEditor.this)
.setNegativeButton(R.string.cancel, null)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (position >= 0 && position < adapter.getCount()) {
Board b = adapter.getItem(position);
adapter.remove(b);
b.saved = false;
adapter.notifyDataSetChanged();
}
}
})
.setMessage(R.string.board_delete)
.show();
return true;
}
});
setContentView(listView);
}

@ -69,10 +69,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<string name="board_add_unknown_title">Unknown board code</string>
<string name="board_add_unknown">The board with code CODE is not known. Press OK to add it anyway.</string>
<string name="board_edit_enable_filler">Show filler</string>
<string name="board_delete">Remove board?</string>
<string name="drawer_open">Open drawer</string>
<string name="drawer_close">Close drawer</string>
<string name="drawer_pinned">Pinned threads</string>
<string name="drawer_pinned_delete">Delete pin</string>
<string name="drawer_pinned_change_title">Edit title</string>
<string name="one_reply">reply</string>

Loading…
Cancel
Save