app/src/main/java/ch/epfl/sweng/hostme/fragments/StreetViewFragment.java
package ch.epfl.sweng.hostme.fragments; import static ch.epfl.sweng.hostme.utils.Constants.ADDRESS; import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;import android.location.Address;import android.location.Geocoder;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup; import androidx.annotation.NonNull;import androidx.fragment.app.Fragment; import com.google.android.gms.maps.OnStreetViewPanoramaReadyCallback;import com.google.android.gms.maps.StreetViewPanorama;import com.google.android.gms.maps.SupportStreetViewPanoramaFragment;import com.google.android.gms.maps.model.LatLng;import com.google.android.gms.maps.model.StreetViewPanoramaCamera;import com.google.android.gms.maps.model.StreetViewSource; import java.util.List;import java.util.Objects; import ch.epfl.sweng.hostme.R;import ch.epfl.sweng.hostme.utils.IOnBackPressed; public class StreetViewFragment extends Fragment implements IOnBackPressed, OnStreetViewPanoramaReadyCallback { private String fullAddress; private SensorManager sensorManager; private Sensor orientationSensor; private SensorEventListener gyroscopeEventListener; private StreetViewPanorama streetViewPan; private float tilt; public StreetViewFragment() { } Method `onCreateView` has 29 lines of code (exceeds 25 allowed). Consider refactoring.
Method `onCreateView` has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring. public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.street_view, container, false); Bundle bundle = this.getArguments(); if (bundle != null) { this.fullAddress = bundle.getString(ADDRESS); } SupportStreetViewPanoramaFragment streetViewPanoramaFragment = (SupportStreetViewPanoramaFragment) getChildFragmentManager().findFragmentById(R.id.street_view_panorama); Objects.requireNonNull(streetViewPanoramaFragment).getStreetViewPanoramaAsync(this); this.sensorManager = (SensorManager) requireActivity().getSystemService(Context.SENSOR_SERVICE); this.orientationSensor = this.sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION); tilt = 0; gyroscopeEventListener = new SensorEventListener() { @Override public void onSensorChanged(SensorEvent sensorEvent) { if (sensorEvent.sensor.getType() == Sensor.TYPE_ORIENTATION) { if (streetViewPan != null) { StreetViewPanoramaCamera previous = streetViewPan.getPanoramaCamera(); StreetViewPanoramaCamera camera = new StreetViewPanoramaCamera.Builder(previous) .bearing(sensorEvent.values[0]) .build(); streetViewPan.animateTo(camera, 0); } } } @Override public void onAccuracyChanged(Sensor sensor, int i) { } }; return root; } @Override public void onStreetViewPanoramaReady(@NonNull StreetViewPanorama streetViewPanorama) { this.streetViewPan = streetViewPanorama; Geocoder coder = new Geocoder(this.getContext()); List<Address> address; try { address = coder.getFromLocationName(this.fullAddress, 1); Address location = address.get(0); LatLng latlng = new LatLng(location.getLatitude(), location.getLongitude()); this.streetViewPan.setPosition(latlng, StreetViewSource.OUTDOOR); this.streetViewPan.setZoomGesturesEnabled(false); this.streetViewPan.setPanningGesturesEnabled(false); } catch (Exception ignored) { } } @Override public void onResume() { super.onResume(); this.sensorManager.registerListener(gyroscopeEventListener, orientationSensor, SensorManager.SENSOR_DELAY_FASTEST); } @Override public void onPause() { super.onPause(); this.sensorManager.unregisterListener(gyroscopeEventListener); } @Override public boolean onBackPressed() { return false; }}