Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.sholat.app;
- import android.Manifest;
- import android.app.AlarmManager;
- import android.app.DatePickerDialog;
- import android.app.Dialog;
- import android.app.PendingIntent;
- import android.content.Context;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.support.v4.app.ActivityCompat;
- import android.support.v4.content.ContextCompat;
- import android.support.v7.app.AlertDialog;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import android.widget.DatePicker;
- import android.widget.RelativeLayout;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.sholat.app.location_service.GpsManager;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.Date;
- public class MainActivity extends AppCompatActivity {
- public static final int MY_PERMISSIONS_REQUEST_LOCATION = 99;
- PrayTime prayers;
- TextView mFajr, mDhuhr, mAsr, mMaghrib, mIsha;
- Button mSycronLoc;
- //RelativeLayout mlayoutDate;
- double timezone;
- /* lokasi ini akan menentukan kalkulasi waktu
- * setiap daerah akan berbeda*/
- public static double lat;
- public static double lng;
- //private AlarmManager alarmManager;
- int year, month, day;
- public String[] months = { "Januari", "Februari", "March", "April",
- "Mei", "Juni", "Juli", "Augustus", "September", "Oktober",
- "November", "Desember" };
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- checkLocationPermission();
- setContentView(R.layout.activity_main);
- // alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
- getLocation();
- mFajr = (TextView) findViewById(R.id.TextViewWaktuSubuh);
- mDhuhr = (TextView) findViewById(R.id.TextViewWaktuZuhur);
- mAsr = (TextView) findViewById(R.id.TextViewWaktuAshar);
- mMaghrib = (TextView) findViewById(R.id.TextViewWaktuMaghrib);
- mIsha = (TextView) findViewById(R.id.TextViewWaktuIsya);
- mSycronLoc = (Button) findViewById(R.id.btnSycronLoc);
- /* timezone juga mempengaruhi perbedaan waktu
- * untuk itu timezone sudah di set */
- timezone = (Calendar.getInstance().getTimeZone().getOffset(Calendar.getInstance().getTimeInMillis())) / (1000 * 60 * 60);
- prayers = new PrayTime();
- prayers.setTimeFormat(prayers.Time24); //format waktu
- prayers.setCalcMethod(prayers.Makkah); //kalulasi menurut
- prayers.setAsrJuristic(prayers.Shafii);
- prayers.setAdjustHighLats(prayers.MidNight);
- prayers.setTimeZone(prayers.getTimeZone());
- prayers.setFajrAngle(21.9);
- prayers.setIshaAngle(18.6);
- int[] offsets = { 0, 0, 0, 0, 0 }; // {Fajr,Dhuhr,Asr,Maghrib,Isha}
- prayers.tune(offsets);
- Calendar cal = Calendar.getInstance();
- year = cal.get(Calendar.YEAR);
- month = cal.get(Calendar.MONTH);
- day = cal.get(Calendar.DAY_OF_MONTH);
- ShowPrayTime(year, month, day);
- mSycronLoc.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- GpsManager gpsManager = new GpsManager(MainActivity.this);
- lat = gpsManager.getLatitude();
- lng = gpsManager.getLongitude();
- }
- });
- startAlarm();
- }
- private void ShowPrayTime(int year, int month, int day) {
- /* ArrayList ini yang nantinya akan di gunakan untuk
- * menampilkan jadwal sholat */
- GpsManager gpsManager = new GpsManager(MainActivity.this);
- ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, gpsManager.getLatitude(), gpsManager.getLongitude(), timezone);
- ArrayList<String> prayerNames = prayers.getTimeNames();
- Log.d("ML LAT", String.valueOf(gpsManager.getLatitude()));
- Log.d("ML LNG", String.valueOf(gpsManager.getLongitude()));
- mFajr.setText(prayerTimes.get(0));
- mDhuhr.setText(prayerTimes.get(2));
- mAsr.setText(prayerTimes.get(3));
- mMaghrib.setText(prayerTimes.get(4));
- mIsha.setText(prayerTimes.get(6));
- /*if (prayerTimes.get(0) != null){
- adzanFajr();
- }
- if (prayerTimes.get(2) != null){
- adzanDzuhur();
- }*/
- /* Fajr = prayerTimes.get(0);
- Dzuhur = prayerTimes.get(2);
- Ashar = prayerTimes.get(3);
- Magrib = prayerTimes.get(4);
- Isha = prayerTimes.get(6);*/
- // mDate.setText(day + " " + months[month] + " " + year);
- }
- /*public void getRefreshLoc(){
- GpsManager gpsManager = new GpsManager(MainActivity.this);
- ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, gpsManager.getLatitude(), gpsManager.getLongitude(), timezone);
- }
- */
- public void getLocation(){
- GpsManager gpsManager = new GpsManager(MainActivity.this);
- lat = gpsManager.getLatitude();
- lng = gpsManager.getLongitude();
- //Toast.makeText(getApplicationContext(), "LAT " + lat + " LNG " + lng, Toast.LENGTH_LONG).show();
- }
- public void startAlarm(){
- AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
- Intent intent = new Intent(this, ReceiverAlarm.class);
- Calendar calendarDzuhur = Calendar.getInstance();
- /* Calendar calendarAshar = Calendar.getInstance();
- Calendar calendarMagrib = Calendar.getInstance();*/
- //set times
- GpsManager gpsManager = new GpsManager(MainActivity.this);
- ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, gpsManager.getLatitude(), gpsManager.getLongitude(), timezone);
- Date adzDh = Helper.parseStringToDate(prayerTimes.get(2), Consts.TYPE_FULLTIME);
- calendarDzuhur.set(calendarDzuhur.get(Calendar.YEAR),
- calendarDzuhur.get(Calendar.MONTH),
- calendarDzuhur.get(Calendar.DAY_OF_MONTH));
- calendarDzuhur.set(Calendar.HOUR_OF_DAY, adzDh.getHours());
- calendarDzuhur.set(Calendar.MINUTE, adzDh.getMinutes());
- PendingIntent alarmIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
- /* Date adzAs = Helper.parseStringToDate(prayerTimes.get(3), Consts.TYPE_FULLTIME);
- calendarAshar.set(Calendar.HOUR_OF_DAY, adzAs.getHours());
- calendarAshar.set(Calendar.MINUTE, adzAs.getMinutes());
- PendingIntent alarmIntent2 = PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_CANCEL_CURRENT);
- Date adzMg = Helper.parseStringToDate(prayerTimes.get(4), Consts.TYPE_FULLTIME);
- calendarMagrib.set(Calendar.HOUR_OF_DAY, adzMg.getHours());
- calendarMagrib.set(Calendar.MINUTE, adzMg.getMinutes());
- PendingIntent alarmIntent3 = PendingIntent.getBroadcast(this, 2, intent, PendingIntent.FLAG_CANCEL_CURRENT);*/
- alarmManager.set(AlarmManager.RTC_WAKEUP, calendarDzuhur.getTimeInMillis(), alarmIntent);
- /* alarmManager.set(AlarmManager.RTC_WAKEUP, calendarAshar.getTimeInMillis(), alarmIntent2);
- alarmManager.set(AlarmManager.RTC_WAKEUP, calendarMagrib.getTimeInMillis(), alarmIntent3);*/
- }
- /* public void adzanDzuhur() {
- //long time;
- GpsManager gpsManager = new GpsManager(MainActivity.this);
- ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, gpsManager.getLatitude(), gpsManager.getLongitude(), timezone);
- AlarmManager am =(AlarmManager) getSystemService(Context.ALARM_SERVICE);
- Calendar calendarDzuhur = Calendar.getInstance();
- Date adzDh = Helper.parseStringToDate(prayerTimes.get(2), Consts.TYPE_FULLTIME);
- calendarDzuhur.set(Calendar.HOUR_OF_DAY, adzDh.getHours());
- calendarDzuhur.set(Calendar.MINUTE, adzDh.getMinutes());
- Intent intent = new Intent(this, ReceiverAlarm.class);
- PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
- Log.d("Jam", String.valueOf(adzDh.getHours()));
- Log.d("menit", String.valueOf(adzDh.getMinutes()));
- am.set(AlarmManager.RTC_WAKEUP, calendarDzuhur.getTimeInMillis(), pendingIntent);
- }
- public void adzanAshar() {
- //long time;
- ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, lat, lng, timezone);
- AlarmManager am =(AlarmManager) getSystemService(Context.ALARM_SERVICE);
- Calendar calendar = Calendar.getInstance();
- Date adzAs = Helper.parseStringToDate(prayerTimes.get(3), Consts.TYPE_FULLTIME);
- calendar.set(Calendar.HOUR_OF_DAY, adzAs.getHours());
- calendar.set(Calendar.MINUTE, adzAs.getMinutes());
- Intent intent = new Intent(this, ReceiverAlarm.class);
- PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 1, intent, 0);
- am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
- }
- public void adzanMagrib() {
- //long time;
- ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, lat, lng, timezone);
- AlarmManager am =(AlarmManager) getSystemService(Context.ALARM_SERVICE);
- Calendar calendar = Calendar.getInstance();
- Date adzMg = Helper.parseStringToDate(prayerTimes.get(4), Consts.TYPE_FULLTIME);
- calendar.set(Calendar.HOUR_OF_DAY, adzMg.getHours());
- calendar.set(Calendar.MINUTE, adzMg.getMinutes());
- Intent intent = new Intent(this, ReceiverAlarm.class);
- PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 2, intent, 0);
- am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
- }
- public void adzanIsha() {
- //long time;
- ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, lat, lng, timezone);
- AlarmManager am =(AlarmManager) getSystemService(Context.ALARM_SERVICE);
- Calendar calendar = Calendar.getInstance();
- Date adzIs = Helper.parseStringToDate(prayerTimes.get(6), Consts.TYPE_FULLTIME);
- calendar.set(Calendar.HOUR_OF_DAY, adzIs.getHours());
- calendar.set(Calendar.MINUTE, adzIs.getMinutes());
- Intent intent = new Intent(this, ReceiverAlarm.class);
- PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 3, intent, 0);
- am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
- }
- public void adzanFajr() {
- //long time;
- ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, lat, lng, timezone);
- AlarmManager am =(AlarmManager) getSystemService(Context.ALARM_SERVICE);
- Calendar calendar = Calendar.getInstance();
- Date adzFj = Helper.parseStringToDate(prayerTimes.get(0), Consts.TYPE_FULLTIME);
- calendar.set(Calendar.HOUR_OF_DAY, adzFj.getHours());
- calendar.set(Calendar.MINUTE, adzFj.getMinutes());
- Intent intent = new Intent(this, ReceiverAlarm.class);
- PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 4, intent, 0);
- am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
- }*/
- public boolean checkLocationPermission() {
- if (ContextCompat.checkSelfPermission(this,
- Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
- // Should we show an explanation?
- if (ActivityCompat.shouldShowRequestPermissionRationale(this,
- Manifest.permission.ACCESS_FINE_LOCATION)) {
- // Show an explanation to the user *asynchronously* -- don't block
- // this thread waiting for the user's response! After the user
- // sees the explanation, try again to request the permission.
- new AlertDialog.Builder(this)
- .setTitle(R.string.title_location_permission)
- .setMessage(R.string.text_location_permission)
- .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- //Prompt the user once explanation has been shown
- ActivityCompat.requestPermissions(MainActivity.this,
- new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
- MY_PERMISSIONS_REQUEST_LOCATION);
- }
- })
- .create()
- .show();
- } else {
- // No explanation needed, we can request the permission.
- ActivityCompat.requestPermissions(this,
- new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSIONS_REQUEST_LOCATION);
- }
- return false;
- } else {
- return true;
- }
- }
- @Override
- public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
- switch (requestCode) {
- case MY_PERMISSIONS_REQUEST_LOCATION: {
- // If request is cancelled, the result arrays are empty.
- if (grantResults.length > 0
- && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- // permission was granted, yay! Do the
- // location-related task you need to do.
- if (ContextCompat.checkSelfPermission(this,
- Manifest.permission.ACCESS_FINE_LOCATION)
- == PackageManager.PERMISSION_GRANTED) {
- //Request location updates:
- /*locationManager.requestLocationUpdates(provider, 400, 1, this);*/
- GpsManager gpsManager = new GpsManager(MainActivity.this);
- gpsManager.getLatitude();
- gpsManager.getLongitude();
- }
- } else {
- // permission denied, boo! Disable the
- // functionality that depends on this permission.
- }
- return;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement