/Code/src/com/game/ViewData/OptionsViewData.java

https://bitbucket.org/DeveloperUX/behaviortree · Java · 154 lines · 117 code · 23 blank · 14 comment · 2 complexity · c15b3be908d0c1d580dec3e2177a5f09 MD5 · raw file

  1. package com.game.ViewData;
  2. import com.game.MessageHandler;
  3. import com.game.MsgType;
  4. import com.game.Preferences;
  5. import com.game.R;
  6. import com.game.MessageHandler.MsgReceiver;
  7. import android.app.Activity;
  8. import android.content.Context;
  9. import android.util.Log;
  10. import android.view.Display;
  11. import android.view.Gravity;
  12. import android.view.LayoutInflater;
  13. import android.view.View;
  14. import android.view.WindowManager;
  15. import android.view.View.OnClickListener;
  16. import android.widget.AdapterView;
  17. import android.widget.ArrayAdapter;
  18. import android.widget.Button;
  19. import android.widget.CheckBox;
  20. import android.widget.FrameLayout;
  21. import android.widget.LinearLayout;
  22. import android.widget.Spinner;
  23. import android.widget.AdapterView.OnItemSelectedListener;
  24. /**
  25. * Specific view data class for the "Options" screen.
  26. * @author Ying
  27. *
  28. */
  29. public class OptionsViewData extends ViewData
  30. {
  31. // Used to access data inside the OnClickListener classes
  32. private View auxView = null;
  33. /**
  34. * @see ViewData createXMLView(Activity activity)
  35. */
  36. @Override
  37. public View createXMLView(Activity activity)
  38. {
  39. Log.i("OptionsViewData", "createXMLView");
  40. // Access xml layout
  41. LayoutInflater li = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  42. View xmlLayout = (View) li.inflate(R.layout.options, null);
  43. // Center in screen at 80% width
  44. LinearLayout centerLinerarLayout = (LinearLayout)xmlLayout.findViewById(R.id.options_layout_inner_scroll);
  45. this.Set80PercentWidth(activity, centerLinerarLayout);
  46. // Callback for the button
  47. Button okButton = (Button) xmlLayout.findViewById(R.id.ok_options_but);
  48. okButton.setOnClickListener(new OnClickListener()
  49. {
  50. @Override
  51. public void onClick(View v) {
  52. Log.i("ViewData", " Clicked OK button");
  53. MessageHandler.Get().Send(MsgReceiver.LOGIC, MsgType.BUTTON_CLICK, R.id.ok_options_but);
  54. }
  55. });
  56. // Callback for the spinners
  57. Spinner numberUnitsSpin = (Spinner) xmlLayout.findViewById(R.id.num_units_spin);
  58. ArrayAdapter numberUnitsAdapter = ArrayAdapter.createFromResource( activity, R.array.count_names, android.R.layout.simple_spinner_item);
  59. numberUnitsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  60. numberUnitsSpin.setAdapter(numberUnitsAdapter);
  61. numberUnitsSpin.setOnItemSelectedListener(new OnItemSelectedListener()
  62. {
  63. public void onItemSelected(AdapterView<?> parent,
  64. View view, int position, long id)
  65. {
  66. Log.i("OptionsViewData", "Selected number units spinner item");
  67. MessageHandler.Get().Send(MsgReceiver.LOGIC, MsgType.SPINNER_ITEM_CLICK, R.id.num_units_spin, position);
  68. }
  69. public void onNothingSelected(AdapterView<?> parent) {
  70. Log.i("OptionsViewData", "No number units spinner item has been selected");
  71. }
  72. });
  73. numberUnitsSpin.setSelection(Preferences.Get().optionsUnitCuantity);
  74. Spinner moveSpeedSpin = (Spinner) xmlLayout.findViewById(R.id.move_speed_spin);
  75. ArrayAdapter moveSpeedAdapter = ArrayAdapter.createFromResource( activity, R.array.speed_names, android.R.layout.simple_spinner_item);
  76. moveSpeedAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  77. moveSpeedSpin.setAdapter(moveSpeedAdapter);
  78. moveSpeedSpin.setOnItemSelectedListener(new OnItemSelectedListener()
  79. {
  80. public void onItemSelected(AdapterView<?> parent,
  81. View view, int position, long id)
  82. {
  83. Log.i("OptionsViewData", "Selected move speed spinner item");
  84. MessageHandler.Get().Send(MsgReceiver.LOGIC, MsgType.SPINNER_ITEM_CLICK, R.id.move_speed_spin, position);
  85. }
  86. public void onNothingSelected(AdapterView<?> parent) {
  87. Log.i("OptionsViewData", "No eat speed spinner item has been selected");
  88. }
  89. });
  90. moveSpeedSpin.setSelection(Preferences.Get().optionsUnitMoveSpeed);
  91. Spinner eatSpeedSpin = (Spinner) xmlLayout.findViewById(R.id.eat_speed_spin);
  92. ArrayAdapter eatSpeedAdapter = ArrayAdapter.createFromResource( activity, R.array.speed_names, android.R.layout.simple_spinner_item);
  93. eatSpeedAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  94. eatSpeedSpin.setAdapter(eatSpeedAdapter);
  95. eatSpeedSpin.setOnItemSelectedListener(new OnItemSelectedListener()
  96. {
  97. public void onItemSelected(AdapterView<?> parent,
  98. View view, int position, long id)
  99. {
  100. Log.i("OptionsViewData", "Selected eat speed spinner item");
  101. MessageHandler.Get().Send(MsgReceiver.LOGIC, MsgType.SPINNER_ITEM_CLICK, R.id.eat_speed_spin, position);
  102. }
  103. public void onNothingSelected(AdapterView<?> parent) {
  104. Log.i("OptionsViewData", "No eat speed spinner item has been selected");
  105. }
  106. });
  107. eatSpeedSpin.setSelection(Preferences.Get().optionsUnitEatSpeed);
  108. // Callback for the checkboxes
  109. CheckBox soundCheckBox = (CheckBox) xmlLayout.findViewById(R.id.sound_mute);
  110. soundCheckBox.setChecked(Preferences.Get().optionsSoundMute);
  111. this.auxView = soundCheckBox;
  112. soundCheckBox.setOnClickListener(new OnClickListener()
  113. {
  114. @Override
  115. public void onClick(View v) {
  116. Log.i("OptionsViewData", "Clicked mute");
  117. int checked = 0;
  118. if(((CheckBox) OptionsViewData.this.auxView).isChecked() == true)
  119. {
  120. checked = 1;
  121. }
  122. else
  123. {
  124. checked = 0;
  125. }
  126. MessageHandler.Get().Send(MsgReceiver.LOGIC, MsgType.CHECKBOX_CLICK, R.id.sound_mute, checked);
  127. }
  128. });
  129. return xmlLayout;
  130. }
  131. }