Add some more skeleton to how Alerts should be processed

Create a way to statically get the app context
This commit is contained in:
bspeice
2013-10-07 14:20:20 -04:00
parent 449678316f
commit fa28b411b5
9 changed files with 209 additions and 101 deletions

View File

@ -1,26 +1,16 @@
package com.uncc.gameday.activities;
import java.util.Iterator;
import java.util.List;
import twitter4j.Paging;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import com.uncc.gameday.R;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.Toast;
import com.uncc.gameday.R;
public class Alerts extends MenuActivity {
Context ctx;
int maxTweets = 5; // Most tweets at a time from any source
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -28,92 +18,6 @@ public class Alerts extends MenuActivity {
setContentView(R.layout.activity_alerts);
}
public void fetchAlerts() {
// Fetch all alerts. Responsible for discovering what sources need to be fetched.
if (((CheckBox)findViewById(R.id.alerts_check_timed)).isChecked())
// Fetch timed alerts
this.fetchTimedAlerts();
else if (((CheckBox)findViewById(R.id.alerts_check_organizations)).isChecked())
// Fetch organization alerts
this.fetchOrganizationAlerts();
else if (((CheckBox)findViewById(R.id.alerts_check_university)).isChecked())
// Fetch university alerts
this.fetchUniversityAlerts();
// And always fetch alerts made by us. Period.
this.fetchGamedayAlerts();
}
private void fetchTimedAlerts() {
// Process the rules for all timed alerts.
}
private void fetchOrganizationAlerts() {
// Process fetching organization alerts (alerts retweeted by us)
int duration = Toast.LENGTH_SHORT;
try {
String handle = getString(R.string.gameday_handle);
Twitter twitter = TwitterFactory.getSingleton();
List<Status> statuses = twitter.getUserTimeline(handle, new Paging(1, maxTweets));
// Filter for anything created by us (retweet)
for (Iterator<Status> it = statuses.iterator(); it.hasNext();){
// May need to switch to isRetweetByMe (documentation is awful)
if (!it.next().isRetweet())
it.remove();
}
// List contains all valid alerts now
} catch (TwitterException e) {
Toast.makeText(this.ctx, "Unable to fetch alerts for organizations!\nAre you connected to the internet?", duration).show();
e.printStackTrace();
}
}
private void fetchUniversityAlerts() {
// Process fetching university alerts
int duration = Toast.LENGTH_SHORT;
try {
String handle = getString(R.string.university_handle);
Twitter twitter = TwitterFactory.getSingleton();
List<Status> statuses = twitter.getUserTimeline(handle, new Paging(1, maxTweets));
// List contains all valid alerts now
} catch (TwitterException e) {
Toast.makeText(this.ctx, "Unable to fetch alerts for the University!\nAre you connected to the internet?", duration).show();
e.printStackTrace();
}
}
private void fetchGamedayAlerts() {
// Process fetching alerts generated by staff of UNCCGameDay
int duration = Toast.LENGTH_SHORT;
try {
String handle = getString(R.string.gameday_handle);
Twitter twitter = TwitterFactory.getSingleton();
List<Status> statuses = twitter.getUserTimeline(handle, new Paging(1, maxTweets));
// Filter out anything not from us
for (Iterator<Status> it = statuses.iterator(); it.hasNext();){
// May need to switch to isRetweetByMe (documentation is awful)
if (it.next().isRetweet())
it.remove();
}
// List contains all valid alerts now.
} catch (TwitterException e) {
Toast.makeText(this.ctx, "Unable to fetch alerts from Gameday!\nAre you connected to the internet?", duration).show();
e.printStackTrace();
}
}
public void onClickTimedAlerts(View view) {
int toastDuration = Toast.LENGTH_SHORT;
if (((CheckBox) view).isChecked())

View File

@ -11,6 +11,7 @@ import android.content.Context;
import android.os.Bundle;
import com.uncc.gameday.R;
import com.uncc.gameday.alerts.AlertFetcher;
public class Home extends MenuActivity {
@ -25,6 +26,6 @@ public class Home extends MenuActivity {
private void getRecentAlerts() {
// Responsible for discovering what the most recent alerts are and showing them.
// Likely should be implemented by querying a local DB of alerts, grabbing recent 20.
new Alerts().fetchAlerts();
new AlertFetcher().fetchAlerts();
}
}