123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package com.pleasantprogrammer.mpp;
- import android.app.AlarmManager
- import android.app.IntentService
- import android.app.PendingIntent
- import android.content.Context
- import android.content.Intent
- import android.content.SharedPreferences
- import android.telephony.SmsManager
- import android.util.Log
- class SendService : IntentService("SendService") {
- companion object {
- val ACTION_SEND = "com.pleasantprogrammer.mpp.action.SEND"
- val ACTION_BOOT = "com.pleasantprogrammer.mpp.action.BOOT"
- val INTERVAL = 60 * 1000L
- fun makeSendIntent(ctx: Context): Intent {
- val intent = Intent(ACTION_SEND)
- intent.setClass(ctx, SendService::class.java)
- return intent
- }
- fun makeBootIntent(ctx: Context): Intent {
- val intent = Intent(ACTION_BOOT)
- intent.setClass(ctx, SendService::class.java)
- return intent
- }
- }
- val sharedPreferences: SharedPreferences by lazy {
- getSharedPreferences("store", Context.MODE_PRIVATE)
- }
- override fun onHandleIntent(intent: Intent) {
- if(intent.action == ACTION_SEND) {
- Log.i("SendService", "Sending request")
- val smsManager = SmsManager.getDefault()
- smsManager.sendTextMessage("5554", null, "GS99", null, null)
- sharedPreferences.edit().putLong("last_requested", System.currentTimeMillis()).commit()
- scheduleNext()
- }
- else if(intent.action == ACTION_BOOT) {
- Log.i("SendService", "Rescheduling because of restart")
- scheduleNext()
- }
- }
- fun scheduleNext() {
- val from = sharedPreferences.getLong("last_requested", -1)
- if(from < 0) return
- val pendingIntent = PendingIntent.getService(
- this, 0, makeSendIntent(this), PendingIntent.FLAG_ONE_SHOT
- )
- val alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
- alarmManager.cancel(pendingIntent)
- alarmManager.set(AlarmManager.RTC_WAKEUP, from + INTERVAL, pendingIntent)
- }
- }
|