Created
May 11, 2016 13:28
-
-
Save jcroot/259e34c1445b525cd7185ab83955f833 to your computer and use it in GitHub Desktop.
MainActivity.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.arrobasoft.claxoo.fragments; | |
import android.app.Activity; | |
import android.app.Fragment; | |
import android.content.IntentFilter; | |
import android.os.Bundle; | |
import android.os.Handler; | |
import android.os.Message; | |
import android.support.annotation.Nullable; | |
import android.telephony.SmsMessage; | |
import android.util.Log; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.ArrayAdapter; | |
import android.widget.ListView; | |
import android.widget.TextView; | |
import com.arrobasoft.claxoo.R; | |
import com.arrobasoft.claxoo.adapters.MessagesArrayAdapter; | |
import com.arrobasoft.claxoo.entities.SmsItem; | |
import com.arrobasoft.claxoo.services.Receivers.SmsReceiver; | |
import com.arrobasoft.claxoo.services.SmsService; | |
import com.arrobasoft.claxoo.utils.Constants; | |
import java.util.Collections; | |
import java.util.Comparator; | |
public class DashboardFragment extends Fragment implements SmsReceiver.SmsServiceEventsListener { | |
private static final String TAG = "DashboardFragment"; | |
private SmsReceiver mReceiver; | |
private SmsService mService; | |
ArrayAdapter<SmsItem> smsItemsArrayAdapter; | |
private int mCount_Received; | |
private int mCount_Sent; | |
private int mCounter; | |
@Override | |
public void onAttach(Activity activity) { | |
super.onAttach(activity); | |
mCount_Received = 0; | |
mCount_Sent = 0; | |
this.mReceiver = new SmsReceiver(this); | |
IntentFilter intentFilter = new IntentFilter(); | |
intentFilter.addAction(SmsReceiver.SmsServiceEventsListener.SMS_RECEIVED_ACTION); | |
intentFilter.addAction(SmsReceiver.SmsServiceEventsListener.SMS_REJECTED_ACTION); | |
intentFilter.addAction(SmsReceiver.SmsServiceEventsListener.SMS_DELIVER_ACTION); | |
intentFilter.setPriority(10000); | |
getActivity().registerReceiver(this.mReceiver, intentFilter); | |
mService = new SmsService(mHandler); | |
} | |
@Override | |
public void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
} | |
@Nullable | |
@Override | |
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { | |
View view = inflater.inflate(R.layout.dashboard_fragment, container, false); | |
smsItemsArrayAdapter = new MessagesArrayAdapter(getActivity(), R.layout.item_sms_item); | |
ListView listSmsView = (ListView)view.findViewById(R.id.listView); | |
if (smsItemsArrayAdapter != null && listSmsView != null){ | |
listSmsView.setAdapter(smsItemsArrayAdapter); | |
} | |
return view; | |
} | |
@Override | |
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { | |
super.onViewCreated(view, savedInstanceState); | |
} | |
@Override | |
public void onStart() { | |
super.onStart(); | |
} | |
@Override | |
public void onResume() { | |
super.onResume(); | |
} | |
@Override | |
public void onPause() { | |
super.onPause(); | |
} | |
@Override | |
public void onSmsReceived(Bundle bundle) { | |
if (bundle != null){ | |
mService.handler(bundle); | |
} | |
} | |
@Override | |
public void onSmsRejectedAction() { | |
} | |
@Override | |
public void onSmsDeliverAction(Bundle bundle) { | |
try { | |
if (bundle != null) { | |
final Object[] pdusObj = (Object[]) bundle.get("pdus"); | |
for (int i = 0; i < pdusObj.length; i++) { | |
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]); | |
String phoneNumber = currentMessage.getDisplayOriginatingAddress(); | |
String senderNum = phoneNumber; | |
String message = currentMessage.getDisplayMessageBody(); | |
Log.i("SmsReceiver", "senderNum: " + senderNum + "; message: " + message); | |
} // end for loop | |
} // bundle is null | |
} catch (Exception e) { | |
Log.e(TAG, "Exception smsReceiver" +e); | |
} | |
} | |
private final Handler mHandler = new Handler(){ | |
@Override | |
public void handleMessage(Message msg) { | |
switch (msg.what){ | |
case Constants.MESSAGE_RECEIVED: | |
if (smsItemsArrayAdapter != null){ | |
SmsItem smsItem = new SmsItem(); | |
smsItem.setIn_out(1); | |
smsItem.setCreated_at("2016-03-08"); | |
smsItem.setMessage(msg.getData().getString(Constants.MESSAGE_DATA_RECEIVED)); | |
smsItem.setCounter(mCounter++); | |
mCount_Received++; | |
TextView txt = (TextView)getView().findViewById(R.id.count_received); | |
txt.setText(String.valueOf(mCount_Received)); | |
smsItemsArrayAdapter.add(smsItem); | |
} | |
break; | |
case Constants.MESSAGE_SENT: | |
if (smsItemsArrayAdapter != null){ | |
SmsItem smsItem = new SmsItem(); | |
smsItem.setIn_out(2); | |
smsItem.setCreated_at("2016-03-08"); | |
smsItem.setMessage(msg.getData().getString(Constants.MESSAGE_DATA_SENT)); | |
smsItem.setCounter(mCounter++); | |
mCount_Sent++; | |
TextView txt_sent = (TextView)getView().findViewById(R.id.count_sent); | |
txt_sent.setText(String.valueOf(mCount_Sent)); | |
smsItemsArrayAdapter.add(smsItem); | |
} | |
break; | |
} | |
} | |
}; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment