MainPresenter

com.uva.rafael.tfg_goniometer.presenter

## Class MainPresenter

- java.lang.Object
- - com.uva.rafael.tfg_goniometer.presenter.MainPresenter

- All Implemented Interfaces:
    PresenterFunctions, PresenterFunctions.MainFunctions

      public class MainPresenter
      extends java.lang.Object
      implements PresenterFunctions, PresenterFunctions.MainFunctions

  Este es el Presentador asociado a la actividad principal de la aplicacion (`MainActivity`). Se encarga de llevar a cabo toda la logica asociada a las acciones del usuario realizadas en la IU.

  Estas tareas consisten en crear y añadir el `Fragment HomeFragment` inicial de la aplicacion, inicializar la clase de tipo `que servira de conexion con la BD (`GoniometerDBHelper`). Ademas, gestiona el comportamiento de la aplicacion cuando se pulsa sobre un elemento del `NavigationView`.`

  Esta clase forma parte de la aplicacion TFG-Goniometer, desarrollada para el Trabajo de Fin de Grado - Grado en Ingenieria Informatica (Universidad de Valladolid)

  Version:
    1.0
  Author:
    Rafael Matamoros Luque
  See Also:
    `DrawerLayout`, `NavigationView`, `MainActivity`, `MainModel`

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.uva.rafael.tfg_goniometer.interfaces.PresenterFunctions

      `PresenterFunctions.HomeFunctions, PresenterFunctions.MainFunctions, PresenterFunctions.MedicionFunctions, PresenterFunctions.NuevaMedicionFunctions, PresenterFunctions.NuevoPacienteFunctions, PresenterFunctions.PacientesFunctions, PresenterFunctions.PerfilPacienteFunctions, PresenterFunctions.SobreAppFunctions, PresenterFunctions.UltimasMedicionesFunctions`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MainPresenter(android.app.Activity activity, MainModel model)` Constructor principal de la clase.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `onBackPressed()` Called when the activity (`MainActivity`) has detected the user's press of the back key.
    `void` | `onCreateOptionsMenu(android.view.Menu menu)` Initialize the contents of the Activity's standard options menu.
    `void` | `onDestroy()` Perform any final cleanup before an activity is destroyed.
    `boolean` | `onOptionsItemSelected(android.view.MenuItem item)` This hook is called whenever an item in your options menu is selected.
    `void` | `onPrepareOptionsMenu(android.view.Menu menu)` Prepare the Screen's standard options menu to be displayed
    `void` | `setNavigationItem(int code)` Metodo que se emplea para marcar como seleccionado uno de los distintos items en el `NavigationView`.
    `void` | `setNavigationItemSelectedListener(android.support.design.widget.NavigationView navigationView, android.support.v4.widget.DrawerLayout drawerLayout)` Metodo que obtiene las referencias al `NavigationView` y `DrawerLayout` de `MainActivity`.
    `void` | `setUpInitialSettings()` Metodo que realiza las operaciones iniciales cuando se crea la actividad `MainActivity`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### MainPresenter

          public MainPresenter(android.app.Activity activity,
                               MainModel model)

      Constructor principal de la clase.
      Parameters:
        `activity` - Actividad (Vista) con la que mantiene una relacion 1-a-1.
        `model` - Modelo (unico) de la aplicacion.

  - ### Method Detail

    - #### setUpInitialSettings

          public void setUpInitialSettings()

      Metodo que realiza las operaciones iniciales cuando se crea la actividad `MainActivity`. Crea el `Fragment` inicial de la aplicacion (`HomeFragment`) y lo añade al contenedor de `Fragments`. Ademas, proporciona el `Context` a la clase `SQLiteHelper` que sirve de conexion con la BD (`GoniometerDBHelper`).
      Specified by:
        `setUpInitialSettings` in interface `PresenterFunctions.MainFunctions`

    - #### setNavigationItemSelectedListener

          public void setNavigationItemSelectedListener(android.support.design.widget.NavigationView navigationView,
                                                        android.support.v4.widget.DrawerLayout drawerLayout)

      Metodo que obtiene las referencias al `NavigationView` y `DrawerLayout` de `MainActivity`. Ademas asigna un evento de tipo `NavigationItemListener` al `NavigationView` y crea los respectivos `Fragments` cuando se pulsa sobre uno de los elementos del mismo.
      Specified by:
        `setNavigationItemSelectedListener` in interface `PresenterFunctions.MainFunctions`
      Parameters:
        `navigationView` - Menu sobre el que se aplicara el evento `NavigationItemListener`
        `drawerLayout` - DrawerLayout que contiene al `NavigationView`

    - #### onCreateOptionsMenu

          public void onCreateOptionsMenu(android.view.Menu menu)

      Initialize the contents of the Activity's standard options menu.
      Specified by:
        `onCreateOptionsMenu` in interface `PresenterFunctions.MainFunctions`
      Parameters:
        `menu` - The options menu in which we place our items.

    - #### onPrepareOptionsMenu

          public void onPrepareOptionsMenu(android.view.Menu menu)

      Prepare the Screen's standard options menu to be displayed
      Specified by:
        `onPrepareOptionsMenu` in interface `PresenterFunctions.MainFunctions`
      Parameters:
        `menu` - The options menu as last shown or first initialized by `onCreateOptionsMenu()`.

    - #### onOptionsItemSelected

          public boolean onOptionsItemSelected(android.view.MenuItem item)

      This hook is called whenever an item in your options menu is selected.
      Specified by:
        `onOptionsItemSelected` in interface `PresenterFunctions.MainFunctions`
      Parameters:
        `item` - The menu item that was selected.
      Returns:
        Return false to allow normal menu processing to proceed, true to consume it here.

    - #### setNavigationItem

          public void setNavigationItem(int code)

      Metodo que se emplea para marcar como seleccionado uno de los distintos items en el `NavigationView`.
      Specified by:
        `setNavigationItem` in interface `PresenterFunctions.MainFunctions`
      Parameters:
        `code` - Posicion del item a marcar dentro del `NavigationView`

    - #### onBackPressed

          public void onBackPressed()

      Called when the activity (`MainActivity`) has detected the user's press of the back key.
      Specified by:
        `onBackPressed` in interface `PresenterFunctions.MainFunctions`

    - #### onDestroy

          public void onDestroy()

      Perform any final cleanup before an activity is destroyed. Se encarga de liberar la referencia a la `Activity` con la que esta asociado.
      Specified by:
        `onDestroy` in interface `PresenterFunctions`