<?xml version="1.0" encoding="utf-8"?>

<!-- Copyright (C) 2011 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.
-->

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical" android:layout_width="fill_parent"
  android:layout_height="fill_parent">


  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <!--Button android:id="@+id/focusmodesbutton" android:layout_width="0px"
      android:layout_height="wrap_content" android:text="@string/ca_focus_modes_label"
      android:layout_weight="1" /-->
    <Button android:id="@+id/findcheckerboardbutton" android:layout_width="0px"
      android:layout_height="wrap_content" android:text="@string/ca_find_checkerboard_label"
      android:layout_weight="1" />

    <Button android:id="@+id/meteringbutton" android:layout_width="0px"
      android:layout_height="wrap_content" android:text="@string/ca_metering_label"
      android:layout_weight="1" />

    <Button android:id="@+id/exposurecompensationbutton" android:layout_width="0px"
      android:layout_height="wrap_content" android:text="@string/ca_exposure_test_label"
      android:layout_weight="1"/>

    <Button android:id="@+id/whitebalancebutton" android:layout_width="0px"
      android:layout_height="wrap_content" android:text="@string/ca_wb_test_label"
      android:layout_weight="1" />

    <Button android:id="@+id/lockbutton" android:layout_width="0px"
      android:layout_height="wrap_content" android:text="@string/ca_lock_test_label"
      android:layout_weight="1" />
  </LinearLayout>

  <LinearLayout android:orientation="horizontal"
    android:layout_width="fill_parent" android:layout_height="0px"
    android:layout_weight="1">

    <SurfaceView android:id="@+id/cameraview" android:layout_height="fill_parent"
      android:layout_width="wrap_content"
      android:layout_weight="0" />

    <LinearLayout android:orientation="vertical"
      android:layout_width="fill_parent" android:layout_height="match_parent"
      android:layout_weight="1">

       <ListView android:id="@+id/ca_tests"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:layout_marginLeft="10px"/>

      <ImageView android:id="@+id/resultview" android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_weight="1" />
    </LinearLayout>

  </LinearLayout>

  <include layout="@layout/pass_fail_buttons" />

</LinearLayout>

