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; 252a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglioimport android.widget.GridLayout; 262a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglioimport android.widget.*; 272a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio 282a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglioimport static android.text.InputType.*; 292a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglioimport static android.widget.GridLayout.*; 302a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio 312a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Megliopublic class BiDiTestGridLayoutCodeLtr extends Fragment { 322a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio 332a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio private FrameLayout currentView; 342a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio 352a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio @Override 362a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio public View onCreateView(LayoutInflater inflater, ViewGroup container, 372a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Bundle savedInstanceState) { 382a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio currentView = (FrameLayout) inflater.inflate(R.layout.grid_layout_code, container, false); 392a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio return currentView; 402a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio } 412a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio 422a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio @Override 432a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio public void onViewCreated(View view, Bundle savedInstanceState) { 442a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio super.onViewCreated(view, savedInstanceState); 452a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio currentView.addView(create(currentView.getContext())); 462a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio } 472a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio 482a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio public static View create(Context context) { 492a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio GridLayout layout = new GridLayout(context); 502a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio layout.setUseDefaultMargins(true); 512a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio layout.setAlignmentMode(ALIGN_BOUNDS); 522a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio layout.setRowOrderPreserved(false); 532a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio layout.setLayoutDirection(View.LAYOUT_DIRECTION_LTR); 542a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio 552a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Spec row1 = spec(0); 562a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Spec row2 = spec(1); 572a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Spec row3 = spec(2, BASELINE); 582a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Spec row4 = spec(3, BASELINE); 592a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Spec row5 = spec(2, 3, FILL); // allow the last two rows to overlap the middle two 602a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Spec row6 = spec(5); 612a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Spec row7 = spec(6); 622a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio 632a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Spec col1a = spec(0, 4, CENTER); 640d2bda319d4d66d8fc840b043d3aacee9a8414dbFabrice Di Meglio Spec col1b = spec(0, 4, LEFT); 650d2bda319d4d66d8fc840b043d3aacee9a8414dbFabrice Di Meglio Spec col1c = spec(0, RIGHT); 662a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Spec col2 = spec(1, START); 672a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Spec col3 = spec(2, FILL); 682a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Spec col4a = spec(3); 692a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Spec col4b = spec(3, FILL); 702a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio 712a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio { 722a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio TextView c = new TextView(context); 732a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio c.setTextSize(32); 742a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio c.setText("Email setup"); 752a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio layout.addView(c, new GridLayout.LayoutParams(row1, col1a)); 762a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio } 772a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio { 782a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio TextView c = new TextView(context); 792a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio c.setTextSize(16); 802a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio c.setText("You can configure email in just a few steps:"); 812a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio layout.addView(c, new GridLayout.LayoutParams(row2, col1b)); 822a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio } 832a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio { 842a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio TextView c = new TextView(context); 852a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio c.setText("Email address:"); 862a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio layout.addView(c, new GridLayout.LayoutParams(row3, col1c)); 872a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio } 882a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio { 892a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio EditText c = new EditText(context); 902a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio c.setEms(10); 912a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio c.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_EMAIL_ADDRESS); 922a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio layout.addView(c, new GridLayout.LayoutParams(row3, col2)); 932a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio } 942a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio { 952a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio TextView c = new TextView(context); 962a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio c.setText("Password:"); 972a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio layout.addView(c, new GridLayout.LayoutParams(row4, col1c)); 982a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio } 992a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio { 1002a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio TextView c = new EditText(context); 1012a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio c.setEms(8); 1022a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio c.setInputType(TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_PASSWORD); 1032a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio layout.addView(c, new GridLayout.LayoutParams(row4, col2)); 1042a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio } 1052a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio { 1062a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Space c = new Space(context); 1072a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio layout.addView(c, new GridLayout.LayoutParams(row5, col3)); 1082a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio } 1092a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio { 1102a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Button c = new Button(context); 1112a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio c.setText("Manual setup"); 1122a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio layout.addView(c, new GridLayout.LayoutParams(row6, col4a)); 1132a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio } 1142a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio { 1152a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio Button c = new Button(context); 1162a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio c.setText("Next"); 1172a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio layout.addView(c, new GridLayout.LayoutParams(row7, col4b)); 1182a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio } 1192a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio 1202a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio return layout; 1212a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio } 1222a7e7a08d9843d5386b2d245c096cbc1ce203e35Fabrice Di Meglio} 123