package com.setweeklyrepeatalarm;
import java.util.Calendar;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;
import android.widget.Toast;
public class AlarmTestActivity extends Activity implements
OnCheckedChangeListener {
private Context ctx;
private PendingIntent operation, operation1, operation2, operation3,
operation4, operation5, operation6;
private CheckBox chk_monday, chk_tuesday, chk_wednesday, chk_thursday,
chk_friday, chk_sat, chk_sunday;
private AlarmManager alarmManager;
private Button btnSetAlarm, btnQuitAlarm;
private TextView alarmTitle;
private Intent i;
private TimePicker tpTime;
private boolean timerflag = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ctx = this;
/**
* This intent invokes the activity DemoActivity, which in turn opens
* the AlertDialog window
*/
i = new Intent(AlarmTestActivity.this, AlarmPopup.class);
/** Getting a reference to the System Service ALARM_SERVICE */
alarmManager = (AlarmManager) getBaseContext().getSystemService(
ALARM_SERVICE);
setMapping();
setListener();
}
private void setListener() {
btnSetAlarm.setOnClickListener(setClickListener);
btnQuitAlarm.setOnClickListener(quitClickListener);
chk_monday.setOnCheckedChangeListener(this);
chk_tuesday.setOnCheckedChangeListener(this);
chk_wednesday.setOnCheckedChangeListener(this);
chk_thursday.setOnCheckedChangeListener(this);
chk_friday.setOnCheckedChangeListener(this);
chk_sat.setOnCheckedChangeListener(this);
chk_sunday.setOnCheckedChangeListener(this);
tpTime.setOnTimeChangedListener(new OnTimeChangedListener() {
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
timerflag = true;
}
});
}
OnClickListener quitClickListener = new OnClickListener() {
public void onClick(View v) {
finish();
}
};
private void setMapping() {
tpTime = (TimePicker) findViewById(R.id.tp_time);
alarmTitle = (TextView) findViewById(R.id.soundtv);
alarmTitle.setText("Sound : " + "AlarmTone Name");
btnSetAlarm = (Button) findViewById(R.id.btn_set_alarm);
btnQuitAlarm = (Button) findViewById(R.id.btn_quit_alarm);
chk_monday = (CheckBox) findViewById(R.id.chk_monday);
chk_tuesday = (CheckBox) findViewById(R.id.chk_tuesday);
chk_wednesday = (CheckBox) findViewById(R.id.chk_wednesday);
chk_thursday = (CheckBox) findViewById(R.id.chk_thursday);
chk_friday = (CheckBox) findViewById(R.id.chk_friday);
chk_sat = (CheckBox) findViewById(R.id.chk_sat);
chk_sunday = (CheckBox) findViewById(R.id.chk_sunday);
}
OnClickListener setClickListener = new OnClickListener() {
public void onClick(View v) {
if (!timerflag) {
Toast.makeText(ctx, "Please first select time",
Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(ctx, "Alarm set successfully", Toast.LENGTH_LONG)
.show();
finish();
}
}
};
public void stopAlaram(Context ctx, Intent intent)
{
PendingIntent.getBroadcast(ctx, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT).cancel();
Toast.makeText(ctx, "Cancel!", Toast.LENGTH_LONG).show();
}
public void forday(int week, PendingIntent pendingIntent) {
Calendar calSet = Calendar.getInstance();
int hour = tpTime.getCurrentHour();
int minute = tpTime.getCurrentMinute();
calSet.set(Calendar.DAY_OF_WEEK, week);
calSet.set(Calendar.HOUR_OF_DAY, hour);
calSet.set(Calendar.MINUTE, minute);
calSet.set(Calendar.SECOND, 0);
calSet.set(Calendar.MILLISECOND, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calSet.getTimeInMillis(), AlarmManager.INTERVAL_DAY * 7,
pendingIntent);
}
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if (timerflag) {
if (buttonView == chk_monday) {
if (isChecked) {
Bundle bundle = new Bundle();
bundle.putInt("Selected_day", 2);
i.putExtras(bundle);
operation = PendingIntent.getActivity(getBaseContext(), 0,
i, Intent.FLAG_ACTIVITY_NEW_TASK);
forday(2, operation);
}
else {
AlarmManager alarmManager = (AlarmManager) ctx
.getSystemService(ALARM_SERVICE);
alarmManager.cancel(operation);
}
}
else if (buttonView == chk_tuesday) {
if (isChecked) {
Bundle bundle = new Bundle();
bundle.putInt("Selected_day", 3);
i.putExtras(bundle);
operation1 = PendingIntent.getActivity(getBaseContext(), 1,
i, Intent.FLAG_ACTIVITY_NEW_TASK);
forday(3, operation1);
}
else {
AlarmManager alarmManager = (AlarmManager) ctx
.getSystemService(ALARM_SERVICE);
alarmManager.cancel(operation1);
}
}
else if (buttonView == chk_wednesday) {
if (isChecked) {
Bundle bundle = new Bundle();
bundle.putInt("Selected_day", 4);
i.putExtras(bundle);
operation2 = PendingIntent.getActivity(getBaseContext(), 2,
i, Intent.FLAG_ACTIVITY_NEW_TASK);
forday(4, operation2);
}
else {
AlarmManager alarmManager = (AlarmManager) ctx
.getSystemService(ALARM_SERVICE);
alarmManager.cancel(operation2);
}
}
else if (buttonView == chk_thursday) {
if (isChecked) {
Bundle bundle = new Bundle();
bundle.putInt("Selected_day", 5);
i.putExtras(bundle);
operation3 = PendingIntent.getActivity(getBaseContext(), 3,
i, Intent.FLAG_ACTIVITY_NEW_TASK);
forday(5, operation3);
}
else {
AlarmManager alarmManager = (AlarmManager) ctx
.getSystemService(ALARM_SERVICE);
alarmManager.cancel(operation3);
}
}
else if (buttonView == chk_friday) {
if (isChecked) {
Bundle bundle = new Bundle();
bundle.putInt("Selected_day", 6);
i.putExtras(bundle);
operation4 = PendingIntent.getActivity(getBaseContext(), 4,
i, Intent.FLAG_ACTIVITY_NEW_TASK);
forday(6, operation4);
}
else {
AlarmManager alarmManager = (AlarmManager) ctx
.getSystemService(ALARM_SERVICE);
alarmManager.cancel(operation4);
}
}
else if (buttonView == chk_sat) {
if (isChecked) {
Bundle bundle = new Bundle();
bundle.putInt("Selected_day", 7);
i.putExtras(bundle);
operation5 = PendingIntent.getActivity(getBaseContext(), 5,
i, Intent.FLAG_ACTIVITY_NEW_TASK);
forday(7, operation5);
}
else {
AlarmManager alarmManager = (AlarmManager) ctx
.getSystemService(ALARM_SERVICE);
alarmManager.cancel(operation5);
}
}
else if (buttonView == chk_sunday) {
if (isChecked) {
Bundle bundle = new Bundle();
bundle.putInt("Selected_day", 1);
i.putExtras(bundle);
operation6 = PendingIntent.getActivity(getBaseContext(), 6,
i, Intent.FLAG_ACTIVITY_NEW_TASK);
forday(1, operation6);
}
else {
AlarmManager alarmManager = (AlarmManager) ctx
.getSystemService(ALARM_SERVICE);
alarmManager.cancel(operation6);
}
}
} else {
buttonView.setChecked(false);
Toast.makeText(ctx, "Please first select time", Toast.LENGTH_LONG)
.show();
}
}
}
------------------------------------------------------------------------------------------------------------
package com.setweeklyrepeatalarm;
import java.util.Calendar;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.res.AssetFileDescriptor;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class AlarmPopup extends Activity implements OnClickListener {
private TextView alarmHeading;
private Button closebtn, snooze, dismiss;
private Context ctx;
MediaPlayer mp;
private int selected_day;
private Bundle bundle;
private AssetFileDescriptor descriptor;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.alarm_popup);
ctx = this;
try {
bundle = this.getIntent().getExtras();
selected_day = bundle.getInt("Selected_day");
} catch (Exception e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK);
if (selected_day < day && bundle != null) {
this.finish();
return;
} else {
try {
/*mp = new MediaPlayer();
mp.reset();
descriptor = getResources().openRawResourceFd(R.raw.msg);
mp.reset();
mp.setDataSource(descriptor.getFileDescriptor(),
descriptor.getStartOffset(), descriptor.getLength());
descriptor.close();
mp.prepare();
mp.start();
mp.release();
mp.setLooping(true);*/
mp = MediaPlayer.create(ctx, R.raw.msg);
mp.start();
} catch (Exception e) {
e.printStackTrace();
}
}
alarmHeading = (TextView) findViewById(R.id.tv_name_lang);
closebtn = (Button) findViewById(R.id.btncloselang);
snooze = (Button) findViewById(R.id.btn_eng);
dismiss = (Button) findViewById(R.id.btn_hindi);
alarmHeading.setText("Alarm");
snooze.setText("Snooze");
dismiss.setText("Dismiss");
closebtn.setOnClickListener(this);
snooze.setOnClickListener(this);
dismiss.setOnClickListener(this);
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
AlarmTestActivity obj = new AlarmTestActivity();
obj.stopAlaram(ctx, this.getIntent());
mp.stop();
mp.release();
finish();
// super.onBackPressed();
}
public void onClick(View v) {
// TODO Auto-generated method stub
if (v == dismiss || v == closebtn) {
AlarmTestActivity obj = new AlarmTestActivity();
obj.stopAlaram(ctx, this.getIntent());
mp.stop();
mp.release();
finish();
} else if (v == snooze) {
Intent intent = new Intent();
intent.setClass(this, AlarmPopup.class);
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Bundle bundle = new Bundle();
bundle.putInt("Selected_day", selected_day);
intent.putExtras(bundle);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 101,
intent, Intent.FLAG_ACTIVITY_NEW_TASK);
am.set(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + 5 * 1000 * 60, pendingIntent);
// Intent i = new Intent(this, AlarmPopup.class);
// PendingIntent pendingIntent =
// PendingIntent.getActivity(getBaseContext(), 101, i,
// Intent.FLAG_ACTIVITY_NEW_TASK);
// AlarmManager alarmManager = (AlarmManager)
// getBaseContext().getSystemService(ALARM_SERVICE);
// alarmManager.set(AlarmManager.RTC_WAKEUP,1000, pendingIntent);
mp.stop();
mp.release();
finish();
}
}
}
------------------------------------------------------------------------------------------------------------
main_activity
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#111111">
<TextView android:id="@+id/soundtv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Sound :" android:textColor="#000000" android:textSize="20sp" android:textStyle="bold" android:typeface="serif" />
<View android:id="@+id/view1" android:layout_width="fill_parent" android:layout_height="1dp" android:layout_below="@+id/soundtv" android:background="#ffffff" />
<TimePicker android:id="@+id/tp_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/view1" />
<View android:id="@+id/view2" android:layout_width="fill_parent" android:layout_height="1dp" android:layout_below="@+id/tp_time" android:background="#ffffff" />
<TextView android:id="@+id/alarmrepeattv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/view2" android:text="Alarm Repeat" android:textColor="#000000" android:textSize="20sp" android:textStyle="bold" android:typeface="serif" />
- <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_above="@+id/rlayout" android:background="@android:color/white" android:layout_below="@+id/alarmrepeattv">
- <LinearLayout android:id="@+id/weekdayll" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical">
<CheckBox android:id="@+id/chk_monday" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Monday" android:textColor="#000000" android:textStyle="bold" android:typeface="serif" />
<CheckBox android:id="@+id/chk_tuesday" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tuesday" android:textColor="#000000" android:textStyle="bold" android:typeface="serif" />
<CheckBox android:id="@+id/chk_wednesday" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Wednesday" android:textColor="#000000" android:textStyle="bold" android:typeface="serif" />
<CheckBox android:id="@+id/chk_thursday" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Thursday" android:textColor="#000000" android:textStyle="bold" android:typeface="serif" />
<CheckBox android:id="@+id/chk_friday" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Friday" android:textColor="#000000" android:textStyle="bold" android:typeface="serif" />
<CheckBox android:id="@+id/chk_sat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Saturday" android:textColor="#000000" android:textStyle="bold" android:typeface="serif" />
<CheckBox android:id="@+id/chk_sunday" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Sunday" android:textColor="#000000" android:textStyle="bold" android:typeface="serif" />
</LinearLayout>
</ScrollView>
- <RelativeLayout android:id="@+id/rlayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:gravity="center_horizontal">
<View android:id="@+id/view3" android:layout_width="fill_parent" android:layout_height="1dp" android:background="#ffffff" />
<Button android:id="@+id/btn_set_alarm" android:layout_width="100dip" android:layout_height="50dip" android:layout_below="@+id/view3" android:layout_marginLeft="10dp" android:layout_marginTop="5dp" android:padding="5dp" android:text="Set Alarm" android:textColor="#000000" android:textStyle="bold" android:typeface="serif" />
<Button android:id="@+id/btn_quit_alarm" android:layout_width="100dp" android:layout_height="50dp" android:layout_alignParentRight="true" android:layout_below="@+id/view3" android:layout_marginRight="10dp" android:layout_marginTop="5dp" android:padding="5dp" android:text="Cancle" android:textColor="#000000" android:textStyle="bold" android:typeface="serif" />
</RelativeLayout>
</RelativeLayout>
------------------------------------------------------------------------------------------------------------
alarm popup.xml
<?xml version="1.0" encoding="utf-8" ?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="#00000000">
- <RelativeLayout android:id="@+id/main_iv" android:layout_width="240dp" android:layout_height="45dp" android:background="@android:color/white">
- <RelativeLayout android:id="@+id/sub_main" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#0000FF">
<TextView android:id="@+id/tv_name_lang" android:layout_width="fill_parent" android:layout_height="60dip" android:layout_toRightOf="@+id/image" android:gravity="center" android:text="Choose Language" android:textColor="#750303" android:textSize="20sp" android:textStyle="bold" />
<Button android:id="@+id/btncloselang" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:background="@drawable/ic_launcher" android:gravity="top" android:tag="btncloselang" />
</RelativeLayout>
</RelativeLayout>
- <RelativeLayout android:layout_width="240dp" android:layout_height="wrap_content" android:layout_below="@+id/main_iv" android:background="@android:color/white">
<Button android:id="@+id/btn_eng" android:layout_width="240dp" android:layout_height="50dp" android:background="#FF0000" android:gravity="center" android:text="English" android:textColor="#750303" android:textSize="18sp" android:textStyle="bold" />
<Button android:id="@+id/btn_hindi" android:layout_width="240dp" android:layout_height="50dp" android:layout_below="@+id/btn_eng" android:background="#00FF00" android:text="" android:textColor="#750303" android:textSize="18sp" android:textStyle="bold" />
</RelativeLayout>
</RelativeLayout>
------------------------------------------------------------------------------------------------------------
manifest.xml
<?xml version="1.0" encoding="utf-8" ?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.setweeklyrepeatalarm" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
- <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
- <activity android:name="com.setweeklyrepeatalarm.AlarmTestActivity" android:label="@string/app_name">
- <intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.setweeklyrepeatalarm.AlarmPopup" android:screenOrientation="portrait" />
</application>
</manifest>