Advertisement
Guest User

Untitled

a guest
Dec 14th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.68 KB | None | 0 0
  1. package app.dogo.com.dogo_android.viewModel.main_screen.clicker;
  2.  
  3. import android.arch.lifecycle.MutableLiveData;
  4. import android.content.Context;
  5. import android.media.AudioManager;
  6. import android.media.MediaPlayer;
  7.  
  8. import app.dogo.com.dogo_android.AppService.App;
  9. import app.dogo.com.dogo_android.AppService.AuthService;
  10. import app.dogo.com.dogo_android.AppService.FireBaseDatabaseService;
  11. import app.dogo.com.dogo_android.AppService.PreferenceService;
  12. import app.dogo.com.dogo_android.AppService.Tracker;
  13. import app.dogo.com.dogo_android.R;
  14. import app.dogo.com.dogo_android.enums.FragmentTags;
  15. import app.dogo.com.dogo_android.enums.TagGlue;
  16. import app.dogo.com.dogo_android.util.ClickerSoundPlayer;
  17. import app.dogo.com.dogo_android.util.base_classes.BaseViewModel;
  18. import app.dogo.com.dogo_android.util.base_classes.Navigator;
  19.  
  20. public class ClickerViewModel extends BaseViewModel {
  21.  
  22. private PreferenceService preferenceService;
  23. private AuthService authService;
  24. private FireBaseDatabaseService fireBaseDatabaseService;
  25. private ClickerSoundPlayer clickerSoundPlayer;
  26. private Tracker tracker;
  27. private MutableLiveData<Boolean> buttonState = new MutableLiveData<>();
  28. private AudioManager audioManager;
  29.  
  30. public ClickerViewModel() {
  31. this(
  32. App.preferenceService,
  33. App.fireBaseDBService,
  34. App.authService,
  35. new ClickerSoundPlayer(App.getAppContext()),
  36. App.tracker,
  37. App.getAppContext()
  38. );
  39. }
  40.  
  41. private MediaPlayer.OnCompletionListener listener = mp -> buttonState.setValue(false);
  42.  
  43. public ClickerViewModel(
  44.  
  45. PreferenceService preferenceService,
  46. FireBaseDatabaseService fireBaseDatabaseService,
  47. AuthService authService,
  48. ClickerSoundPlayer clickerSoundPlayer,
  49. Tracker tracker,
  50. Context context) {
  51.  
  52. this.preferenceService = preferenceService;
  53. this.fireBaseDatabaseService = fireBaseDatabaseService;
  54. this.clickerSoundPlayer = clickerSoundPlayer;
  55. this.tracker = tracker;
  56. this.authService = authService;
  57. this.audioManager = ((AudioManager) context.getSystemService(Context.AUDIO_SERVICE));
  58.  
  59. buttonState.setValue(false);
  60. }
  61.  
  62. @Override
  63. public void onResume() {
  64. super.onResume();
  65. int currentSound = preferenceService.getPreferredClickerSoundId();
  66. clickerSoundPlayer.setSound(currentSound, listener);
  67. }
  68.  
  69. public void buttonPressed(Navigator navigator) {
  70.  
  71. if (!clickerSoundPlayer.isPlayerInit()) {
  72. refreshView(FragmentTags.CLICKER_FRAGMENT, navigator);
  73. }
  74.  
  75. if(clickerSoundPlayer.click()) {
  76. if (audioManager.getStreamVolume(AudioManager.STREAM_MUSIC) * 100 /
  77. audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC) < 20) {
  78. showToast(R.string.training_low_sound_volume);
  79. }
  80. buttonState.setValue(true);
  81. }
  82. try {
  83. fireBaseDatabaseService.userClickerCount(authService.getUser().getUid());
  84. } catch (Exception e) {
  85. tracker.trackError("clicker", "clicker_count_error", e);
  86. }
  87. }
  88.  
  89. @Override
  90. public void refreshView(TagGlue caller, Navigator navigator) {
  91. int currentSound = preferenceService.getPreferredClickerSoundId();
  92. clickerSoundPlayer.setSound(currentSound, listener);
  93. }
  94.  
  95. public MutableLiveData<Boolean> getButtonState() {
  96. return buttonState;
  97. }
  98.  
  99. @Override
  100. public void onPause() {
  101. super.onPause();
  102. clickerSoundPlayer.stopPlayer();
  103. }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement