2012-07-05 Santiago Munin <burning1@gmail.com>

* src/pandroid_event_viewer/pandorafms/OnBootLoader.java: New BroadcastReceiver which starts the search new events service after the phone boot.
	* src/pandroid_event_viewer/pandorafms/Core.java: Little changes.
	* src/pandroid_event_viewer/pandorafms/PandroidEventviewerActivity.java: On process_notification it doesn't retrieve count_events anymore.
	* src/pandroid_event_viewer/pandorafms/PandroidEventviewerService.java: Now the launched notification has the correct number of new events.
	* res/values/strings.xml: Added new entries.
	* res/values-en/*: Deleted, unnecessary files.
	* AndroidManifest.xml: Added the new BroadcastReceiver


git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6743 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
santimunin 2012-07-05 17:10:19 +00:00
parent 7adba3caed
commit c5ea8e4da3
10 changed files with 221 additions and 338 deletions

View File

@ -79,16 +79,14 @@
android:label="@string/pandroid_event_viewer_str"
android:theme="@android:style/Theme.Dialog" >
</activity>
<!--
<activity android:name=".IncidentList"/> -->
<activity android:name=".CreateIncidentActivity"/>
<service android:name=".PandroidEventviewerService" >
</service>
<receiver
android:name=".AlarmReceiver"
android:process=":remote" >
<activity android:name=".CreateIncidentActivity" />
<service android:name=".PandroidEventviewerService" />
<receiver android:name=".OnBootLoader"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
</application>
</manifest>

View File

@ -1,3 +1,12 @@
2012-07-05 Santiago Munín <burning1@gmail.com>
* src/pandroid_event_viewer/pandorafms/OnBootLoader.java: New BroadcastReceiver which starts the search new events service after the phone boot.
* src/pandroid_event_viewer/pandorafms/Core.java: Little changes.
* src/pandroid_event_viewer/pandorafms/PandroidEventviewerActivity.java: On process_notification it doesn't retrieve count_events anymore.
* src/pandroid_event_viewer/pandorafms/PandroidEventviewerService.java: Now the launched notification has the correct number of new events.
* res/values/strings.xml: Added new entries.
* res/values-en/*: Deleted, unnecessary files.
* AndroidManifest.xml: Added the new BroadcastReceiver
2012-07-03 Santiago Munín <burning1@gmail.com>
* src/pandroid_event_viewer/pandorafms/IncidentListItem.java: Deleted, not necessary class.
* src/pandroid_event_viewer/pandorafms/IncidentList.java: Deleted, not necessary class.

View File

@ -1,82 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2011 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public License
// as published by the Free Software Foundation; version 2
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
-->
<resources>
<string-array name="severity_array_values">
<!-- You must subtract -1 -->
<item>All</item>
<item>Maintenance</item>
<item>Informational</item>
<item>Normal</item>
<item>Warning</item>
<item>Critical</item>
</string-array>
<!-- Please change the code in the function convertRefreshTimeKeyToTime -->
<string-array name="refresh_combo">
<item>30 seconds</item>
<item>1 minute</item>
<item>5 minutes</item>
<item>10 minutes</item>
<item>15 minutes</item>
<item>30 minutes</item>
<item>45 minutes</item>
<item>1 hour</item>
<item>1 hour and 30 minutes</item>
<item>2 hours</item>
<item>3 hours</item>
<item>4 hours</item>
<item>6 hours</item>
<item>8 hours</item>
<item>10 hours</item>
<item>12 hours</item>
<item>24 hours</item>
<item>36 hours</item>
<item>48 hours</item>
</string-array>
<string-array name="event_status_values">
<!-- You must subtract -1 -->
<!--<item>All event</item>//The next version re-add please -->
<!-- You must subtract 0 -->
<item>Only new</item>
<item>Only validated</item>
<item>Only in process</item>
<item>Only not validated</item>
</string-array>
<!-- Please change the code in the function convertMaxTimeOldEventValuesToTimestamp -->
<string-array name="max_time_old_event_values">
<item>30 minutes</item>
<item>1 hour</item>
<item>2 hours</item>
<item>3 hours</item>
<item>4 hours</item>
<item>5 hours</item>
<item>8 hours</item>
<item>10 hours</item>
<item>12 hours</item>
<item>1 day</item>
<item>2 days</item>
<item>3 days</item>
<item>4 days</item>
<item>5 days</item>
<item>1 week</item>
<item>2 weeks</item>
<item>1 month</item>
</string-array>
</resources>

View File

@ -1,97 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2011 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public License
// as published by the Free Software Foundation; version 2
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
-->
<resources>
<string name="item_tab_main_text">Filter</string>
<string name="item_tab_event_list_text">Event list</string>
<string name="main_text">main text (value english)</string>
<string name="list_text">list (value english)</string>
<string name="system_str">System</string>
<string name="empty_str">- Empty -</string>
<string name="all_str">All</string>
<string name="tags_label_str">Tags</string>
<string name="comments_label_str">Comments</string>
<string name="group_label_str">Group</string>
<string name="agent_label_str">Agent name</string>
<string name="type_label_str">Type</string>
<string name="severity_label_str">Severity</string>
<string name="date_label_str">Date</string>
<string name="number_events_label_str">Number Events</string>
<string name="reset_button_str">Reset</string>
<string name="search_button_str">Search</string>
<string name="loading_label_str">Loading</string>
<string name="options_label_str">Options</string>
<string name="url_label_str">URL</string>
<string name="user_label_str">User</string>
<string name="password_label_str">Password</string>
<string name="update_button_str">Update</string>
<string name="option_title_str">Options</string>
<string name="refresh_label_str">Refresh</string>
<string name="about_label_str">About</string>
<string name="load_more_events_button_str">Load more events</string>
<string name="empty_label_str">Empty list events</string>
<string name="refresh_time_label_str">Refresh time watcher</string>
<string name="set_as_filter_watcher_button_str">Filter by default</string>
<string name="config_update_succesful_str">Update configuration successful.</string>
<string name="config_update_fail_str">Update configuration is failed.</string>
<string name="please_set_preferences_str">Please set the preferences as the API URL, user and password for your Pandora FMS.</string>
<string name="preferences_set_demo_pandora_str">Pandroid Event Viewer is connecting with PandoraFMS public demo, please change the preferences for your Pandora FMS.</string>
<string name="filter_update_succesful_str">Update filter sucessful.</string>
<string name="filter_update_fail_str">Update filter is failed.</string>
<string name="validate_event_button_str">Validate Event</string>
<string name="notification_criticity_0_str">There are %s events and all in Maintenance state.</string>
<string name="notification_criticity_1_str">There are %s events and some are in Informational state.</string>
<string name="notification_criticity_2_str">There are %s events and some are in Normal state.</string>
<string name="notification_criticity_3_str">There are %s events and some are in Warning state.</string>
<string name="notification_criticity_4_str">There are %s events and some are in Critical state.</string>
<string name="loading_events_criticity_0_str">Loading the %s events and all in Maintenance state.</string>
<string name="loading_events_criticity_1_str">Loading the %s events and some are in Informational state.</string>
<string name="loading_events_criticity_2_str">Loading the %s events and some are in Normal state.</string>
<string name="loading_events_criticity_3_str">Loading the %s events and some are in Warning state.</string>
<string name="loading_events_criticity_4_str">Loading the %s events and some are in Critical state.</string>
<string name="successful_validate_event_str">The event validation is successful.</string>
<string name="fail_validate_event_str">The event validation is failed.</string>
<string name="status_label_str">Status</string>
<string name="event_search_label_str">Event search</string>
<string name="max_time_old_event_str">Oldest event</string>
<string name="licensed_under_gpl_str">Licensed under GPLv2</string>
<string name="develop_team_str">Developer: Miguel de Dios</string>
<string name="alert_recovered_str">Alert recovered</string>
<string name="alert_manual_validation_str">Alert manually validated</string>
<string name="going_up_warning_str">Going from critical to warning</string>
<string name="going_down_critical_str">Going to critical status</string>
<string name="going_up_normal_str">Going to normal status</string>
<string name="going_down_warning_str">Going to warning</string>
<string name="alert_fired_str">Alert fired</string>
<string name="recon_host_detected_str">Recon server detected a new host</string>
<string name="new_agent_str">New agent created</string>
<string name="unknown_str">Unknown type:</string>
<string name="unknown_event_str">Unknown event</string>
<string name="validate_event_label_str">Event validated</string>
<string name="pandroid_event_viewer_description_str">Realtime event viewer for Pandora FMS.</string>
</resources>

View File

@ -62,11 +62,11 @@
<string name="notification_criticity_2_str">There are %s events and some are in Normal state.</string>
<string name="notification_criticity_3_str">There are %s events and some are in Warning state.</string>
<string name="notification_criticity_4_str">There are %s events and some are in Critical state.</string>
<string name="loading_events_criticity_0_str">Loading the %s events and all in Maintenance state.</string>
<string name="loading_events_criticity_1_str">Loading the %s events and some are in Informational state.</string>
<string name="loading_events_criticity_2_str">Loading the %s events and some are in Normal state.</string>
<string name="loading_events_criticity_3_str">Loading the %s events and some are in Warning state.</string>
<string name="loading_events_criticity_4_str">Loading the %s events and some are in Critical state.</string>
<string name="loading_events_criticity_0_str">Loading events (all in Maintenance state).</string>
<string name="loading_events_criticity_1_str">Loading events (some are in Informational state).</string>
<string name="loading_events_criticity_2_str">Loading events (some are in Normal state).</string>
<string name="loading_events_criticity_3_str">Loading events (some are in Warning state).</string>
<string name="loading_events_criticity_4_str">Loading events (some are in Critical state).</string>
<string name="successful_validate_event_str">The event validation is successful.</string>
<string name="fail_validate_event_str">The event validation is failed.</string>
<string name="status_label_str">Status</string>

View File

@ -74,6 +74,7 @@ import android.widget.Toast;
*/
public class Core {
private static String TAG = "Core";
private static int CONNECTION_TIMEOUT = 10000;
private static Map<String, Bitmap> imgCache = new HashMap<String, Bitmap>();
// Don't use this variable, just call getSocketFactory
private static SSLSocketFactory sslSocketFactory;
@ -330,6 +331,7 @@ public class Core {
parameters.add(new BasicNameValuePair("apipass", apiPassword));
}
parameters.addAll(additionalParameters);
Log.i(TAG, "sent: "+url);
if (url.toLowerCase().contains("https")) {
// Secure connection
return Core.httpsGet(url, parameters);
@ -347,6 +349,7 @@ public class Core {
entityResponse = response.getEntity();
return_api = Core
.convertStreamToString(entityResponse.getContent());
Log.i(TAG, "received: "+ return_api);
return return_api;
}
}
@ -384,6 +387,7 @@ public class Core {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setDoInput(true);
conn.setConnectTimeout(CONNECTION_TIMEOUT);
conn.connect();
InputStream is = conn.getInputStream();
Bitmap img = BitmapFactory.decodeStream(is);
@ -450,6 +454,7 @@ public class Core {
HttpsURLConnection con;
try {
con = (HttpsURLConnection) url.openConnection();
con.setConnectTimeout(CONNECTION_TIMEOUT);
con.connect();
con.disconnect();
return true;
@ -472,6 +477,7 @@ public class Core {
return true;
}
});
con.setConnectTimeout(CONNECTION_TIMEOUT);
con.setSSLSocketFactory(getSocketFactory());
con.setDoOutput(true);
con.getInputStream();
@ -506,6 +512,7 @@ public class Core {
});
con.setSSLSocketFactory(getSocketFactory());
con.setDoOutput(true);
con.setConnectTimeout(CONNECTION_TIMEOUT);
String postData = "";
boolean first = true;
for (NameValuePair nameValuePair : parameters) {

View File

@ -0,0 +1,23 @@
package pandroid_event_viewer.pandorafms;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
/**
* This receiver will start the service on phone boot.
*
* @author Santiago Munín González
*
*/
public class OnBootLoader extends BroadcastReceiver {
private static String TAG = "OnBootLoader";
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "onReceive: starting service");
Core.setFetchFrequency(context);
}
}

View File

@ -32,6 +32,7 @@ import android.media.RingtoneManager;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.provider.Settings;
import android.util.Log;
import android.view.View;
@ -53,8 +54,10 @@ import android.widget.Toast;
public class Options extends Activity {
private static String TAG = "Options";
private static int RINGTONE_PICK_CODE = 999;
private static long DIALOG_TIME = 10000;
private TextView connectionStatus;
private ProgressDialog retrievingCertificate;
private CheckCertificateAsyncTask asyncTask;
private Context context;
private PandroidEventviewerActivity object;
@ -166,8 +169,9 @@ public class Options extends Activity {
try {
retrievingCertificate = ProgressDialog.show(this, "",
"Loading...", true);
new CheckCertificateAsyncTask()
.execute(new URL[] { new URL(url) });
asyncTask = new CheckCertificateAsyncTask();
asyncTask.execute(new URL[] { new URL(url) });
removeDialog(DIALOG_TIME, retrievingCertificate);
} catch (MalformedURLException e) {
Toast.makeText(getApplicationContext(), R.string.url_not_valid,
Toast.LENGTH_SHORT).show();
@ -348,7 +352,7 @@ public class Options extends Activity {
@Override
protected void onPostExecute(Boolean result) {
retrievingCertificate.dismiss();
retrievingCertificate.cancel();
if (!online) {
writeChanges();
} else {
@ -383,4 +387,23 @@ public class Options extends Activity {
}
}
}
/**
* Removes a dialog after a timeout.
*
* @param time
* @param dialog
*/
public void removeDialog(long time, final ProgressDialog dialog) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
dialog.dismiss();
if (asyncTask.cancel(false)) {
Toast.makeText(getApplicationContext(),
"Connection timeout", Toast.LENGTH_SHORT).show();
}
}
}, time);
}
}

View File

@ -20,6 +20,7 @@ package pandroid_event_viewer.pandorafms;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -196,66 +197,69 @@ public class PandroidEventviewerActivity extends TabActivity implements
* @param intent
*/
private void process_notification(Intent intent) {
long count_events = intent.getLongExtra("count_events", 0);
int more_criticity = intent.getIntExtra("more_criticity", -1);
CharSequence text;
if (count_events > 0) {
// From the notificy
switch (more_criticity) {
case 0:
text = getString(R.string.loading_events_criticity_0_str)
.replace("%s", new Long(count_events).toString());
break;
case 1:
text = getString(R.string.loading_events_criticity_1_str)
.replace("%s", new Long(count_events).toString());
break;
case 2:
text = getString(R.string.loading_events_criticity_2_str)
.replace("%s", new Long(count_events).toString());
break;
case 3:
text = getString(R.string.loading_events_criticity_3_str)
.replace("%s", new Long(count_events).toString());
break;
case 4:
text = getString(R.string.loading_events_criticity_4_str)
.replace("%s", new Long(count_events).toString());
break;
default:
text = getString(R.string.loading_events_criticity_2_str)
.replace("%s", new Long(count_events).toString());
break;
}
// From the notification
switch (more_criticity) {
case 0:
text = getString(R.string.loading_events_criticity_0_str);
break;
case 1:
text = getString(R.string.loading_events_criticity_1_str);
break;
case 2:
text = getString(R.string.loading_events_criticity_2_str);
break;
case 3:
text = getString(R.string.loading_events_criticity_3_str);
break;
case 4:
text = getString(R.string.loading_events_criticity_4_str);
break;
default:
text = getString(R.string.loading_events_criticity_2_str);
break;
}
Toast toast = Toast.makeText(getApplicationContext(), text,
Toast.LENGTH_SHORT);
toast.show();
Toast toast = Toast.makeText(getApplicationContext(), text,
Toast.LENGTH_SHORT);
toast.show();
// Set the same parameters to extract the events of the
// notification.
SharedPreferences preferences = getSharedPreferences(
getString(R.string.const_string_preferences),
Activity.MODE_PRIVATE);
long timestamp_notification = preferences.getLong(
"previous_filterTimestamp", (new Date().getTime() / 1000));
Log.i(TAG + " process_notification_timestamp", ""
+ timestamp_notification);
this.timestamp = timestamp_notification;
this.agentNameStr = preferences.getString("filterAgentName", "");
this.id_group = preferences.getInt("filterIDGroup", 0);
this.severity = preferences.getInt("filterSeverity", -1);
this.status = preferences.getInt("filterStatus", 3);
this.eventSearch = preferences.getString("filterEventSearch", "");
// Set the same parameters to extract the events of the
// notification.
SharedPreferences preferences = getSharedPreferences(
getString(R.string.const_string_preferences),
Activity.MODE_PRIVATE);
long timestamp_notification = preferences.getLong("filterTimestamp",
(new Date().getTime() / 1000));
Log.i(TAG + " process_notification_timestamp", ""
+ timestamp_notification);
this.timestamp = timestamp_notification;
this.agentNameStr = preferences.getString("filterAgentName", "");
this.id_group = preferences.getInt("filterIDGroup", 0);
this.severity = preferences.getInt("filterSeverity", -1);
this.status = preferences.getInt("filterStatus", 3);
this.eventSearch = preferences.getString("filterEventSearch", "");
this.getTabHost().setCurrentTab(1);
this.getTabHost().setCurrentTab(1);
this.loadInProgress = true;
this.getNewListEvents = true;
this.eventList = new ArrayList<EventListItem>();
executeBackgroundGetEvents(true);
this.loadInProgress = true;
this.getNewListEvents = true;
this.eventList = new ArrayList<EventListItem>();
executeBackgroundGetEvents(true);
Calendar c = Calendar.getInstance();
long now = (c.getTimeInMillis() / 1000);
SharedPreferences.Editor editorPreferences = preferences.edit();
// Save for the next execution
editorPreferences.putLong("filterTimestamp", now);
// Save the previous for the list.
editorPreferences.putLong("previous_filterTimestamp",
timestamp_notification);
if (editorPreferences.commit()) {
Log.i(TAG + " (filter options)",
"Configuration changes commited (timestamp)");
}
}
@ -299,7 +303,7 @@ public class PandroidEventviewerActivity extends TabActivity implements
serializeParams2Api(true));
return_api = return_api.replace("\n", "");
try {
this.count_events = new Long(return_api).longValue();
this.count_events = Long.valueOf(return_api);
} catch (NumberFormatException e) {
Log.e(TAG, e.getMessage());
return;
@ -350,67 +354,67 @@ public class PandroidEventviewerActivity extends TabActivity implements
String[] items = lines[i].split(";");
EventListItem event = new EventListItem();
try {
if (items[0].length() == 0) {
event.id_event = 0;
} else {
event.id_event = Integer.parseInt(items[0]);
}
if (items[1].length() == 0) {
event.id_agent = 0;
} else {
event.id_agent = Integer.parseInt(items[1]);
}
event.id_user = items[2];
if (items[3].length() == 0) {
event.id_group = 0;
} else {
event.id_group = Integer.parseInt(items[3]);
}
if (items[4].length() == 0) {
event.status = 0;
} else {
event.status = Integer.parseInt(items[4]);
}
event.timestamp = items[5];
event.event = items[6];
if (items[7].length() == 0) {
event.utimestamp = 0;
} else {
event.utimestamp = Integer.parseInt(items[7]);
}
event.event_type = items[8];
if (items[9].length() == 0) {
event.id_agentmodule = 0;
} else {
event.id_agentmodule = Integer.parseInt(items[9]);
}
if (items[10].length() == 0) {
event.id_alert_am = 0;
} else {
event.id_alert_am = Integer.parseInt(items[10]);
}
if (items[11].length() == 0) {
event.criticity = 0;
} else {
event.criticity = Integer.parseInt(items[11]);
}
event.user_comment = items[12];
event.tags = items[13];
event.agent_name = items[14];
event.group_name = items[15];
event.group_icon = items[16];
event.description_event = items[17];
event.description_image = items[18];
event.criticity_name = items[19];
event.criticity_image = items[20];
event.opened = false;
} catch (NumberFormatException nfe) {
event.event = getApplication().getString(
R.string.unknown_event_str);
launchProblemParsingNotification();
try {
if (items[0].length() == 0) {
event.id_event = 0;
} else {
event.id_event = Integer.parseInt(items[0]);
}
if (items[1].length() == 0) {
event.id_agent = 0;
} else {
event.id_agent = Integer.parseInt(items[1]);
}
event.id_user = items[2];
if (items[3].length() == 0) {
event.id_group = 0;
} else {
event.id_group = Integer.parseInt(items[3]);
}
if (items[4].length() == 0) {
event.status = 0;
} else {
event.status = Integer.parseInt(items[4]);
}
event.timestamp = items[5];
event.event = items[6];
if (items[7].length() == 0) {
event.utimestamp = 0;
} else {
event.utimestamp = Integer.parseInt(items[7]);
}
event.event_type = items[8];
if (items[9].length() == 0) {
event.id_agentmodule = 0;
} else {
event.id_agentmodule = Integer.parseInt(items[9]);
}
if (items[10].length() == 0) {
event.id_alert_am = 0;
} else {
event.id_alert_am = Integer.parseInt(items[10]);
}
if (items[11].length() == 0) {
event.criticity = 0;
} else {
event.criticity = Integer.parseInt(items[11]);
}
event.user_comment = items[12];
event.tags = items[13];
event.agent_name = items[14];
event.group_name = items[15];
event.group_icon = items[16];
event.description_event = items[17];
event.description_image = items[18];
event.criticity_name = items[19];
event.criticity_image = items[20];
event.opened = false;
} catch (NumberFormatException nfe) {
event.event = getApplication().getString(
R.string.unknown_event_str);
launchProblemParsingNotification();
}
this.eventList.add(event);
}
}

View File

@ -32,6 +32,7 @@ import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.IBinder;
@ -109,13 +110,13 @@ public class PandroidEventviewerService extends IntentService {
Log.i(TAG + " checkNewEvents", return_api);
return_api = return_api.replace("\n", "");
try {
this.count_events = new Long(return_api).longValue();
this.count_events = Long.valueOf(return_api);
} catch (NumberFormatException e) {
Log.e(TAG, e.getMessage());
return;
}
// Check the event more critical
// Check the more critical level
if (this.count_events != 0) {
Log.i(TAG, "There are new events");
parameters = new ArrayList<NameValuePair>();
@ -128,8 +129,22 @@ public class PandroidEventviewerService extends IntentService {
serializeParams2Api(context, false, true, true)));
return_api = Core.httpGet(getApplicationContext(), parameters);
return_api = return_api.replace("\n", "");
this.more_criticity = Integer.valueOf(return_api).intValue();
notificationEvent(context);
try {
this.more_criticity = Integer.valueOf(return_api)
.intValue();
} catch (NumberFormatException e) {
Log.e(TAG, e.getMessage());
return;
}
long lastCountEvents = preferences.getLong("last_count_events", 0);
// Does not repeat the same notification
if (lastCountEvents != count_events) {
notificationEvent(context);
Editor editor = preferences.edit();
editor.putLong("last_count_events", count_events);
editor.commit();
}
} else {
this.more_criticity = -1;
@ -173,21 +188,6 @@ public class PandroidEventviewerService extends IntentService {
Calendar c = Calendar.getInstance();
long now = (c.getTimeInMillis() / 1000);
long filterTimestamp = preferences.getLong("filterTimestamp", now);
if (updateTime) {
SharedPreferences.Editor editorPreferences = preferences.edit();
// Save for the next execution
editorPreferences.putLong("filterTimestamp", now);
// Save the previous for the list.
editorPreferences.putLong("previous_filterTimestamp",
filterTimestamp);
if (editorPreferences.commit()) {
Log.i(TAG + " (filter options)",
"Configuration changes commited (timestamp)");
} else {
Log.e(TAG + " (filter options)",
"Configuration changes not commited");
}
}
String totalStr = (total) ? "total" : "-1";
if (more_criticity) {
totalStr = "more_criticity";
@ -231,37 +231,37 @@ public class PandroidEventviewerService extends IntentService {
icon = R.drawable.criticity_0;
tickerText = context.getString(
R.string.notification_criticity_0_str).replace("%s",
new Long(this.count_events).toString());
Long.valueOf(this.count_events).toString());
break;
case 1:
icon = R.drawable.criticity_1;
tickerText = context.getString(
R.string.notification_criticity_1_str).replace("%s",
new Long(this.count_events).toString());
Long.valueOf(this.count_events).toString());
break;
case 2:
icon = R.drawable.criticity_2;
tickerText = context.getString(
R.string.notification_criticity_2_str).replace("%s",
new Long(this.count_events).toString());
Long.valueOf(this.count_events).toString());
break;
case 3:
icon = R.drawable.criticity_3;
tickerText = context.getString(
R.string.notification_criticity_3_str).replace("%s",
new Long(this.count_events).toString());
Long.valueOf(this.count_events).toString());
break;
case 4:
icon = R.drawable.criticity_4;
tickerText = context.getString(
R.string.notification_criticity_4_str).replace("%s",
new Long(this.count_events).toString());
Long.valueOf(this.count_events).toString());
break;
default:
icon = R.drawable.criticity_default;
tickerText = context.getString(
R.string.notification_criticity_2_str).replace("%s",
new Long(this.count_events).toString());
Long.valueOf(this.count_events).toString());
break;
}
@ -275,7 +275,6 @@ public class PandroidEventviewerService extends IntentService {
if (preferences.getBoolean("vibration", true)) {
Log.d(TAG, "Vibration");
notification.defaults |= Notification.DEFAULT_VIBRATE;
} else {
Log.d(TAG, "No vibration");
notification.vibrate = new long[] { 0, 0, 0, 0 };
@ -300,7 +299,6 @@ public class PandroidEventviewerService extends IntentService {
PandroidEventviewerActivity.class);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
notificationIntent.putExtra("count_events", this.count_events);
notificationIntent.putExtra("more_criticity", this.more_criticity);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
@ -311,7 +309,7 @@ public class PandroidEventviewerService extends IntentService {
notification.setLatestEventInfo(context, title, tickerText,
contentIntent);
Log.i(TAG, "Launching notification");
Log.i(TAG, "Launching notification, number of events: " + count_events);
mNotificationManager.notify(NOTIFICATION_PANDROID_EVENT_VIEWER,
notification);
}