/*
This file is part of ZAX.
ZAX is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ZAX 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.
You should have received a copy of the GNU General Public License
along with ZAX. If not, see <http://www.gnu.org/licenses/>.
*/
package com.inovex.zabbixmobile.activities;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.util.Log;
import com.inovex.zabbixmobile.R;
import com.inovex.zabbixmobile.activities.fragments.BaseSeverityFilterDetailsFragment;
import com.inovex.zabbixmobile.activities.fragments.BaseSeverityFilterListFragment;
import com.inovex.zabbixmobile.activities.fragments.EventsDetailsFragment;
import com.inovex.zabbixmobile.activities.fragments.EventsListFragment;
import com.inovex.zabbixmobile.adapters.BaseSeverityListPagerAdapter;
import com.inovex.zabbixmobile.listeners.OnAcknowledgeEventListener;
import com.inovex.zabbixmobile.model.Event;
import com.inovex.zabbixmobile.model.TriggerSeverity;
/**
* Activity to visualize events.
*
*/
public class EventsActivity extends BaseSeverityFilterActivity<Event> implements
OnAcknowledgeEventListener {
private static final String TAG = EventsActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mTitle = getResources().getString(R.string.activity_events);
FragmentManager fm = getSupportFragmentManager();
mListFragment =
(BaseSeverityFilterListFragment<Event>)
fm.findFragmentByTag(BaseSeverityFilterActivity.LIST_FRAGMENT);
mDetailsFragment =
(BaseSeverityFilterDetailsFragment<Event>)
fm.findFragmentByTag(BaseSeverityFilterActivity.DETAILS_FRAGMENT);
if(mListFragment == null)
mListFragment = new EventsListFragment();
if(mDetailsFragment == null)
mDetailsFragment = new EventsDetailsFragment();
setContentView(R.layout.activity_events);
}
@Override
protected void onResume() {
super.onResume();
mNavigationView.getMenu().findItem(R.id.navigation_item_events).setChecked(true);
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mZabbixDataService != null) {
mZabbixDataService.cancelLoadEventsTask();
mZabbixDataService.cancelLoadHistoryDetailsTasks();
}
}
@Override
public void acknowledgeEvent(Event event, String comment) {
Log.d(TAG, "acknowledgeEvent(" + event + ", " + comment + ")");
mZabbixDataService.acknowledgeEvent(event, comment, this);
}
@Override
public void onEventAcknowledged() {
// this refreshes the action bar menu
mDetailsFragment.refreshItemSelection();
mDetailsFragment.refreshCurrentItem();
}
@Override
public void selectHostGroupInSpinner(int position, long itemId) {
super.selectHostGroupInSpinner(position, itemId);
// if (!mListFragment.isVisible())
// showListFragment();
}
@Override
protected Intent getDetailsIntent() {
return new Intent(this, EventDetailsActivity.class);
}
@Override
protected void loadAdapterContent(boolean hostGroupChanged) {
Log.d(TAG, "loadAdapterContent");
super.loadAdapterContent(hostGroupChanged);
mZabbixDataService.loadEventsByHostGroup(
mSpinnerAdapter.getCurrentItemId(), hostGroupChanged, this);
}
@Override
public void onSeverityListAdapterLoaded(TriggerSeverity severity,
boolean hostGroupChanged) {
super.onSeverityListAdapterLoaded(severity, hostGroupChanged);
BaseSeverityListPagerAdapter<Event> pagerAdapter = mZabbixDataService
.getEventsListPagerAdapter();
pagerAdapter.updateTitle(severity.getPosition(), mZabbixDataService
.getEventsListAdapter(severity).getCount());
if (severity == mZabbixDataService.getEventsListPagerAdapter()
.getCurrentObject()) {
selectInitialItem(hostGroupChanged);
}
}
@Override
public void refreshData() {
if(mZabbixDataService != null && mSpinnerAdapter != null){
mZabbixDataService.loadEventsByHostGroup(
mSpinnerAdapter.getCurrentItemId(), false, this);
}
super.refreshData();
}
}