Version für alte Androidversionen der Visiereinstellung für Recurvebogen.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

RBSMainActivity.java 28KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602
  1. package ch.spherIC.recurvebowsight;
  2. import android.app.Activity;
  3. import android.app.Dialog;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.os.Handler;
  7. import android.view.Gravity;
  8. import android.view.Menu;
  9. import android.view.MenuItem;
  10. import android.view.MotionEvent;
  11. import android.view.View;
  12. import android.view.View.OnTouchListener;
  13. import android.widget.AdapterView;
  14. import android.widget.AdapterView.OnItemSelectedListener;
  15. import android.widget.ArrayAdapter;
  16. import android.widget.LinearLayout;
  17. import android.widget.ListView;
  18. import android.widget.ScrollView;
  19. import android.widget.TextView;
  20. import android.widget.ViewFlipper;
  21. import ch.spherIC.recurvebowsight.components.FontArrayAdapter;
  22. import ch.spherIC.recurvebowsight.components.RiserSpinner;
  23. import ch.spherIC.recurvebowsight.components.SightSpinner;
  24. import ch.spherIC.recurvebowsight.components.XSpinner;
  25. import ch.spherIC.recurvebowsight.components.XTextView;
  26. import ch.spherIC.recurvebowsight.database.RBSDatabaseHelper;
  27. import ch.spherIC.recurvebowsight.database.dao.RiserDao;
  28. import ch.spherIC.recurvebowsight.database.dao.SightDao;
  29. import ch.spherIC.recurvebowsight.dialog.ChooseArcherySetupDlg.ChooseArcherySetupDlgDismissListener;
  30. import ch.spherIC.recurvebowsight.model.IArcherySetup;
  31. import ch.spherIC.recurvebowsight.model.IRiser;
  32. import ch.spherIC.recurvebowsight.model.ISight;
  33. import ch.spherIC.recurvebowsight.model.Riser;
  34. import ch.spherIC.recurvebowsight.model.Sight;
  35. import java.text.DecimalFormat;
  36. import java.util.ArrayList;
  37. import java.util.Arrays;
  38. import java.util.List;
  39. import java.util.StringTokenizer;
  40. public class RBSMainActivity extends Activity implements ChooseArcherySetupDlgDismissListener {
  41. public static final DecimalFormat DF = new DecimalFormat("0.###");
  42. public static final int DLG_CHOOSE_ARCHERYSETUP = 0;
  43. public static final int DLG_USERGUIDE_PARAMS = 1;
  44. public static final int DLG_USERGUIDE_SIGHT = 2;
  45. public static final int DLG_ABOUT = 3;
  46. private static final int MIN_DISTANCE = 50;
  47. private ViewFlipper viewFlipper;
  48. private ScrollView paramsScrollView;
  49. private ScrollView sightCfgScrollView;
  50. private float lastX;
  51. private ListView listView1;
  52. private XTextView txtViewParams;
  53. private XTextView txtViewResults;
  54. private XTextView txtViewSight;
  55. private TextView arrowDiameterTxtFld;
  56. private TextView arrowCwTxtFld;
  57. private TextView arrowWeightTxtFld;
  58. private TextView bowPulloutTxtFld;
  59. private TextView arrowV0TxtFld;
  60. private TextView airTemperatureTxtFld;
  61. private TextView airRelativeHumidityTxtFld;
  62. private TextView shootingDistanzTxtFld;
  63. private TextView arrowNockHeightTxtFld;
  64. private TextView targetCenterHeightTxtFld;
  65. private XSpinner calcTimeIntervalCboBox;
  66. private XSpinner calcAccuracyCboBox;
  67. private RiserSpinner scRiserSpinner;
  68. private TextView scVvisHTxtFld;
  69. private TextView scVvisVTxtFld;
  70. private SightSpinner scSightSpinner;
  71. private XSpinner scHeVSSpinner;
  72. private TextView scHeVSTxtFld;
  73. private TextView scaVTxtFld;
  74. private TextView scaHTxtFld;
  75. private TextView scVertScaleRngTxtFld;
  76. private TextView scVertSkalaMiddleTxtFld;
  77. private TextView scEvSValue;
  78. private IArcherySetup selectedArcherySetup;
  79. private Activity riserSightConfigActivity;
  80. private boolean showInfoMenu;
  81. // private Menu optionsMenu;
  82. @Override
  83. public void onCreate(final Bundle savedInstanceState) {
  84. super.onCreate(savedInstanceState);
  85. setContentView(R.layout.rbs_main);
  86. UnitConverter.setApplication(getApplication());
  87. RBSDatabaseHelper.setContext(this);
  88. RBSDatabaseHelper.getInstance().initializeDB();
  89. initializeComponents();
  90. addTouchListeners();
  91. xTextViewUp(this.txtViewParams);
  92. this.calcTimeIntervalCboBox.setAdapter(new FontArrayAdapter<String>(this, R.layout.rbs_spinner,
  93. getResources().getStringArray(R.array.CalculationTimeIntervals),
  94. this.calcTimeIntervalCboBox));
  95. this.calcAccuracyCboBox.setAdapter(new FontArrayAdapter<String>(this, R.layout.rbs_spinner,
  96. getResources().getStringArray(R.array.CalculationAccuracies),
  97. this.calcAccuracyCboBox));
  98. List<IRiser> risers = RiserDao.getInstance().loadAll();
  99. risers.add(0, new Riser(-999, getResources().getString(R.string.caption_NoSelection), "", null, null, null));
  100. this.scRiserSpinner.setAdapter(new FontArrayAdapter<IRiser>(this, R.layout.rbs_spinner, risers, this.scRiserSpinner));
  101. List<ISight> sights = SightDao.getInstance().loadAll();
  102. sights.add(0, new Sight(-999, getResources().getString(R.string.caption_NoSelection), "", null, null, "", null, null));
  103. this.scSightSpinner.setAdapter(new FontArrayAdapter<ISight>(this, R.layout.rbs_spinner, sights, this.scSightSpinner));
  104. addRiserAndSightSpinnerListeners();
  105. // ************************************************************************
  106. // ** TEST WEISE AB HIER***************************************************
  107. // ************************************************************************
  108. this.listView1 = (ListView) findViewById(R.id.listView1);
  109. String[] values = new String[] { "Riser", "Sight", "General Config" };
  110. final ArrayList<String> list = new ArrayList<String>(Arrays.asList(values));
  111. final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
  112. this.listView1.setAdapter(adapter);
  113. this.listView1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  114. @Override
  115. public void onItemClick(final AdapterView<?> parent, final View view, final int position,
  116. final long id) {
  117. final String item = (String) parent.getItemAtPosition(position);
  118. if (item.equals("Riser")) {
  119. Intent intent = new Intent(RBSMainActivity.this, RiserSightConfigurationActivity.class);
  120. startActivity(intent);
  121. }
  122. }
  123. });
  124. }
  125. private void initializeComponents() {
  126. this.viewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper);
  127. this.paramsScrollView = (ScrollView) findViewById(R.id.paramsScrollView);
  128. this.sightCfgScrollView = (ScrollView) findViewById(R.id.sightCfgScrollView);
  129. this.txtViewParams = (XTextView) findViewById(R.id.viewParams);
  130. this.txtViewResults = (XTextView) findViewById(R.id.viewResults);
  131. this.txtViewSight = (XTextView) findViewById(R.id.viewSight);
  132. this.arrowDiameterTxtFld = (TextView) findViewById(R.id.arrowDiameterTxtFld);
  133. this.arrowCwTxtFld = (TextView) findViewById(R.id.arrowCwTxtFld);
  134. this.arrowWeightTxtFld = (TextView) findViewById(R.id.arrowWeightTxtFld);
  135. this.bowPulloutTxtFld = (TextView) findViewById(R.id.bowPulloutTxtFld);
  136. this.arrowV0TxtFld = (TextView) findViewById(R.id.arrowV0TxtFld);
  137. this.airTemperatureTxtFld = (TextView) findViewById(R.id.airTemperatureTxtFld);
  138. this.airRelativeHumidityTxtFld = (TextView) findViewById(R.id.airRelativeHumidityTxtFld);
  139. this.shootingDistanzTxtFld = (TextView) findViewById(R.id.shootingDistanzTxtFld);
  140. this.arrowNockHeightTxtFld = (TextView) findViewById(R.id.arrowNockHeightTxtFld);
  141. this.targetCenterHeightTxtFld = (TextView) findViewById(R.id.targetCenterHeightTxtFld);
  142. this.calcTimeIntervalCboBox = (XSpinner) findViewById(R.id.deltaTimeCboBox);
  143. this.calcAccuracyCboBox = (XSpinner) findViewById(R.id.calcPrecisionCboBox);
  144. this.scRiserSpinner = (RiserSpinner) findViewById(R.id.scRiserSpinner);
  145. this.scVvisHTxtFld = (TextView) findViewById(R.id.scVvisHTxtFld);
  146. this.scVvisVTxtFld = (TextView) findViewById(R.id.scVvisVTxtFld);
  147. this.scSightSpinner = (SightSpinner) findViewById(R.id.scSightSpinner);
  148. this.scHeVSSpinner = (XSpinner) findViewById(R.id.scHeVSSpinner);
  149. this.scHeVSTxtFld = (TextView) findViewById(R.id.scHeVSTxtFld);
  150. this.scaVTxtFld = (TextView) findViewById(R.id.scaVTxtFld);
  151. this.scaHTxtFld = (TextView) findViewById(R.id.scaHTxtFld);
  152. this.scVertScaleRngTxtFld = (TextView) findViewById(R.id.scVertScaleRngTxtFld);
  153. this.scVertSkalaMiddleTxtFld = (TextView) findViewById(R.id.scVertSkalaMiddleTxtFld);
  154. this.scEvSValue = (TextView) findViewById(R.id.scEvSValue);
  155. }
  156. private void addRiserAndSightSpinnerListeners() {
  157. this.scRiserSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
  158. @Override
  159. public void onItemSelected(final AdapterView<?> parent, final View view, final int position, final long id) {
  160. IRiser riser = RBSMainActivity.this.scRiserSpinner.getSelectedRiser();
  161. if (riser.getId() != -999) {
  162. RBSMainActivity.this.scVvisHTxtFld.setText(DF.format(riser.getVVisH()));
  163. RBSMainActivity.this.scVvisVTxtFld.setText(DF.format(riser.getVVisV()));
  164. } else {
  165. RBSMainActivity.this.scVvisHTxtFld.setText("");
  166. RBSMainActivity.this.scVvisVTxtFld.setText("");
  167. }
  168. RBSMainActivity.this.scVvisHTxtFld.setEnabled(riser.getId() == -999);
  169. RBSMainActivity.this.scVvisVTxtFld.setEnabled(riser.getId() == -999);
  170. }
  171. @Override
  172. public void onNothingSelected(final AdapterView<?> parent) { }
  173. });
  174. this.scSightSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
  175. @Override
  176. public void onItemSelected(final AdapterView<?> parent, final View view, final int position, final long id) {
  177. ISight sight = RBSMainActivity.this.scSightSpinner.getSelectedSight();
  178. if (sight.getId() != -999) {
  179. List<String> listHeVis = new ArrayList<String>();
  180. String heVis = sight.getHeVis();
  181. StringTokenizer t = new StringTokenizer(heVis, ",");
  182. while (t.hasMoreTokens()) {
  183. listHeVis.add(t.nextToken());
  184. }
  185. RBSMainActivity.this.scHeVSTxtFld.setVisibility(View.INVISIBLE);
  186. RBSMainActivity.this.scHeVSTxtFld.setLayoutParams(new LinearLayout.LayoutParams(RBSMainActivity.this.scHeVSTxtFld
  187. .getLayoutParams().width,
  188. RBSMainActivity.this.scHeVSTxtFld
  189. .getLayoutParams().height, 0f));
  190. RBSMainActivity.this.scHeVSSpinner.setVisibility(View.VISIBLE);
  191. LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(RBSMainActivity.this.scHeVSSpinner.getLayoutParams().width,
  192. RBSMainActivity.this.scHeVSSpinner.getLayoutParams().height,
  193. 1f);
  194. params.gravity = Gravity.FILL_VERTICAL;
  195. RBSMainActivity.this.scHeVSSpinner.setLayoutParams(params);
  196. RBSMainActivity.this.scHeVSSpinner.setAdapter(new FontArrayAdapter<String>(RBSMainActivity.this, R.layout.rbs_spinner,
  197. listHeVis, RBSMainActivity.this.scHeVSSpinner));
  198. RBSMainActivity.this.scHeVSSpinner.setSelection(0);
  199. if (RBSMainActivity.this.selectedArcherySetup != null
  200. && RBSMainActivity.this.selectedArcherySetup.getSight().getId() == sight.getId()) {
  201. RBSMainActivity.this.scHeVSSpinner.setSelectionByVal(DF.format(RBSMainActivity.this.selectedArcherySetup
  202. .getSightHorSetting()));
  203. }
  204. RBSMainActivity.this.scaVTxtFld.setText(DF.format(sight.getAV()));
  205. RBSMainActivity.this.scaHTxtFld.setText(DF.format(sight.getAH()));
  206. RBSMainActivity.this.scVertScaleRngTxtFld.setText(DF.format(sight.getVertSkalaRangeMin()) + "-"
  207. + DF.format(sight.getVertSkalaRangeMax()));
  208. } else {
  209. RBSMainActivity.this.scHeVSSpinner.setVisibility(View.INVISIBLE);
  210. RBSMainActivity.this.scHeVSSpinner.setLayoutParams(new LinearLayout.LayoutParams(RBSMainActivity.this.scHeVSSpinner
  211. .getLayoutParams().width,
  212. RBSMainActivity.this.scHeVSSpinner
  213. .getLayoutParams().height, 0f));
  214. RBSMainActivity.this.scHeVSTxtFld.setVisibility(View.VISIBLE);
  215. RBSMainActivity.this.scHeVSTxtFld.setLayoutParams(new LinearLayout.LayoutParams(RBSMainActivity.this.scHeVSTxtFld
  216. .getLayoutParams().width,
  217. RBSMainActivity.this.scHeVSTxtFld
  218. .getLayoutParams().height, 1f));
  219. RBSMainActivity.this.scHeVSSpinner.setAdapter(new FontArrayAdapter<String>(RBSMainActivity.this, R.layout.rbs_spinner,
  220. new ArrayList<String>(),
  221. RBSMainActivity.this.scHeVSSpinner));
  222. RBSMainActivity.this.scaVTxtFld.setText("");
  223. RBSMainActivity.this.scaHTxtFld.setText("");
  224. RBSMainActivity.this.scVertScaleRngTxtFld.setText("");
  225. }
  226. RBSMainActivity.this.scaVTxtFld.setEnabled(sight.getId() == -999);
  227. RBSMainActivity.this.scaHTxtFld.setEnabled(sight.getId() == -999);
  228. RBSMainActivity.this.scVertScaleRngTxtFld.setEnabled(sight.getId() == -999);
  229. }
  230. @Override
  231. public void onNothingSelected(final AdapterView<?> parent) { }
  232. });
  233. }
  234. private void addTouchListeners() {
  235. // Scrollview muss den Swipe selbst handeln
  236. this.paramsScrollView.setOnTouchListener(new OnTouchListener() {
  237. private float downX, downY, upX, upY;
  238. @Override
  239. public boolean onTouch(final View v, final MotionEvent event) {
  240. switch (event.getAction()) {
  241. case MotionEvent.ACTION_DOWN: {
  242. this.downX = event.getX();
  243. this.downY = event.getY();
  244. }
  245. case MotionEvent.ACTION_UP: {
  246. this.upX = event.getX();
  247. this.upY = event.getY();
  248. float deltaX = this.upX - this.downX;
  249. float deltaY = this.upY - this.downY;
  250. // swipe from right to left ?
  251. if (deltaX < 0 && Math.abs(deltaX) > MIN_DISTANCE && Math.abs(deltaY) < MIN_DISTANCE) {
  252. // set the required Animation type to ViewFlipper
  253. // The Next screen will come in form Right and current Screen will go OUT to Left
  254. RBSMainActivity.this.viewFlipper.setInAnimation(RBSMainActivity.this, R.anim.in_from_right);
  255. RBSMainActivity.this.viewFlipper.setOutAnimation(RBSMainActivity.this, R.anim.out_to_left);
  256. // Show The Next Screen
  257. RBSMainActivity.this.viewFlipper.showNext();
  258. deactivateXTextView(RBSMainActivity.this.txtViewParams);
  259. xTextViewUp(RBSMainActivity.this.txtViewResults);
  260. deactivateXTextView(RBSMainActivity.this.txtViewSight);
  261. }
  262. }
  263. }
  264. return false;
  265. }
  266. });
  267. // Scrollview muss den Swipe selbst handeln
  268. this.sightCfgScrollView.setOnTouchListener(new OnTouchListener() {
  269. private float downX, downY, upX, upY;
  270. @Override
  271. public boolean onTouch(final View v, final MotionEvent event) {
  272. switch (event.getAction()) {
  273. case MotionEvent.ACTION_DOWN: {
  274. this.downX = event.getX();
  275. this.downY = event.getY();
  276. }
  277. case MotionEvent.ACTION_UP: {
  278. this.upX = event.getX();
  279. this.upY = event.getY();
  280. float deltaX = this.upX - this.downX;
  281. float deltaY = this.upY - this.downY;
  282. // swipe from left to right?
  283. if (deltaX > 0 && Math.abs(deltaX) > MIN_DISTANCE && Math.abs(deltaY) < MIN_DISTANCE) {
  284. // set the required Animation type to ViewFlipper
  285. // The Next screen will come in form Right and current Screen will go OUT to Left
  286. RBSMainActivity.this.viewFlipper.setInAnimation(RBSMainActivity.this, R.anim.in_from_left);
  287. RBSMainActivity.this.viewFlipper.setOutAnimation(RBSMainActivity.this, R.anim.out_to_right);
  288. // Show The Next Screen
  289. RBSMainActivity.this.viewFlipper.showPrevious();
  290. deactivateXTextView(RBSMainActivity.this.txtViewSight);
  291. xTextViewUp(RBSMainActivity.this.txtViewResults);
  292. deactivateXTextView(RBSMainActivity.this.txtViewParams);
  293. }
  294. }
  295. }
  296. return false;
  297. }
  298. });
  299. // Touchlistener für die oberen 3 Tabs
  300. OnTouchListener tabListener = new OnTouchListener() {
  301. @Override
  302. public boolean onTouch(final View v, final MotionEvent event) {
  303. switch (event.getAction()) {
  304. case MotionEvent.ACTION_DOWN: {
  305. deactivateXTextView(RBSMainActivity.this.txtViewParams);
  306. deactivateXTextView(RBSMainActivity.this.txtViewResults);
  307. deactivateXTextView(RBSMainActivity.this.txtViewSight);
  308. xTextViewDown((XTextView) v);
  309. return true;
  310. }
  311. case MotionEvent.ACTION_UP: {
  312. RBSMainActivity.this.viewFlipper.setInAnimation(RBSMainActivity.this, R.anim.in_from_right);
  313. RBSMainActivity.this.viewFlipper.setOutAnimation(RBSMainActivity.this, R.anim.out_to_left);
  314. if (v == RBSMainActivity.this.txtViewParams) {
  315. if (RBSMainActivity.this.viewFlipper.getDisplayedChild() != 0) {
  316. RBSMainActivity.this.viewFlipper.setDisplayedChild(0);
  317. }
  318. } else if (v == RBSMainActivity.this.txtViewResults) {
  319. if (RBSMainActivity.this.viewFlipper.getDisplayedChild() != 1) {
  320. RBSMainActivity.this.viewFlipper.setDisplayedChild(1);
  321. }
  322. } else {
  323. if (RBSMainActivity.this.viewFlipper.getDisplayedChild() != 2) {
  324. RBSMainActivity.this.viewFlipper.setDisplayedChild(2);
  325. }
  326. }
  327. xTextViewUp((XTextView) v);
  328. return true;
  329. }
  330. }
  331. return false;
  332. }
  333. };
  334. // Touchlistener an Tabs anhängen
  335. this.txtViewParams.setOnTouchListener(tabListener);
  336. this.txtViewResults.setOnTouchListener(tabListener);
  337. this.txtViewSight.setOnTouchListener(tabListener);
  338. }
  339. @Override
  340. public boolean onPrepareOptionsMenu(final Menu menu) {
  341. int size = menu.size();
  342. for (int i = size - 1; i >= 0; i--) {
  343. menu.removeItem(menu.getItem(i).getItemId());
  344. }
  345. if (this.showInfoMenu) {
  346. this.showInfoMenu = false;
  347. getMenuInflater().inflate(R.menu.rbs_info_menu, menu);
  348. } else {
  349. getMenuInflater().inflate(R.menu.rbs_main, menu);
  350. }
  351. return true;
  352. }
  353. @Override
  354. public boolean onOptionsItemSelected(final MenuItem item) {
  355. // Handle item selection
  356. switch (item.getItemId()) {
  357. case R.id.chooseConfiguration:
  358. showDialog(DLG_CHOOSE_ARCHERYSETUP);
  359. return true;
  360. case R.id.moreItems:
  361. this.showInfoMenu = true;
  362. closeOptionsMenu();
  363. new Handler().post(new Runnable() {
  364. @Override
  365. public void run() {
  366. openOptionsMenu();
  367. }
  368. });
  369. return true;
  370. default:
  371. return super.onOptionsItemSelected(item);
  372. }
  373. }
  374. @Override
  375. public boolean onTouchEvent(final MotionEvent touchevent) {
  376. switch (touchevent.getAction()) {
  377. // when user first touches the screen to swap
  378. case MotionEvent.ACTION_DOWN: {
  379. this.lastX = touchevent.getX();
  380. break;
  381. }
  382. case MotionEvent.ACTION_UP: {
  383. float currentX = touchevent.getX();
  384. // if right to left swipe on screen
  385. if (this.lastX > currentX) {
  386. if (this.viewFlipper.getDisplayedChild() == 2) {
  387. break;
  388. }
  389. // set the required Animation type to ViewFlipper
  390. // The Next screen will come in form Right and current Screen will go OUT to Left
  391. this.viewFlipper.setInAnimation(this, R.anim.in_from_right);
  392. this.viewFlipper.setOutAnimation(this, R.anim.out_to_left);
  393. // Show The Next Screen
  394. this.viewFlipper.showNext();
  395. } else if (this.lastX < currentX) { // if left to right swipe on screen
  396. // If no more View/Child to flip
  397. if (this.viewFlipper.getDisplayedChild() == 0) {
  398. break;
  399. }
  400. // set the required Animation type to ViewFlipper
  401. // The Next screen will come in form Left and current Screen will go OUT to Right
  402. this.viewFlipper.setInAnimation(this, R.anim.in_from_left);
  403. this.viewFlipper.setOutAnimation(this, R.anim.out_to_right);
  404. // Show the previous Screen
  405. this.viewFlipper.showPrevious();
  406. }
  407. deactivateXTextView(RBSMainActivity.this.txtViewParams);
  408. deactivateXTextView(RBSMainActivity.this.txtViewResults);
  409. deactivateXTextView(RBSMainActivity.this.txtViewSight);
  410. switch (this.viewFlipper.getDisplayedChild()) {
  411. case 0:
  412. xTextViewUp(this.txtViewParams);
  413. break;
  414. case 1:
  415. xTextViewUp(this.txtViewResults);
  416. break;
  417. case 2:
  418. xTextViewUp(this.txtViewSight);
  419. break;
  420. default:
  421. break;
  422. }
  423. break;
  424. }
  425. }
  426. return false;
  427. }
  428. private void xTextViewDown(final XTextView view) {
  429. view.setDrawborderColor(getResources().getColor(R.color.android_blue_dark));
  430. view.setTextColor(getResources().getColor(R.color.android_blue_dark));
  431. }
  432. private void xTextViewUp(final XTextView view) {
  433. view.setDrawborderColor(getResources().getColor(R.color.android_blue));
  434. view.setTextColor(getResources().getColor(R.color.android_blue));
  435. }
  436. private void deactivateXTextView(final XTextView view) {
  437. view.setDrawborderColor(getResources().getColor(R.color.white));
  438. view.setTextColor(getResources().getColor(R.color.white));
  439. }
  440. @Override
  441. protected Dialog onCreateDialog(final int id) {
  442. return DialogFactory.createDialog(id, this);
  443. }
  444. @Override
  445. public void onArcherySetupDlgDismissed(final IArcherySetup archerySetup) {
  446. this.selectedArcherySetup = archerySetup;
  447. if (archerySetup != null) {
  448. if (archerySetup.getId() != -999) {
  449. this.arrowDiameterTxtFld.setText(archerySetup.getArrowDiameter().toString());
  450. this.arrowCwTxtFld.setText(archerySetup.getArrowCw().toString());
  451. this.arrowWeightTxtFld.setText(archerySetup.getArrowWeight().toString());
  452. this.bowPulloutTxtFld.setText(archerySetup.getBowPullout().toString());
  453. this.arrowV0TxtFld.setText(archerySetup.getArrowV0().toString());
  454. this.arrowNockHeightTxtFld.setText(archerySetup.getArrowNockHeight().toString());
  455. this.targetCenterHeightTxtFld.setText(archerySetup.getArrowCenterHeight().toString());
  456. this.calcTimeIntervalCboBox.setSelectionByVal(archerySetup.getDeltaTime().toString());
  457. this.calcAccuracyCboBox.setSelectionByVal(archerySetup.getCalcPrecision().toString());
  458. this.scRiserSpinner.setSelectedRiser(archerySetup.getRiser());
  459. this.scSightSpinner.setSelectedSight(archerySetup.getSight());
  460. this.scVertSkalaMiddleTxtFld.setText(archerySetup.getSightVertSkalaMiddle().toString());
  461. } else {
  462. this.arrowDiameterTxtFld.setText("");
  463. this.arrowDiameterTxtFld.setText("");
  464. this.arrowCwTxtFld.setText("");
  465. this.arrowWeightTxtFld.setText("");
  466. this.bowPulloutTxtFld.setText("");
  467. this.arrowV0TxtFld.setText("");
  468. this.arrowNockHeightTxtFld.setText("");
  469. this.targetCenterHeightTxtFld.setText("");
  470. this.calcTimeIntervalCboBox.setSelectionByVal("");
  471. this.calcAccuracyCboBox.setSelectionByVal("");
  472. this.scRiserSpinner.setSelection(0);
  473. this.scSightSpinner.setSelection(0);
  474. this.scVertSkalaMiddleTxtFld.setText("");
  475. }
  476. }
  477. }
  478. }