use of android.support.v7.widget.helper.ItemTouchHelper.LEFT in project Saiy-PS by brandall76.
the class DividerItemDecoration method onDrawOver.
@Override
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
if (mDivider == null) {
super.onDrawOver(c, parent, state);
return;
}
// Initialization needed to avoid compiler warning
int left = 0, right = 0, top = 0, bottom = 0, size;
int orientation = mOrientation != -1 ? mOrientation : getOrientation(parent);
int childCount = parent.getChildCount();
if (orientation == LinearLayoutManager.VERTICAL) {
size = mDivider.getIntrinsicHeight();
left = parent.getPaddingLeft();
right = parent.getWidth() - parent.getPaddingRight();
} else {
// horizontal
size = mDivider.getIntrinsicWidth();
top = parent.getPaddingTop();
bottom = parent.getHeight() - parent.getPaddingBottom();
}
for (int i = mShowFirstDivider ? 0 : 1; i < childCount; i++) {
View child = parent.getChildAt(i);
RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
if (orientation == LinearLayoutManager.VERTICAL) {
top = child.getTop() - params.topMargin - size;
bottom = top + size;
} else {
// horizontal
left = child.getLeft() - params.leftMargin;
right = left + size;
}
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(c);
}
// show last divider
if (mShowLastDivider && childCount > 0) {
View child = parent.getChildAt(childCount - 1);
if (parent.getChildAdapterPosition(child) == (state.getItemCount() - 1)) {
RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
if (orientation == LinearLayoutManager.VERTICAL) {
top = child.getBottom() + params.bottomMargin;
bottom = top + size;
} else {
// horizontal
left = child.getRight() + params.rightMargin;
right = left + size;
}
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(c);
}
}
}
use of android.support.v7.widget.helper.ItemTouchHelper.LEFT in project Osmand by osmandapp.
the class MapActivityActions method createReloadTitleDialog.
private Dialog createReloadTitleDialog(final Bundle args) {
AlertDialog.Builder builder = new AlertDialog.Builder(mapActivity);
builder.setMessage(R.string.context_menu_item_update_map_confirm);
builder.setNegativeButton(R.string.shared_string_cancel, null);
final OsmandMapTileView mapView = mapActivity.getMapView();
builder.setPositiveButton(R.string.context_menu_item_update_map, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int zoom = args.getInt(KEY_ZOOM);
BaseMapLayer mainLayer = mapView.getMainLayer();
if (!(mainLayer instanceof MapTileLayer) || !((MapTileLayer) mainLayer).isVisible()) {
Toast.makeText(mapActivity, R.string.maps_could_not_be_downloaded, Toast.LENGTH_SHORT).show();
return;
}
final ITileSource mapSource = ((MapTileLayer) mainLayer).getMap();
if (mapSource == null || !mapSource.couldBeDownloadedFromInternet()) {
Toast.makeText(mapActivity, R.string.maps_could_not_be_downloaded, Toast.LENGTH_SHORT).show();
return;
}
final RotatedTileBox tb = mapView.getCurrentRotatedTileBox();
final QuadRect tilesRect = tb.getTileBounds();
int left = (int) Math.floor(tilesRect.left);
int top = (int) Math.floor(tilesRect.top);
int width = (int) (Math.ceil(tilesRect.right) - left);
int height = (int) (Math.ceil(tilesRect.bottom) - top);
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
((OsmandApplication) mapActivity.getApplication()).getResourceManager().clearTileForMap(null, mapSource, i + left, j + top, zoom);
}
}
mapView.refreshMap();
}
});
return builder.create();
}
use of android.support.v7.widget.helper.ItemTouchHelper.LEFT in project Zom-Android by zom.
the class ContactsPickerActivity method onCreate.
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
((ImApp) getApplication()).setAppTheme(this);
setContentView(R.layout.contacts_picker_activity);
if (getIntent().getData() != null)
mUri = getIntent().getData();
mLayoutContactSelect = findViewById(R.id.layoutContactSelect);
mLayoutGroupSelect = findViewById(R.id.layoutGroupSelect);
mSelectedContacts = (FlowLayout) findViewById(R.id.flSelectedContacts);
mSelectedContacts.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
// When the tag view grows we don't want the list to jump around, so
// compensate for this by trying to scroll the list.
final int diff = bottom - oldBottom;
ListViewCompat.scrollListBy(mListView, diff);
}
});
boolean isGroupOnlyMode = isGroupOnlyMode();
excludedContacts = getIntent().getStringArrayListExtra(EXTRA_EXCLUDED_CONTACTS);
mShowGroups = getIntent().getBooleanExtra(EXTRA_SHOW_GROUPS, false);
View btnCreateGroup = findViewById(R.id.btnCreateGroup);
btnCreateGroup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setGroupMode(true);
}
});
btnCreateGroup.setVisibility(isGroupOnlyMode ? View.GONE : View.VISIBLE);
View btnAddContact = findViewById(R.id.btnAddFriend);
btnAddContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(ContactsPickerActivity.this, AddContactActivity.class);
startActivityForResult(i, REQUEST_CODE_ADD_CONTACT);
}
});
btnAddContact.setVisibility(isGroupOnlyMode ? View.GONE : View.VISIBLE);
// Make sure the tag view can not be more than a third of the screen
View root = findViewById(R.id.llRoot);
if (root != null) {
root.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
if ((bottom - top) != (oldBottom - oldTop)) {
ViewGroup.LayoutParams lp = mSelectedContacts.getLayoutParams();
lp.height = (bottom - top) / 3;
mSelectedContacts.setLayoutParams(lp);
}
}
});
}
mListView = (ListView) findViewById(R.id.contactsList);
setGroupMode(isGroupOnlyMode);
mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
multiStart(i);
return true;
}
});
// Uncomment this to set as list view header instead.
// ((ViewGroup)mSelectedContacts.getParent()).removeView(mSelectedContacts);
// mSelectedContacts.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.WRAP_CONTENT));
// mListView.addHeaderView(mSelectedContacts);
mListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) {
if (mListView.getChoiceMode() == ListView.CHOICE_MODE_MULTIPLE) {
if (isSelected(id)) {
unselect(id);
} else {
select(position);
}
} else {
Cursor cursor = (Cursor) mAdapter.getItem(position);
Intent data = new Intent();
data.putExtra(EXTRA_RESULT_USERNAME, cursor.getString(ContactListItem.COLUMN_CONTACT_USERNAME));
data.putExtra(EXTRA_RESULT_PROVIDER, cursor.getLong(ContactListItem.COLUMN_CONTACT_PROVIDER));
data.putExtra(EXTRA_RESULT_ACCOUNT, cursor.getLong(ContactListItem.COLUMN_CONTACT_ACCOUNT));
setResult(RESULT_OK, data);
finish();
}
}
});
doFilterAsync("");
}
use of android.support.v7.widget.helper.ItemTouchHelper.LEFT in project ttdj by soonphe.
the class RecycleViewDivider method drawVertical.
// 绘制纵向 item 分割线
private void drawVertical(Canvas canvas, RecyclerView parent) {
final int top = parent.getPaddingTop();
final int bottom = parent.getMeasuredHeight() - parent.getPaddingBottom();
final int childSize = parent.getChildCount();
for (int i = 0; i < childSize; i++) {
final View child = parent.getChildAt(i);
RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams();
final int left = child.getRight() + layoutParams.rightMargin;
final int right = left + mDividerHeight;
if (mDivider != null) {
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(canvas);
}
if (mPaint != null) {
canvas.drawRect(left, top, right, bottom, mPaint);
}
}
}
use of android.support.v7.widget.helper.ItemTouchHelper.LEFT in project nextcloud-notes by stefan-niedermann.
the class NotesListViewActivity method initList.
public void initList() {
adapter = new ItemAdapter(this);
RecyclerView listView = findViewById(R.id.recycler_view);
listView.setAdapter(adapter);
listView.setLayoutManager(new LinearLayoutManager(this));
ItemTouchHelper touchHelper = new ItemTouchHelper(new SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
return false;
}
/**
* Disable swipe on sections
*
* @param recyclerView RecyclerView
* @param viewHolder RecyclerView.ViewHoler
* @return 0 if section, otherwise super()
*/
@Override
public int getSwipeDirs(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
if (viewHolder instanceof ItemAdapter.SectionViewHolder)
return 0;
return super.getSwipeDirs(recyclerView, viewHolder);
}
/**
* Delete note if note is swiped to left or right
*
* @param viewHolder RecyclerView.ViewHoler
* @param direction int
*/
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
if (direction == ItemTouchHelper.LEFT || direction == ItemTouchHelper.RIGHT) {
final DBNote dbNote = (DBNote) adapter.getItem(viewHolder.getAdapterPosition());
db.deleteNoteAndSync((dbNote).getId());
adapter.remove(dbNote);
refreshLists();
Log.v("Note", "Item deleted through swipe ----------------------------------------------");
Snackbar.make(swipeRefreshLayout, R.string.action_note_deleted, Snackbar.LENGTH_LONG).setAction(R.string.action_undo, new View.OnClickListener() {
@Override
public void onClick(View v) {
db.addNoteAndSync(dbNote);
refreshLists();
Snackbar.make(swipeRefreshLayout, R.string.action_note_restored, Snackbar.LENGTH_SHORT).show();
}
}).show();
}
}
@Override
public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
ItemAdapter.NoteViewHolder noteViewHolder = (ItemAdapter.NoteViewHolder) viewHolder;
// show delete icon on the right side
noteViewHolder.showSwipeDelete(dX > 0);
// move only swipeable part of item (not leave-behind)
getDefaultUIUtil().onDraw(c, recyclerView, noteViewHolder.noteSwipeable, dX, dY, actionState, isCurrentlyActive);
}
@Override
public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
getDefaultUIUtil().clearView(((ItemAdapter.NoteViewHolder) viewHolder).noteSwipeable);
}
});
touchHelper.attachToRecyclerView(listView);
}
Aggregations