Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package info.lina.netstatlog;
- import android.Manifest;
- import android.app.ProgressDialog;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.database.Cursor;
- import android.net.Uri;
- import android.support.v4.app.ActivityCompat;
- import android.support.v4.content.ContextCompat;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.widget.Button;
- import com.google.android.gms.appindexing.Action;
- import com.google.android.gms.appindexing.AppIndex;
- import com.google.android.gms.common.api.GoogleApiClient;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.concurrent.TimeUnit;
- public class MainMenu extends AppCompatActivity {
- Button btnInetUp, btnInetDown, btnPowerUp, btnPowerDown, btnUpsUp, btnUpsDown, btnLog;
- ArrayList<HashMap<String, String>> smsList;
- ArrayList<String> arraylist_date = new ArrayList<String>();
- ArrayList<String> arraylist_ups_up = new ArrayList<String>();
- ArrayList<String> arraylist_pwr_up = new ArrayList<String>();
- ArrayList<String> arraylist_inet_up = new ArrayList<String>();
- ArrayList<String> arraylist_ups_down = new ArrayList<String>();
- ArrayList<String> arraylist_pwr_down = new ArrayList<String>();
- ArrayList<String> arraylist_inet_down = new ArrayList<String>();
- ArrayList<String> arraylist_log = new ArrayList<String>();
- DBHelper db;
- Utility util = new Utility();
- private ProgressDialog pDialog;
- public static final String SMS_COLUMN_CONTENT = "body";
- public static final String SMS_CONTENT_INETUP = "inet up";
- public static final String SMS_CONTENT_INETDOWN = "inet down";
- public static final String SMS_CONTENT_UPSUP = "ups up";
- public static final String SMS_CONTENT_UPSDOWN = "ups down";
- public static final String SMS_CONTENT_POWERUP = "power up";
- public static final String SMS_CONTENT_POWERDOWN = "power down";
- /**
- * ATTENTION: This was auto-generated to implement the App Indexing API.
- * See https://g.co/AppIndexing/AndroidStudio for more information.
- */
- private GoogleApiClient client;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main_menu);
- btnInetUp = (Button) findViewById(R.id.btnInetUp);
- btnInetDown = (Button) findViewById(R.id.btnInetDown);
- btnPowerUp = (Button) findViewById(R.id.btnPowerUp);
- btnPowerDown = (Button) findViewById(R.id.btnPowerDown);
- btnUpsUp = (Button) findViewById(R.id.btnUpsUp);
- btnUpsDown = (Button) findViewById(R.id.btnUpsDown);
- btnLog = (Button)findViewById(R.id.btnLog);
- //set the listener when the buttons are clicked
- btnInetUp.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- util.setTittle(getApplicationContext(), "Internet Up");
- //get data from database table and store it in arraylist
- arraylist_date = db.getInetUp(SMS_CONTENT_INETUP);
- //prepare intent to start Log activity
- Intent intent = new Intent(getApplicationContext(), Log.class);
- //prepare arraylist to pass to Log activity
- intent.putStringArrayListExtra("arraylist_date", arraylist_date);
- //start Log activity
- startActivity(intent);
- }
- });
- btnInetDown.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- util.setTittle(getApplicationContext(), "Internet Down");
- arraylist_date = db.getInetUp(SMS_CONTENT_INETDOWN);
- Intent intent = new Intent(getApplicationContext(), Log.class);
- intent.putStringArrayListExtra("arraylist_date", arraylist_date);
- startActivity(intent);
- }
- });
- btnPowerUp.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- util.setTittle(getApplicationContext(), "Power Up");
- arraylist_date = db.getInetUp(SMS_CONTENT_POWERUP);
- Intent intent = new Intent(getApplicationContext(), Log.class);
- intent.putStringArrayListExtra("arraylist_date", arraylist_date);
- startActivity(intent);
- }
- });
- btnPowerDown.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- util.setTittle(getApplicationContext(), "Power Down");
- arraylist_date = db.getInetUp(SMS_CONTENT_POWERDOWN);
- Intent intent = new Intent(getApplicationContext(), Log.class);
- intent.putStringArrayListExtra("arraylist_date", arraylist_date);
- startActivity(intent);
- }
- });
- btnUpsUp.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- util.setTittle(getApplicationContext(), "UPS Up");
- arraylist_date = db.getInetUp(SMS_CONTENT_UPSUP);
- Intent intent = new Intent(getApplicationContext(), Log.class);
- intent.putStringArrayListExtra("arraylist_date", arraylist_date);
- startActivity(intent);
- }
- });
- btnUpsDown.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- util.setTittle(getApplicationContext(), "UPS Down");
- arraylist_date = db.getInetUp(SMS_CONTENT_UPSDOWN);
- Intent intent = new Intent(getApplicationContext(), Log.class);
- intent.putStringArrayListExtra("arraylist_date", arraylist_date);
- startActivity(intent);
- }
- });
- btnLog.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- util.setTittle(getApplicationContext(), "Log");
- arraylist_log.clear();
- arraylist_log = getLog();
- Intent intent = new Intent(getApplicationContext(), Log.class);
- System.out.println("arraylist_log: " + arraylist_log);
- intent.putStringArrayListExtra("arraylist_date", arraylist_log);
- startActivity(intent);
- }
- });
- // ATTENTION: This was auto-generated to implement the App Indexing API.
- // See https://g.co/AppIndexing/AndroidStudio for more information.
- client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
- }
- @Override
- protected void onResume() {
- super.onResume();
- //check if number exist
- Boolean status = util.isEmptyNumber(getApplicationContext());
- if (!status) {
- //if number not exist start Sender activity to give sender's number
- startActivity(new Intent(getApplicationContext(), Sender.class));
- } else {
- //get sms from the phone sms table and store it it SQLite database table
- getSMS();
- // getLog();
- }
- }
- private void getSMS() {
- smsList = new ArrayList<HashMap<String, String>>();
- Uri uri = Uri.parse("content://sms/inbox");
- Cursor c = getContentResolver().query(uri, null, null, null, null);
- startManagingCursor(c);
- String sender_number = util.getNumber(getApplicationContext());
- // Read the sms data and store it in the list
- if (c.moveToFirst()) {
- for (int i = 0; i < c.getCount(); i++) {
- String number = c.getString(c.getColumnIndexOrThrow("address")).toString();
- String content = c.getString(c.getColumnIndexOrThrow("body")).toString();
- Date date = new Date(c.getLong(c.getColumnIndexOrThrow("date")));
- String formattedDtime = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss").format(date);
- if (number.equals(sender_number)) {
- System.out.println("SMS: " + number + ", " + content + ", " + formattedDtime);
- //create database
- db = new DBHelper(getApplication());
- //insert table
- System.out.println("Insert table: " + number + ", " + content + ", " + formattedDtime);
- db.insertSms(formattedDtime, number, content);
- if (content.contains("ups")){
- db.insertUps(formattedDtime, number, content);
- } else if(content.contains("inet")){
- db.insertUps(formattedDtime, number, content);
- } else if(content.contains("power")){
- db.insertPwr(formattedDtime, number, content);
- }
- }
- c.moveToNext();
- }
- }
- }
- private ArrayList<String> getLog() {
- String log;
- //get all records
- arraylist_ups_down = db.getInetUp(SMS_CONTENT_UPSDOWN);
- arraylist_ups_up = db.getInetUp(SMS_CONTENT_UPSUP);
- arraylist_pwr_down = db.getInetUp(SMS_CONTENT_POWERDOWN);
- arraylist_pwr_up = db.getInetUp(SMS_CONTENT_POWERUP);
- arraylist_inet_down = db.getInetUp(SMS_CONTENT_INETDOWN);
- arraylist_inet_up = db.getInetUp(SMS_CONTENT_INETUP);
- //count number of data
- int ups_down = arraylist_ups_down.size();
- int ups_up = arraylist_ups_up.size();
- int pwr_down = arraylist_pwr_down.size();
- int pwr_up = arraylist_pwr_up.size();
- int inet_down = arraylist_inet_down.size();
- int inet_up = arraylist_inet_up.size();
- //get total records
- if (ups_down < ups_up){
- int total_ups = ups_down;
- } else {
- int total_ups = ups_up;
- }
- if (pwr_down < pwr_up){
- int total_pwr = pwr_down;
- } else {
- int total_pwr = pwr_up;
- }
- if (inet_down < inet_up){
- int total_inet = inet_down;
- } else {
- int total_inet = inet_up;
- }
- if (ups_down!=0 && ups_up!=0){
- System.out.println("ups_down, ups_up: " + ups_down + ", " +ups_up);
- for (int i = 0; i < ups_down; i++){
- //get Log data and format them
- log = "UPS\n" +
- "Down: " + arraylist_ups_down.get(i) + "\n" +
- "Up : " + arraylist_ups_up.get(i) + "\n" +
- "Down duration: " +getDuration(arraylist_ups_down.get(i), arraylist_ups_up.get(i));
- arraylist_log.add(log);
- }
- }
- if (pwr_down!=0 && pwr_up!=0){
- System.out.println("pwr_down, pwr_up: " + pwr_down + ", " + pwr_up);
- for (int i = 0; i <pwr_down; i++){
- log = "Power\n" +
- "Down: " + arraylist_pwr_down.get(i) + "\n" +
- "Up : " + arraylist_pwr_up.get(i) + "\n" +
- "Down duration: " + getDuration(arraylist_pwr_down.get(i), arraylist_pwr_up.get(i));
- arraylist_log.add(log);
- }
- }
- if (inet_down!=0 && inet_up!=0){
- System.out.println("inet_down, inet_up: " + inet_down + ", " + inet_up);
- for (int i = 0; i <inet_down; i++) {
- log = "Internet\n" +
- "Down: " + arraylist_inet_down.get(i) + "\n" +
- "Up : " + arraylist_inet_up.get(i) + "\n" +
- "Down duration: " + getDuration(arraylist_inet_down.get(i), arraylist_inet_up.get(i));
- arraylist_log.add(log);
- }
- }
- return arraylist_log;
- }
- private String getDuration(String down, String up){
- String timeDuration = null;
- SimpleDateFormat formattedDtime = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
- try {
- Date dateUp = formattedDtime.parse(up);
- Date dateDown = formattedDtime.parse(down);
- long duration = dateUp.getTime()-dateDown.getTime();
- long diffSeconds = duration / 1000 % 60;
- System.out.println("diffSeconds: " + diffSeconds);
- long diffMinutes = duration / (60 * 1000) % 60;
- System.out.println("diffMinutes: " + diffMinutes);
- long diffHours = duration / (60 * 60 * 1000);
- System.out.println("diffHours: " + diffHours);
- int diffInDays = (int) (duration) / (1000 * 60 * 60 * 24);
- System.out.println("diffInDays: " + diffInDays);
- timeDuration = diffHours + "hrs, " + diffMinutes + "mins, " + diffSeconds + "secs";
- } catch (ParseException e){
- e.printStackTrace();
- }
- return timeDuration;
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.menu_main, menu);
- return true;
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
- int id = item.getItemId();
- //noinspection SimplifiableIfStatement
- if (id == R.id.sender_number) {
- startActivity(new Intent(getApplicationContext(), Sender.class));
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- @Override
- public void onStart() {
- super.onStart();
- // ATTENTION: This was auto-generated to implement the App Indexing API.
- // See https://g.co/AppIndexing/AndroidStudio for more information.
- client.connect();
- Action viewAction = Action.newAction(
- Action.TYPE_VIEW, // TODO: choose an action type.
- "MainMenu Page", // TODO: Define a title for the content shown.
- // TODO: If you have web page content that matches this app activity's content,
- // make sure this auto-generated web page URL is correct.
- // Otherwise, set the URL to null.
- Uri.parse("http://host/path"),
- // TODO: Make sure this auto-generated app URL is correct.
- Uri.parse("android-app://info.lina.netstatlog/http/host/path")
- );
- AppIndex.AppIndexApi.start(client, viewAction);
- }
- @Override
- public void onStop() {
- super.onStop();
- // ATTENTION: This was auto-generated to implement the App Indexing API.
- // See https://g.co/AppIndexing/AndroidStudio for more information.
- Action viewAction = Action.newAction(
- Action.TYPE_VIEW, // TODO: choose an action type.
- "MainMenu Page", // TODO: Define a title for the content shown.
- // TODO: If you have web page content that matches this app activity's content,
- // make sure this auto-generated web page URL is correct.
- // Otherwise, set the URL to null.
- Uri.parse("http://host/path"),
- // TODO: Make sure this auto-generated app URL is correct.
- Uri.parse("android-app://info.lina.netstatlog/http/host/path")
- );
- AppIndex.AppIndexApi.end(client, viewAction);
- client.disconnect();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement