Advertisement
Guest User

Untitled

a guest
Mar 21st, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.53 KB | None | 0 0
  1. package com.sholat.app;
  2.  
  3. import android.Manifest;
  4. import android.app.AlarmManager;
  5. import android.app.DatePickerDialog;
  6. import android.app.Dialog;
  7. import android.app.PendingIntent;
  8. import android.content.Context;
  9. import android.content.DialogInterface;
  10. import android.content.Intent;
  11. import android.content.pm.PackageManager;
  12. import android.support.v4.app.ActivityCompat;
  13. import android.support.v4.content.ContextCompat;
  14. import android.support.v7.app.AlertDialog;
  15. import android.support.v7.app.AppCompatActivity;
  16. import android.os.Bundle;
  17. import android.util.Log;
  18. import android.view.View;
  19. import android.widget.Button;
  20. import android.widget.DatePicker;
  21. import android.widget.RelativeLayout;
  22. import android.widget.TextView;
  23. import android.widget.Toast;
  24.  
  25. import com.sholat.app.location_service.GpsManager;
  26.  
  27. import java.util.ArrayList;
  28. import java.util.Calendar;
  29. import java.util.Date;
  30.  
  31. public class MainActivity extends AppCompatActivity {
  32.  
  33. public static final int MY_PERMISSIONS_REQUEST_LOCATION = 99;
  34.  
  35. PrayTime prayers;
  36.  
  37. TextView mFajr, mDhuhr, mAsr, mMaghrib, mIsha;
  38. Button mSycronLoc;
  39. //RelativeLayout mlayoutDate;
  40.  
  41. double timezone;
  42.  
  43. /* lokasi ini akan menentukan kalkulasi waktu
  44. * setiap daerah akan berbeda*/
  45.  
  46. public static double lat;
  47. public static double lng;
  48.  
  49. //private AlarmManager alarmManager;
  50.  
  51. int year, month, day;
  52.  
  53. public String[] months = { "Januari", "Februari", "March", "April",
  54. "Mei", "Juni", "Juli", "Augustus", "September", "Oktober",
  55. "November", "Desember" };
  56.  
  57. @Override
  58. protected void onCreate(Bundle savedInstanceState) {
  59. super.onCreate(savedInstanceState);
  60. checkLocationPermission();
  61. setContentView(R.layout.activity_main);
  62. // alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
  63.  
  64. getLocation();
  65.  
  66. mFajr = (TextView) findViewById(R.id.TextViewWaktuSubuh);
  67. mDhuhr = (TextView) findViewById(R.id.TextViewWaktuZuhur);
  68. mAsr = (TextView) findViewById(R.id.TextViewWaktuAshar);
  69. mMaghrib = (TextView) findViewById(R.id.TextViewWaktuMaghrib);
  70. mIsha = (TextView) findViewById(R.id.TextViewWaktuIsya);
  71. mSycronLoc = (Button) findViewById(R.id.btnSycronLoc);
  72.  
  73. /* timezone juga mempengaruhi perbedaan waktu
  74. * untuk itu timezone sudah di set */
  75. timezone = (Calendar.getInstance().getTimeZone().getOffset(Calendar.getInstance().getTimeInMillis())) / (1000 * 60 * 60);
  76.  
  77. prayers = new PrayTime();
  78.  
  79. prayers.setTimeFormat(prayers.Time24); //format waktu
  80. prayers.setCalcMethod(prayers.Makkah); //kalulasi menurut
  81. prayers.setAsrJuristic(prayers.Shafii);
  82. prayers.setAdjustHighLats(prayers.MidNight);
  83. prayers.setTimeZone(prayers.getTimeZone());
  84.  
  85. prayers.setFajrAngle(21.9);
  86. prayers.setIshaAngle(18.6);
  87.  
  88. int[] offsets = { 0, 0, 0, 0, 0 }; // {Fajr,Dhuhr,Asr,Maghrib,Isha}
  89. prayers.tune(offsets);
  90.  
  91. Calendar cal = Calendar.getInstance();
  92. year = cal.get(Calendar.YEAR);
  93. month = cal.get(Calendar.MONTH);
  94. day = cal.get(Calendar.DAY_OF_MONTH);
  95.  
  96. ShowPrayTime(year, month, day);
  97.  
  98. mSycronLoc.setOnClickListener(new View.OnClickListener() {
  99. @Override
  100. public void onClick(View view) {
  101. GpsManager gpsManager = new GpsManager(MainActivity.this);
  102. lat = gpsManager.getLatitude();
  103. lng = gpsManager.getLongitude();
  104. }
  105. });
  106.  
  107. startAlarm();
  108.  
  109. }
  110.  
  111. private void ShowPrayTime(int year, int month, int day) {
  112. /* ArrayList ini yang nantinya akan di gunakan untuk
  113. * menampilkan jadwal sholat */
  114.  
  115. GpsManager gpsManager = new GpsManager(MainActivity.this);
  116. ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, gpsManager.getLatitude(), gpsManager.getLongitude(), timezone);
  117. ArrayList<String> prayerNames = prayers.getTimeNames();
  118. Log.d("ML LAT", String.valueOf(gpsManager.getLatitude()));
  119. Log.d("ML LNG", String.valueOf(gpsManager.getLongitude()));
  120.  
  121. mFajr.setText(prayerTimes.get(0));
  122. mDhuhr.setText(prayerTimes.get(2));
  123. mAsr.setText(prayerTimes.get(3));
  124. mMaghrib.setText(prayerTimes.get(4));
  125. mIsha.setText(prayerTimes.get(6));
  126.  
  127. /*if (prayerTimes.get(0) != null){
  128. adzanFajr();
  129. }
  130. if (prayerTimes.get(2) != null){
  131. adzanDzuhur();
  132. }*/
  133.  
  134. /* Fajr = prayerTimes.get(0);
  135. Dzuhur = prayerTimes.get(2);
  136. Ashar = prayerTimes.get(3);
  137. Magrib = prayerTimes.get(4);
  138. Isha = prayerTimes.get(6);*/
  139.  
  140. // mDate.setText(day + " " + months[month] + " " + year);
  141.  
  142. }
  143.  
  144. /*public void getRefreshLoc(){
  145. GpsManager gpsManager = new GpsManager(MainActivity.this);
  146. ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, gpsManager.getLatitude(), gpsManager.getLongitude(), timezone);
  147. }
  148. */
  149. public void getLocation(){
  150. GpsManager gpsManager = new GpsManager(MainActivity.this);
  151. lat = gpsManager.getLatitude();
  152. lng = gpsManager.getLongitude();
  153. //Toast.makeText(getApplicationContext(), "LAT " + lat + " LNG " + lng, Toast.LENGTH_LONG).show();
  154. }
  155.  
  156.  
  157. public void startAlarm(){
  158. AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
  159. Intent intent = new Intent(this, ReceiverAlarm.class);
  160.  
  161. Calendar calendarDzuhur = Calendar.getInstance();
  162. /* Calendar calendarAshar = Calendar.getInstance();
  163. Calendar calendarMagrib = Calendar.getInstance();*/
  164.  
  165. //set times
  166. GpsManager gpsManager = new GpsManager(MainActivity.this);
  167. ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, gpsManager.getLatitude(), gpsManager.getLongitude(), timezone);
  168. Date adzDh = Helper.parseStringToDate(prayerTimes.get(2), Consts.TYPE_FULLTIME);
  169. calendarDzuhur.set(calendarDzuhur.get(Calendar.YEAR),
  170. calendarDzuhur.get(Calendar.MONTH),
  171. calendarDzuhur.get(Calendar.DAY_OF_MONTH));
  172. calendarDzuhur.set(Calendar.HOUR_OF_DAY, adzDh.getHours());
  173. calendarDzuhur.set(Calendar.MINUTE, adzDh.getMinutes());
  174. PendingIntent alarmIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
  175.  
  176. /* Date adzAs = Helper.parseStringToDate(prayerTimes.get(3), Consts.TYPE_FULLTIME);
  177. calendarAshar.set(Calendar.HOUR_OF_DAY, adzAs.getHours());
  178. calendarAshar.set(Calendar.MINUTE, adzAs.getMinutes());
  179. PendingIntent alarmIntent2 = PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_CANCEL_CURRENT);
  180.  
  181. Date adzMg = Helper.parseStringToDate(prayerTimes.get(4), Consts.TYPE_FULLTIME);
  182. calendarMagrib.set(Calendar.HOUR_OF_DAY, adzMg.getHours());
  183. calendarMagrib.set(Calendar.MINUTE, adzMg.getMinutes());
  184. PendingIntent alarmIntent3 = PendingIntent.getBroadcast(this, 2, intent, PendingIntent.FLAG_CANCEL_CURRENT);*/
  185.  
  186. alarmManager.set(AlarmManager.RTC_WAKEUP, calendarDzuhur.getTimeInMillis(), alarmIntent);
  187. /* alarmManager.set(AlarmManager.RTC_WAKEUP, calendarAshar.getTimeInMillis(), alarmIntent2);
  188. alarmManager.set(AlarmManager.RTC_WAKEUP, calendarMagrib.getTimeInMillis(), alarmIntent3);*/
  189. }
  190.  
  191. /* public void adzanDzuhur() {
  192. //long time;
  193. GpsManager gpsManager = new GpsManager(MainActivity.this);
  194. ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, gpsManager.getLatitude(), gpsManager.getLongitude(), timezone);
  195. AlarmManager am =(AlarmManager) getSystemService(Context.ALARM_SERVICE);
  196. Calendar calendarDzuhur = Calendar.getInstance();
  197. Date adzDh = Helper.parseStringToDate(prayerTimes.get(2), Consts.TYPE_FULLTIME);
  198. calendarDzuhur.set(Calendar.HOUR_OF_DAY, adzDh.getHours());
  199. calendarDzuhur.set(Calendar.MINUTE, adzDh.getMinutes());
  200. Intent intent = new Intent(this, ReceiverAlarm.class);
  201. PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
  202. Log.d("Jam", String.valueOf(adzDh.getHours()));
  203. Log.d("menit", String.valueOf(adzDh.getMinutes()));
  204.  
  205. am.set(AlarmManager.RTC_WAKEUP, calendarDzuhur.getTimeInMillis(), pendingIntent);
  206. }
  207.  
  208. public void adzanAshar() {
  209. //long time;
  210. ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, lat, lng, timezone);
  211. AlarmManager am =(AlarmManager) getSystemService(Context.ALARM_SERVICE);
  212. Calendar calendar = Calendar.getInstance();
  213. Date adzAs = Helper.parseStringToDate(prayerTimes.get(3), Consts.TYPE_FULLTIME);
  214. calendar.set(Calendar.HOUR_OF_DAY, adzAs.getHours());
  215. calendar.set(Calendar.MINUTE, adzAs.getMinutes());
  216. Intent intent = new Intent(this, ReceiverAlarm.class);
  217. PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 1, intent, 0);
  218.  
  219. am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
  220. }
  221.  
  222. public void adzanMagrib() {
  223. //long time;
  224. ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, lat, lng, timezone);
  225. AlarmManager am =(AlarmManager) getSystemService(Context.ALARM_SERVICE);
  226. Calendar calendar = Calendar.getInstance();
  227. Date adzMg = Helper.parseStringToDate(prayerTimes.get(4), Consts.TYPE_FULLTIME);
  228. calendar.set(Calendar.HOUR_OF_DAY, adzMg.getHours());
  229. calendar.set(Calendar.MINUTE, adzMg.getMinutes());
  230. Intent intent = new Intent(this, ReceiverAlarm.class);
  231. PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 2, intent, 0);
  232.  
  233. am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
  234. }
  235.  
  236. public void adzanIsha() {
  237. //long time;
  238. ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, lat, lng, timezone);
  239. AlarmManager am =(AlarmManager) getSystemService(Context.ALARM_SERVICE);
  240. Calendar calendar = Calendar.getInstance();
  241. Date adzIs = Helper.parseStringToDate(prayerTimes.get(6), Consts.TYPE_FULLTIME);
  242. calendar.set(Calendar.HOUR_OF_DAY, adzIs.getHours());
  243. calendar.set(Calendar.MINUTE, adzIs.getMinutes());
  244. Intent intent = new Intent(this, ReceiverAlarm.class);
  245. PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 3, intent, 0);
  246.  
  247. am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
  248. }
  249.  
  250. public void adzanFajr() {
  251. //long time;
  252. ArrayList<String> prayerTimes = prayers.getPrayerTimes(year, month, day, lat, lng, timezone);
  253. AlarmManager am =(AlarmManager) getSystemService(Context.ALARM_SERVICE);
  254. Calendar calendar = Calendar.getInstance();
  255. Date adzFj = Helper.parseStringToDate(prayerTimes.get(0), Consts.TYPE_FULLTIME);
  256. calendar.set(Calendar.HOUR_OF_DAY, adzFj.getHours());
  257. calendar.set(Calendar.MINUTE, adzFj.getMinutes());
  258. Intent intent = new Intent(this, ReceiverAlarm.class);
  259. PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 4, intent, 0);
  260.  
  261. am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
  262. }*/
  263.  
  264. public boolean checkLocationPermission() {
  265. if (ContextCompat.checkSelfPermission(this,
  266. Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
  267.  
  268. // Should we show an explanation?
  269. if (ActivityCompat.shouldShowRequestPermissionRationale(this,
  270. Manifest.permission.ACCESS_FINE_LOCATION)) {
  271.  
  272. // Show an explanation to the user *asynchronously* -- don't block
  273. // this thread waiting for the user's response! After the user
  274. // sees the explanation, try again to request the permission.
  275. new AlertDialog.Builder(this)
  276. .setTitle(R.string.title_location_permission)
  277. .setMessage(R.string.text_location_permission)
  278. .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
  279. @Override
  280. public void onClick(DialogInterface dialogInterface, int i) {
  281. //Prompt the user once explanation has been shown
  282. ActivityCompat.requestPermissions(MainActivity.this,
  283. new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
  284. MY_PERMISSIONS_REQUEST_LOCATION);
  285. }
  286. })
  287. .create()
  288. .show();
  289.  
  290.  
  291. } else {
  292. // No explanation needed, we can request the permission.
  293. ActivityCompat.requestPermissions(this,
  294. new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSIONS_REQUEST_LOCATION);
  295. }
  296. return false;
  297. } else {
  298. return true;
  299. }
  300. }
  301.  
  302. @Override
  303. public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
  304. switch (requestCode) {
  305. case MY_PERMISSIONS_REQUEST_LOCATION: {
  306. // If request is cancelled, the result arrays are empty.
  307. if (grantResults.length > 0
  308. && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  309.  
  310. // permission was granted, yay! Do the
  311. // location-related task you need to do.
  312. if (ContextCompat.checkSelfPermission(this,
  313. Manifest.permission.ACCESS_FINE_LOCATION)
  314. == PackageManager.PERMISSION_GRANTED) {
  315.  
  316. //Request location updates:
  317. /*locationManager.requestLocationUpdates(provider, 400, 1, this);*/
  318. GpsManager gpsManager = new GpsManager(MainActivity.this);
  319. gpsManager.getLatitude();
  320. gpsManager.getLongitude();
  321. }
  322.  
  323. } else {
  324.  
  325. // permission denied, boo! Disable the
  326. // functionality that depends on this permission.
  327.  
  328. }
  329. return;
  330. }
  331.  
  332. }
  333. }
  334. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement