import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.database.Cursor;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Vibrator;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class AlarmScreen extends Activity {
private MediaPlayer mediaPlayer;
private Vibrator vib;
private Uri uri;
private String snoozeTime;
private DateFormat timeFormat = new SimpleDateFormat("hh:mm aa");
private DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.alarm_screen);
TextView title = (TextView)findViewById(R.id.title);
TextView location = (TextView)findViewById(R.id.location);
TextView time = (TextView)findViewById(R.id.time);
TextView date = (TextView)findViewById(R.id.date);
final ImageView stop_alarm = (ImageView)findViewById(R.id.stop_alarm);
// Getting Information from Intent
String alarm_id = getIntent().getExtras().getString("id");
// Getting Alarm Data
DatabaseOperations dop = new DatabaseOperations(this);
Cursor cursor1 = AlarmsTable.getAlarm(dop, alarm_id);
String title_ = cursor1.getString(cursor1.getColumnIndex(AlarmsTable.TITLE));
String location_ = cursor1.getString(cursor1.getColumnIndex(AlarmsTable.LOCATION));
String time_ = cursor1.getString(cursor1.getColumnIndex(AlarmsTable.TIME));
String date_ = cursor1.getString(cursor1.getColumnIndex(AlarmsTable.DATE));
int repeat_ = cursor1.getInt(cursor1.getColumnIndex(AlarmsTable.REPEAT));
int interval_ = cursor1.getInt(cursor1.getColumnIndex(AlarmsTable.INTERVAL));
snoozeTime = cursor1.getString(cursor1.getColumnIndex(AlarmsTable.SNOOZE));
long currentTimeLong = Home.getRingTime(time_, date_, interval_);
// Turning Off No Repeat Alarms
if(repeat_ == 0) {
AlarmsTable.updateAlarmStatus(Integer.parseInt(alarm_id), 0, dop);
}
// for Repeating Alarms
if(repeat_ == 1){
String newTime = timeFormat.format(currentTimeLong);
String newDate = dateFormat.format(currentTimeLong);
AlarmsTable.updateRepeatTime(alarm_id, newTime, newDate, dop);
}
// Getting Settings Data
uri = SettingsTable.getUri(dop);
// Setting Text Field Values
// Get Screen Orientation Info
int ot = getResources().getConfiguration().orientation;
switch(ot) {
case Configuration.ORIENTATION_LANDSCAPE:
//
break;
}
title.setText(title_);
if(location_.equals("")){
location.setVisibility(View.GONE);
}
else {
location.setText(location_);
}
time.setText(timeFormat.format(currentTimeLong));
date.setText(dateFormat.format(currentTimeLong));
// On Click Listener
stop_alarm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stop_alarm.setImageDrawable(getResources().getDrawable(R.drawable.stop_button_click));
finish();
}
});
}
@Override
protected void onResume() {
super.onResume();
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
WindowManager.LayoutParams.FLAG_FULLSCREEN|
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON|
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
WindowManager.LayoutParams.FLAG_FULLSCREEN|
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON|
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
snoozeTimer();
playSound();
}
private void snoozeTimer() {
int time;
String snooze[] = getResources().getStringArray(R.array.snooze);
if(snoozeTime.equals(snooze[0])){
time = 2;
}
else if(snoozeTime.equals(snooze[1])){
time = 5;
}
else{
time = 10;
}
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
finish();
}
}, time * 60 * 1000);
}
private void playSound(){
mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource(this, uri);
AudioManager audioManager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
mediaPlayer.setLooping(true);
mediaPlayer.prepare();
mediaPlayer.start();
// When phone is in Vibrate mode
if(audioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE){
startVibration();
}
}catch(Exception e){
mediaPlayer = null;
}
}
// Setting Vibration Mode
private void startVibration() {
vib = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
long array[] = {1000, 1000};
vib.vibrate(array, 0);
}
@Override
protected void onStop() {
super.onStop();
if(mediaPlayer != null) {
mediaPlayer.stop();
mediaPlayer.release();
mediaPlayer = null;
}
if(vib != null) {
vib.cancel();
}
}
}
No comments:
Post a Comment