Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package app.dogo.com.dogo_android.viewModel.main_screen.clicker;
- import android.arch.lifecycle.MutableLiveData;
- import android.content.Context;
- import android.media.AudioManager;
- import android.media.MediaPlayer;
- import app.dogo.com.dogo_android.AppService.App;
- import app.dogo.com.dogo_android.AppService.AuthService;
- import app.dogo.com.dogo_android.AppService.FireBaseDatabaseService;
- import app.dogo.com.dogo_android.AppService.PreferenceService;
- import app.dogo.com.dogo_android.AppService.Tracker;
- import app.dogo.com.dogo_android.R;
- import app.dogo.com.dogo_android.enums.FragmentTags;
- import app.dogo.com.dogo_android.enums.TagGlue;
- import app.dogo.com.dogo_android.util.ClickerSoundPlayer;
- import app.dogo.com.dogo_android.util.base_classes.BaseViewModel;
- import app.dogo.com.dogo_android.util.base_classes.Navigator;
- public class ClickerViewModel extends BaseViewModel {
- private PreferenceService preferenceService;
- private AuthService authService;
- private FireBaseDatabaseService fireBaseDatabaseService;
- private ClickerSoundPlayer clickerSoundPlayer;
- private Tracker tracker;
- private MutableLiveData<Boolean> buttonState = new MutableLiveData<>();
- private AudioManager audioManager;
- public ClickerViewModel() {
- this(
- App.preferenceService,
- App.fireBaseDBService,
- App.authService,
- new ClickerSoundPlayer(App.getAppContext()),
- App.tracker,
- App.getAppContext()
- );
- }
- private MediaPlayer.OnCompletionListener listener = mp -> buttonState.setValue(false);
- public ClickerViewModel(
- PreferenceService preferenceService,
- FireBaseDatabaseService fireBaseDatabaseService,
- AuthService authService,
- ClickerSoundPlayer clickerSoundPlayer,
- Tracker tracker,
- Context context) {
- this.preferenceService = preferenceService;
- this.fireBaseDatabaseService = fireBaseDatabaseService;
- this.clickerSoundPlayer = clickerSoundPlayer;
- this.tracker = tracker;
- this.authService = authService;
- this.audioManager = ((AudioManager) context.getSystemService(Context.AUDIO_SERVICE));
- buttonState.setValue(false);
- }
- @Override
- public void onResume() {
- super.onResume();
- int currentSound = preferenceService.getPreferredClickerSoundId();
- clickerSoundPlayer.setSound(currentSound, listener);
- }
- public void buttonPressed(Navigator navigator) {
- if (!clickerSoundPlayer.isPlayerInit()) {
- refreshView(FragmentTags.CLICKER_FRAGMENT, navigator);
- }
- if(clickerSoundPlayer.click()) {
- if (audioManager.getStreamVolume(AudioManager.STREAM_MUSIC) * 100 /
- audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC) < 20) {
- showToast(R.string.training_low_sound_volume);
- }
- buttonState.setValue(true);
- }
- try {
- fireBaseDatabaseService.userClickerCount(authService.getUser().getUid());
- } catch (Exception e) {
- tracker.trackError("clicker", "clicker_count_error", e);
- }
- }
- @Override
- public void refreshView(TagGlue caller, Navigator navigator) {
- int currentSound = preferenceService.getPreferredClickerSoundId();
- clickerSoundPlayer.setSound(currentSound, listener);
- }
- public MutableLiveData<Boolean> getButtonState() {
- return buttonState;
- }
- @Override
- public void onPause() {
- super.onPause();
- clickerSoundPlayer.stopPlayer();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement