Page MenuHomec4science

MonitoringActivity.java
No OneTemporary

File Metadata

Created
Wed, May 15, 16:42

MonitoringActivity.java

package ch.epfl.esl.elevatedmonitor;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import com.jjoe64.graphview.GraphView;
import com.jjoe64.graphview.Viewport;
import com.jjoe64.graphview.series.DataPoint;
import com.jjoe64.graphview.series.LineGraphSeries;
import java.util.ArrayList;
public class MonitoringActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
private static ArrayList<Monitor> listMonitor = new ArrayList<>();
private static MonitorAdapter monitorAdapter;
private NavigationView navigationView;
private void showAddMonitor() {
// Create and show the dialog.
AddMonitorFragment addMonitorFragment = AddMonitorFragment.newInstance();
addMonitorFragment.show(getSupportFragmentManager(), "addMonitorDialog");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_monitoring);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(view -> showAddMonitor());
DrawerLayout drawer = findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
//----------------------------------------------------------------------------------------//
//--- List view
//----------------------------------------------------------------------------------------//
monitorAdapter = new MonitorAdapter();
ListView monitorListView = findViewById(R.id.list_view_monitor);
monitorListView.setAdapter(monitorAdapter);
}
@Override
public void onBackPressed() {
DrawerLayout drawer = findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.monitoring, menu);
return true;
}
@Override
protected void onResume() {
super.onResume();
navigationView.setCheckedItem(R.id.nav_monitoring);
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_settings) {
Intent settingActivity = new Intent(this, SettingsActivity.class);
startActivity(settingActivity);
} else if (id == R.id.auto_connect) {
Intent mainActivity = new Intent(this, MainActivity.class);
startActivity(mainActivity);
}
DrawerLayout drawer = findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
public static void notifyAdapterDataSetChanged() {
monitorAdapter.notifyDataSetChanged();
}
public static void addMonitor(Monitor monitor) {
listMonitor.add(monitor);
}
class MonitorAdapter extends BaseAdapter {
@Override
public int getCount() {
return listMonitor.size();
}
@Override
public Object getItem(int position) {
return listMonitor.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = getLayoutInflater().inflate(R.layout.list_monitor, null);
TextView textViewMonitorSensor = view.findViewById(R.id.textViewSessionName);
TextView textViewMonitorDevice = view.findViewById(R.id.textViewMonitorDevice);
GraphView graph = view.findViewById(R.id.graphMonitor);
Button buttonDeleteGraph = view.findViewById(R.id.buttonDeleteGraph);
//--- Viewport
Viewport vp = graph.getViewport();
vp.setXAxisBoundsManual(true);
vp.setMinX(0);
vp.setMaxX(10);
Monitor monitor = listMonitor.get(position);
textViewMonitorSensor.setText(monitor.getMonitoredSensor().getName());
textViewMonitorDevice.setText(monitor.getMonitoredDevice().getName());
for (LineGraphSeries<DataPoint> serie : monitor.getSeries()) {
graph.addSeries(serie);
}
buttonDeleteGraph.setOnClickListener(v -> {
System.out.print("Click to delete");
listMonitor.remove(position);
monitorAdapter.notifyDataSetChanged();
});
return view;
}
}
}

Event Timeline