From 2a7e7a08d9843d5386b2d245c096cbc1ce203e35 Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Thu, 9 Feb 2012 17:32:24 -0800 Subject: Update BiDiTests app - add more unit tests for GridLayout (layout created by code) Change-Id: I462c41a7c5bdcb6c5d3762570f5d415cc0fa0bde --- tests/BiDiTests/res/layout/grid_layout_code.xml | 22 ++++ .../src/com/android/bidi/BiDiTestActivity.java | 2 + .../android/bidi/BiDiTestGridLayoutCodeLtr.java | 123 +++++++++++++++++++++ .../android/bidi/BiDiTestGridLayoutCodeRtl.java | 121 ++++++++++++++++++++ 4 files changed, 268 insertions(+) create mode 100644 tests/BiDiTests/res/layout/grid_layout_code.xml create mode 100644 tests/BiDiTests/src/com/android/bidi/BiDiTestGridLayoutCodeLtr.java create mode 100644 tests/BiDiTests/src/com/android/bidi/BiDiTestGridLayoutCodeRtl.java diff --git a/tests/BiDiTests/res/layout/grid_layout_code.xml b/tests/BiDiTests/res/layout/grid_layout_code.xml new file mode 100644 index 0000000..87a0ec0 --- /dev/null +++ b/tests/BiDiTests/res/layout/grid_layout_code.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file diff --git a/tests/BiDiTests/src/com/android/bidi/BiDiTestActivity.java b/tests/BiDiTests/src/com/android/bidi/BiDiTestActivity.java index 4d7ace1..c5a1235 100644 --- a/tests/BiDiTests/src/com/android/bidi/BiDiTestActivity.java +++ b/tests/BiDiTests/src/com/android/bidi/BiDiTestActivity.java @@ -111,6 +111,8 @@ public class BiDiTestActivity extends Activity { addItem(result, "Grid LTR", BiDiTestGridLayoutLtr.class, R.id.grid_layout_ltr); addItem(result, "Grid RTL", BiDiTestGridLayoutRtl.class, R.id.grid_layout_rtl); addItem(result, "Grid LOC", BiDiTestGridLayoutLocale.class, R.id.grid_layout_locale); + addItem(result, "Grid C-LTR", BiDiTestGridLayoutCodeLtr.class, R.id.grid_layout_code); + addItem(result, "Grid C-RTL", BiDiTestGridLayoutCodeRtl.class, R.id.grid_layout_code); addItem(result, "Frame LTR", BiDiTestFrameLayoutLtr.class, R.id.frame_layout_ltr); addItem(result, "Frame RTL", BiDiTestFrameLayoutRtl.class, R.id.frame_layout_rtl); diff --git a/tests/BiDiTests/src/com/android/bidi/BiDiTestGridLayoutCodeLtr.java b/tests/BiDiTests/src/com/android/bidi/BiDiTestGridLayoutCodeLtr.java new file mode 100644 index 0000000..859b8fb --- /dev/null +++ b/tests/BiDiTests/src/com/android/bidi/BiDiTestGridLayoutCodeLtr.java @@ -0,0 +1,123 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.bidi; + +import android.app.Fragment; +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.GridLayout; + +import android.widget.*; + +import static android.text.InputType.*; +import static android.widget.GridLayout.*; + +public class BiDiTestGridLayoutCodeLtr extends Fragment { + + private FrameLayout currentView; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + currentView = (FrameLayout) inflater.inflate(R.layout.grid_layout_code, container, false); + return currentView; + } + + @Override + public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + currentView.addView(create(currentView.getContext())); + } + + public static View create(Context context) { + GridLayout layout = new GridLayout(context); + layout.setUseDefaultMargins(true); + layout.setAlignmentMode(ALIGN_BOUNDS); + layout.setRowOrderPreserved(false); + layout.setLayoutDirection(View.LAYOUT_DIRECTION_LTR); + + Spec row1 = spec(0); + Spec row2 = spec(1); + Spec row3 = spec(2, BASELINE); + Spec row4 = spec(3, BASELINE); + Spec row5 = spec(2, 3, FILL); // allow the last two rows to overlap the middle two + Spec row6 = spec(5); + Spec row7 = spec(6); + + Spec col1a = spec(0, 4, CENTER); + Spec col1b = spec(0, 4, START); + Spec col1c = spec(0, END); + Spec col2 = spec(1, START); + Spec col3 = spec(2, FILL); + Spec col4a = spec(3); + Spec col4b = spec(3, FILL); + + { + TextView c = new TextView(context); + c.setTextSize(32); + c.setText("Email setup"); + layout.addView(c, new GridLayout.LayoutParams(row1, col1a)); + } + { + TextView c = new TextView(context); + c.setTextSize(16); + c.setText("You can configure email in just a few steps:"); + layout.addView(c, new GridLayout.LayoutParams(row2, col1b)); + } + { + TextView c = new TextView(context); + c.setText("Email address:"); + layout.addView(c, new GridLayout.LayoutParams(row3, col1c)); + } + { + EditText c = new EditText(context); + c.setEms(10); + c.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_ADDRESS); + layout.addView(c, new GridLayout.LayoutParams(row3, col2)); + } + { + TextView c = new TextView(context); + c.setText("Password:"); + layout.addView(c, new GridLayout.LayoutParams(row4, col1c)); + } + { + TextView c = new EditText(context); + c.setEms(8); + c.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD); + layout.addView(c, new GridLayout.LayoutParams(row4, col2)); + } + { + Space c = new Space(context); + layout.addView(c, new GridLayout.LayoutParams(row5, col3)); + } + { + Button c = new Button(context); + c.setText("Manual setup"); + layout.addView(c, new GridLayout.LayoutParams(row6, col4a)); + } + { + Button c = new Button(context); + c.setText("Next"); + layout.addView(c, new GridLayout.LayoutParams(row7, col4b)); + } + + return layout; + } +} diff --git a/tests/BiDiTests/src/com/android/bidi/BiDiTestGridLayoutCodeRtl.java b/tests/BiDiTests/src/com/android/bidi/BiDiTestGridLayoutCodeRtl.java new file mode 100644 index 0000000..fac8c95 --- /dev/null +++ b/tests/BiDiTests/src/com/android/bidi/BiDiTestGridLayoutCodeRtl.java @@ -0,0 +1,121 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.bidi; + +import android.app.Fragment; +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.*; + +import static android.text.InputType.*; +import static android.widget.GridLayout.*; + +public class BiDiTestGridLayoutCodeRtl extends Fragment { + + private FrameLayout currentView; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + currentView = (FrameLayout) inflater.inflate(R.layout.grid_layout_code, container, false); + return currentView; + } + + @Override + public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + currentView.addView(create(currentView.getContext())); + } + + public static View create(Context context) { + GridLayout layout = new GridLayout(context); + layout.setUseDefaultMargins(true); + layout.setAlignmentMode(ALIGN_BOUNDS); + layout.setRowOrderPreserved(false); + layout.setLayoutDirection(View.LAYOUT_DIRECTION_RTL); + + Spec row1 = spec(0); + Spec row2 = spec(1); + Spec row3 = spec(2, BASELINE); + Spec row4 = spec(3, BASELINE); + Spec row5 = spec(2, 3, FILL); // allow the last two rows to overlap the middle two + Spec row6 = spec(5); + Spec row7 = spec(6); + + Spec col1a = spec(0, 4, CENTER); + Spec col1b = spec(0, 4, START); + Spec col1c = spec(0, END); + Spec col2 = spec(1, START); + Spec col3 = spec(2, FILL); + Spec col4a = spec(3); + Spec col4b = spec(3, FILL); + + { + TextView c = new TextView(context); + c.setTextSize(32); + c.setText("Email setup"); + layout.addView(c, new GridLayout.LayoutParams(row1, col1a)); + } + { + TextView c = new TextView(context); + c.setTextSize(16); + c.setText("You can configure email in just a few steps:"); + layout.addView(c, new GridLayout.LayoutParams(row2, col1b)); + } + { + TextView c = new TextView(context); + c.setText("Email address:"); + layout.addView(c, new GridLayout.LayoutParams(row3, col1c)); + } + { + EditText c = new EditText(context); + c.setEms(10); + c.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_ADDRESS); + layout.addView(c, new GridLayout.LayoutParams(row3, col2)); + } + { + TextView c = new TextView(context); + c.setText("Password:"); + layout.addView(c, new GridLayout.LayoutParams(row4, col1c)); + } + { + TextView c = new EditText(context); + c.setEms(8); + c.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD); + layout.addView(c, new GridLayout.LayoutParams(row4, col2)); + } + { + Space c = new Space(context); + layout.addView(c, new GridLayout.LayoutParams(row5, col3)); + } + { + Button c = new Button(context); + c.setText("Manual setup"); + layout.addView(c, new GridLayout.LayoutParams(row6, col4a)); + } + { + Button c = new Button(context); + c.setText("Next"); + layout.addView(c, new GridLayout.LayoutParams(row7, col4b)); + } + + return layout; + } +} -- cgit v1.1