2012-07-10 Santiago Munín <burning1@gmail.com>
* res/layout/item_list_incident_layout.xml: Deleted file, no longer needed. * res/layout/main.xml: Little changes. * src/pandroid_event_viewer/pandorafms/EventList.java: Removed some commented lines. * src/pandroid_event_viewer/pandorafms/Core.java: Set HTTP request timeout. * src/pandroid_event_viewer/pandorafms/Main.java: Set default profile. * src/pandroid_event_viewer/pandorafms/OnBootLoader.java, src/pandroid_event_viewer/pandorafms/PandroidEventviewerActivity.java. * src/pandroid_event_viewer/pandorafms/Core.java: Added a method to cancel the background service. * src/pandroid_event_viewer/pandorafms/Options.java: Now users can choose if they want the program to check events periodically in background. * res/layout/options.xml: New checkbox and textview. * res/values/strings.xml, res/values-es/strings.xml: Added and modified some entries. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6764 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
a988da47b5
commit
0f0afce9c1
|
@ -1,3 +1,17 @@
|
|||
2012-07-10 Santiago Munín <burning1@gmail.com>
|
||||
* res/layout/item_list_incident_layout.xml: Deleted file, no longer needed.
|
||||
* res/layout/main.xml: Little changes.
|
||||
* src/pandroid_event_viewer/pandorafms/EventList.java: Removed some commented lines.
|
||||
* src/pandroid_event_viewer/pandorafms/Core.java: Set HTTP request timeout.
|
||||
* src/pandroid_event_viewer/pandorafms/Main.java: Set default profile.
|
||||
* src/pandroid_event_viewer/pandorafms/OnBootLoader.java,
|
||||
src/pandroid_event_viewer/pandorafms/PandroidEventviewerActivity.java.
|
||||
* src/pandroid_event_viewer/pandorafms/Core.java: Added a method to cancel the background service.
|
||||
* src/pandroid_event_viewer/pandorafms/Options.java: Now users can choose if they want the program to check events periodically in background.
|
||||
* res/layout/options.xml: New checkbox and textview.
|
||||
* res/values/strings.xml,
|
||||
res/values-es/strings.xml: Added and modified some entries.
|
||||
|
||||
2012-07-09 Miguel de Dios <miguel.dedios@artica.es>
|
||||
|
||||
* src/pandroid_event_viewer/pandorafms/About.java,
|
||||
|
|
|
@ -1,110 +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.
|
||||
-->
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/item_linear_layout"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:orientation="vertical" >
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/content_incident_item"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1" >
|
||||
|
||||
<TextView
|
||||
android:id="@+id/incident_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/incident_name"
|
||||
android:orientation="horizontal" >
|
||||
|
||||
<TextView
|
||||
android:id="@+id/incident_agent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0"
|
||||
android:textSize="10sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/incident_last_update_timestamp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0"
|
||||
android:textSize="10sp" />
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
<Button
|
||||
android:id="@+id/button_load_more_incidents"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/load_more_events_button_str"
|
||||
android:visibility="gone" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/loading_more_incidents"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="gone" >
|
||||
|
||||
<ProgressBar
|
||||
style="?android:attr/progressBarStyleSmall"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingRight="10dip" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/loading_label_str"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/incident_extra_info"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:background="#FFFFFF"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone" >
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/description" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/incident_description"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/description" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/incident_close_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/incident_close_button" />
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
|
@ -37,7 +37,6 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_weight="1"
|
||||
android:paddingRight="5dip"
|
||||
android:text="@string/profile_label_str"
|
||||
android:textStyle="bold" />
|
||||
|
@ -45,6 +44,8 @@
|
|||
<Spinner
|
||||
android:id="@+id/profile_combo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_marginRight="20dp"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<ImageView
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:inputType="textPassword"
|
||||
android:singleLine="true" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -138,6 +138,23 @@
|
|||
android:textColor="#ffffff" />
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal" >
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="60dp"
|
||||
android:text="@string/enable_background_service" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/background_service_on"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
|
|
@ -64,11 +64,11 @@
|
|||
<string name="notification_criticity_3_str">Hay %s eventos y algunos son Aviso.</string>
|
||||
<string name="notification_criticity_4_str">Hay %s eventos y algunos son Criticos.</string>
|
||||
|
||||
<string name="loading_events_criticity_0_str">Cargando los %s eventos y todos son de Mantenimiento.</string>
|
||||
<string name="loading_events_criticity_1_str">Cargando los %s eventos y algunos son Información.</string>
|
||||
<string name="loading_events_criticity_2_str">Cargando los %s eventos y algunos son Normales.</string>
|
||||
<string name="loading_events_criticity_3_str">Cargando los %s eventos y algunos son Aviso.</string>
|
||||
<string name="loading_events_criticity_4_str">Cargando los %s eventos y algunos son Criticos.</string>
|
||||
<string name="loading_events_criticity_0_str">Cargando eventos (todos son de Mantenimiento).</string>
|
||||
<string name="loading_events_criticity_1_str">Cargando eventos (algunos son Información).</string>
|
||||
<string name="loading_events_criticity_2_str">Cargando eventos (algunos son Normales).</string>
|
||||
<string name="loading_events_criticity_3_str">Cargando eventos (algunos son Aviso).</string>
|
||||
<string name="loading_events_criticity_4_str">Cargando eventos (algunos son Criticos).</string>
|
||||
|
||||
<string name="successful_validate_event_str">Validación del evento correcta.</string>
|
||||
<string name="fail_validate_event_str">Validación del evento incorrecta.</string>
|
||||
|
|
|
@ -118,18 +118,20 @@
|
|||
<string name="creating_incident">Creating new incident…</string>
|
||||
<string name="create_incident">Create incident</string>
|
||||
<string name="create_incident_group_error">There was an error creating the incident: unrecognized event group. Please, contact administrator.</string>
|
||||
<string name="url_not_valid">Incorrect url. Please, insert a valid url</string>
|
||||
<string name="certificate_not_valid">This server has a certificate not signed by a CA, do you trust it?</string>
|
||||
<string name="options_not_saved">Options not saved.</string>
|
||||
<string name="notification_error_parsing">There was an error retrieving data from server.</string>
|
||||
<string name="save_profile_button_str">Save profile</string>
|
||||
<string name="profile_label_str">Profile</string>
|
||||
<string name="profile_name">Insert the profile\'s name</string>
|
||||
<string name="profile_saved">Profile saved</string>
|
||||
<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>
|
||||
<string name="unknown_version">Unknown version</string>
|
||||
<string name="url_not_valid">Incorrect url. Please, insert a valid url</string>
|
||||
<string name="certificate_not_valid">This server has a certificate not signed by a CA, do you trust it?</string>
|
||||
<string name="options_not_saved">Options not saved.</string>
|
||||
<string name="notification_error_parsing">There was an error retrieving data from server.</string>
|
||||
<string name="save_profile_button_str">Save profile</string>
|
||||
<string name="profile_label_str">Profile</string>
|
||||
<string name="profile_name">Insert the profile\'s name</string>
|
||||
<string name="profile_saved">Profile saved</string>
|
||||
<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>
|
||||
<string name="unknown_version">Unknown version</string>
|
||||
<string name="enable_background_service">Check events in background</string>
|
||||
|
||||
</resources>
|
|
@ -50,6 +50,9 @@ import org.apache.http.client.entity.UrlEncodedFormEntity;
|
|||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.message.BasicNameValuePair;
|
||||
import org.apache.http.params.BasicHttpParams;
|
||||
import org.apache.http.params.HttpConnectionParams;
|
||||
import org.apache.http.params.HttpParams;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlarmManager;
|
||||
|
@ -114,7 +117,7 @@ public class Core {
|
|||
* @param ctx
|
||||
* Application context.
|
||||
*/
|
||||
public static void setFetchFrequency(Context ctx) {
|
||||
public static void setBackgroundServiceFetchFrequency(Context ctx) {
|
||||
SharedPreferences preferences = ctx.getSharedPreferences(
|
||||
ctx.getString(R.string.const_string_preferences),
|
||||
Activity.MODE_PRIVATE);
|
||||
|
@ -141,6 +144,16 @@ public class Core {
|
|||
}
|
||||
}
|
||||
|
||||
public static void cancelBackgroundService(Context ctx) {
|
||||
AlarmManager alarmM = (AlarmManager) ctx
|
||||
.getSystemService(Context.ALARM_SERVICE);
|
||||
PendingIntent pandroidService = PendingIntent.getService(ctx, 0,
|
||||
new Intent(ctx, PandroidEventviewerService.class), 0);
|
||||
Log.i(TAG, "Background service cancelled");
|
||||
alarmM.cancel(pandroidService);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts the maximum time setted to filter events to a timestamp.
|
||||
*
|
||||
|
@ -344,7 +357,11 @@ public class Core {
|
|||
// Secure connection
|
||||
return Core.httpsGet(url, parameters);
|
||||
} else {
|
||||
DefaultHttpClient httpClient = new DefaultHttpClient();
|
||||
HttpParams params = new BasicHttpParams();
|
||||
HttpConnectionParams.setConnectionTimeout(params,
|
||||
CONNECTION_TIMEOUT);
|
||||
HttpConnectionParams.setSoTimeout(params, CONNECTION_TIMEOUT);
|
||||
DefaultHttpClient httpClient = new DefaultHttpClient(params);
|
||||
UrlEncodedFormEntity entity;
|
||||
HttpPost httpPost;
|
||||
HttpResponse response;
|
||||
|
|
|
@ -197,55 +197,18 @@ public class EventList extends ListActivity {
|
|||
}
|
||||
}
|
||||
|
||||
/*private String getImageGroupUrl(String group_icon) {
|
||||
SharedPreferences preferences = getApplicationContext()
|
||||
.getSharedPreferences(
|
||||
getApplicationContext().getString(
|
||||
R.string.const_string_preferences),
|
||||
Activity.MODE_PRIVATE);
|
||||
|
||||
String url = preferences.getString("url", "");
|
||||
return url + "/images/groups_small/" + group_icon + ".png";
|
||||
}+/
|
||||
|
||||
/**
|
||||
* Sets an image to the left of group's TextView.
|
||||
*
|
||||
* @param view
|
||||
* Parent view.
|
||||
* @param group_icon
|
||||
* Icon name.
|
||||
* @param id
|
||||
* Group's TextView id;
|
||||
*/
|
||||
/*private void setTextViewGroupImage(View view, String group_icon, int id) {
|
||||
TextView tview = (TextView) view.findViewById(id);
|
||||
Bitmap img = null;
|
||||
|
||||
SharedPreferences preferences = getApplicationContext()
|
||||
.getSharedPreferences(
|
||||
getApplicationContext().getString(
|
||||
R.string.const_string_preferences),
|
||||
Activity.MODE_PRIVATE);
|
||||
|
||||
String url = preferences.getString("url", "");
|
||||
img = Core.downloadImage(url + "/images/groups_small/" + group_icon
|
||||
+ ".png");
|
||||
|
||||
if (img != null) {
|
||||
Core.setTextViewLeftImage(tview, img);
|
||||
}
|
||||
}*/
|
||||
|
||||
@Override
|
||||
protected void onListItemClick(ListView l, View v, int position, long id) {
|
||||
super.onListItemClick(l, v, position, id);
|
||||
|
||||
try {
|
||||
EventListItem item = this.object.eventList.get(position);
|
||||
|
||||
item.opened = !item.opened;
|
||||
this.object.eventList.set(position, item);
|
||||
la.notifyDataSetChanged();
|
||||
} catch (IndexOutOfBoundsException e) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -64,6 +64,8 @@ import android.widget.Toast;
|
|||
public class Main extends Activity {
|
||||
private static String TAG = "MAIN";
|
||||
private static String PROFILE_PREFIX = "profile:";
|
||||
private static String DEFAULT_PROFILE_NAME = "Default";
|
||||
private static String DEFAULT_PROFILE = "0|3||||0|6";
|
||||
private PandroidEventviewerActivity object;
|
||||
private HashMap<Integer, String> pandoraGroups;
|
||||
private Spinner comboSeverity;
|
||||
|
@ -204,7 +206,13 @@ public class Main extends Activity {
|
|||
switch (which) {
|
||||
case DialogInterface.BUTTON_POSITIVE:
|
||||
if (Core.containsIgnoreCase(profiles, profileName
|
||||
.getText().toString())) {
|
||||
.getText().toString())
|
||||
|| profileName
|
||||
.getText()
|
||||
.toString()
|
||||
.toLowerCase()
|
||||
.equals(DEFAULT_PROFILE_NAME
|
||||
.toLowerCase())) {
|
||||
Toast.makeText(context,
|
||||
R.string.profile_already_exists,
|
||||
Toast.LENGTH_SHORT).show();
|
||||
|
@ -524,7 +532,7 @@ public class Main extends Activity {
|
|||
editorPreferences.putInt("filterLastTime", filterLastTime);
|
||||
|
||||
if (editorPreferences.commit()) {
|
||||
Core.setFetchFrequency(getApplicationContext());
|
||||
Core.setBackgroundServiceFetchFrequency(getApplicationContext());
|
||||
Toast toast = Toast.makeText(getApplicationContext(),
|
||||
this.getString(R.string.filter_update_succesful_str),
|
||||
Toast.LENGTH_SHORT);
|
||||
|
@ -632,6 +640,9 @@ public class Main extends Activity {
|
|||
Activity.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editorPreferences = preferences.edit();
|
||||
// Profile
|
||||
Log.i(TAG, "Saved: " + PROFILE_PREFIX + profileName + group + "|"
|
||||
+ status + "|" + tag + "|" + agentName + "|" + eventSearch
|
||||
+ "|" + severity + "|" + oldestEvent);
|
||||
editorPreferences.putString(PROFILE_PREFIX + profileName, group + "|"
|
||||
+ status + "|" + tag + "|" + agentName + "|" + eventSearch
|
||||
+ "|" + severity + "|" + oldestEvent);
|
||||
|
@ -675,11 +686,16 @@ public class Main extends Activity {
|
|||
* Profile name.
|
||||
*/
|
||||
private void setProfile(String profileName) {
|
||||
SharedPreferences preferences = getSharedPreferences(
|
||||
this.getString(R.string.const_string_preferences),
|
||||
Activity.MODE_PRIVATE);
|
||||
String profileData = preferences.getString(
|
||||
PROFILE_PREFIX + profileName, "");
|
||||
String profileData = "";
|
||||
if (profileName.equals(DEFAULT_PROFILE_NAME)) {
|
||||
profileData = DEFAULT_PROFILE;
|
||||
} else {
|
||||
SharedPreferences preferences = getSharedPreferences(
|
||||
this.getString(R.string.const_string_preferences),
|
||||
Activity.MODE_PRIVATE);
|
||||
profileData = preferences.getString(PROFILE_PREFIX + profileName,
|
||||
"");
|
||||
}
|
||||
String options[] = profileData.split("\\|");
|
||||
if (options.length == 7) {
|
||||
try {
|
||||
|
@ -756,7 +772,7 @@ public class Main extends Activity {
|
|||
*/
|
||||
private void loadProfiles() {
|
||||
profiles = new LinkedList<String>();
|
||||
profiles.add("");
|
||||
profiles.add(DEFAULT_PROFILE_NAME);
|
||||
profiles.addAll(getAllProfiles());
|
||||
Spinner combo = (Spinner) findViewById(R.id.profile_combo);
|
||||
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
|
||||
|
|
|
@ -17,7 +17,7 @@ public class OnBootLoader extends BroadcastReceiver {
|
|||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
Log.i(TAG, "onReceive: starting service");
|
||||
Core.setFetchFrequency(context);
|
||||
Core.setBackgroundServiceFetchFrequency(context);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -71,7 +71,7 @@ public class Options extends Activity {
|
|||
setContentView(R.layout.options);
|
||||
connectionStatus = (TextView) findViewById(R.id.check_connection_status);
|
||||
new CheckConnectionAsyncTask().execute();
|
||||
|
||||
|
||||
SharedPreferences preferences = getSharedPreferences(
|
||||
this.getString(R.string.const_string_preferences),
|
||||
Activity.MODE_PRIVATE);
|
||||
|
@ -85,7 +85,7 @@ public class Options extends Activity {
|
|||
text.setText(preferences.getString("password", "demo"));
|
||||
text = (EditText) findViewById(R.id.api_password);
|
||||
text.setText(preferences.getString("api_password", ""));
|
||||
|
||||
|
||||
Spinner combo = (Spinner) findViewById(R.id.refresh_combo);
|
||||
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
|
||||
this, R.array.refresh_combo,
|
||||
|
@ -93,7 +93,7 @@ public class Options extends Activity {
|
|||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
combo.setAdapter(adapter);
|
||||
combo.setSelection(preferences.getInt("refreshTimeKey", 3));
|
||||
|
||||
((CheckBox) findViewById(R.id.background_service_on)).setChecked(true);
|
||||
final Button button = (Button) findViewById(R.id.update_options);
|
||||
button.setOnClickListener(new View.OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
|
@ -217,7 +217,6 @@ public class Options extends Activity {
|
|||
Context context = this.getApplicationContext();
|
||||
|
||||
if (editorPreferences.commit()) {
|
||||
Core.setFetchFrequency(getApplicationContext());
|
||||
Log.i(TAG, "Settings saved");
|
||||
Toast toast = Toast.makeText(context,
|
||||
this.getString(R.string.config_update_succesful_str),
|
||||
|
@ -230,6 +229,12 @@ public class Options extends Activity {
|
|||
Toast.LENGTH_LONG);
|
||||
toast.show();
|
||||
}
|
||||
// Enable or disable background checking
|
||||
if (((CheckBox) findViewById(R.id.background_service_on)).isChecked()) {
|
||||
Core.setBackgroundServiceFetchFrequency(getApplicationContext());
|
||||
} else {
|
||||
Core.cancelBackgroundService(getApplicationContext());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -123,7 +123,7 @@ public class PandroidEventviewerActivity extends TabActivity implements
|
|||
|
||||
if (!this.showOptionsFirstTime) {
|
||||
// Start the background service for the notifications
|
||||
Core.setFetchFrequency(getApplicationContext());
|
||||
Core.setBackgroundServiceFetchFrequency(getApplicationContext());
|
||||
}
|
||||
|
||||
Intent i_main = new Intent(this, Main.class);
|
||||
|
|
Loading…
Reference in New Issue