Sha256: ab6e2af47a5e99a3d6a22c9b5e9db04afb7ac60757ff2f6fbc03e33c958a7f95

Contents?: true

Size: 1.97 KB

Versions: 15

Compression:

Stored size: 1.97 KB

Contents

package com.moode.sms.service;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsMessage;
import com.moode.sms.activity.MainActivity;
import com.moode.sms.domain.Message;
import com.moode.sms.utils.Constants;
import com.moode.sms.utils.StringUtils;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class SMSReceiveService extends BroadcastReceiver {
    private static final String PDUS = "pdus";
    private Context context;

    @Override
    public void onReceive(Context context, Intent intent) {
        this.context = context;
        handleIncomingMessages(intent);
    }

    private void handleIncomingMessages(Intent intent) {
        List<Message> messages = new ArrayList<Message>();
        for (SmsMessage smsMessage : parseToMessages(intent)) {
                messages.add(createMessage(smsMessage));
        }
        if (messages.size() != 0) startSMSListActivity(messages);
    }

    private Message createMessage(SmsMessage smsMessage) {
        return new Message(StringUtils.trimCountryCode(smsMessage.getOriginatingAddress()),
                smsMessage.getMessageBody(), new Date(smsMessage.getTimestampMillis()));
    }

    private void startSMSListActivity(List<Message> messages) {
        Intent startActivityIntent = new Intent(context, MainActivity.class);
        startActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivityIntent.putExtra(Constants.MESSAGES_EXTRA, messages.toArray(new Message[messages.size()]));
        context.startActivity(startActivityIntent);
    }

    private SmsMessage[] parseToMessages(Intent intent) {
        Object[] pdus = (Object[]) intent.getExtras().get(PDUS);
        SmsMessage[] messages = new SmsMessage[pdus.length];
        for (int index = 0; index < messages.length; index++) {
            messages[index] = SmsMessage.createFromPdu((byte[]) pdus[index]);
        }
        return messages;
    }
}

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
jt-mobile-kit-1.2.0 lib/jt-mobile-kit/android/templates/src/com/moode/sms/service/SMSReceiveService.java
jt-mobile-kit-1.1.8 lib/jt-mobile-kit/android/templates/src/com/moode/sms/service/SMSReceiveService.java
jt-mobile-kit-1.1.7 lib/jt-mobile-kit/android/templates/src/com/moode/sms/service/SMSReceiveService.java
jt-mobile-kit-1.1.6 lib/jt-mobile-kit/android/templates/src/com/moode/sms/service/SMSReceiveService.java
jt-mobile-kit-1.1.5 lib/jt-mobile-kit/android/templates/src/com/moode/sms/service/SMSReceiveService.java
jt-mobile-kit-1.1.2 lib/jt-mobile-kit/android/templates/src/com/moode/sms/service/SMSReceiveService.java
jt-mobile-kit-1.1.1 lib/jt-mobile-kit/android/templates/src/com/moode/sms/service/SMSReceiveService.java
jt-mobile-kit-1.0.3 lib/jt-mobile-kit/android/templates/src/com/moode/sms/service/SMSReceiveService.java
jt-mobile-kit-1.0.2 lib/jt-mobile-kit/android/templates/src/com/moode/sms/service/SMSReceiveService.java
jt-mobile-kit-1.0.1 lib/jt-mobile-kit/android/templates/src/com/moode/sms/service/SMSReceiveService.java
jt-mobile-kit-1.0.0 lib/jt-mobile-kit/android/templates/src/com/moode/sms/service/SMSReceiveService.java
jt-mobile-kit-0.0.4 lib/jt-mobile-kit/android/templates/src/com/moode/sms/service/SMSReceiveService.java
jt-mobile-kit-0.0.3 lib/jt-mobile-kit/android/templates/src/com/moode/sms/service/SMSReceiveService.java
jt-mobile-kit-0.0.2 lib/jt-mobile-kit/android/templates/src/com/moode/sms/service/SMSReceiveService.java
jt-mobile-kit-0.0.1 lib/jt-mobile-kit/android/templates/src/com/moode/sms/service/SMSReceiveService.java