forked from upstream-mirrors/quik
#1279 - Fix scheduled messages not sending
This was an issue with background services on Android O
This commit is contained in:
@@ -22,14 +22,14 @@ import android.app.PendingIntent
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
import com.moez.QKSMS.service.SendScheduledMessageService
|
||||
import com.moez.QKSMS.receiver.SendScheduledMessageReceiver
|
||||
import javax.inject.Inject
|
||||
|
||||
class AlarmManagerImpl @Inject constructor(private val context: Context) : AlarmManager {
|
||||
|
||||
override fun getScheduledMessageIntent(id: Long): PendingIntent {
|
||||
val intent = Intent(context, SendScheduledMessageService::class.java).putExtra("id", id)
|
||||
return PendingIntent.getService(context, id.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
val intent = Intent(context, SendScheduledMessageReceiver::class.java).putExtra("id", id)
|
||||
return PendingIntent.getBroadcast(context, id.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
}
|
||||
|
||||
override fun setAlarm(date: Long, intent: PendingIntent) {
|
||||
|
||||
+6
-5
@@ -16,22 +16,23 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with QKSMS. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.moez.QKSMS.service
|
||||
package com.moez.QKSMS.receiver
|
||||
|
||||
import android.app.IntentService
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.moez.QKSMS.interactor.SendScheduledMessage
|
||||
import com.moez.QKSMS.repository.MessageRepository
|
||||
import dagger.android.AndroidInjection
|
||||
import javax.inject.Inject
|
||||
|
||||
class SendScheduledMessageService : IntentService(null) {
|
||||
class SendScheduledMessageReceiver : BroadcastReceiver() {
|
||||
|
||||
@Inject lateinit var messageRepo: MessageRepository
|
||||
@Inject lateinit var sendScheduledMessage: SendScheduledMessage
|
||||
|
||||
override fun onHandleIntent(intent: Intent) {
|
||||
AndroidInjection.inject(this)
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
AndroidInjection.inject(this, context)
|
||||
|
||||
intent.getLongExtra("id", -1L).takeIf { it >= 0 }?.let { id ->
|
||||
sendScheduledMessage.buildObservable(id).blockingSubscribe()
|
||||
Reference in New Issue
Block a user