Example usage for android.view Display getOrientation

List of usage examples for android.view Display getOrientation

Introduction

In this page you can find the example usage for android.view Display getOrientation.

Prototype

@Deprecated
@Surface.Rotation
public int getOrientation() 

Source Link

Usage

From source file:org.odk.collect.android.widgets.SelectMultiWidgetGridLayout.java

@SuppressWarnings("unchecked")
public SelectMultiWidgetGridLayout(Context context, FormEntryPrompt prompt) {
    super(context, prompt);
    mPrompt = prompt;/*from www.  j a  v  a  2  s . c o m*/
    mCheckboxes = new ArrayList<CheckBox>();

    // SurveyCTO-added support for dynamic select content (from .csv files)
    XPathFuncExpr xPathFuncExpr = ExternalDataUtil.getSearchXPathExpression(prompt.getAppearanceHint());
    if (xPathFuncExpr != null) {
        mItems = ExternalDataUtil.populateExternalChoices(prompt, xPathFuncExpr);
    } else {
        mItems = prompt.getSelectChoices();
    }

    setOrientation(LinearLayout.VERTICAL);

    Vector<Selection> ve = new Vector<Selection>();
    if (prompt.getAnswerValue() != null) {
        ve = (Vector<Selection>) prompt.getAnswerValue().getValue();
    }
    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int screenWidth = size.x;
    int height = size.y;

    int halfScreenWidth = (int) (screenWidth * 0.5);
    int quarterScreenWidth = (int) (halfScreenWidth * 0.5);

    glayout = new GridLayout(getContext());
    glayout.setOrientation(0);
    glayout.setColumnCount(2);
    //glayout.setRowCount(2);

    int row_index = 0;
    int col_index = 0;

    if (mItems != null) {
        for (int i = 0; i < mItems.size(); i++) {
            // no checkbox group so id by answer + offset
            CheckBox c = new CheckBox(getContext());
            c.setTag(Integer.valueOf(i));
            c.setId(QuestionWidget.newUniqueId());
            c.setText(prompt.getSelectChoiceText(mItems.get(i)));
            c.setTextSize(TypedValue.COMPLEX_UNIT_DIP, mAnswerFontsize);
            c.setFocusable(!prompt.isReadOnly());
            c.setEnabled(!prompt.isReadOnly());

            for (int vi = 0; vi < ve.size(); vi++) {
                // match based on value, not key
                if (mItems.get(i).getValue().equals(ve.elementAt(vi).getValue())) {
                    c.setChecked(true);
                    break;
                }

            }
            mCheckboxes.add(c);
            // when clicked, check for readonly before toggling
            c.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    if (!mCheckboxInit && mPrompt.isReadOnly()) {
                        if (buttonView.isChecked()) {
                            buttonView.setChecked(false);
                            Collect.getInstance().getActivityLogger().logInstanceAction(this,
                                    "onItemClick.deselect",
                                    mItems.get((Integer) buttonView.getTag()).getValue(), mPrompt.getIndex());
                        } else {
                            buttonView.setChecked(true);
                            Collect.getInstance().getActivityLogger().logInstanceAction(this,
                                    "onItemClick.select", mItems.get((Integer) buttonView.getTag()).getValue(),
                                    mPrompt.getIndex());
                        }
                    }
                }
            });

            String audioURI = null;
            audioURI = prompt.getSpecialFormSelectChoiceText(mItems.get(i), FormEntryCaption.TEXT_FORM_AUDIO);

            String imageURI;
            if (mItems.get(i) instanceof ExternalSelectChoice) {
                imageURI = ((ExternalSelectChoice) mItems.get(i)).getImage();
            } else {
                imageURI = prompt.getSpecialFormSelectChoiceText(mItems.get(i),
                        FormEntryCaption.TEXT_FORM_IMAGE);
            }

            String videoURI = null;
            videoURI = prompt.getSpecialFormSelectChoiceText(mItems.get(i), "video");

            String bigImageURI = null;
            bigImageURI = prompt.getSpecialFormSelectChoiceText(mItems.get(i), "big-image");

            MediaLayout mediaLayout = new MediaLayout(getContext());
            mediaLayout.setAVT(prompt.getIndex(), "." + Integer.toString(i), c, audioURI, imageURI, videoURI,
                    bigImageURI);
            // mediaLayout.setAVT(index, selectionDesignator, text, audioURI, imageURI, videoURI, bigImageURI);
            // addView(mediaLayout);

            row_index = i / 2 + 1;
            col_index = i % 2;

            int orientation = display.getOrientation();
            if (orientation == 1) {
                halfScreenWidth = height / 2;
            } else {
                halfScreenWidth = screenWidth / 2;
            }

            Spec row = GridLayout.spec(row_index);
            Spec col = GridLayout.spec(col_index);
            GridLayout.LayoutParams first = new GridLayout.LayoutParams(row, col);
            first.width = halfScreenWidth;
            // first.height = quarterScreenWidth * 2;
            glayout.addView(mediaLayout, first);

            // Last, add the dividing line between elements (except for the last element)
            ImageView divider = new ImageView(getContext());
            divider.setBackgroundResource(android.R.drawable.divider_horizontal_bright);
            if (i != mItems.size() - 1) {
                if (col_index == 0)
                    glayout.addView(divider);
            }

        }
    }
    addView(glayout);
    mCheckboxInit = false;

}