mirror of
				https://github.com/balkian/Carrousel-Android.git
				synced 2025-10-30 23:28:19 +00:00 
			
		
		
		
	I15: Mostrar notificaciones
This commit is contained in:
		| @@ -74,4 +74,13 @@ public class Match { | |||||||
| 		return id; | 		return id; | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
|  | 	public String getLocalTeam() { | ||||||
|  | 		return localTeam; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	public String getVisitorTeam() { | ||||||
|  | 		return visitorTeam; | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	 | ||||||
| } | } | ||||||
|   | |||||||
| @@ -13,7 +13,11 @@ import java.util.TimerTask; | |||||||
| import org.json.JSONArray; | import org.json.JSONArray; | ||||||
| import org.json.JSONObject; | import org.json.JSONObject; | ||||||
|  |  | ||||||
|  | import android.app.Notification; | ||||||
|  | import android.app.NotificationManager; | ||||||
|  | import android.app.PendingIntent; | ||||||
| import android.app.Service; | import android.app.Service; | ||||||
|  | import android.content.Context; | ||||||
| import android.content.Intent; | import android.content.Intent; | ||||||
| import android.os.Binder; | import android.os.Binder; | ||||||
| import android.os.IBinder; | import android.os.IBinder; | ||||||
| @@ -23,6 +27,9 @@ public class Results extends Service { | |||||||
| 	private final IBinder mBinder = new LocalBinder(); | 	private final IBinder mBinder = new LocalBinder(); | ||||||
| 	private HashMap<String, Match> mMatches = new HashMap<String, Match>(); | 	private HashMap<String, Match> mMatches = new HashMap<String, Match>(); | ||||||
| 	private HashSet<String> mSubscriptions = null; | 	private HashSet<String> mSubscriptions = null; | ||||||
|  | 	private final String RESULTS_LOG = "Results"; | ||||||
|  | 	private static final int SCORE_NOTIFICATION_ID = 1; | ||||||
|  | 	private NotificationManager mNM; | ||||||
| 	 | 	 | ||||||
| 	public HashMap<String, Match> getMatches() { | 	public HashMap<String, Match> getMatches() { | ||||||
|     	return mMatches; |     	return mMatches; | ||||||
| @@ -50,6 +57,7 @@ public class Results extends Service { | |||||||
| 	} | 	} | ||||||
|     @Override |     @Override | ||||||
|     public void onCreate() { |     public void onCreate() { | ||||||
|  |     	mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); | ||||||
|          pollingTask task = new pollingTask(); |          pollingTask task = new pollingTask(); | ||||||
|          Timer timer = new Timer(true); |          Timer timer = new Timer(true); | ||||||
|          timer.scheduleAtFixedRate(task, 0, 60000); |          timer.scheduleAtFixedRate(task, 0, 60000); | ||||||
| @@ -118,11 +126,59 @@ public class Results extends Service { | |||||||
|     	return matches; |     	return matches; | ||||||
|     }  |     }  | ||||||
| 	 | 	 | ||||||
|     private class pollingTask extends TimerTask { | 	private class pollingTask extends TimerTask { | ||||||
| 		  @Override | 		@Override | ||||||
| 		  public void run() { | 		public void run() { | ||||||
| 		  // Aqui descargaremos los resultados | 			Log.v(RESULTS_LOG, "running task"); | ||||||
| 		  } | 			if (mSubscriptions == null || mSubscriptions.isEmpty()) { | ||||||
|  | 				Log.v(RESULTS_LOG, "no subscriptions, exiting"); | ||||||
|  | 				return; | ||||||
|  | 			} | ||||||
|  | 			Log.v(RESULTS_LOG, "Has " + mSubscriptions.size() + " subscriptions"); | ||||||
|  | 			HashMap<String, Match> matches = retrieveMatches(); | ||||||
|  | 			if (matches == null || matches.isEmpty()) | ||||||
|  | 				return; | ||||||
|  | 				 | ||||||
|  | 			for (String id : mSubscriptions ) { | ||||||
|  | 				if (matches.containsKey(id)) | ||||||
|  | 					checkMatch(matches.get(id)); | ||||||
|  | 			} | ||||||
|  | 			mMatches = matches; | ||||||
|  | 		} | ||||||
|  | 		private void checkMatch(Match match) { | ||||||
|  | 			if (match.getLocalGoals() > mMatches.get(match.getId()).getLocalGoals()) { | ||||||
|  | 				notifyGoal(match.getLocalTeam(), | ||||||
|  | 						   match.getLocalTeam(), match.getLocalGoals(), | ||||||
|  | 						   match.getVisitorTeam(), match.getVisitorGoals()); | ||||||
|  | 			} | ||||||
|  | 			 | ||||||
|  | 			if (match.getVisitorGoals() > mMatches.get(match.getId()).getVisitorGoals()) { | ||||||
|  | 				notifyGoal(match.getVisitorTeam(), | ||||||
|  | 						   match.getLocalTeam(), match.getLocalGoals(), | ||||||
|  | 						   match.getVisitorTeam(), match.getVisitorGoals()); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
| 	} | 	} | ||||||
|  | 	private void notifyGoal(String scoreTeam, | ||||||
|  |             String localTeam, int localGoals, | ||||||
|  |             String visitorTeam, int visitorGoals) { | ||||||
|  | 			String titleText = scoreTeam + " Scored!"; | ||||||
|  | 			String contentText = scoreTeam + " Scored!\n" + localTeam + " " + localGoals +  | ||||||
|  |               " - " + visitorTeam + " " + visitorGoals; | ||||||
|  | 			int icon = R.drawable.icon; | ||||||
|  | 			long when = System.currentTimeMillis(); | ||||||
|  |  | ||||||
|  | 			Notification notification = new Notification(icon, titleText, when); | ||||||
|  | 			Context context = getApplicationContext(); | ||||||
|  | 			Intent notificationIntent = new Intent(this, Results.class); | ||||||
|  | 			PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); | ||||||
|  |  | ||||||
|  | 			notification.setLatestEventInfo(context, titleText, contentText, contentIntent); | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 			mNM.notify(SCORE_NOTIFICATION_ID, notification); | ||||||
|  |  | ||||||
|  | } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user