public class CallLogActivity implements SensorEventListener {
SensorManager sensorManager;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
Cursor c = getContentResolver().query(
android.provider.CallLog.Calls.CONTENT_URI, null, null, null,
android.provider.CallLog.Calls.DATE+ " DESC");
startManagingCursor(c);
ListAdapter adapter = new SimpleCursorAdapter(this,
R.layout.calllog_row, c, new String[] {
android.provider.CallLog.Calls.TYPE,
android.provider.CallLog.Calls.NUMBER,
android.provider.CallLog.Calls.CACHED_NAME },
new int[] { R.id.type, R.id.number, R.id.name }) {
@Override
public void setViewImage(ImageView v, String value){
switch (Integer.parseInt(value)){
case android.provider.CallLog.Calls.INCOMING_TYPE:
v.setImageDrawable(getResources().getDrawable(android.R.drawable.sym_call_incoming));
break;
case android.provider.CallLog.Calls.MISSED_TYPE:
v.setImageDrawable(getResources().getDrawable(android.R.drawable.sym_call_missed));
break;
case android.provider.CallLog.Calls.OUTGOING_TYPE:
v.setImageDrawable(getResources().getDrawable(android.R.drawable.sym_call_outgoing));
break;
default:
break;
}
}
};
setListAdapter(adapter);
}
// activity
@Override
protected void onResume(){
super.onResume();
sensorManager.registerListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELERAOMETER),
SensorManager.SENSOR_DELAY_UI);
}
@Override
protected void onStop(){
sensorManager.unregisterListener(this);
super.onStop();
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id){
telTo(((TextView) v.findViewById(R.id.number)).getText());
}
public void onSensorChanged(SensorEvent event){
switch(event.sensor.getType()){
case Sencor.TYPE_ACCELEROMETER:
if (getSelectedItemPosition() > -1){
if (Math.abs(event.values[0]) > SensorManager.GRAVITY_EARTH
|| Math.abs(event.values[1]) > SensorManager.GRAVITY_EARTH
|| Math.abs(event.values[2]) > SensorManager.GRAVITY_EARTH) {
telTo(((TextView) getListView().getChildAt(
getSelectedItemPosition()).findViewById(R.id.number)).getText());
}
}
default:
}
}