Revision: 6707
http://pandora.svn.sourceforge.net/pandora/?rev=6707&view=rev
Author: santimunin
Date: 2012-06-25 22:38:24 +0000 (Mon, 25 Jun 2012)
Log Message:
-----------
2012-06-26 Santiago Munin <burning1@...>
* src/pandroid_event_viewer/pandorafms/API.java: Added new api calls.
* src/pandroid_event_viewer/pandorafms/Core.java: Now connections can throw IOExceptions.
* res/values/strings.xml: Added new entries.
* src/pandroid_event_viewer/pandorafms/Options.java,
src/pandroid_event_viewer/pandorafms/CreateIncidentActivity.java,
src/pandroid_event_viewer/pandorafms/PandroidEventviewerActivity.java,
src/pandroid_event_viewer/pandorafms/PandroidEventviewerService.java,
src/pandroid_event_viewer/pandorafms/EventList.java,
src/pandroid_event_viewer/pandorafms/PopupValidationEvent.java,
src/pandroid_event_viewer/pandorafms/Main.java: Now a toast is shown if there was any connection problem.
Modified Paths:
--------------
trunk/extras/pandroid_event_viewer/ChangeLog
trunk/extras/pandroid_event_viewer/res/values/strings.xml
trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/API.java
trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Core.java
trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/CreateIncidentActivity.java
trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/EventList.java
trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Main.java
trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Options.java
trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/PandroidEventviewerActivity.java
trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/PandroidEventviewerService.java
trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/PopupValidationEvent.java
Modified: trunk/extras/pandroid_event_viewer/ChangeLog
===================================================================
--- trunk/extras/pandroid_event_viewer/ChangeLog 2012-06-25 18:52:58 UTC (rev 6706)
+++ trunk/extras/pandroid_event_viewer/ChangeLog 2012-06-25 22:38:24 UTC (rev 6707)
@@ -1,3 +1,16 @@
+2012-06-26 Santiago Munín <burning1@...>
+
+ * src/pandroid_event_viewer/pandorafms/API.java: Added new api calls.
+ * src/pandroid_event_viewer/pandorafms/Core.java: Now connections can throw IOExceptions.
+ * res/values/strings.xml: Added new entries.
+ * src/pandroid_event_viewer/pandorafms/Options.java,
+ src/pandroid_event_viewer/pandorafms/CreateIncidentActivity.java,
+ src/pandroid_event_viewer/pandorafms/PandroidEventviewerActivity.java,
+ src/pandroid_event_viewer/pandorafms/PandroidEventviewerService.java,
+ src/pandroid_event_viewer/pandorafms/EventList.java,
+ src/pandroid_event_viewer/pandorafms/PopupValidationEvent.java,
+ src/pandroid_event_viewer/pandorafms/Main.java: Now a toast is shown if there was any connection problem.
+
2012-06-25 Santiago Munín <burning1@...>
* src/pandroid_event_viewer/pandorafms/CreateIncidentActivity.java: Fixed a UI bug and refactorized the API call.
Modified: trunk/extras/pandroid_event_viewer/res/values/strings.xml
===================================================================
--- trunk/extras/pandroid_event_viewer/res/values/strings.xml 2012-06-25 18:52:58 UTC (rev 6706)
+++ trunk/extras/pandroid_event_viewer/res/values/strings.xml 2012-06-25 22:38:24 UTC (rev 6707)
@@ -128,4 +128,6 @@
<string name="profile_already_exists">A profile with that name already exists.</string>
<string name="profile_name_character_not_allowed">The | character is not allowed.</string>
<string name="profile_delete">Delete profile</string>
+ <string name="connection_problem">There was a problem. Check your connection.</string>
+ <string name="connection_settings_problem">The operation can not be performed until you configure a correct connection.</string>
</resources>
\ No newline at end of file
Modified: trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/API.java
===================================================================
--- trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/API.java 2012-06-25 18:52:58 UTC (rev 6706)
+++ trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/API.java 2012-06-25 22:38:24 UTC (rev 6707)
@@ -1,5 +1,6 @@
package pandroid_event_viewer.pandorafms;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -21,27 +22,26 @@
* @param context
* Application context.
* @return Map containing id -> group.
+ * @throws IOException
+ * If there is a problem with the connection.
*/
- public static Map<Integer, String> getGroups(Context context) {
+ public static Map<Integer, String> getGroups(Context context)
+ throws IOException {
Map<Integer, String> result = new HashMap<Integer, String>();
- try {
- List<NameValuePair> parameters = new ArrayList<NameValuePair>();
- parameters.add(new BasicNameValuePair("op", "get"));
- parameters.add(new BasicNameValuePair("op2", "groups"));
- parameters.add(new BasicNameValuePair("other_mode",
- "url_encode_separator_|"));
- parameters.add(new BasicNameValuePair("return_type", "csv"));
- parameters.add(new BasicNameValuePair("other", ";"));
+ List<NameValuePair> parameters = new ArrayList<NameValuePair>();
+ parameters.add(new BasicNameValuePair("op", "get"));
+ parameters.add(new BasicNameValuePair("op2", "groups"));
+ parameters.add(new BasicNameValuePair("other_mode",
+ "url_encode_separator_|"));
+ parameters.add(new BasicNameValuePair("return_type", "csv"));
+ parameters.add(new BasicNameValuePair("other", ";"));
- String return_api = Core.httpGet(context, parameters);
- String[] lines = return_api.split("\n");
+ String return_api = Core.httpGet(context, parameters);
+ String[] lines = return_api.split("\n");
- for (int i = 0; i < lines.length; i++) {
- String[] groups = lines[i].split(";", 21);
- result.put(Integer.valueOf(groups[0]), groups[1]);
- }
- } catch (Exception e) {
- Log.e(TAG + ": getting groups", e.getMessage());
+ for (int i = 0; i < lines.length; i++) {
+ String[] groups = lines[i].split(";", 21);
+ result.put(Integer.valueOf(groups[0]), groups[1]);
}
return result;
}
@@ -51,24 +51,23 @@
*
* @param context
* @return Map containing id -> agent.
+ * @throws IOException
+ * If there is a problem with the connection.
*/
- public static Map<Integer, String> getAgents(Context context) {
+ public static Map<Integer, String> getAgents(Context context)
+ throws IOException {
Map<Integer, String> result = new HashMap<Integer, String>();
- try {
- List<NameValuePair> parameters = new ArrayList<NameValuePair>();
- parameters.add(new BasicNameValuePair("op", "get"));
- parameters.add(new BasicNameValuePair("op2", "all_agents"));
- parameters.add(new BasicNameValuePair("return_type", "csv"));
+ List<NameValuePair> parameters = new ArrayList<NameValuePair>();
+ parameters.add(new BasicNameValuePair("op", "get"));
+ parameters.add(new BasicNameValuePair("op2", "all_agents"));
+ parameters.add(new BasicNameValuePair("return_type", "csv"));
- String return_api = Core.httpGet(context, parameters);
- String[] lines = return_api.split("\n");
+ String return_api = Core.httpGet(context, parameters);
+ String[] lines = return_api.split("\n");
- for (int i = 0; i < lines.length; i++) {
- String[] agents = lines[i].split(";");
- result.put(Integer.valueOf(agents[0]), agents[1]);
- }
- } catch (Exception e) {
- Log.e(TAG + ": getting groups", e.getMessage());
+ for (int i = 0; i < lines.length; i++) {
+ String[] agents = lines[i].split(";");
+ result.put(Integer.valueOf(agents[0]), agents[1]);
}
return result;
}
@@ -79,20 +78,19 @@
* @param context
* Application context.
* @return API version or empty string if fails.
+ * @throws IOException
+ * If there is a problem with the connection.
*/
- public static String getVersion(Context context) {
- try {
- List<NameValuePair> parameters = new ArrayList<NameValuePair>();
- parameters.add(new BasicNameValuePair("op", "get"));
- parameters.add(new BasicNameValuePair("op2", "test"));
- String return_api = Core.httpGet(context, parameters);
- // TODO wait version
- if (return_api.contains("OK")) {
- return "4.0.2";
- } else {
- return "";
- }
- } catch (Exception e) {
+ public static String getVersion(Context context) throws IOException {
+ List<NameValuePair> parameters = new ArrayList<NameValuePair>();
+ parameters.add(new BasicNameValuePair("op", "get"));
+ parameters.add(new BasicNameValuePair("op2", "test"));
+ String return_api;
+ return_api = Core.httpGet(context, parameters);
+ // TODO wait version
+ if (return_api.contains("OK")) {
+ return "4.0.2";
+ } else {
return "";
}
}
@@ -101,8 +99,11 @@
* Get events from pandora console.
*
* @param newEvents
+ * @throws IOException
+ * If there is a problem with the connection.
*/
- public static String getEvents(Context context, String other) {
+ public static String getEvents(Context context, String other)
+ throws IOException {
// Get total count.
ArrayList<NameValuePair> parameters = new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("op", "get"));
@@ -118,34 +119,39 @@
* Get tags through an api call.
*
* @return A list of groups.
+ * @throws IOException
+ * If there is a problem with the connection.
+ *
*/
- public static List<String> getTags(Context context) {
+ public static List<String> getTags(Context context) throws IOException {
ArrayList<String> array = new ArrayList<String>();
- try {
- List<NameValuePair> parameters = new ArrayList<NameValuePair>();
- parameters.add(new BasicNameValuePair("op", "get"));
- parameters.add(new BasicNameValuePair("op2", "tags"));
- parameters.add(new BasicNameValuePair("return_type", "csv"));
- String return_api = Core.httpGet(context, parameters);
- String[] lines = return_api.split("\n");
- array.add("");
- for (int i = 0; i < lines.length; i++) {
- String[] tags = lines[i].split(";", 2);
- array.add(tags[1]);
- }
- } catch (Exception e) {
- Log.e(TAG, "getting tags problem");
+ List<NameValuePair> parameters = new ArrayList<NameValuePair>();
+ parameters.add(new BasicNameValuePair("op", "get"));
+ parameters.add(new BasicNameValuePair("op2", "tags"));
+ parameters.add(new BasicNameValuePair("return_type", "csv"));
+ String return_api = Core.httpGet(context, parameters);
+ String[] lines = return_api.split("\n");
+ array.add("");
+ for (int i = 0; i < lines.length; i++) {
+ String[] tags = lines[i].split(";", 2);
+ array.add(tags[1]);
}
return array;
}
/**
* Creates new incident in console.
- * @param context Application context
- * @param incidentParameters Incident data
+ *
+ * @param context
+ * Application context
+ * @param incidentParameters
+ * Incident data
+ * @throws IOException
+ * If there is any problem with the connection.
+ *
*/
public static void createNewIncident(Context context,
- String[] incidentParameters) {
+ String[] incidentParameters) throws IOException {
Log.i(TAG, "Sending new incident");
List<NameValuePair> parameters = new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("op", "set"));
@@ -156,4 +162,36 @@
.serializeParams2Api(incidentParameters)));
Core.httpGet(context, parameters);
}
+
+ /**
+ * Validates an event.
+ *
+ * @param context
+ * Application context.
+ * @param idEvent
+ * Id of event.
+ * @param comment
+ * Validation comment.
+ * @return <b>true</b> if validation was done.
+ * @throws IOException
+ * If here is any connection problem.
+ */
+ public static boolean validateEvent(Context context, int idEvent,
+ String comment) throws IOException {
+ List<NameValuePair> parameters;
+ // Set event validation.
+ parameters = new ArrayList<NameValuePair>();
+ parameters.add(new BasicNameValuePair("op", "set"));
+ parameters.add(new BasicNameValuePair("op2", "validate_events"));
+ parameters.add(new BasicNameValuePair("id", Integer.valueOf(idEvent)
+ .toString()));
+ parameters.add(new BasicNameValuePair("other", comment));
+ String return_api = Core.httpGet(context, parameters);
+
+ if (return_api.startsWith("Correct validation")) {
+ return true;
+ } else {
+ return false;
+ }
+ }
}
\ No newline at end of file
Modified: trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Core.java
===================================================================
--- trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Core.java 2012-06-25 18:52:58 UTC (rev 6706)
+++ trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Core.java 2012-06-25 22:38:24 UTC (rev 6707)
@@ -22,6 +22,7 @@
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.security.KeyManagementException;
@@ -61,6 +62,7 @@
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.widget.TextView;
+import android.widget.Toast;
/**
* This class provides basic functions to manage services and some received
@@ -304,9 +306,11 @@
* @param additionalParameters
* Petition additional parameters
* @return Petition result.
+ * @throws IOException
+ * If there is any problem with the connection.
*/
public static String httpGet(Context context,
- List<NameValuePair> additionalParameters) {
+ List<NameValuePair> additionalParameters) throws IOException {
SharedPreferences preferences = context.getSharedPreferences(
context.getString(R.string.const_string_preferences),
Activity.MODE_PRIVATE);
@@ -324,8 +328,7 @@
if (url.toLowerCase().contains("https")) {
// Secure connection
return Core.httpsGet(url, parameters);
- }
- try {
+ } else {
DefaultHttpClient httpClient = new DefaultHttpClient();
UrlEncodedFormEntity entity;
HttpPost httpPost;
@@ -340,10 +343,7 @@
return_api = Core
.convertStreamToString(entityResponse.getContent());
return return_api;
- } catch (Exception e) {
- Log.e(TAG + " http petition", e.getMessage());
}
- return "";
}
/**
@@ -461,8 +461,7 @@
*/
public static boolean isOnline(URL url) {
try {
- HttpsURLConnection con = (HttpsURLConnection) url
- .openConnection();
+ HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
con.setHostnameVerifier(new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
@@ -485,12 +484,16 @@
* @param parameters
* Petition parameters
* @return Result of the petition.
+ * @throws IOException
+ * If there is any problem with connection.
+ *
*/
- private static String httpsGet(String url, List<NameValuePair> parameters) {
+ private static String httpsGet(String url, List<NameValuePair> parameters)
+ throws IOException {
String result = "";
+ HttpsURLConnection con;
try {
- HttpsURLConnection con = (HttpsURLConnection) new URL(url)
- .openConnection();
+ con = (HttpsURLConnection) new URL(url).openConnection();
con.setHostnameVerifier(new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
@@ -522,8 +525,9 @@
Log.d("CONTENT", temp);
result += temp + "\n";
}
- } catch (IOException e) {
- return "";
+ } catch (MalformedURLException e) {
+ // Can't reach here because the given url is checked when is
+ // inserted in Options activity.
}
return result;
}
@@ -553,4 +557,31 @@
}
return sslSocketFactory;
}
+
+ /**
+ * Shows a toast which will show the connection problem message. Do not call
+ * outside the UI's thread.
+ *
+ * @param context
+ * Application context.
+ * @param ignoreConnectionCheck
+ * If true it shows the toast even if the connection is not
+ * correctly configured.
+ */
+ public static void showConnectionProblemToast(Context context,
+ boolean ignoreConnectionCheck) {
+ SharedPreferences preferences = context.getSharedPreferences(
+ context.getString(R.string.const_string_preferences),
+ Activity.MODE_PRIVATE);
+ if (preferences.getBoolean("online", false)) {
+ Toast.makeText(context, R.string.connection_problem,
+ Toast.LENGTH_SHORT).show();
+ } else {
+ if (ignoreConnectionCheck) {
+ Toast.makeText(context, R.string.connection_settings_problem,
+ Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ }
}
Modified: trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/CreateIncidentActivity.java
===================================================================
--- trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/CreateIncidentActivity.java 2012-06-25 18:52:58 UTC (rev 6706)
+++ trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/CreateIncidentActivity.java 2012-06-25 22:38:24 UTC (rev 6707)
@@ -1,5 +1,6 @@
package pandroid_event_viewer.pandorafms;
+import java.io.IOException;
import java.util.Map.Entry;
import android.app.Activity;
@@ -83,8 +84,10 @@
* Performs the create incident petition.
*
* @return <b>true</b> if it is created.
+ * @throws IOException
+ * If there is a problem with the connection.
*/
- private boolean sendNewIncident() {
+ private void sendNewIncident() throws IOException {
Log.i(TAG, "Sending new incident");
String incidentParams[] = new String[6];
incidentParams[0] = title.getText().toString();
@@ -101,11 +104,8 @@
}
if (groupCode >= 0) {
incidentParams[5] = String.valueOf(groupCode);
- } else {
- return false;
}
API.createNewIncident(getApplicationContext(), incidentParams);
- return true;
}
/**
@@ -119,7 +119,12 @@
@Override
protected Boolean doInBackground(Void... params) {
- return sendNewIncident();
+ try {
+ sendNewIncident();
+ return true;
+ } catch (IOException e) {
+ return false;
+ }
}
@Override
Modified: trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/EventList.java
===================================================================
--- trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/EventList.java 2012-06-25 18:52:58 UTC (rev 6706)
+++ trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/EventList.java 2012-06-25 22:38:24 UTC (rev 6707)
@@ -129,7 +129,7 @@
toggleLoadingLayout();
this.object.showOptionsFirstTime = false;
- this.object.executeBackgroundGetEvents();
+ this.object.executeBackgroundGetEvents(false);
}
}
@@ -171,7 +171,7 @@
this.object.getNewListEvents = true;
this.object.eventList = new ArrayList<EventListItem>();
this.toggleLoadingLayout();
- this.object.executeBackgroundGetEvents();
+ this.object.executeBackgroundGetEvents(true);
break;
case R.id.about_button_menu_options:
i = new Intent(this, About.class);
@@ -260,7 +260,7 @@
la.showLoadingEvents = true;
la.notifyDataSetChanged();
- object.executeBackgroundGetEvents();
+ object.executeBackgroundGetEvents(true);
}
/**
Modified: trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Main.java
===================================================================
--- trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Main.java 2012-06-25 18:52:58 UTC (rev 6706)
+++ trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Main.java 2012-06-25 22:38:24 UTC (rev 6707)
@@ -16,6 +16,7 @@
*/
package pandroid_event_viewer.pandorafms;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
@@ -203,6 +204,8 @@
* R.string.profile_already_exists,
* Toast.LENGTH_SHORT).show(); break; }
*/
+ // TODO Ask for a confirmation before rewriting the
+ // profile
if (profileName.getText().toString().contains("|")) {
Toast.makeText(
context,
@@ -291,38 +294,45 @@
* @author Miguel de Dios Matías
*
*/
- private class GetGroupsAsyncTask extends AsyncTask<Void, Void, Void> {
+ private class GetGroupsAsyncTask extends AsyncTask<Void, Void, Boolean> {
private List<String> list;
@Override
- protected Void doInBackground(Void... params) {
+ protected Boolean doInBackground(Void... params) {
list = new ArrayList<String>();
- list.addAll(API.getGroups(getApplicationContext()).values());
- return null;
+ try {
+ list.addAll(API.getGroups(getApplicationContext()).values());
+ } catch (IOException e) {
+ return false;
+ }
+ return true;
}
@Override
- protected void onPostExecute(Void unused) {
- Spinner combo = (Spinner) findViewById(R.id.group_combo);
-
- ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
- getApplicationContext(),
- android.R.layout.simple_spinner_item, list);
- combo.setAdapter(spinnerArrayAdapter);
- combo.setSelection(0);
-
+ protected void onPostExecute(Boolean result) {
ProgressBar loadingGroup = (ProgressBar) findViewById(R.id.loading_group);
-
loadingGroup.setVisibility(ProgressBar.GONE);
- combo.setVisibility(Spinner.VISIBLE);
+ if (result) {
+ Spinner combo = (Spinner) findViewById(R.id.group_combo);
- Button buttonReset = (Button) findViewById(R.id.button_reset);
- Button buttonSearch = (Button) findViewById(R.id.button_send);
- Button buttonbuttonSetAsFilterWatcher = (Button) findViewById(R.id.button_set_as_filter_watcher);
+ ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
+ getApplicationContext(),
+ android.R.layout.simple_spinner_item, list);
+ combo.setAdapter(spinnerArrayAdapter);
+ combo.setSelection(0);
- buttonReset.setEnabled(true);
- buttonSearch.setEnabled(true);
- buttonbuttonSetAsFilterWatcher.setEnabled(true);
+ Button buttonReset = (Button) findViewById(R.id.button_reset);
+ Button buttonSearch = (Button) findViewById(R.id.button_send);
+ Button buttonbuttonSetAsFilterWatcher = (Button) findViewById(R.id.button_set_as_filter_watcher);
+
+ buttonReset.setEnabled(true);
+ buttonSearch.setEnabled(true);
+ buttonbuttonSetAsFilterWatcher.setEnabled(true);
+ } else {
+ // Only this task will show the toast in order to prevent a
+ // message repeated.
+ Core.showConnectionProblemToast(getApplicationContext(), false);
+ }
}
}
@@ -332,33 +342,35 @@
* @author Santiago Munín González
*
*/
- private class GetTagsAsyncTask extends AsyncTask<Void, Void, Void> {
+ private class GetTagsAsyncTask extends AsyncTask<Void, Void, Boolean> {
private List<String> list;
@Override
- protected Void doInBackground(Void... params) {
- list = API.getTags(getApplicationContext());
- return null;
+ protected Boolean doInBackground(Void... params) {
+ try {
+ list = API.getTags(getApplicationContext());
+ return true;
+ } catch (IOException e) {
+ return false;
+ }
}
@Override
- protected void onPostExecute(Void unused) {
- Spinner combo = (Spinner) findViewById(R.id.tag);
+ protected void onPostExecute(Boolean result) {
+ if (result) {
+ Spinner combo = (Spinner) findViewById(R.id.tag);
- ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
- getApplicationContext(),
- android.R.layout.simple_spinner_item, list);
- combo.setAdapter(spinnerArrayAdapter);
- combo.setSelection(0);
-
+ ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
+ getApplicationContext(),
+ android.R.layout.simple_spinner_item, list);
+ combo.setAdapter(spinnerArrayAdapter);
+ combo.setSelection(0);
+ }
ProgressBar loadingGroup = (ProgressBar) findViewById(R.id.loading_tag);
-
loadingGroup.setVisibility(ProgressBar.GONE);
- combo.setVisibility(Spinner.VISIBLE);
}
}
- // For options
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
@@ -432,7 +444,7 @@
this.object.eventTag = combo.getSelectedItem().toString();
}
this.object.getNewListEvents = true;
- this.object.executeBackgroundGetEvents();
+ this.object.executeBackgroundGetEvents(true);
TabActivity ta = (TabActivity) this.getParent();
ta.getTabHost().setCurrentTab(1);
Modified: trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Options.java
===================================================================
--- trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Options.java 2012-06-25 18:52:58 UTC (rev 6706)
+++ trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Options.java 2012-06-25 22:38:24 UTC (rev 6707)
@@ -16,6 +16,7 @@
*/
package pandroid_event_viewer.pandorafms;
+import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
@@ -231,7 +232,7 @@
Toast.LENGTH_LONG);
toast.show();
}
-
+
}
/**
@@ -284,27 +285,30 @@
*
*/
private class CheckConnectionAsyncTask extends
- AsyncTask<Void, Void, String> {
+ AsyncTask<Void, Void, Boolean> {
- private boolean connectionOk = false;
+ private String version = "";
@Override
- protected String doInBackground(Void... arg0) {
- String version = API.getVersion(getApplicationContext());
- if (version.length() > 0) {
- this.connectionOk = true;
- } else {
- this.connectionOk = false;
+ protected Boolean doInBackground(Void... arg0) {
+ try {
+ version = API.getVersion(getApplicationContext());
+ if (version.length() > 0) {
+ return true;
+ } else {
+ return false;
+ }
+ } catch (IOException e) {
+ return false;
}
- return version;
}
/**
- * Choose an image (ok or wrong)
+ * Chooses an image (ok or wrong)
*/
- protected void onPostExecute(String v) {
- if (this.connectionOk) {
- connectionStatus.setText(v);
+ protected void onPostExecute(Boolean result) {
+ if (result) {
+ connectionStatus.setText(version);
connectionStatus.setCompoundDrawablesWithIntrinsicBounds(0, 0,
0, R.drawable.ok);
} else {
@@ -323,6 +327,12 @@
protected Boolean doInBackground(URL... arg0) {
url = arg0[0];
online = Core.isOnline(url);
+ SharedPreferences preferences = getSharedPreferences(
+ context.getString(R.string.const_string_preferences),
+ Activity.MODE_PRIVATE);
+ SharedPreferences.Editor editorPreferences = preferences.edit();
+ editorPreferences.putBoolean("online", online);
+ editorPreferences.commit();
return Core.isValidCertificate(arg0[0]);
}
Modified: trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/PandroidEventviewerActivity.java
===================================================================
--- trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/PandroidEventviewerActivity.java 2012-06-25 18:52:58 UTC (rev 6706)
+++ trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/PandroidEventviewerActivity.java 2012-06-25 22:38:24 UTC (rev 6707)
@@ -17,6 +17,7 @@
package pandroid_event_viewer.pandorafms;
+import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
@@ -173,7 +174,7 @@
process_notification(i);
}
if (changes || this.showTabListFirstTime) {
- executeBackgroundGetEvents();
+ executeBackgroundGetEvents(false);
this.showTabListFirstTime = false;
}
@@ -254,7 +255,7 @@
this.loadInProgress = true;
this.getNewListEvents = true;
this.eventList = new ArrayList<EventListItem>();
- executeBackgroundGetEvents();
+ executeBackgroundGetEvents(true);
}
}
@@ -288,8 +289,11 @@
/**
* Get events from pandora console.
*
+ * @throws IOException
+ * If there is any connection problem.
+ *
*/
- private void getEvents() {
+ private void getEvents() throws IOException {
// Get total count.
String return_api = API.getEvents(getApplicationContext(),
serializeParams2Api(true));
@@ -417,13 +421,12 @@
/**
* Executes the async task of getting events.
+ *
+ * @param underDemand
+ * <b>true</b> if the petition was under demand.
*/
- public void executeBackgroundGetEvents() {
- if (adapter != null) {
- new GetEventsAsyncTask(adapter).execute();
- } else {
- new GetEventsAsyncTask(null).execute();
- }
+ public void executeBackgroundGetEvents(boolean underDemand) {
+ new GetEventsAsyncTask(underDemand).execute();
}
/**
@@ -434,22 +437,30 @@
*/
public class GetEventsAsyncTask extends AsyncTask<Void, Void, Void> {
- private BaseAdapter adapter;
+ private boolean underDemand;
+ private boolean connectionProblem = false;
- public GetEventsAsyncTask(BaseAdapter adapter) {
- this.adapter = adapter;
+ public GetEventsAsyncTask(Boolean underDemand) {
+ this.underDemand = underDemand;
}
@Override
protected Void doInBackground(Void... params) {
Log.i(TAG + " GetEventsAsyncTask", "doInBackground");
- getEvents();
-
+ try {
+ getEvents();
+ } catch (IOException e) {
+ connectionProblem = true;
+ }
return null;
}
@Override
- protected void onPostExecute(Void unused) {
+ protected void onPostExecute(Void result) {
+ if (connectionProblem) {
+ Core.showConnectionProblemToast(getApplicationContext(),
+ underDemand);
+ }
Intent i = new Intent("eventlist.java");
if (getNewListEvents) {
Modified: trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/PandroidEventviewerService.java
===================================================================
--- trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/PandroidEventviewerService.java 2012-06-25 18:52:58 UTC (rev 6706)
+++ trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/PandroidEventviewerService.java 2012-06-25 22:38:24 UTC (rev 6707)
@@ -16,6 +16,7 @@
*/
package pandroid_event_viewer.pandorafms;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
@@ -64,7 +65,10 @@
@Override
protected void onHandleIntent(Intent intent) {
- checkNewEvents(getApplicationContext());
+ try {
+ checkNewEvents(getApplicationContext());
+ } catch (IOException e) {
+ }
}
@@ -72,8 +76,10 @@
* Checks if there are new events and, in that case, throw a notification.
*
* @param context
+ * @throws IOException
+ * If there is any connection problem.
*/
- public void checkNewEvents(Context context) {
+ public void checkNewEvents(Context context) throws IOException {
Log.d(TAG, "Checking events at "
+ Calendar.getInstance().getTime().toGMTString());
if (this.url == null) {
@@ -97,8 +103,9 @@
"url_encode_separator_|"));
parameters.add(new BasicNameValuePair("return_type", "csv"));
parameters.add(new BasicNameValuePair("other", parametersAPI));
- String return_api = Core.httpGet(getApplicationContext(),
- parameters);
+ String return_api;
+ return_api = Core.httpGet(getApplicationContext(), parameters);
+
Log.i(TAG + " checkNewEvents", return_api);
return_api = return_api.replace("\n", "");
try {
Modified: trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/PopupValidationEvent.java
===================================================================
--- trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/PopupValidationEvent.java 2012-06-25 18:52:58 UTC (rev 6706)
+++ trunk/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/PopupValidationEvent.java 2012-06-25 22:38:24 UTC (rev 6707)
@@ -16,12 +16,8 @@
*/
package pandroid_event_viewer.pandorafms;
-import java.util.ArrayList;
-import java.util.List;
+import java.io.IOException;
-import org.apache.http.NameValuePair;
-import org.apache.http.message.BasicNameValuePair;
-
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
@@ -85,63 +81,47 @@
}
/**
- * Sends the validation to server.
- *
- * @return <b>true</b> if it was done.
- */
- private boolean sendValidation() {
- boolean return_var = false;
-
- List<NameValuePair> parameters;
- // Set event validation.
- parameters = new ArrayList<NameValuePair>();
- parameters.add(new BasicNameValuePair("op", "set"));
- parameters.add(new BasicNameValuePair("op2", "validate_events"));
- parameters.add(new BasicNameValuePair("id", Integer.valueOf(this.id_event)
- .toString()));
- parameters.add(new BasicNameValuePair("other", this.comment));
- String return_api = Core.httpGet(getApplicationContext(), parameters);
-
- if (return_api.startsWith("Correct validation")) {
- return_var = true;
- }
- return return_var;
- }
-
- /**
* Sends a validation (async task)
*
* @author Miguel de Dios Matías
*
*/
- private class SendValidationAsyncTask extends AsyncTask<Void, Void, Void> {
+ private class SendValidationAsyncTask extends
+ AsyncTask<Void, Void, Boolean> {
- private boolean result;
+ private boolean connectionProblem = false;
@Override
- protected Void doInBackground(Void... params) {
- result = sendValidation();
-
- return null;
+ protected Boolean doInBackground(Void... params) {
+ int idEvent = Integer.valueOf(id_event);
+ try {
+ return API.validateEvent(getApplicationContext(), idEvent,
+ comment);
+ } catch (IOException e) {
+ connectionProblem = true;
+ return false;
+ }
}
@Override
- protected void onPostExecute(Void unused) {
+ protected void onPostExecute(Boolean result) {
String text;
-
- if (result) {
- text = getApplicationContext().getString(
- R.string.successful_validate_event_str);
+ if (connectionProblem) {
+ Core.showConnectionProblemToast(getApplicationContext(), true);
} else {
- text = getApplicationContext().getString(
- R.string.fail_validate_event_str);
- }
+ if (result) {
+ text = getApplicationContext().getString(
+ R.string.successful_validate_event_str);
+ } else {
+ text = getApplicationContext().getString(
+ R.string.fail_validate_event_str);
+ }
- Toast toast = Toast.makeText(getApplicationContext(), text,
- Toast.LENGTH_SHORT);
- toast.show();
-
- destroyPopup();
+ Toast toast = Toast.makeText(getApplicationContext(), text,
+ Toast.LENGTH_SHORT);
+ toast.show();
+ destroyPopup();
+ }
}
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|