import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.database.Cursor;
import android.os.IBinder;
import android.util.Log;
import java.util.ArrayList;
import java.util.Calendar;
public class AzanService extends Service{
final static int UINQUE_ID=789;
IBinder mBinder;
public IBinder onBind(Intent intent) {
retu null;
}
public int onStartCommand(Intent intent, int flags, int startId){
Calendar c = Calendar.getInstance();
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH)+1;
int day=c.get(Calendar.DAY_OF_MONTH);
int hour=c.get(Calendar.HOUR_OF_DAY);
int minute=c.get(Calendar.MINUTE);
int second=c.get(Calendar.SECOND);
PrayTime p=new PrayTime();
p.setCalcMethod(6);
int[] jdate=PersianDate.greorgorian2jalali(year, month, day);
double tz=((double) c.getTimeZone().getRawOffset() / 3600000)+((jdate[1]<7 && !(jdate[1]==6 && jdate[2]==31) && !(jdate[1]==1 && jdate[2]==1))?1:0);
Cursor azanInfo=new DbHelper(getApplicationContext()).getAzanInfo();
String city;
double lat;
double lng;
if(azanInfo.getCount() == 0){
city="مشهد";
lat=36.288135;
lng=59.615757;
}
else{
city=azanInfo.getString(0);
lat=Double.parseDouble(azanInfo.getString(1));
lng=Double.parseDouble(azanInfo.getString(2));
}
ArrayList<String> pt=p.getDatePrayerTimes(year, month, day,lat,lng, tz);
String[] s_fajr=pt.get(0).split(":");
int fajr=(Integer.parseInt(s_fajr[0])*60+Integer.parseInt(s_fajr[1]))*60;
String[] s_dhuhr=pt.get(2).split(":");
int dhuhr=(Integer.parseInt(s_dhuhr[0])*60+Integer.parseInt(s_dhuhr[1]))*60;
String[] s_maghrib=pt.get(5).split(":");
int maghrib=(Integer.parseInt(s_maghrib[0])*60+Integer.parseInt(s_maghrib[1]))*60;
int nowtime=(hour*60+minute)*60+second;
Calendar c2 = Calendar.getInstance();
c2.add(Calendar.DATE,1);
int year2=c2.get(Calendar.YEAR);
int month2=c2.get(Calendar.MONTH)+1;
int day2=c2.get(Calendar.DAY_OF_MONTH);
int[] jdate2=PersianDate.greorgorian2jalali(year, month, day);
double tz2=((double) c2.getTimeZone().getRawOffset() / 3600000)+((jdate2[1]<7 && !(jdate2[1]==6 && jdate2[2]==31) && !(jdate2[1]==1 && jdate2[2]==1))?1:0);
ArrayList<String> pt2=p.getDatePrayerTimes(year2, month2, day2, 32.53, 59.13, tz2);
String[] s_fajr2=pt2.get(0).split(":");
int fajr2=(Integer.parseInt(s_fajr2[0])*60+Integer.parseInt(s_fajr2[1]))*60;
int timer=0;
String azan="";
if(nowtime<fajr){
timer=fajr-nowtime;
azan="صبح";
}
else if(nowtime == fajr){
timer=dhuhr-nowtime;
azan="ظهر";
}
else if(nowtime<dhuhr){
timer=dhuhr-nowtime;
azan="ظهر";
}
else if(nowtime == dhuhr){
timer=maghrib-nowtime;
azan="مغرب";
}
else if(nowtime<maghrib){
timer=maghrib-nowtime;
azan="مغرب";
}
else if(nowtime == maghrib){
timer=(24*3600)-maghrib+fajr2;
azan="صبح";
}
else{
timer=(24*3600)-nowtime+fajr2;
azan="صبح";
}
timer=timer*1000;
Intent _intent = new Intent(this,AzanActivity.class);
_intent.putExtra("azan",azan);
_intent.putExtra("city",city);
PendingIntent pi = PendingIntent.getActivity(this, AzanService.UINQUE_ID, _intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager)getSystemService(Activity.ALARM_SERV ICE);
if(android.os.Build.VERSION.SDK_INT < 19){
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + timer, pi);
}
else{
am.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + timer, pi);
}
retu START_NOT_STICKY;
}
}import android.content.Context;
import android.content.Intent;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.WindowManager;
import android.widget.TextView;
public class AzanActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_azan);
Fonts.setYekan(this, (TextView) findViewById(R.id.txt_azan));
TextView txt_info=(TextView)findViewById(R.id.txt_info);
String txt="اذان "+getIntent().getStringExtra("azan")+" "+"به افق"+" "+getIntent().getStringExtra("city");
Fonts.setYekan(this, txt_info);
txt_info.setText(txt);
Intent i = new Intent(getApplicationContext(), AzanService.class);
stopService(i);
startService(i);
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE _NOTIFICATION);
Ringtone r = RingtoneManager.getRingtone(getApplicationContext( ), notification);
r.play();
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(500);
}
}
برچسب:
نویسنده: خنجی