package de.edotzlaff.schockwelle; import androidx.annotation.NonNull; import androidx.fragment.app.FragmentActivity; import android.app.Dialog; import android.content.Intent; import android.net.wifi.WifiManager; import android.os.Bundle; import android.provider.Settings; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.Toast; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GoogleApiAvailability; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; public class MainActivity extends FragmentActivity { private static final String TAG = "MainActivity"; private static final int ERROR_DIALOG_REQUEST = 9001; private DatabaseReference mDatenbank; Datenbank db = new Datenbank(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (isServiceOK()){ //Für Dantenbank db.setMyWaveSpeed(2000); db.setMyAndroidID(Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID)); WifiManager wm = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE); int ip = wm.getConnectionInfo().getIpAddress(); db.setMyIPadress(String.format("%d.%d.%d.%d",(ip & 0xff),(ip >> 8 & 0xff),(ip >> 16 & 0xff), (ip >> 24 & 0xff))); db.getDatafromDBnoListener(); init(); } } private void init(){ Button btnEarthquake = (Button) findViewById(R.id.btnEarthquake); Button btnSensor = (Button) findViewById(R.id.btnSensor); Button btnMuster = (Button) findViewById(R.id.buttonDatenBankMuster); Button btnLeer = (Button) findViewById(R.id.buttonDatenBankLeeren); Button btnReset = (Button) findViewById(R.id.buttonReset); btnEarthquake.setEnabled(true); btnEarthquake.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, EarthquakeMapsActivity.class); btnEarthquake.setEnabled(true); btnSensor.setEnabled(true); startActivity(intent); } }); btnSensor.setEnabled(true); btnSensor.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, SensorMapsActivity.class); btnSensor.setEnabled(true); btnEarthquake.setEnabled(true); startActivity(intent); } }); btnMuster.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { btnEarthquake.setEnabled(true); btnSensor.setEnabled(true); btnLeer.setEnabled(true); btnMuster.setEnabled(true); btnReset.setEnabled(true); db.setNonNativeCaseInDB(); //deviceInitDataBase(); //TODO: ARON } }); btnLeer.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { btnEarthquake.setEnabled(true); btnSensor.setEnabled(true); btnMuster.setEnabled(false); btnReset.setEnabled(true); btnLeer.setEnabled(true); //datenBankLeeren(); //TODO: ARON db.setEmptyDataInDBcompletlyForNativeUse(); System.out.println(db.getCommand()); } }); btnReset.setEnabled(true); btnReset.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //getDataBaseValuesNoListener(); //TODO ARON btnMuster.setEnabled(true); btnLeer.setEnabled(true); btnEarthquake.setEnabled(true); btnSensor.setEnabled(true); } }); } public boolean isServiceOK(){ Log.d(TAG, "isServicesOK(): checking google services version"); int available = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(MainActivity.this); if (available== ConnectionResult.SUCCESS){ Log.d(TAG,"isServicesOK: Google Play Services is working"); return true; } else if (GoogleApiAvailability.getInstance().isUserResolvableError(available)){ Log.d(TAG, "isServicesOK(): an error occured but we can fix it"); Dialog dialog = GoogleApiAvailability.getInstance().getErrorDialog(MainActivity.this, available, ERROR_DIALOG_REQUEST); dialog.show(); } else { Toast.makeText(this, "You can`t make map request", Toast.LENGTH_SHORT).show(); } return false; } public void deviceInitDataBase() { mDatenbank = FirebaseDatabase.getInstance().getReference(); Devices d1 = new Devices("","","",49.58967957913626,11.011387124069765,false,false,0,1000,10); //Erlangen 49.58967957913626, 11.011387124069765 Devices d2 = new Devices("","","",48.7560280895443,11.425157702952347,false,false,0,1000,10); //Ingolstadt 48.7560280895443, 11.425157702952347 Devices d3 = new Devices("","","",48.16958655466396,11.617418429524394,false,false,0,1000,10); //München 48.16958655466396, 11.617418429524394 Devices d4 = new Devices("","","",45.55620112204013,12.342516140205387,false,false,0,1000,10); //Venedig 45.55620112204013, 12.342516140205387 Devices d5 = new Devices("","","",41.9204784730154,12.651055829215638,false,false,0,1000,10); //Rom 41.9204784730154, 12.651055829215638 mDatenbank.child("aron").child("IDG1").setValue(d1); mDatenbank.child("aron").child("IDG2").setValue(d2); mDatenbank.child("aron").child("IDG3").setValue(d3); mDatenbank.child("aron").child("IDG4").setValue(d4); mDatenbank.child("aron").child("IDG5").setValue(d4); mDatenbank.child("aron").child("IDG5").setValue(d5); } public void getDataBaseValuesNoListener() { mDatenbank = FirebaseDatabase.getInstance().getReference(); mDatenbank.child("aron").get().addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { if (!task.isSuccessful()) { System.out.println("Error getting data: " + task.getException()); } else { testProcess(task.getResult()); } } }); } public void datenBankLeeren() { mDatenbank = FirebaseDatabase.getInstance().getReference(); for (int i = 1; i<=5; i++) { mDatenbank.child("aron").child("IDG" + i).child("a_androidid").setValue(""); mDatenbank.child("aron").child("IDG" + i).child("b_localdatetime").setValue(""); mDatenbank.child("aron").child("IDG" + i).child("c_ip").setValue(""); mDatenbank.child("aron").child("IDG" + i).child("d_breitengrad").setValue(""); mDatenbank.child("aron").child("IDG" + i).child("e_laengengrad").setValue(""); mDatenbank.child("aron").child("IDG" + i).child("f_nativegps").setValue(true); mDatenbank.child("aron").child("IDG" + i).child("g_vibration").setValue(false); mDatenbank.child("aron").child("IDG" + i).child("h_timestamp").setValue(""); mDatenbank.child("aron").child("IDG" + i).child("i_amplitude").setValue(""); } } public void testProcess(DataSnapshot data) { mDatenbank = FirebaseDatabase.getInstance().getReference().child("aron"); } }