Search in sources :

Example 41 with RIGHT

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);
    }
}
Also used : InputStreamReader(java.io.InputStreamReader) InputStream(java.io.InputStream) Reader(java.io.Reader) InputStreamReader(java.io.InputStreamReader) BufferedReader(java.io.BufferedReader) SnickerDoodle(com.instructure.loginapi.login.snicker.SnickerDoodle) Gson(com.google.gson.Gson) Handler(android.os.Handler) HttpAuthHandler(android.webkit.HttpAuthHandler) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) JsonSyntaxException(com.google.gson.JsonSyntaxException) StringWriter(java.io.StringWriter) TypeToken(com.google.gson.reflect.TypeToken) WebChromeClient(android.webkit.WebChromeClient) BufferedReader(java.io.BufferedReader) SnickerDoodleAdapter(com.instructure.loginapi.login.adapter.SnickerDoodleAdapter) Writer(java.io.Writer) StringWriter(java.io.StringWriter) TargetApi(android.annotation.TargetApi)

Example 42 with RIGHT

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);
    }
}
Also used : RecyclerView(android.support.v7.widget.RecyclerView) RecyclerView(android.support.v7.widget.RecyclerView) View(android.view.View)

Example 43 with RIGHT

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);
    }
}
Also used : RecyclerView(android.support.v7.widget.RecyclerView) RecyclerView(android.support.v7.widget.RecyclerView) View(android.view.View)

Example 44 with RIGHT

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;
        }
    }
}
Also used : RecyclerView(android.support.v7.widget.RecyclerView) BaseExpandableRecyclerAdapter(com.instructure.pandarecycler.BaseExpandableRecyclerAdapter) AlphaAnimation(android.view.animation.AlphaAnimation)

Example 45 with RIGHT

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);
    }
}
Also used : Preference(android.support.v7.preference.Preference)

Aggregations

View (android.view.View)315 RecyclerView (android.support.v7.widget.RecyclerView)294 Paint (android.graphics.Paint)47 TextView (android.widget.TextView)46 ImageView (android.widget.ImageView)29 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)27 ViewGroup (android.view.ViewGroup)15 Intent (android.content.Intent)13 Rect (android.graphics.Rect)12 Preference (android.support.v7.preference.Preference)12 GridLayoutManager (android.support.v7.widget.GridLayoutManager)11 SuppressLint (android.annotation.SuppressLint)10 AlertDialog (android.support.v7.app.AlertDialog)10 Bundle (android.os.Bundle)9 Bitmap (android.graphics.Bitmap)8 OnLayoutChangeListener (android.view.View.OnLayoutChangeListener)8 Button (android.widget.Button)8 PreferenceScreen (android.support.v7.preference.PreferenceScreen)7 ArrayList (java.util.ArrayList)7 Animator (android.animation.Animator)6