use of android.support.v7.widget.helper.ItemTouchHelper.RIGHT in project instructure-android by instructure.
the class OAuthWebLogin method eatSnickerDoodles.
/**
* Adds a simple login method for devs. To add credentials add your snickers (credentials) to the snickers.json
* Slide the drawer out from the right to have a handy one click login. FYI: Only works on Debug.
* Sample Format is:
*
* [
* {
* "password":"password",
* "subtitle":"subtitle",
* "title":"title",
* "username":"username"
* },
* ...
* ]
*/
@TargetApi(Build.VERSION_CODES.KITKAT)
private void eatSnickerDoodles() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
return;
}
Writer writer = new StringWriter();
try {
InputStream is = getResources().openRawResource(getResources().getIdentifier("snickers", "raw", getPackageName()));
char[] buffer = new char[1024];
Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
int n;
while ((n = reader.read(buffer)) != -1) {
writer.write(buffer, 0, n);
}
is.close();
} catch (Exception e) {
// Do Nothing
}
String jsonString = writer.toString();
if (jsonString != null && jsonString.length() > 0) {
ArrayList<SnickerDoodle> snickerDoodles = new Gson().fromJson(jsonString, new TypeToken<ArrayList<SnickerDoodle>>() {
}.getType());
if (snickerDoodles.size() == 0) {
findViewById(R.id.drawerEmptyView).setVisibility(View.VISIBLE);
findViewById(R.id.drawerEmptyText).setVisibility(View.VISIBLE);
return;
}
web.getSettings().setDomStorageEnabled(true);
web.setWebChromeClient(new WebChromeClient());
mDrawerRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, true));
mDrawerRecyclerView.setAdapter(new SnickerDoodleAdapter(snickerDoodles, new SnickerDoodleAdapter.SnickerCallback() {
@Override
public void onClick(SnickerDoodle snickerDoodle) {
mDrawerLayout.closeDrawers();
final String js = "javascript: { " + "document.getElementsByName('pseudonym_session[unique_id]')[0].value = '" + snickerDoodle.username + "'; " + "document.getElementsByName('pseudonym_session[password]')[0].value = '" + snickerDoodle.password + "'; " + "document.getElementsByClassName('btn')[0].click(); " + "};";
web.evaluateJavascript(js, new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
}
});
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
final String js = "javascript: { " + "document.getElementsByClassName('btn')[0].click();" + "};";
web.evaluateJavascript(js, new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
}
});
}
});
}
}, 750);
}
}));
} else {
findViewById(R.id.drawerEmptyView).setVisibility(View.VISIBLE);
findViewById(R.id.drawerEmptyText).setVisibility(View.VISIBLE);
}
}
use of android.support.v7.widget.helper.ItemTouchHelper.RIGHT in project instructure-android by instructure.
the class DividerDecoration 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 = 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 = 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;
bottom = top + size;
} else {
// horizontal
left = child.getLeft() - params.leftMargin;
right = left + size;
}
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(c);
}
}
use of android.support.v7.widget.helper.ItemTouchHelper.RIGHT in project instructure-android by instructure.
the class DividerItemDecoration method drawHorizontal.
public void drawHorizontal(Canvas c, RecyclerView parent) {
final int top = parent.getPaddingTop();
final int bottom = parent.getHeight() - parent.getPaddingBottom();
final int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
final View child = parent.getChildAt(i);
final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
final int left = child.getRight() + params.rightMargin;
final int right = left + mDivider.getIntrinsicHeight();
mDivider.setBounds(left, top, right, bottom);
mDivider.draw(c);
}
}
use of android.support.v7.widget.helper.ItemTouchHelper.RIGHT in project instructure-android by instructure.
the class ExpandableGridSpacingDecorator method getItemOffsets.
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
super.getItemOffsets(outRect, view, parent, state);
final BaseExpandableRecyclerAdapter adapter = (BaseExpandableRecyclerAdapter) parent.getAdapter();
final int position = parent.getChildAdapterPosition(view);
final boolean isHeader = adapter.isPositionGroupHeader(position);
final RecyclerView.ViewHolder viewHolder = parent.getChildViewHolder(view);
if (position == RecyclerView.NO_POSITION) {
// If this ItemDecoration does not affect the positioning of item views,
AlphaAnimation anim = new AlphaAnimation(1.0f, 0.0f);
anim.setDuration(175);
viewHolder.itemView.startAnimation(anim);
viewHolder.itemView.setVisibility(View.GONE);
return;
} else {
viewHolder.itemView.setVisibility(View.VISIBLE);
}
if (isHeader) {
return;
}
final int spanCount = getTotalSpan(parent);
// the visual position
final int pseudoGroupPosition = adapter.getGroupVisualPosition(position);
final int rows = ((adapter.getGroupItemCount(adapter.getGroup(pseudoGroupPosition)) - 1) / spanCount) + 1;
final int leftRightEdge = getIsEdgeType(spanCount, position, pseudoGroupPosition);
final int topBottomEdge = getIsTopBottomEdgeType(spanCount, rows, position, pseudoGroupPosition);
if (spanCount == 1) {
outRect.left = spacing;
outRect.right = spacing;
} else {
if (leftRightEdge == LEFT) {
outRect.left = spacing;
outRect.right = halfSpacing;
} else if (leftRightEdge == RIGHT) {
outRect.left = halfSpacing;
outRect.right = spacing;
} else {
outRect.left = halfSpacing;
outRect.right = halfSpacing;
}
}
if (rows == 1) {
outRect.top = spacing;
outRect.bottom = spacing;
} else {
if (topBottomEdge == TOP) {
outRect.top = spacing;
outRect.bottom = halfSpacing;
} else if (topBottomEdge == BOTTOM) {
outRect.top = halfSpacing;
outRect.bottom = spacing;
} else {
outRect.top = halfSpacing;
outRect.bottom = halfSpacing;
}
}
}
use of android.support.v7.widget.helper.ItemTouchHelper.RIGHT in project android_packages_apps_Settings by LineageOS.
the class ProgressiveDisclosureMixin method addPreference.
/**
* Adds preference to screen. If there are too many preference on screen, adds it to
* collapsed list instead.
*/
public void addPreference(PreferenceScreen screen, Preference pref) {
// Either add to screen, or to collapsed list.
if (isCollapsed()) {
// insert the preference to right position.
final int lastPreferenceIndex = screen.getPreferenceCount() - 2;
if (lastPreferenceIndex >= 0) {
final Preference lastPreference = screen.getPreference(lastPreferenceIndex);
if (lastPreference.getOrder() > pref.getOrder()) {
// insert to screen and move the last pref to collapsed list.
screen.removePreference(lastPreference);
screen.addPreference(pref);
addToCollapsedList(lastPreference);
} else {
// Insert to collapsed list.
addToCollapsedList(pref);
}
} else {
// Couldn't find last preference on screen, just add to collapsed list.
addToCollapsedList(pref);
}
} else if (shouldCollapse(screen)) {
// About to have too many tiles on scree, collapse and add pref to collapsed list.
screen.addPreference(pref);
collapse(screen);
} else {
// No need to collapse, add to screen directly.
screen.addPreference(pref);
}
}
Aggregations