package apt.tutorial.two;
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.os.SystemClock;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
import winterwell.jtwitter.Twitter;
import apt.tutorial.IPostMonitor;
public class PostMonitor extends Service {
private static final int POLL_PERIOD=60000;
private AtomicBoolean active=new AtomicBoolean(true);
private Set<Long> seenStatus=new HashSet<Long>();
private final Binder binder=new LocalBinder();
@Override
public void onCreate() {
super.onCreate();
new Thread(threadBody).start();
}
@Override
public IBinder onBind(Intent intent) {
return(binder);
}
@Override
public void onDestroy() {
super.onDestroy();
active.set(false);
}
private void poll() {
Twitter client=new Twitter(); // need credentials!
List<Twitter.Status> timeline=client.getFriendsTimeline();
for (Twitter.Status s : timeline) {
if (!seenStatus.contains(s.id)) {
// found a new one!
seenStatus.add(s.id);
}
}
}
private Runnable threadBody=new Runnable() {
public void run() {
while (active.get()) {
poll();
SystemClock.sleep(POLL_PERIOD);
}
}
};
public class LocalBinder extends Binder implements IPostMonitor {
void registerAccount(String user, String password) {
}
}
}