<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="16dp">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Manual de Usuario para la Aplicación TopoSmart"
            android:textStyle="bold"
            android:textSize="18sp"
            android:paddingBottom="8dp"
            android:textAlignment="center" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Introducción"
            android:textStyle="bold"
            android:textSize="18sp"
            android:paddingBottom="8dp"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\nTopoSmart es una aplicación para dispositivos Android diseñada para calcular y ajustar polígonos cerrados utilizando el método de mínimos cuadrados. Esta guía proporcionará instrucciones detalladas sobre cómo usar la aplicación."
            android:paddingBottom="10dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Recomendaciones para el Uso de la Aplicación"
            android:textStyle="bold"
            android:textSize="18sp"
            android:paddingBottom="0dp"/>



        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n1. Uso en Modo Claro\n\n- Se recomienda utilizar la aplicación en modo diurno o modo claro. Esto se debe a que, al exportar los resultados en formato PDF, aunque estos sean visibles, obtendra mejores resultados en modo diurno. Asegúrese de ajustar la configuración de su dispositivo para mejorar la visibilidad de los datos exportados."
            android:paddingBottom="8dp"
            android:justificationMode="inter_word"
            android:textAlignment="viewStart"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="2. Uso en Modo Vertical\n\n- Para una mejor visualización de los datos y una experiencia de usuario más óptima, se recomienda utilizar la aplicación en modo vertical. Esto permite que los campos de entrada y los resultados se presenten de manera más clara y accesible en la pantalla del dispositivo."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="3. Cambio de Orientación\n\n- Al cambiar la orientación del dispositivo de modo vertical a horizontal o viceversa, tenga en cuenta que cualquier cálculo realizado previamente se perderá. La aplicación reiniciará las vistas y los datos ingresados y resultados calculados se borrarán. Por lo tanto, asegúrese de completar y revisar todos los cálculos necesarios antes de cambiar la orientación de su dispositivo."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="4. Importación de Datos\n\nPara importar datos en la aplicación, debe utilizar archivos de texto (.txt) que contengan las coordenadas, ángulos y distancias en un formato específico. A continuación, se detalla cómo deben estar configurados estos archivos para una correcta importación.\n\n- Formato para Coordenadas (Linea base):\n\nLas coordenadas deben estar organizadas en pares de valores de norte y este, uno por línea. Cada línea debe tener el siguiente formato:\n\n  Norte1, Este1\n  Norte2, Este2\n \n  Ejemplo:\n\n  5000.000, 4000.000\n  5001.000, 4001.000\n\n- Formato para Ángulos y Distancias:\n\nLos ángulos deben estar en el siguiente formato, uno por línea, con cada ángulo separado por comas, y las distancias deben estar en líneas separadas a continuación:\n\n  Ángulo1º, Minutos1', Segundos1\n  Ángulo2º, Minutos2', Segundos2\n  ...\n  Distancia1\n  Distancia2\n  ...\n\n  Ejemplo:\n\n  236,45,56\n  281,36,48\n  306,32,51\n  75,04,45\n  70.811\n  65.651\n  86.345\n\n\n- Formato para Coordenadas (Dibujo):\n\n
Las coordenadas deben estar organizadas en pares de valores de norte y este, uno por linea. Las dos primeras lineas obedecen a la linea base punto armado y punto visado, las demas corresponden a las coordenadas nortes de los deltas. Cada linea debe tener el siguiente fiormato:
 \n\n Norte1,Este1      (Punto armado)\n Norte2,Este2       (Punto visado)\n CoordenadaNorte1,CoordenadaEste1\n CoordenadaNorte2,CoordenadaEste2\n ...\n Ejemplo\n\n1115.933,2161.421\n1148.983,2160.644\n1115.933,2161.421\n1075.742,2103.123\n1136.198,2077.497\n1115.933,2161.421\n\n\n- Instrucciones para la Importación:\n\n1. Cree dos archivos de texto (.txt) separados: uno para las coordenadas y otro para los ángulos y distancias.\n2. Asegúrese de que los datos en los archivos estén en el formato correcto como se muestra en los ejemplos anteriores.\n3. Guarde los archivos en una ubicación accesible desde su dispositivo móvil.\n4. En la aplicación, navegue a la sección de importación de datos.\n5. Seleccione los archivos de texto correspondientes para cargar los datos en la aplicación.\n\nSiguiendo estas instrucciones y asegurándose de que los archivos estén correctamente formateados, podrá importar los datos necesarios para sus cálculos sin problemas."
        android:paddingBottom="8dp"
        android:textAlignment="viewStart"
        android:justificationMode="inter_word" />


        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Requisitos previos"
            android:textStyle="bold"
            android:textSize="18sp"
            android:paddingBottom="8dp"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="- Conocer las coordenadas iniciales nortes y estes.\n- Conocer el número de deltas.\n- Conocer los ángulos observados.\n- Conocer las distancias de la poligonal.\n- Conocer la precisión en segundos del equipo utilizado."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Interfaz de Usuario"
            android:textStyle="bold"
            android:textSize="18sp"
            android:paddingBottom="8dp"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Al iniciar la aplicación se cuenta con dos botones, el primero es para calcular la poligonal y el segundo es para acceder a este manual de usuario. El primer botón contiene varios elementos que serán explicados a continuación:"
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="1. Campos de Entrada de Coordenadas\n\n- Norte 1: Coordenada norte inicial.\n- Norte 2: Coordenada norte final.\n- Este 1: Coordenada este inicial.\n- Este 2: Coordenada este final."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="2. Botones Principales\n\n- Calcular\n- Generar\n- Calcular Azimuts\n- Calcular Proyecciones\n- Calcular Coordenadas\n- Delta de Proyecciones\n- Sumatoria Algebraica\n- Calcular CosAz y SenAz\n- Matriz de Cálculo\n- Matriz de errores\n- Calcular Constantes\n- Cálculo Matriz A\n- Calcular Transpuesta de Matriz A\n- A x A Transpuesta\n- Calcular Matriz Inversa\n- Calcular K x Inversa x A Transpuesta\n- División de la Constante K\n- Radián a Grados\n- Recalcular Datos\n- Limpiar todos los datos"
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Zoom en la Interfaz de Usuario"
            android:textStyle="bold"
            android:textSize="18sp"
            android:paddingBottom="8dp"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="La aplicación TopoSmart incluye una funcionalidad de zoom que permite a los usuarios acercar y alejar el contenido de la pantalla para una mejor visualización de los datos. A continuación, se detalla cómo utilizar esta funcionalidad:"
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="1. Zoom con Gestos\n\n- Puede hacer zoom utilizando gestos en la pantalla. Para acercar, coloque dos dedos en la pantalla y sepárelos (pellizcar para hacer zoom). Para alejar, coloque dos dedos separados y júntelos."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="2. Doble Toque para Zoom\n\n- La aplicación también permite hacer zoom mediante un doble toque en la pantalla. Si toca dos veces rápidamente la pantalla, el contenido se acercará. Si vuelve a tocar dos veces rápidamente, el contenido se alejará."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="3. Control de Escala\n\n- La escala del zoom está controlada por un factor de escala que varía entre 1.0 y 5.0. Esto significa que puede acercar el contenido hasta 5 veces su tamaño original o reducirlo a su tamaño original."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>


        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Dibujo e Importación/Exportación de Coordenadas"
            android:textStyle="bold"
            android:textSize="18sp"
            android:paddingBottom="8dp"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="La aplicación TopoSmart incluye funcionalidades avanzadas para dibujar polígonos, importar coordenadas y exportar los resultados en formato PDF. A continuación, se detalla cómo utilizar estas funcionalidades:"
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="1. Función de Dibujo\n\n- La función de dibujo permite visualizar las coordenadas ingresadas o importadas como un polígono en la pantalla. Para utilizar esta función, debe ingresar las coordenadas manualmente o importarlas desde un archivo de texto. Luego, presione el botón 'Dibujar Poligonal' para ver el polígono y su línea base en la pantalla."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="2. Importar Coordenadas\n\n- Para importar coordenadas, haga clic en el botón 'Importar Coordenadas' y seleccione un archivo de texto (.txt) que contenga las coordenadas en el formato adecuado. El archivo debe tener pares de valores de norte y este, uno por línea, separados por comas. Ejemplo:\n\n 5000.000,4000.000\n 5001.000,4001.000"
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="3. Validación de Coordenadas\n\n- La aplicación valida las coordenadas importadas para asegurar que todas las entradas necesarias están completas. Si faltan coordenadas o si las coordenadas no están en el formato adecuado, la aplicación mostrará un mensaje de error solicitando que se completen los campos faltantes."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="4. Exportar en PDF\n\n- Para exportar el dibujo en formato PDF, presione el botón 'Exportar a PDF'. La aplicación capturará la pantalla del dibujo y guardará el contenido como un archivo PDF en la carpeta de documentos de su dispositivo (/storage/emulated/0/Documents/
). El archivo PDF contendrá una representación visual del polígono y la línea base dibujada, permitiendo su visualización y análisis posterior."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>



        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Calculo de poligonal"
            android:textStyle="bold"
            android:textSize="18sp"
            android:paddingBottom="8dp"
            android:justificationMode="inter_word" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="1. Ingrese o importe las coordenadas previamente conocidas y oprima el botón Calcular. El resultado será el azimut de la línea base."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n2. Ingrese el número de deltas en el campo designado y oprima el botón Generar para así crear los espacios requeridos tanto para los grados observados como para las distancias."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n3. Ingrese los valores de los grados observados según el número de grados observados que tenga. Adicionalmente, debe ingresar las distancias que obtuvo en campo en las cajas de texto designadas para ello y oprima el botón Calcular Azimuts. Tambien es posible importar los datos desde un archivo .txt. Con el azimut de partida y los ángulos observados, calculamos los azimuts sin realizar ningún ajuste."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n4. Oprima el botón Calcular Proyecciones. Con los azimuts y las distancias se determinan las proyecciones."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n5. Oprima el botón Calcular Coordenadas. Con las proyecciones se determinan las coordenadas de manera acumulativa, sin realizar ningún ajuste a las proyecciones."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n6. Oprima el botón Delta de Proyecciones. Se determinan los deltas de las proyecciones, que son la suma algebraica de las PNS y PEW."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n7. Cálculo de Seno y Coseno de Azimuts\n\n- Presione el botón Calcular Sencos Azimut.\n- Los valores de seno y coseno de los azimuts se mostrarán en una tabla en la pantalla."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n8. Oprima el botón Sumatoria Algebraica. Se calculará la sumatoria acumulada de las proyecciones de manera algebraica."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n9. Oprima el botón Calcular CosAz y SenAz. Se calculan los senos y cosenos del azimut de cada línea."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n10. Oprima el botón Matriz de Cálculo. Se estructura la matriz de cálculo. En la primera línea, uno (1) para los ángulos a ajustar y cero (0) para las distancias a ajustar; en la segunda y tercera línea, para los cuatro primeros, los deltas de proyecciones, y las tres finales, los senos y cosenos de los azimuts."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n11. Oprima el botón Matriz de Errores. Se ordenará la matriz de errores, en ángulo (expresada en radianes) y en proyecciones."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n12. Ingrese la precisión del equipo en segundos y oprima el botón Calcular Constantes. Se determinarán las constantes de cálculo con las siguientes fórmulas:\n- Kdis = √2/error permitido \n- Kang = 206264.8/pseg \nDonde pseg es la precisión del equipo en segundos."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n13. Oprima el botón Calcular Matriz A. Se dividen las cuatro primeras columnas por la K de ángulos y las tres finales por la K de distancias (Esto puede variar dependiendo del número de deltas)."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n14. Oprima el botón Calcular Transpuesta de Matriz A. Se determina la matriz transpuesta de A."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n15. Oprima el botón A x A Transpuesta. Se multiplica la matriz A por la matriz transpuesta."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n16. Oprima el botón Calcular Matriz Inversa. Se determina el inverso de la matriz anterior."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n17. Oprima el botón Calcular K x Inversa. Se multiplica la matriz K por la matriz inversa."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n18. Oprima el botón Calcular K x Inversa x A Transpuesta. Se multiplica la matriz anterior por la matriz A transpuesta."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n19. Oprima el botón División de las constantes K. Se divide cada valor por la constante; los cuatro primeros, por la K de ángulos; y los tres últimos, por la K de distancias. Los cuatro primeros ajustes en ángulos y los tres finales en distancia (esto puede variar dependiendo del número de deltas)."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n20. Oprima el botón Radián a Grados. El ajuste en ángulo está en radianes, se transforma en centesimales."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\n21. Oprima el botón Recalcular Datos. Al oprimir este botón, la aplicación entrará en un bucle, esto quiere decir que realizará un número indeterminado de iteraciones hasta ajustar totalmente la poligonal y al terminar volverá al inicio de la aplicación donde se ingresan las coordenadas."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Lectura de los resultados"
            android:textStyle="bold"
            android:textSize="18sp"
            android:paddingBottom="8dp"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="\nPara leer los datos ajustados se debe desplazar de nuevo hacia abajo, el campo donde ingresamos los ángulos observados ya estarán actualizados, así como el campo de las distancias, los azimuts, las proyecciones y las coordenadas. Tambien al precionar recalcular los datos aparecera un nuevo boton con el nombre de Exportar PDF, el cual al dar click guardara un PDF con toda la informacion en pantalla en la carpeta de documentos del dispositivo(/storage/emulated/0/Documents/
)."
            android:paddingBottom="8dp"
            android:textAlignment="viewStart"
            android:justificationMode="inter_word"/>

        <Button
            android:id="@+id/backButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Volver"
            android:layout_gravity="center"
            android:layout_marginTop="16dp"
            android:textColor="#FFFFFF"
            android:backgroundTint="#B84747"/>
    </LinearLayout>
</ScrollView>
