package com.byagowi.persiancalendar.view.activity;
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.AppCompatImageView;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.TextView;
import com.byagowi.persiancalendar.Constants;
import com.byagowi.persiancalendar.R;
import com.byagowi.persiancalendar.util.Utils;
import com.github.praytimes.PrayTime;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
public class AthanActivity extends AppCompatActivity implements View.OnClickListener, MediaPlayer.OnCompletionListener {
private static final String TAG = AthanActivity.class.getName();
private TextView textAlarmName;
private AppCompatImageView athanIconView;
private MediaPlayer mediaPlayer;
private Utils utils;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String prayerKey = getIntent().getStringExtra(Constants.KEY_EXTRA_PRAYER_KEY);
utils = Utils.getInstance(getApplicationContext());
utils.changeAppLanguage(this);
utils.loadLanguageResource();
setContentView(R.layout.activity_athan);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
textAlarmName = (TextView) findViewById(R.id.athan_name);
TextView textCityName = (TextView) findViewById(R.id.place);
athanIconView = (AppCompatImageView) findViewById(R.id.background_image);
athanIconView.setOnClickListener(this);
setPrayerView(prayerKey);
textCityName.setText(getString(R.string.in_city_time) + " " + utils.getCityName(true));
play();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
finish();
}
}, TimeUnit.SECONDS.toMillis(45));
}
private void setPrayerView(String key) {
if (!TextUtils.isEmpty(key)) {
PrayTime prayTime = PrayTime.valueOf(key);
switch (prayTime) {
case FAJR:
textAlarmName.setText(getString(R.string.azan1));
athanIconView.setImageResource(R.drawable.fajr);
break;
case DHUHR:
textAlarmName.setText(getString(R.string.azan2));
athanIconView.setImageResource(R.drawable.dhuhr);
break;
case ASR:
textAlarmName.setText(getString(R.string.azan3));
athanIconView.setImageResource(R.drawable.asr);
break;
case MAGHRIB:
textAlarmName.setText(getString(R.string.azan4));
athanIconView.setImageResource(R.drawable.maghrib);
break;
case ISHA:
textAlarmName.setText(getString(R.string.azan5));
athanIconView.setImageResource(R.drawable.isha);
break;
}
}
}
@Override
public void onClick(View v) {
stop();
finish();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
public void onBackPressed() {
stop();
finish();
}
private void play() {
try {
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
mediaPlayer = new MediaPlayer();
mediaPlayer.setOnCompletionListener(this);
mediaPlayer.setDataSource(this, utils.getAthanUri());
mediaPlayer.prepare();
mediaPlayer.start();
audioManager.setStreamVolume(AudioManager.STREAM_ALARM, utils.getAthanVolume(), 0);
} catch (IOException e) {
Log.e(TAG, e.getMessage());
}
}
private void stop() {
try {
if (mediaPlayer != null && mediaPlayer.isPlaying()) {
mediaPlayer.stop();
mediaPlayer.release();
}
} catch (IllegalStateException ignored) {
}
}
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
}