Вот задание по выбору самолета
Код: Выделить всё
package com.example.clear2go;Код: Выделить всё
import android.content.Intent;Код: Выделить всё
import android.os.Bundle;Код: Выделить всё
import android.util.Log;Код: Выделить всё
import android.view.Menu;Код: Выделить всё
import android.view.MenuItem;Код: Выделить всё
import android.view.View;Код: Выделить всё
import android.widget.ArrayAdapter;Код: Выделить всё
import android.widget.Spinner;Код: Выделить всё
import android.widget.Toast;Код: Выделить всё
import androidx.annotation.NonNull;Код: Выделить всё
import androidx.appcompat.app.AppCompatActivity;Код: Выделить всё
import androidx.appcompat.widget.Toolbar;Код: Выделить всё
import com.example.clear2go.databinding.ActivityProfileBinding;Код: Выделить всё
import com.google.firebase.auth.FirebaseAuth;Код: Выделить всё
import com.google.firebase.auth.FirebaseUser;Код: Выделить всё
import com.google.firebase.database.DataSnapshot;Код: Выделить всё
import com.google.firebase.database.DatabaseError;Код: Выделить всё
import com.google.firebase.database.DatabaseReference;Код: Выделить всё
import com.google.firebase.database.FirebaseDatabase;Код: Выделить всё
import com.google.firebase.database.ValueEventListener;Код: Выделить всё
import java.util.ArrayList;Код: Выделить всё
import java.util.List;Код: Выделить всё
public class ProfileActivity extends AppCompatActivity {Код: Выделить всё
private FirebaseAuth firebaseAuth;Код: Выделить всё
private DatabaseReference mDatabase;Код: Выделить всё
private DatabaseReference avioaneData;Код: Выделить всё
private static final String TAG="GOOGLE_SIGN_IN_TAG";Код: Выделить всё
private ActivityProfileBinding binding;Код: Выделить всё
String[] avioane ={"YR-5659","YR-PBJ","YR-5600","YR-5657"};Код: Выделить всё
String selectedPlane;Код: Выделить всё
@OverrideКод: Выделить всё
protected void onCreate(Bundle savedInstanceState) {Код: Выделить всё
super.onCreate(savedInstanceState);Код: Выделить всё
binding = ActivityProfileBinding.inflate(getLayoutInflater());Код: Выделить всё
setContentView(binding.getRoot());Код: Выделить всё
Toolbar toolbar = binding.toolbar;Код: Выделить всё
setSupportActionBar(toolbar);Код: Выделить всё
mDatabase= FirebaseDatabase.getInstance().getReference();Код: Выделить всё
avioaneData = mDatabase.getDatabase().getReference().child("Utilizare/Aviatie/Aerodromuri/AR_AT Bucuresti/Flota/Avioane");Код: Выделить всё
firebaseAuth = FirebaseAuth.getInstance();Код: Выделить всё
checkUser();Код: Выделить всё
Spinner selectPlane = binding.spinner;Код: Выделить всё
avioaneData.addValueEventListener(new ValueEventListener() {Код: Выделить всё
@OverrideКод: Выделить всё
public void onDataChange(@NonNull DataSnapshot snapshot) {Код: Выделить всё
Iterable airplanes = snapshot.getChildren();Код: Выделить всё
List updatedAvioane = new ArrayList();
for (DataSnapshot airplaneSnapshot : airplanes) {
String airplaneCode = airplaneSnapshot.getKey();
updatedAvioane.add(airplaneCode);
}
// Update the adapter with the new data
ArrayAdapter adapter = new ArrayAdapter(ProfileActivity.this, android.R.layout.simple_spinner_item, updatedAvioane);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter.notifyDataSetChanged();
selectPlane.setAdapter(adapter);
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
Log.d(TAG, "onCancelled: database error");
}
});
/*
selectPlane.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView parent, View view, int position, long id) {
selectedPlane = (String) parent.getItemAtPosition(position);
// Do something with the selectedName
}
@Override
public void onNothingSelected(AdapterView parent) {
}
});
*/
selectedPlane= (String) selectPlane.getSelectedItem();
binding.button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(ProfileActivity.this,"merge avionu..."+selectPlane.getSelectedItem(),Toast.LENGTH_SHORT).show();
Intent intent = new Intent(ProfileActivity.this, FlyActivity.class);
intent.putExtra("avion", (String) selectPlane.getSelectedItem());
startActivity(intent);
finish();
}
});
binding.button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(ProfileActivity.this,ControlActivity.class));
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if(item.getItemId()==R.id.idk1) {
firebaseAuth.signOut();
checkUser();
}
return true;
}
private void checkUser() {
FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
if(firebaseUser==null){
startActivity(new Intent(this,MainActivity.class));
finish();
}
}
Код: Выделить всё
}Код: Выделить всё
package com.example.clear2go;Код: Выделить всё
import android.Manifest;Код: Выделить всё
import android.content.Context;Код: Выделить всё
import android.content.Intent;Код: Выделить всё
import android.content.pm.PackageManager;Код: Выделить всё
import android.graphics.Color;Код: Выделить всё
import android.hardware.Sensor;Код: Выделить всё
import android.hardware.SensorManager;Код: Выделить всё
import android.location.Location;Код: Выделить всё
import android.location.LocationListener;Код: Выделить всё
import android.location.LocationManager;Код: Выделить всё
import android.os.Bundle;Код: Выделить всё
import android.view.View;Код: Выделить всё
import androidx.annotation.NonNull;Код: Выделить всё
import androidx.appcompat.app.AppCompatActivity;Код: Выделить всё
import androidx.core.app.ActivityCompat;Код: Выделить всё
import com.example.clear2go.databinding.ActivityFlyBinding;Код: Выделить всё
import com.google.android.gms.location.FusedLocationProviderClient;Код: Выделить всё
import com.google.android.gms.location.LocationServices;Код: Выделить всё
import com.google.firebase.auth.FirebaseAuth;Код: Выделить всё
import com.google.firebase.auth.FirebaseUser;Код: Выделить всё
import com.google.firebase.database.DataSnapshot;Код: Выделить всё
import com.google.firebase.database.DatabaseError;Код: Выделить всё
import com.google.firebase.database.DatabaseReference;Код: Выделить всё
import com.google.firebase.database.FirebaseDatabase;Код: Выделить всё
import com.google.firebase.database.ValueEventListener;Код: Выделить всё
public class FlyActivity extends AppCompatActivity implements LocationListener {Код: Выделить всё
private FirebaseAuth firebaseAuth;Код: Выделить всё
private static final int REQUEST_LOCATION_CODE = 1;Код: Выделить всё
private LocationManager locationManager;Код: Выделить всё
private SensorManager sensorManager;Код: Выделить всё
ActivityFlyBinding binding;Код: Выделить всё
private FusedLocationProviderClient locationClient;Код: Выделить всё
private DatabaseReference mDatabase;Код: Выделить всё
private DatabaseReference avionData;Код: Выделить всё
private DatabaseReference rq;Код: Выделить всё
Sensor pressureSensor;Код: Выделить всё
String avion;Код: Выделить всё
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent start = getIntent();
avion = start.getStringExtra("avion");
binding = ActivityFlyBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
locationClient = LocationServices.getFusedLocationProviderClient(this);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
pressureSensor = sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION_CODE);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
locationManager.requestLocationUpdates(locationManager.GPS_PROVIDER, 0, 0, this);
}else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
}
}
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
mDatabase = FirebaseDatabase.getInstance().getReference();
firebaseAuth = FirebaseAuth.getInstance();
FirebaseUser user = firebaseAuth.getCurrentUser();
rq = mDatabase.getDatabase().getReference().child("Requests");
avionData = mDatabase.getDatabase().getReference().child("Utilizare/Aviatie/Aerodromuri/AR_AT Bucuresti/Flota/Avioane/" + avion);
binding.engOn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
rq.child(avion).child("Pornire motor").setValue(false);
binding.engOn.setBackgroundColor(Color.parseColor("#FFA500"));
}
});
FirebaseDatabase.getInstance().getReference().child("Utilizare/Aviatie/Aerodromuri/AR_AT Bucuresti/Flota/Avioane/" + avion + "/Pornire motor").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()) {
if (snapshot.getValue(boolean.class) == true) {
binding.engOn.setBackgroundColor(-16711936);
binding.engOn.setActivated(true);
binding.taxi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
rq.child(avion).child("Rulaj").setValue(false);
binding.taxi.setBackgroundColor(Color.parseColor("#FFA500"));
}
});
FirebaseDatabase.getInstance().getReference().child("Utilizare/Aviatie/Aerodromuri/AR_AT Bucuresti/Flota/Avioane/" + avion + "/Rulaj").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()) {
if (snapshot.getValue(boolean.class) == true) {
binding.taxi.setBackgroundColor(-16711936);
binding.taxi.setActivated(true);
binding.lineIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
rq.child(avion).child("Intrare si aliniere").setValue(false);
binding.lineIn.setBackgroundColor(Color.parseColor("#FFA500"));
}
});
FirebaseDatabase.getInstance().getReference().child("Utilizare/Aviatie/Aerodromuri/AR_AT Bucuresti/Flota/Avioane/" + avion + "/Intrare si aliniere").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()) {
if (snapshot.getValue(boolean.class) == true) {
binding.lineIn.setBackgroundColor(-16711936);
binding.lineIn.setActivated(true);
binding.Takeoff.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
rq.child(avion).child("Plecare").setValue(false);
binding.Takeoff.setBackgroundColor(Color.parseColor("#FFA500"));
}
});
FirebaseDatabase.getInstance().getReference().child("Utilizare/Aviatie/Aerodromuri/AR_AT Bucuresti/Flota/Avioane/" + avion + "/Plecare").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()) {
if (snapshot.getValue(boolean.class) == true) {
binding.Takeoff.setBackgroundColor(-16711936);
binding.Takeoff.setActivated(true);
binding.land.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//rq.child(avion).setValue("Aterizare "+avion);
rq.child(avion).child("Aterizare").setValue(false);
binding.land.setBackgroundColor(Color.parseColor("#FFA500"));
}
});
FirebaseDatabase.getInstance().getReference().child("Utilizare/Aviatie/Aerodromuri/AR_AT Bucuresti/Flota/Avioane/" + avion + "/Aterizare").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()) {
if (snapshot.getValue(boolean.class) == true) {
binding.land.setBackgroundColor(-16711936);
binding.land.setActivated(true);
} else {
binding.land.setActivated(false);
binding.land.setBackgroundColor(-65536);
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
} else {
binding.Takeoff.setActivated(false);
binding.Takeoff.setBackgroundColor(-65536);
binding.land.setActivated(false);
binding.land.setBackgroundColor(-65536);
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
} else {
binding.lineIn.setActivated(false);
binding.lineIn.setBackgroundColor(-65536);
binding.Takeoff.setActivated(false);
binding.Takeoff.setBackgroundColor(-65536);
binding.land.setActivated(false);
binding.land.setBackgroundColor(-65536);
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
} else {
binding.taxi.setBackgroundColor(-65536);
binding.taxi.setActivated(false);
binding.lineIn.setActivated(false);
binding.lineIn.setBackgroundColor(-65536);
binding.Takeoff.setActivated(false);
binding.Takeoff.setBackgroundColor(-65536);
binding.land.setActivated(false);
binding.land.setBackgroundColor(-65536);
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
} else {
binding.engOn.setActivated(false);
binding.engOn.setBackgroundColor(-65536);
binding.taxi.setBackgroundColor(-65536);
binding.taxi.setActivated(false);
binding.lineIn.setActivated(false);
binding.lineIn.setBackgroundColor(-65536);
binding.Takeoff.setActivated(false);
binding.Takeoff.setBackgroundColor(-65536);
binding.land.setActivated(false);
binding.land.setBackgroundColor(-65536);
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
binding.exit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(FlyActivity.this, ProfileActivity.class);
startActivity(intent);
finish();
}
});
}
@Override
public void onLocationChanged(@NonNull Location location) {
binding.alt.setText(String.valueOf((int)location.getAltitude()));
binding.speed.setText(String.valueOf((int)location.getSpeed()));
avionData.child("lat").setValue(location.getLatitude());
avionData.child("lng").setValue(location.getLongitude());
}
Код: Выделить всё
}Подробнее здесь: https://stackoverflow.com/questions/784 ... al-in-my-a
Мобильная версия