12a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio/*
22a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio * Copyright (C) 2012 The Android Open Source Project
32a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio *
42a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio * Licensed under the Apache License, Version 2.0 (the "License");
52a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio * you may not use this file except in compliance with the License.
62a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio * You may obtain a copy of the License at
72a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio *
82a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio *      http://www.apache.org/licenses/LICENSE-2.0
92a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio *
102a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio * Unless required by applicable law or agreed to in writing, software
112a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio * distributed under the License is distributed on an "AS IS" BASIS,
122a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio * See the License for the specific language governing permissions and
142a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio * limitations under the License.
152a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio */
162a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio
172a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Megliopackage com.android.bidi;
182a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio
192a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglioimport android.app.Fragment;
202a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglioimport android.content.Context;
212a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglioimport android.os.Bundle;
222a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglioimport android.view.LayoutInflater;
232a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglioimport android.view.View;
242a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglioimport android.view.ViewGroup;
25a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport android.widget.Button;
26a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport android.widget.EditText;
27a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport android.widget.FrameLayout;
280d2bda319d4d66d8fc840b043d3aacee9a8414dbFabrice Di Meglioimport android.widget.GridLayout;
29a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport android.widget.Space;
30a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport android.widget.TextView;
312a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio
32a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport static android.text.InputType.TYPE_CLASS_TEXT;
33a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport static android.text.InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;
34a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport static android.text.InputType.TYPE_TEXT_VARIATION_PASSWORD;
35a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport static android.widget.GridLayout.ALIGN_BOUNDS;
36a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport static android.widget.GridLayout.BASELINE;
37a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport static android.widget.GridLayout.CENTER;
38a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport static android.widget.GridLayout.FILL;
39a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport static android.widget.GridLayout.LEFT;
40a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport static android.widget.GridLayout.RIGHT;
41a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport static android.widget.GridLayout.START;
42a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport static android.widget.GridLayout.Spec;
43a7726271f756dfc6f2ff3bb10fc4167e750fb606Tor Norbyeimport static android.widget.GridLayout.spec;
442a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio
452a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Megliopublic class BiDiTestGridLayoutCodeRtl extends Fragment {
462a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio
472a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio    private FrameLayout currentView;
482a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio
492a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio    @Override
502a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio    public View onCreateView(LayoutInflater inflater, ViewGroup container,
512a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            Bundle savedInstanceState) {
522a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        currentView = (FrameLayout) inflater.inflate(R.layout.grid_layout_code, container, false);
532a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        return currentView;
542a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio    }
552a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio
562a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio    @Override
572a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio    public void onViewCreated(View view, Bundle savedInstanceState) {
582a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        super.onViewCreated(view, savedInstanceState);
592a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        currentView.addView(create(currentView.getContext()));
602a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio    }
612a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio
622a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio    public static View create(Context context) {
632a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        GridLayout layout = new GridLayout(context);
642a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        layout.setUseDefaultMargins(true);
652a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        layout.setAlignmentMode(ALIGN_BOUNDS);
662a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        layout.setRowOrderPreserved(false);
672a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        layout.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
682a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio
692a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        Spec row1 = spec(0);
702a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        Spec row2 = spec(1);
712a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        Spec row3 = spec(2, BASELINE);
722a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        Spec row4 = spec(3, BASELINE);
732a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        Spec row5 = spec(2, 3, FILL); // allow the last two rows to overlap the middle two
742a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        Spec row6 = spec(5);
752a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        Spec row7 = spec(6);
762a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio
772a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        Spec col1a = spec(0, 4, CENTER);
780d2bda319d4d66d8fc840b043d3aacee9a8414dbFabrice Di Meglio        Spec col1b = spec(0, 4, LEFT);
790d2bda319d4d66d8fc840b043d3aacee9a8414dbFabrice Di Meglio        Spec col1c = spec(0, RIGHT);
802a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        Spec col2 = spec(1, START);
812a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        Spec col3 = spec(2, FILL);
822a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        Spec col4a = spec(3);
832a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        Spec col4b = spec(3, FILL);
842a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio
852a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        {
862a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            TextView c = new TextView(context);
872a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            c.setTextSize(32);
882a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            c.setText("Email setup");
892a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            layout.addView(c, new GridLayout.LayoutParams(row1, col1a));
902a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        }
912a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        {
922a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            TextView c = new TextView(context);
932a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            c.setTextSize(16);
942a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            c.setText("You can configure email in just a few steps:");
952a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            layout.addView(c, new GridLayout.LayoutParams(row2, col1b));
962a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        }
972a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        {
982a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            TextView c = new TextView(context);
992a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            c.setText("Email address:");
1002a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            layout.addView(c, new GridLayout.LayoutParams(row3, col1c));
1012a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        }
1022a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        {
1032a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            EditText c = new EditText(context);
1042a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            c.setEms(10);
1052a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            c.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
1062a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            layout.addView(c, new GridLayout.LayoutParams(row3, col2));
1072a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        }
1082a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        {
1092a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            TextView c = new TextView(context);
1102a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            c.setText("Password:");
1112a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            layout.addView(c, new GridLayout.LayoutParams(row4, col1c));
1122a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        }
1132a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        {
1142a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            TextView c = new EditText(context);
1152a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            c.setEms(8);
1162a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            c.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD);
1172a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            layout.addView(c, new GridLayout.LayoutParams(row4, col2));
1182a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        }
1192a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        {
1202a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            Space c = new Space(context);
1212a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            layout.addView(c, new GridLayout.LayoutParams(row5, col3));
1222a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        }
1232a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        {
1242a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            Button c = new Button(context);
1252a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            c.setText("Manual setup");
1262a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            layout.addView(c, new GridLayout.LayoutParams(row6, col4a));
1272a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        }
1282a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        {
1292a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            Button c = new Button(context);
1302a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            c.setText("Next");
1312a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio            layout.addView(c, new GridLayout.LayoutParams(row7, col4b));
1322a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        }
1332a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio
1342a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio        return layout;
1352a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio    }
1362a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio}
137