Bläddra i källkod

CRUD Sight

master
Flo Smilari 3 år sedan
förälder
incheckning
480b559169
30 ändrade filer med 700 tillägg och 76 borttagningar
  1. Binär
      .gradle/7.3.3/executionHistory/executionHistory.bin
  2. Binär
      .gradle/7.3.3/executionHistory/executionHistory.lock
  3. Binär
      .gradle/7.3.3/fileHashes/fileHashes.bin
  4. Binär
      .gradle/7.3.3/fileHashes/fileHashes.lock
  5. Binär
      .gradle/7.3.3/fileHashes/resourceHashesCache.bin
  6. Binär
      .gradle/buildOutputCleanup/buildOutputCleanup.lock
  7. 30
    28
      .idea/workspace.xml
  8. 3
    0
      app/src/main/java/ch/spherIC/recurvebowsight/RBSMainActivity.java
  9. 3
    0
      app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightCollectionAdapter.java
  10. 3
    0
      app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightFragment.java
  11. 3
    0
      app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightParametersFragment.java
  12. 3
    0
      app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightParametersViewModel.java
  13. 3
    0
      app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightSightSettingFragment.java
  14. 3
    0
      app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightSightSettingViewModel.java
  15. 3
    0
      app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightTrajectoryFragment.java
  16. 3
    0
      app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightTrajectoryViewModel.java
  17. 3
    0
      app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightViewModel.java
  18. 3
    0
      app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/EquipmentConfigurationActivity.java
  19. 3
    0
      app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationActivity.java
  20. 3
    0
      app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationViewModel.java
  21. 172
    1
      app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/SightConfigurationActivity.java
  22. 149
    0
      app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/SightConfigurationViewModel.java
  23. 4
    14
      app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/AddEquipmentFragment.java
  24. 0
    19
      app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/AddEquipmentViewModel.java
  25. 3
    0
      app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/ChooseEquipmentFragment.java
  26. 5
    2
      app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/EquipmentRecyclerViewAdapter.java
  27. 270
    0
      app/src/main/res/layout/activity_sight_configuration.xml
  28. 0
    12
      app/src/main/res/layout/fragment_equipment_add_list.xml
  29. 14
    0
      app/src/main/res/values-de/strings.xml
  30. 14
    0
      app/src/main/res/values/strings.xml

Binär
.gradle/7.3.3/executionHistory/executionHistory.bin Visa fil


Binär
.gradle/7.3.3/executionHistory/executionHistory.lock Visa fil


Binär
.gradle/7.3.3/fileHashes/fileHashes.bin Visa fil


Binär
.gradle/7.3.3/fileHashes/fileHashes.lock Visa fil


Binär
.gradle/7.3.3/fileHashes/resourceHashesCache.bin Visa fil


Binär
.gradle/buildOutputCleanup/buildOutputCleanup.lock Visa fil


+ 30
- 28
.idea/workspace.xml Visa fil

</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="41369230-c648-4299-baf3-de5f13bcb18c" name="Changes" comment=""> <list default="true" id="41369230-c648-4299-baf3-de5f13bcb18c" name="Changes" comment="">
<change afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration" afterDir="true" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/EquipmentConfigurationActivity.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationActivity.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationViewModel.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/SightConfigurationActivity.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_icon_add.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_icon_delete.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/drawable/ic_icon_save.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_equipment_configuration.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_riser_configuration.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_sight_configuration.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/SightConfigurationViewModel.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/7.3.3/executionHistory/executionHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/7.3.3/executionHistory/executionHistory.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/7.3.3/executionHistory/executionHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/7.3.3/executionHistory/executionHistory.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/7.3.3/executionHistory/executionHistory.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/7.3.3/executionHistory/executionHistory.lock" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/7.3.3/executionHistory/executionHistory.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/7.3.3/executionHistory/executionHistory.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/7.3.3/fileHashes/fileHashes.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/7.3.3/fileHashes/fileHashes.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/7.3.3/fileHashes/fileHashes.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/7.3.3/fileHashes/fileHashes.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/assetWizardSettings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/assetWizardSettings.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/assetWizardSettings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/assetWizardSettings.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/database/dao/DAO.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/database/dao/DAO.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/model/ArcherySetup.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/model/ArcherySetup.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/model/Riser.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/model/Riser.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/model/Sight.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/model/Sight.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/RBSMainActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/RBSMainActivity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightCollectionAdapter.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightCollectionAdapter.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightFragment.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightFragment.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightParametersFragment.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightParametersFragment.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightParametersViewModel.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightParametersViewModel.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightSightSettingFragment.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightSightSettingFragment.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightSightSettingViewModel.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightSightSettingViewModel.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightTrajectoryFragment.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightTrajectoryFragment.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightTrajectoryViewModel.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightTrajectoryViewModel.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightViewModel.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightViewModel.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/EquipmentConfigurationActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/EquipmentConfigurationActivity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationActivity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationViewModel.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationViewModel.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/SightConfigurationActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/SightConfigurationActivity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/AddEquipmentFragment.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/AddEquipmentFragment.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/AddEquipmentFragment.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/AddEquipmentFragment.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/AddEquipmentViewModel.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/AddEquipmentViewModel.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/ChooseEquipmentFragment.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/ChooseEquipmentFragment.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/ChooseEquipmentFragment.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/ChooseEquipmentFragment.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/EquipmentRecyclerViewAdapter.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/EquipmentRecyclerViewAdapter.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_sight_configuration.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/activity_sight_configuration.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_equipment_add_list.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_equipment_add_list.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_equipment_add_list.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/fragment_equipment_add_list.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/values-de/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values-de/strings.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/res/values-de/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values-de/strings.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" afterDir="false" />
<property name="format.on.save" value="true" /> <property name="format.on.save" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight" /> <property name="last_opened_file_path" value="$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight" />
<property name="optimize.imports.on.save" value="true" /> <property name="optimize.imports.on.save" value="true" />
<property name="settings.editor.selected.configurable" value="preferences.keymap" />
<property name="settings.editor.selected.configurable" value="preferences.editor.code.editing" />
</component> </component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="android.template.-1377507120"> <key name="android.template.-1377507120">
</line-breakpoint> </line-breakpoint>
<line-breakpoint enabled="true" suspend="THREAD" type="java-line"> <line-breakpoint enabled="true" suspend="THREAD" type="java-line">
<url>file://$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/EquipmentRecyclerViewAdapter.java</url> <url>file://$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/EquipmentRecyclerViewAdapter.java</url>
<line>48</line>
<line>51</line>
<option name="timeStamp" value="10" /> <option name="timeStamp" value="10" />
</line-breakpoint> </line-breakpoint>
<line-breakpoint enabled="true" suspend="THREAD" type="java-line"> <line-breakpoint enabled="true" suspend="THREAD" type="java-line">
<url>file://$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/EquipmentRecyclerViewAdapter.java</url> <url>file://$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/EquipmentRecyclerViewAdapter.java</url>
<line>51</line>
<line>54</line>
<option name="timeStamp" value="13" /> <option name="timeStamp" value="13" />
</line-breakpoint> </line-breakpoint>
<line-breakpoint enabled="true" suspend="THREAD" type="java-line"> <line-breakpoint enabled="true" suspend="THREAD" type="java-line">
<url>file://$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/AddEquipmentFragment.java</url> <url>file://$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/AddEquipmentFragment.java</url>
<line>75</line>
<option name="timeStamp" value="25" />
</line-breakpoint>
<line-breakpoint enabled="true" suspend="THREAD" type="java-line">
<url>file://$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/AddEquipmentFragment.java</url>
<line>80</line>
<line>72</line>
<option name="timeStamp" value="26" /> <option name="timeStamp" value="26" />
</line-breakpoint> </line-breakpoint>
<line-breakpoint enabled="true" suspend="THREAD" type="java-line"> <line-breakpoint enabled="true" suspend="THREAD" type="java-line">
<url>file://$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationActivity.java</url> <url>file://$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationActivity.java</url>
<line>95</line>
<line>98</line>
<option name="timeStamp" value="37" /> <option name="timeStamp" value="37" />
</line-breakpoint> </line-breakpoint>
<line-breakpoint enabled="true" suspend="THREAD" type="java-line"> <line-breakpoint enabled="true" suspend="THREAD" type="java-line">
<url>file://$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationActivity.java</url> <url>file://$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationActivity.java</url>
<line>168</line>
<line>171</line>
<option name="timeStamp" value="40" /> <option name="timeStamp" value="40" />
</line-breakpoint> </line-breakpoint>
<line-breakpoint enabled="true" suspend="THREAD" type="java-line"> <line-breakpoint enabled="true" suspend="THREAD" type="java-line">
<url>file://$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationActivity.java</url> <url>file://$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationActivity.java</url>
<line>124</line>
<line>127</line>
<option name="timeStamp" value="42" /> <option name="timeStamp" value="42" />
</line-breakpoint> </line-breakpoint>
<line-breakpoint enabled="true" suspend="THREAD" type="java-line">
<url>file://$PROJECT_DIR$/app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/SightConfigurationActivity.java</url>
<line>73</line>
<option name="timeStamp" value="43" />
</line-breakpoint>
</breakpoints> </breakpoints>
</breakpoint-manager> </breakpoint-manager>
<watches-manager> <watches-manager>

+ 3
- 0
app/src/main/java/ch/spherIC/recurvebowsight/RBSMainActivity.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight; package ch.spherIC.recurvebowsight;


import android.os.Bundle; import android.os.Bundle;

+ 3
- 0
app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightCollectionAdapter.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.calcsight; package ch.spherIC.recurvebowsight.ui.calcsight;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;

+ 3
- 0
app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightFragment.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.calcsight; package ch.spherIC.recurvebowsight.ui.calcsight;


import android.os.Bundle; import android.os.Bundle;

+ 3
- 0
app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightParametersFragment.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.calcsight; package ch.spherIC.recurvebowsight.ui.calcsight;


import android.os.Bundle; import android.os.Bundle;

+ 3
- 0
app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightParametersViewModel.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.calcsight; package ch.spherIC.recurvebowsight.ui.calcsight;


import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;

+ 3
- 0
app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightSightSettingFragment.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.calcsight; package ch.spherIC.recurvebowsight.ui.calcsight;


import android.os.Bundle; import android.os.Bundle;

+ 3
- 0
app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightSightSettingViewModel.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.calcsight; package ch.spherIC.recurvebowsight.ui.calcsight;


import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;

+ 3
- 0
app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightTrajectoryFragment.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.calcsight; package ch.spherIC.recurvebowsight.ui.calcsight;


import android.os.Bundle; import android.os.Bundle;

+ 3
- 0
app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightTrajectoryViewModel.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.calcsight; package ch.spherIC.recurvebowsight.ui.calcsight;


import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;

+ 3
- 0
app/src/main/java/ch/spherIC/recurvebowsight/ui/calcsight/CalculateSightViewModel.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.calcsight; package ch.spherIC.recurvebowsight.ui.calcsight;


import android.text.TextUtils; import android.text.TextUtils;

+ 3
- 0
app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/EquipmentConfigurationActivity.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.configuration; package ch.spherIC.recurvebowsight.ui.configuration;


import android.os.Bundle; import android.os.Bundle;

+ 3
- 0
app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationActivity.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.configuration; package ch.spherIC.recurvebowsight.ui.configuration;


import android.app.AlertDialog; import android.app.AlertDialog;

+ 3
- 0
app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/RiserConfigurationViewModel.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.configuration; package ch.spherIC.recurvebowsight.ui.configuration;


import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;

+ 172
- 1
app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/SightConfigurationActivity.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.configuration; package ch.spherIC.recurvebowsight.ui.configuration;


import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle; import android.os.Bundle;
import android.view.MenuItem; import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;

import java.text.DecimalFormat;
import java.util.List;


import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.ViewModelProvider;
import ch.spherIC.recurvebowsight.R; import ch.spherIC.recurvebowsight.R;
import ch.spherIC.recurvebowsight.database.dao.SightDao;
import ch.spherIC.recurvebowsight.databinding.ActivitySightConfigurationBinding;
import ch.spherIC.recurvebowsight.model.ISight;
import ch.spherIC.recurvebowsight.model.Sight;
import ch.spherIC.recurvebowsight.utilities.PlatformUtils;


public class SightConfigurationActivity extends AppCompatActivity { public class SightConfigurationActivity extends AppCompatActivity {


private ActivitySightConfigurationBinding binding;
private SightConfigurationViewModel sightConfigurationViewModel;

@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle(R.string.title_activity_sight_configuration); getSupportActionBar().setTitle(R.string.title_activity_sight_configuration);


this.sightConfigurationViewModel = new ViewModelProvider(this).get(SightConfigurationViewModel.class);
this.binding = ActivitySightConfigurationBinding.bind(findViewById(R.id.activity_sight_configuration));

addObservers();
addSightSpinnerListener();
addButtonListeners();
loadSights();
} }



@Override @Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) { public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) { switch (item.getItemId()) {
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }


}
private void addObservers() {
DecimalFormat dF = new DecimalFormat("#.#");
this.sightConfigurationViewModel.getManufacturer().observe(this, manufacturer -> this.binding.scManufacturerTxt.setText(manufacturer));
this.sightConfigurationViewModel.getModel().observe(this, model -> this.binding.scModelTxt.setText(model));
this.sightConfigurationViewModel.getAH().observe(this, aH -> this.binding.scaHTxt.setText(aH != null ? dF.format(aH) : ""));
this.sightConfigurationViewModel.getAV().observe(this, aV -> this.binding.scaVTxt.setText(aV != null ? dF.format(aV) : ""));
this.sightConfigurationViewModel.getHeVis().observe(this, heVis -> this.binding.sccHeVSTxt.setText(heVis));
this.sightConfigurationViewModel.getVertSkalaRangMin().observe(this, vertScRngMin -> this.binding.scVertScaleRngMinTxt.setText(vertScRngMin != null ? dF.format(vertScRngMin) : ""));
this.sightConfigurationViewModel.getVertSkalaRangMax().observe(this, vertScRngMax -> this.binding.scVertScaleRngMaxTxt.setText(vertScRngMax != null ? dF.format(vertScRngMax) : ""));
this.sightConfigurationViewModel.getPointerOffset().observe(this, pointerOffset -> this.binding.scPointerOffsetTxt.setText(pointerOffset != null ? dF.format(pointerOffset) : ""));
}

private void addSightSpinnerListener() {
AutoCompleteTextView textView = findViewById(R.id.sightSelectionTxt);
textView.setOnItemClickListener((parent, view, position, id) -> {
ISight selectedSight = (ISight) textView.getAdapter().getItem(position);
if (selectedSight != null) {
sightConfigurationViewModel.setSight(selectedSight);
}
});
}

private void addButtonListeners() {
Button newButton = findViewById(R.id.sightcfg_button_new);
newButton.setOnClickListener(v -> addNewSight());

Button deleteButton = findViewById(R.id.sightcfg_button_delete);
deleteButton.setOnClickListener(v -> deleteSight());

Button saveButton = findViewById(R.id.sightcfg_button_save);
saveButton.setOnClickListener(v -> saveSightConfiguration());
}

private void loadSights() {
List<ISight> sights = SightDao.getInstance().loadAll();
ArrayAdapter<ISight> adapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, sights);
AutoCompleteTextView textView = this.binding.sightSelectionTxt;
textView.setAdapter(adapter);
textView.invalidate();
}

private void addNewSight() {
ISight newSight = new Sight(0, "", "", null, null, null, null, null, null);
this.sightConfigurationViewModel.setSight(newSight);
String strMandatory = getString(R.string.caption_mandatory);
this.binding.sightSelectionTxt.setText(null);
this.binding.scManufacturerTxt.setError(strMandatory);
this.binding.scModelTxt.setError(strMandatory);
this.binding.scaVTxt.setError(strMandatory);
this.binding.scaHTxt.setError(strMandatory);
this.binding.sccHeVSTxt.setError(strMandatory);
this.binding.scVertScaleRngMinTxt.setError(strMandatory);
this.binding.scVertScaleRngMaxTxt.setError(strMandatory);
this.binding.scPointerOffsetTxt.setError(strMandatory);
AutoCompleteTextView textView = this.binding.sightSelectionTxt;
((ArrayAdapter<ISight>) textView.getAdapter()).insert(newSight, 0);
textView.setAdapter((ArrayAdapter<ISight>) textView.getAdapter());
textView.setSelection(0);
}

private void saveSightConfiguration() {
if (!validateInputs()) {
return;
}
this.sightConfigurationViewModel.setManufacturerText(this.binding.scManufacturerTxt.getText().toString());
this.sightConfigurationViewModel.setModelText(this.binding.scModelTxt.getText().toString());
this.sightConfigurationViewModel.setAH(Double.parseDouble(this.binding.scaHTxt.getText().toString()));
this.sightConfigurationViewModel.setAV(Double.parseDouble(this.binding.scaVTxt.getText().toString()));
this.sightConfigurationViewModel.setHeVis(this.binding.sccHeVSTxt.getText().toString());
this.sightConfigurationViewModel.setVertSkalaRangMin(Double.parseDouble(this.binding.scVertScaleRngMinTxt.getText().toString()));
this.sightConfigurationViewModel.setVertSkalaRangMax(Double.parseDouble(this.binding.scVertScaleRngMaxTxt.getText().toString()));
this.sightConfigurationViewModel.setPointerOffset(Double.parseDouble(this.binding.scPointerOffsetTxt.getText().toString()));

ISight lSight = this.sightConfigurationViewModel.getRiser().getValue();
if (lSight.getId() > 0) {
SightDao.getInstance().update(lSight);
} else {
lSight = SightDao.getInstance().insert(lSight);
loadSights();
AutoCompleteTextView textView = this.binding.sightSelectionTxt;
final int position = ((ArrayAdapter<ISight>) textView.getAdapter()).getPosition(lSight);
textView.setListSelection(position);
textView.setText(lSight.toString());
((ArrayAdapter<ISight>) textView.getAdapter()).getFilter().filter(null);
PlatformUtils.toast(SightConfigurationActivity.this, String.format(getString(R.string.caption_Cfg_SaveSuccessful), lSight)).show();
}
}

private boolean validateInputs() {
int invalidFields = 0;
if (this.binding.scManufacturerTxt.getText().toString().isEmpty() || this.binding.scManufacturerTxt.getText().toString().equals("*")) {
invalidFields++;
}
if (this.binding.scModelTxt.getText().toString().isEmpty() || this.binding.scModelTxt.getText().toString().equals("*")) {
invalidFields++;
}
if (this.binding.scaVTxt.getText() == null || this.binding.scaVTxt.getText().toString().equals("")) {
invalidFields++;
}
if (this.binding.scaHTxt.getText() == null || this.binding.scaHTxt.getText().toString().equals("")) {
invalidFields++;
}
if (this.binding.sccHeVSTxt.getText() == null || this.binding.sccHeVSTxt.getText().toString().equals("")) {
invalidFields++;
}
if (this.binding.scVertScaleRngMinTxt.getText() == null || this.binding.scVertScaleRngMinTxt.getText().toString().equals("")) {
invalidFields++;
}
if (this.binding.scVertScaleRngMaxTxt.getText() == null || this.binding.scVertScaleRngMaxTxt.getText().toString().equals("")) {
invalidFields++;
}
if (this.binding.scPointerOffsetTxt.getText() == null || this.binding.scPointerOffsetTxt.getText().toString().equals("")) {
invalidFields++;
}
if (invalidFields > 0) {
PlatformUtils.toast(this, getResources().getString(R.string.caption_Cfg_FillAllMandatoryFields)).show();
return false;
}
return true;
}

private void deleteSight() {
ISight lSight = this.sightConfigurationViewModel.getRiser().getValue();

if (lSight != null) {
AlertDialog dlg = PlatformUtils.getDeleteConfirmDialog(this, lSight.toString(), new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
String message = String.format(getString(R.string.caption_Cfg_DeleteSuccessful), lSight);
try {
SightDao.getInstance().delete(lSight);
loadSights();
sightConfigurationViewModel.setSight(null);
binding.sightSelectionTxt.setText(null);
} catch (Exception e) {
message = getString(R.string.caption_Cfg_DeleteNotPossible);
}
PlatformUtils.toast(SightConfigurationActivity.this, message).show();
}
});
dlg.show();
}
}
}

+ 149
- 0
app/src/main/java/ch/spherIC/recurvebowsight/ui/configuration/SightConfigurationViewModel.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.configuration;

import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import ch.spherIC.recurvebowsight.model.ISight;

public class SightConfigurationViewModel extends ViewModel {

private final MutableLiveData<ISight> mSight;
private final MutableLiveData<String> mManufacturer;
private final MutableLiveData<String> mModel;
private final MutableLiveData<Double> maV;
private final MutableLiveData<Double> maH;
private final MutableLiveData<String> mheVis;
private final MutableLiveData<Double> mVertSkalaRangMin;
private final MutableLiveData<Double> mVertSkalaRangMax;
private final MutableLiveData<Double> mPointerOffset;


public SightConfigurationViewModel() {
this.mSight = new MutableLiveData<>();
this.mManufacturer = new MutableLiveData<>();
this.mModel = new MutableLiveData<>();
this.maV = new MutableLiveData<>();
this.maH = new MutableLiveData<>();
this.mheVis = new MutableLiveData<>();
this.mVertSkalaRangMin = new MutableLiveData<>();
this.mVertSkalaRangMax = new MutableLiveData<>();
this.mPointerOffset = new MutableLiveData<>();

this.mSight.setValue(null);
this.mManufacturer.setValue("");
this.mModel.setValue("");
this.maV.setValue(null);
this.maH.setValue(null);
this.mheVis.setValue("");
this.mVertSkalaRangMin.setValue(null);
this.mVertSkalaRangMax.setValue(null);
this.mPointerOffset.setValue(null);
}

public void setSight(ISight aSight) {
this.mSight.setValue(aSight);
this.mManufacturer.setValue(aSight != null ? aSight.getManufacturer() : "");
this.mModel.setValue(aSight != null ? aSight.getModel() : "");
this.maV.setValue(aSight != null ? aSight.getAV() : null);
this.maH.setValue(aSight != null ? aSight.getAH() : null);
this.mheVis.setValue(aSight != null ? aSight.getHeVis() : "");
this.mVertSkalaRangMin.setValue(aSight != null ? aSight.getVertSkalaRangeMin() : null);
this.mVertSkalaRangMax.setValue(aSight != null ? aSight.getVertSkalaRangeMax() : null);
this.mPointerOffset.setValue(aSight != null ? aSight.getPointerOffset() : null);
}

public void setManufacturerText(String manufacturerText) {
if (this.mSight.getValue() != null) {
this.mSight.getValue().setManufacturer(manufacturerText);
}
this.mManufacturer.setValue(manufacturerText);
}

public void setModelText(String modelText) {
if (this.mSight.getValue() != null) {
this.mSight.getValue().setModel(modelText);
}
this.mModel.setValue(modelText);
}

public void setAH(Double aH) {
if (this.mSight.getValue() != null) {
this.mSight.getValue().setAH(aH);
}
this.maH.setValue(aH);
}

public void setAV(Double aV) {
if (this.mSight.getValue() != null) {
this.mSight.getValue().setAV(aV);
}
this.maV.setValue(aV);
}

public void setHeVis(String heVis) {
if (this.mSight.getValue() != null) {
this.mSight.getValue().setHeVis(heVis);
}
this.mheVis.setValue(heVis);
}

public void setVertSkalaRangMin(Double aVertSkalaRangMin) {
if (this.mSight.getValue() != null) {
this.mSight.getValue().setVertSkalaRangeMin(aVertSkalaRangMin);
}
this.mVertSkalaRangMin.setValue(aVertSkalaRangMin);
}

public void setVertSkalaRangMax(Double aVertSkalaRangMax) {
if (this.mSight.getValue() != null) {
this.mSight.getValue().setVertSkalaRangeMax(aVertSkalaRangMax);
}
this.mVertSkalaRangMax.setValue(aVertSkalaRangMax);
}

public void setPointerOffset(Double aPointerOffset) {
if (this.mSight.getValue() != null) {
this.mSight.getValue().setPointerOffset(aPointerOffset);
}
this.mPointerOffset.setValue(aPointerOffset);
}

public LiveData<String> getManufacturer() {
return this.mManufacturer;
}

public LiveData<ISight> getRiser() {
return mSight;
}

public LiveData<String> getModel() {
return mModel;
}

public LiveData<Double> getAV() {
return maV;
}

public LiveData<Double> getAH() {
return maH;
}

public LiveData<String> getHeVis() {
return mheVis;
}

public LiveData<Double> getVertSkalaRangMin() {
return mVertSkalaRangMin;
}

public LiveData<Double> getVertSkalaRangMax() {
return mVertSkalaRangMax;
}

public LiveData<Double> getPointerOffset() {
return mPointerOffset;
}
}

+ 4
- 14
app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/AddEquipmentFragment.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.equipment; package ch.spherIC.recurvebowsight.ui.equipment;


import android.content.Intent; import android.content.Intent;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.TextView;


import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import ch.spherIC.recurvebowsight.R; import ch.spherIC.recurvebowsight.R;
import ch.spherIC.recurvebowsight.databinding.FragmentEquipmentAddListBinding; import ch.spherIC.recurvebowsight.databinding.FragmentEquipmentAddListBinding;
import ch.spherIC.recurvebowsight.ui.configuration.EquipmentConfigurationActivity; import ch.spherIC.recurvebowsight.ui.configuration.EquipmentConfigurationActivity;
private FragmentEquipmentAddListBinding binding; private FragmentEquipmentAddListBinding binding;


public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
AddEquipmentViewModel homeViewModel = new ViewModelProvider(this).get(AddEquipmentViewModel.class);
binding = FragmentEquipmentAddListBinding.inflate(inflater, container, false); binding = FragmentEquipmentAddListBinding.inflate(inflater, container, false);
View root = binding.getRoot(); View root = binding.getRoot();


attachTouchListener(root, R.id.card_view_sight_border, R.id.card_view_sight_setup); attachTouchListener(root, R.id.card_view_sight_border, R.id.card_view_sight_setup);
attachTouchListener(root, R.id.card_view_equipment_border, R.id.card_view_equipment_setup); attachTouchListener(root, R.id.card_view_equipment_border, R.id.card_view_equipment_setup);


final TextView textView = binding.textEquipment;
homeViewModel.getText().observe(getViewLifecycleOwner(), textView::setText);
return root; return root;
} }


View setupCardView = root.findViewById(setupCardViewId); View setupCardView = root.findViewById(setupCardViewId);
if (borderCardView != null && setupCardView != null) { if (borderCardView != null && setupCardView != null) {
borderCardView.setOnTouchListener(new View.OnTouchListener() { borderCardView.setOnTouchListener(new View.OnTouchListener() {

@Override @Override
public boolean onTouch(View v, MotionEvent event) { public boolean onTouch(View v, MotionEvent event) {
float alpha = 1.0f; float alpha = 1.0f;


if (event.getAction() == MotionEvent.ACTION_UP) { if (event.getAction() == MotionEvent.ACTION_UP) {
if (v.getId() == R.id.card_view_riser_border) { if (v.getId() == R.id.card_view_riser_border) {
/* Toast.makeText(v.getContext(),
"Geklickt: " + v.getId(),
Toast.LENGTH_SHORT).show();*/
// TODO: CALL RISER CONFIG ACTIVITY
Intent riserConfigurationIntent = new Intent(v.getContext(), RiserConfigurationActivity.class); Intent riserConfigurationIntent = new Intent(v.getContext(), RiserConfigurationActivity.class);
startActivity(riserConfigurationIntent); startActivity(riserConfigurationIntent);
} else if (v.getId() == R.id.card_view_sight_border) { } else if (v.getId() == R.id.card_view_sight_border) {
// TODO: CALL SIGHT CONFIG ACTIVITY
Intent sightConfigurationIntent = new Intent(v.getContext(), SightConfigurationActivity.class); Intent sightConfigurationIntent = new Intent(v.getContext(), SightConfigurationActivity.class);
startActivity(sightConfigurationIntent); startActivity(sightConfigurationIntent);

} else if (v.getId() == R.id.card_view_equipment_border) { } else if (v.getId() == R.id.card_view_equipment_border) {
// TODO: CALL EQUIPMENT CONFIG ACTIVITY
Intent equipmentConfigurationIntent = new Intent(v.getContext(), EquipmentConfigurationActivity.class); Intent equipmentConfigurationIntent = new Intent(v.getContext(), EquipmentConfigurationActivity.class);
startActivity(equipmentConfigurationIntent); startActivity(equipmentConfigurationIntent);

} }
} }

return true; return true;
} }
}); });

+ 0
- 19
app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/AddEquipmentViewModel.java Visa fil

package ch.spherIC.recurvebowsight.ui.equipment;

import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;

public class AddEquipmentViewModel extends ViewModel {

private final MutableLiveData<String> mText;

public AddEquipmentViewModel() {
mText = new MutableLiveData<>();
mText.setValue("This is \"ADD Equipment\" fragment");
}

public LiveData<String> getText() {
return mText;
}
}

+ 3
- 0
app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/ChooseEquipmentFragment.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.equipment; package ch.spherIC.recurvebowsight.ui.equipment;


import android.content.Context; import android.content.Context;

+ 5
- 2
app/src/main/java/ch/spherIC/recurvebowsight/ui/equipment/EquipmentRecyclerViewAdapter.java Visa fil

/**
* Copyright (C) 2022 - Florindo Smilari (spherIC)
*/
package ch.spherIC.recurvebowsight.ui.equipment; package ch.spherIC.recurvebowsight.ui.equipment;


import android.content.Context; import android.content.Context;
horzMargin = v.getResources().getDimensionPixelSize(R.dimen.activity_horizontal_margin_onclick); horzMargin = v.getResources().getDimensionPixelSize(R.dimen.activity_horizontal_margin_onclick);
vertMargin = v.getResources().getDimensionPixelSize(R.dimen.activity_vertical_margin_onclick); vertMargin = v.getResources().getDimensionPixelSize(R.dimen.activity_vertical_margin_onclick);
} }
View setupCardView = ((ConstraintLayout) v).findViewById(R.id.card_view_setup);
View setupCardView = v.findViewById(R.id.card_view_setup);
setupCardView.setAlpha(alpha); setupCardView.setAlpha(alpha);


setupCardView = ((ConstraintLayout) v).findViewById(R.id.card_view_border);
setupCardView = v.findViewById(R.id.card_view_border);
ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) setupCardView.getLayoutParams(); ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) setupCardView.getLayoutParams();
layoutParams.setMargins(horzMargin, vertMargin, horzMargin, vertMargin); layoutParams.setMargins(horzMargin, vertMargin, horzMargin, vertMargin);
setupCardView.requestLayout(); setupCardView.requestLayout();

+ 270
- 0
app/src/main/res/layout/activity_sight_configuration.xml Visa fil

<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_sight_configuration" android:id="@+id/activity_sight_configuration"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context=".ui.configuration.SightConfigurationActivity"> tools:context=".ui.configuration.SightConfigurationActivity">


<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:id="@+id/configSightLbl"
style="@style/Widget.AppCompat.TextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:background="@color/purple_700"
android:padding="4dp"
android:text="@string/scTitleSightConfig"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:id="@+id/sightSelectionLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/configSightLbl">

<AutoCompleteTextView
android:id="@+id/sightSelectionTxt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/rcSightLbl"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/scManufacturerLayout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sightSelectionLayout">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/scManufacturerTxt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/scManufacturerLbl"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/scModelLayout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/scManufacturerLayout">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/scModelTxt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/scModelLbl"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/sccHeVSLayout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/scModelLayout">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/sccHeVSTxt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/scHeVSLbl"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>

<LinearLayout
android:id="@+id/scaVHLinearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sccHeVSLayout">

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/scaVLayout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sccHeVSLayout">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/scaVTxt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/scaVLbl"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/scaHLayout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sccHeVSLayout">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/scaHTxt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/scaHLbl"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>

</LinearLayout>

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/scVertScaleRngMinLayout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginHorizontal="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/scaVHLinearLayout">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/scVertScaleRngMinTxt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/scVertScaleRngMinLbl"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/scVertScaleRngMaxLayout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginHorizontal="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/scVertScaleRngMinLayout">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/scVertScaleRngMaxTxt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/scVertScaleRngMaxLbl"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/scPointerOffsetLayout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginHorizontal="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/scVertScaleRngMaxLayout">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/scPointerOffsetTxt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/scPointerOffsetLbl"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/scPointerOffsetLayout">

<Button
android:id="@+id/sightcfg_button_new"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_weight="1"
android:text="@string/caption_New"
app:icon="@drawable/ic_icon_add"
app:iconPadding="-8dp" />

<Button
android:id="@+id/sightcfg_button_delete"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_weight="1"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:text="@string/caption_Delete"
app:icon="@drawable/ic_icon_delete"
app:iconPadding="-8dp" />

<Button
android:id="@+id/sightcfg_button_save"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_weight="1"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:text="@string/caption_Save"
app:icon="@drawable/ic_icon_save"
app:iconPadding="0dp" />

</LinearLayout>


</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

+ 0
- 12
app/src/main/res/layout/fragment_equipment_add_list.xml Visa fil

</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>


<TextView
android:id="@+id/text_equipment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:textAlignment="center"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/constraintLayout3" />

</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

+ 14
- 0
app/src/main/res/values-de/strings.xml Visa fil

<string name="rcSizeLbl">Größe</string> <string name="rcSizeLbl">Größe</string>
<string name="rcVvisHLbl">VvisH [mm]</string> <string name="rcVvisHLbl">VvisH [mm]</string>
<string name="rcVvisVLbl">VvisV [mm]</string> <string name="rcVvisVLbl">VvisV [mm]</string>
<string name="scTitleSightConfig">Konfiguration Visier</string>
<string name="rcSightLbl">Visier</string>
<string name="scManufacturerLbl">Hersteller</string>
<string name="scModelLbl">Modell</string>
<string name="scHeVSLbl">Horz. Einst. Visierschlitten [mm]</string>
<string name="scaHLbl">aH [mm]</string>
<string name="scaVLbl">aV [mm]</string>
<string name="scVertScaleRngLbl">Bereich vert. Skala [mm] /\nSkalenversatz [mm]</string>
<string name="scVertScaleRngMinLbl">Min. Bereich vert. Skala [mm]</string>
<string name="scVertScaleRngMaxLbl">Max. Bereich vert. Skala [mm]</string>
<string name="scVertSkalaMiddleLbl">Mittelstellung M vert. Skala [mm]</string>
<string name="scPointerOffsetLbl">Versatz Skalenzeiger [mm]</string>
<string name="scEvSLbl">EvS [mm]</string>
<string name="caption_Ok">OK</string> <string name="caption_Ok">OK</string>
<string name="caption_Cancel">Abbrechen</string> <string name="caption_Cancel">Abbrechen</string>

+ 14
- 0
app/src/main/res/values/strings.xml Visa fil

<string name="rcSizeLbl">Size</string> <string name="rcSizeLbl">Size</string>
<string name="rcVvisHLbl">VvisH [mm]</string> <string name="rcVvisHLbl">VvisH [mm]</string>
<string name="rcVvisVLbl">VvisV [mm]</string> <string name="rcVvisVLbl">VvisV [mm]</string>
<string name="scTitleSightConfig">Sight Configuration</string>
<string name="rcSightLbl">Sight</string>
<string name="scManufacturerLbl">Manufacturer</string>
<string name="scModelLbl">Model</string>
<string name="scHeVSLbl">Horz. Sight Sliding Carriage [mm]</string>
<string name="scaHLbl">aH [mm]</string>
<string name="scaVLbl">aV [mm]</string>
<string name="scVertScaleRngLbl">Vert. Scale Range [mm] /\nScale Pointer Offset [mm]</string>
<string name="scVertScaleRngMinLbl">Vert. Scale Range Min. [mm]</string>
<string name="scVertScaleRngMaxLbl">Vert. Scale Range Max. [mm]</string>
<string name="scVertSkalaMiddleLbl">Vert. Scale Middle Setting M [mm]</string>
<string name="scPointerOffsetLbl">Scale Pointer Offset [mm]</string>
<string name="scEvSLbl">EvS [mm]</string>



<string name="caption_Ok">OK</string> <string name="caption_Ok">OK</string>
<string name="caption_Cancel">Cancel</string> <string name="caption_Cancel">Cancel</string>

Laddar…
Avbryt
Spara