From 7d11b87cce0912a4775218ad34c0f8dc0de1af10 Mon Sep 17 00:00:00 2001 From: Samuelford24 Date: Thu, 22 Apr 2021 10:38:46 -0400 Subject: [PATCH] added construction form, location --- app/build.gradle | 5 + app/src/main/AndroidManifest.xml | 4 +- .../Construction/ConstructionNav.java | 7 +- .../ConstructionReportsFragment.java | 3 +- .../InspectionForm.java | 25 ++- .../WaterWay/AppConstants.java | 8 + .../WaterWay/GpsUtils.java | 105 +++++++++++ .../WaterWay/WaterWayFormFragment.java | 170 ++++++++++++++++-- .../WaterWay/WaterWayNav.java | 4 +- .../main/res/layout/activity_construction.xml | 19 +- .../main/res/layout/activity_sample_fordm.xml | 2 +- 11 files changed, 312 insertions(+), 40 deletions(-) create mode 100644 app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/AppConstants.java create mode 100644 app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/GpsUtils.java diff --git a/app/build.gradle b/app/build.gradle index e22b778..890e88c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,6 +30,11 @@ android { } dependencies { + implementation 'com.google.maps.android:android-maps-utils:0.4.4' + implementation 'com.google.android.libraries.places:places:2.4.0' + implementation 'com.google.android.gms:play-services-location:18.0.0' + implementation 'com.google.android.gms:play-services-games:21.0.0' + implementation 'com.google.android.gms:play-services-maps:17.0.0' implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.material:material:1.2.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7da3a10..af3026d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,8 +1,10 @@ + - + diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/Construction/ConstructionNav.java b/app/src/main/java/com/sf/stormwaterutilityandroid/Construction/ConstructionNav.java index c04de13..c453155 100644 --- a/app/src/main/java/com/sf/stormwaterutilityandroid/Construction/ConstructionNav.java +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/Construction/ConstructionNav.java @@ -11,6 +11,7 @@ import com.google.android.material.bottomnavigation.BottomNavigationView; import com.google.firebase.auth.FirebaseAuth; +import com.sf.stormwaterutilityandroid.InspectionForm; import com.sf.stormwaterutilityandroid.R; import com.sf.stormwaterutilityandroid.WaterWay.WaterWayFormFragment; import com.sf.stormwaterutilityandroid.WaterWay.WaterWayReportFragment; @@ -18,7 +19,7 @@ public class ConstructionNav extends AppCompatActivity { private TextView mTextMessage; private FirebaseAuth auth; - final Fragment fragment1 = new ConstructionFormFragment(); + final Fragment fragment1 = new InspectionForm(); final Fragment fragment2 = new ConstructionReportsFragment(); // final Fragment fragment4 = new Admin_fragment(); @@ -65,8 +66,8 @@ protected void onCreate(Bundle savedInstanceState) { // fm.beginTransaction().add(R.id.main_container, fragment5, "5").hide(fragment5).commit(); // fm.beginTransaction().add(R.id.main_container, fragment4, "4").hide(fragment4).commit(); - fm.beginTransaction().add(R.id.main_containerConstruction, fragment2, "2").hide(fragment2).commit(); - fm.beginTransaction().add(R.id.main_containerConstruction, fragment1, "1").commit(); + fm.beginTransaction().add(R.id.include, fragment2, "2").hide(fragment2).commit(); + fm.beginTransaction().add(R.id.include, fragment1, "1").commit(); } diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/Construction/ConstructionReportsFragment.java b/app/src/main/java/com/sf/stormwaterutilityandroid/Construction/ConstructionReportsFragment.java index bf2b4c3..38f17f6 100644 --- a/app/src/main/java/com/sf/stormwaterutilityandroid/Construction/ConstructionReportsFragment.java +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/Construction/ConstructionReportsFragment.java @@ -45,7 +45,7 @@ public class ConstructionReportsFragment extends Fragment { private RecyclerView recyclerView; private Button btnSiteName, btnDate, btnInspectorName; //TODO: Need vars for formdata - +public ConstructionReportsFragment(){} //TODO: Need a var for tvReports: UITableView! List reportList = new ArrayList<>(); //TODO: LayoutInflator inflater, ViewGroup container,Might not be needed @@ -58,6 +58,7 @@ public class ConstructionReportsFragment extends Fragment { // List reportList = new ArrayList<>(); //TODO: LayoutInflator inflater, ViewGroup container,Might not be needed //This was a public void + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java b/app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java index 35c17db..e202713 100644 --- a/app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/InspectionForm.java @@ -1,9 +1,13 @@ package com.sf.stormwaterutilityandroid; import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; import android.widget.Button; import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.RecyclerView; import com.google.firebase.firestore.FirebaseFirestore; @@ -22,22 +26,27 @@ import me.riddhimanadib.formmaster.model.FormElementTextSingleLine; import me.riddhimanadib.formmaster.model.FormHeader; -public class InspectionForm extends AppCompatActivity { +public class InspectionForm extends Fragment { private RecyclerView recyclerView; private Button submitButton; - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_sample_fordm); - recyclerView = findViewById(R.id.recyclerView2); - // submitButton = findViewById(R.id.submitButton); + public InspectionForm() { + } + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.activity_sample_fordm, container, false); + recyclerView = view.findViewById(R.id.recyclerView2); +submitButton = view.findViewById(R.id.submitButton); setupForm(); + return view; } + + private void uploadToFirestore(ConstructionFormData constructionFormData) { FirebaseFirestore db = FirebaseFirestore.getInstance(); db.collection("ConstructionSiteForm") @@ -47,7 +56,7 @@ private void uploadToFirestore(ConstructionFormData constructionFormData) { } private void setupForm() { - FormBuilder formBuilder = new FormBuilder(this, recyclerView); + FormBuilder formBuilder = new FormBuilder(getContext(), recyclerView); FormElementTextSingleLine projectTextField = FormElementTextSingleLine.createInstance().setTitle("Project/Contact:").setHint("Enter text here"); FormElementTextSingleLine addressTextField = FormElementTextSingleLine.createInstance().setTitle("Address/Lot#(s):").setHint("Enter text here"); diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/AppConstants.java b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/AppConstants.java new file mode 100644 index 0000000..daa78cd --- /dev/null +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/AppConstants.java @@ -0,0 +1,8 @@ +package com.sf.stormwaterutilityandroid.WaterWay; + +public class AppConstants { + + public static final int LOCATION_REQUEST = 1000; + public static final int GPS_REQUEST = 1001; +} + diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/GpsUtils.java b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/GpsUtils.java new file mode 100644 index 0000000..df52314 --- /dev/null +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/GpsUtils.java @@ -0,0 +1,105 @@ +package com.sf.stormwaterutilityandroid.WaterWay; + +import android.annotation.SuppressLint; +import android.app.Activity; +import android.content.Context; +import android.content.IntentSender; +import android.location.LocationManager; +import android.util.Log; +import android.widget.Toast; + +import androidx.annotation.NonNull; + +import com.google.android.gms.common.api.ApiException; +import com.google.android.gms.common.api.ResolvableApiException; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.location.LocationSettingsRequest; +import com.google.android.gms.location.LocationSettingsResponse; +import com.google.android.gms.location.LocationSettingsStatusCodes; +import com.google.android.gms.location.SettingsClient; +import com.google.android.gms.tasks.OnFailureListener; +import com.google.android.gms.tasks.OnSuccessListener; + +public class GpsUtils { + + + private static final String TAG = "GPSUTILS" ; + private Context context; + private SettingsClient mSettingsClient; + private LocationSettingsRequest mLocationSettingsRequest; + private LocationManager locationManager; + private LocationRequest locationRequest; + + public GpsUtils(Context context) { + this.context = context; + locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); + mSettingsClient = LocationServices.getSettingsClient(context); + + locationRequest = LocationRequest.create(); + locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + locationRequest.setInterval(10 * 1000); + locationRequest.setFastestInterval(2 * 1000); + LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder() + .addLocationRequest(locationRequest); + mLocationSettingsRequest = builder.build(); + + //************************** + builder.setAlwaysShow(true); //this is the key ingredient + //************************** + } + + // method for turn on GPS + public void turnGPSOn(onGpsListener onGpsListener) { + + if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { + if (onGpsListener != null) { + onGpsListener.gpsStatus(true); + } + } else { + mSettingsClient + .checkLocationSettings(mLocationSettingsRequest) + .addOnSuccessListener((Activity) context, new OnSuccessListener() { + @SuppressLint("MissingPermission") + @Override + public void onSuccess(LocationSettingsResponse locationSettingsResponse) { + + // GPS is already enable, callback GPS status through listener + if (onGpsListener != null) { + onGpsListener.gpsStatus(true); + } + } + }) + .addOnFailureListener((Activity) context, new OnFailureListener() { + @Override + public void onFailure(@NonNull Exception e) { + int statusCode = ((ApiException) e).getStatusCode(); + switch (statusCode) { + case LocationSettingsStatusCodes.RESOLUTION_REQUIRED: + + try { + // Show the dialog by calling startResolutionForResult(), and check the + // result in onActivityResult(). + ResolvableApiException rae = (ResolvableApiException) e; + rae.startResolutionForResult((Activity) context, AppConstants.GPS_REQUEST); + } catch (IntentSender.SendIntentException sie) { + Log.i(TAG, "PendingIntent unable to execute request."); + } + break; + case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE: + String errorMessage = "Location settings are inadequate, and cannot be " + + "fixed here. Fix in Settings."; + Log.e(TAG, errorMessage); + + Toast.makeText((Activity) context, errorMessage, Toast.LENGTH_LONG).show(); + } + } + }); + } + } + + public interface onGpsListener { + void gpsStatus(boolean isGPSEnable); + } + +} diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayFormFragment.java b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayFormFragment.java index 9a7c4a6..b6eae58 100644 --- a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayFormFragment.java +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayFormFragment.java @@ -1,6 +1,11 @@ package com.sf.stormwaterutilityandroid.WaterWay; +import android.Manifest; +import android.annotation.SuppressLint; +import android.app.Activity; import android.content.Intent; +import android.content.pm.PackageManager; +import android.location.Location; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -9,12 +14,21 @@ import android.widget.Toast; import androidx.annotation.NonNull; +import androidx.core.app.ActivityCompat; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.RecyclerView; import com.addisonelliott.segmentedbutton.SegmentedButton; +import com.google.android.gms.location.FusedLocationProviderClient; +import com.google.android.gms.location.LocationCallback; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationResult; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.maps.CameraUpdateFactory; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.MarkerOptions; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import com.google.firebase.Timestamp; @@ -47,7 +61,11 @@ public class WaterWayFormFragment extends Fragment { - + private FusedLocationProviderClient mFusedLocationClient; + boolean isContinue = true; + private double wayLatitude = 0.0, wayLongitude = 0.0; + private LocationRequest locationRequest; + private LocationCallback locationCallback; FormElementTextSingleLine name, site, date, outfallValue, longitudeValue, latitudeValue, invertElevationValue,other1,other2,comments; FormElementPickerSingle subSize, smothering, silting, rootwads, overhangingVeg, oxbows, downed, shallows, waterPlants, deepPools, logs, boulders, undercutBanks, sinuosity, natural, riparianWidth, landUse, bankErosion, streamShading, deepestPool, velocityForm, riffleDepth, riffleSub; FormElementSwitch flow, odor, color, polutants, obstruction, maintenance, screen,rountineEvaluation,illicitDischarge,noIllicitDischarge,complaintInvestigation,furtherActionNeeded; @@ -142,10 +160,12 @@ public class WaterWayFormFragment extends Fragment { double riffleDepthVal = 0.0; double riffleSubstrateVal = 0.0; //Tolerant Form + double intolerantVal = 0.0; double modTolerantVal = 0.0; double fairTolerantVal = 0.0; double veryTolerantVal = 0.0; + boolean isGPS = false; RecyclerView rvGen, rvDWS, rvHQ, rvBM,rvCT; FormBuilder fbGEn,fbDWS,fbBM,fbHQ,fbCT; SegmentedButton gen,dws,ct,bm,hq; @@ -186,6 +206,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, gen.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + rvGen.setVisibility(View.VISIBLE); rvDWS.setVisibility(View.INVISIBLE); rvHQ.setVisibility(View.INVISIBLE); @@ -196,6 +217,56 @@ public void onClick(View v) { } }); + mFusedLocationClient = LocationServices.getFusedLocationProviderClient(getContext()); + + locationRequest = LocationRequest.create(); + locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + locationRequest.setInterval(10 * 1000); // 10 seconds + locationRequest.setFastestInterval(5 * 1000); // 5 seconds + + new GpsUtils(getContext()).turnGPSOn(new GpsUtils.onGpsListener() { + @Override + public void gpsStatus(boolean isGPSEnable) { + // turn on GPS + isGPS = isGPSEnable; + } + }); + + locationCallback = new LocationCallback() { + @Override + public void onLocationResult(LocationResult locationResult) { + if (locationResult == null) { + System.out.println("231"+locationResult); + return; + } + for (Location location : locationResult.getLocations()) { + if (location != null) { + + wayLatitude = location.getLatitude(); + longitude = String.valueOf(location.getLongitude()); + latitude = String.valueOf(location.getLatitude()); + wayLongitude = location.getLongitude(); + longitudeValue.setValue(String.valueOf(location.getLongitude())); + latitudeValue.setValue(String.valueOf(location.getLatitude())); + System.out.println(wayLatitude); + System.out.println(wayLongitude); + } + + if (!isContinue && mFusedLocationClient != null) { + mFusedLocationClient.removeLocationUpdates(locationCallback); + } + + } + } + }; + if (!isGPS) { + Toast.makeText(getContext(), "Please turn on GPS", Toast.LENGTH_SHORT).show(); + + } else { + isContinue = false; + + getLocation(); + } submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -446,42 +517,37 @@ private double calculateWQI() { System.out.println("WQI"+WQIScore); return WQIScore; } - private void setupFormGen() { + + + private void setupFormGen() { boolgen = true; fbGEn = new FormBuilder(getContext(), rvGen); formItemsGen = new ArrayList<>(); FormHeader title = (FormHeader) new FormHeader().setTitle("Report"); formItemsGen.add(title); - name = FormElementTextSingleLine.createInstance().setTitle("Name of Inspector").setValue(""); formItemsGen.add(name); - site = FormElementTextSingleLine.createInstance().setTitle("Name of site").setValue(""); formItemsGen.add(site); - - FormElementPickerDate date = FormElementPickerDate.createInstance().setTitle("Date Row").setDateFormat("dd/MM/yyyy").setValue(""); + date = FormElementTextSingleLine.createInstance().setTitle("Date").setHint("mm-dd-yyyy").setValue(""); formItemsGen.add(date); - +//date = FormElementPickerDate.createInstance().setTitle("Date Row").setDateFormat("mm-dd-YYYY").setValue(""); + //formItemsGen.add(date); outfallValue = FormElementTextSingleLine.createInstance().setTitle("Outfall").setValue("0"); formItemsGen.add(outfallValue); - longitudeValue = FormElementTextSingleLine.createInstance().setTitle("Longitude").setValue("0"); formItemsGen.add(longitudeValue); - latitudeValue = FormElementTextSingleLine.createInstance().setTitle("Latitude").setValue("0"); formItemsGen.add(latitudeValue); - invertElevationValue = FormElementTextSingleLine.createInstance().setTitle("Invert Elevation").setValue("0"); formItemsGen.add(invertElevationValue); - List pipeTypeOptions = new ArrayList(); pipeTypeOptions.add("Enclosed Pipe"); pipeTypeOptions.add("Open Channel"); typeValue = FormElementPickerMulti.createInstance().setTitle("Type").setOptions(pipeTypeOptions); formItemsGen.add(typeValue); - List pipeSizeOptions = new ArrayList(); pipeSizeOptions.add("4\""); pipeSizeOptions.add("6\""); @@ -494,9 +560,8 @@ private void setupFormGen() { pipeSizeOptions.add("20\""); pipeSizeOptions.add("24\""); pipeSizeOptions.add("36\""); - pipeSizeValue = FormElementPickerMulti.createInstance().setTitle("Pipe Size").setOptions(pipeSizeOptions); + pipeSizeValue = FormElementPickerMulti.createInstance().setTitle("Pipe Size").setOptions(pipeSizeOptions); formItemsGen.add(pipeSizeValue); - List channelWidthOptions = new ArrayList(); channelWidthOptions.add("2\""); channelWidthOptions.add("4\""); @@ -511,7 +576,6 @@ private void setupFormGen() { channelBottomWidthValue = FormElementPickerMulti.createInstance().setTitle("Channel Bottom Width") .setOptions(channelWidthOptions); formItemsGen.add(channelBottomWidthValue); - List receivingWaterOptions = new ArrayList(); receivingWaterOptions.add("Turkey Creek"); receivingWaterOptions.add("Deep River"); @@ -522,7 +586,6 @@ private void setupFormGen() { receivingWaterOptions.add("Niles Ditch"); receivingWaterOptions.add("Beaver Dam Ditch"); receivingWaterOptions.add("Kaiser Ditch"); - receiving = FormElementPickerMulti.createInstance().setTitle("Receiving Water").setOptions(receivingWaterOptions); formItemsGen.add(receiving); complaintInvestigation = FormElementSwitch.createInstance().setTitle("Complaint Investigation").setSwitchTexts("Yes", "No"); @@ -539,6 +602,8 @@ private void setupFormGen() { formItemsGen.add(comments); fbGEn.addFormElements(formItemsGen); } + + private void setupFormHQ() { boolhq = true; fbHQ = new FormBuilder(getContext(),rvHQ); @@ -791,4 +856,77 @@ public boolean convertToBoolean(String s) { return false; } } + private void getLocation() { + isContinue = true; + if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED + && ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, + AppConstants.LOCATION_REQUEST); + + } else { + if (isContinue) { + mFusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, null); + } else { + mFusedLocationClient.getLastLocation().addOnSuccessListener(getActivity(), location -> { + if (location != null) { + wayLatitude = location.getLatitude(); + longitude = String.valueOf(location.getLongitude()); + latitude = String.valueOf(location.getLatitude()); + wayLongitude = location.getLongitude(); + longitudeValue.setValue(String.valueOf(location.getLongitude())); + latitudeValue.setValue(String.valueOf(location.getLatitude())); + + // txtLocation.setText(String.format(Locale.US, "%s - %s", wayLatitude, wayLongitude)); + } else { + mFusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, null); + } + }); + } + } + } + + @SuppressLint("MissingPermission") + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + switch (requestCode) { + case 1000: { + // If request is cancelled, the result arrays are empty. + if (grantResults.length > 0 + && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + + + if (isContinue) { + mFusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, null); + } else { + mFusedLocationClient.getLastLocation().addOnSuccessListener(getActivity(), location -> { + if (location != null) { + wayLatitude = location.getLatitude(); + wayLongitude = location.getLongitude(); + LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); + //setting marker to false, so it doesn't show + + + } else { + mFusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, null); + } + }); + } + } else { + Toast.makeText(getContext(), "Permission denied", Toast.LENGTH_SHORT).show(); + } + break; + } + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == Activity.RESULT_OK) { + if (requestCode == AppConstants.GPS_REQUEST) { + isGPS = true; // flag maintain before get location + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayNav.java b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayNav.java index 2aa475b..4d1dfe0 100644 --- a/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayNav.java +++ b/app/src/main/java/com/sf/stormwaterutilityandroid/WaterWay/WaterWayNav.java @@ -19,6 +19,8 @@ public class WaterWayNav extends AppCompatActivity { private Button signout2; private TextView mTextMessage; private FirebaseAuth auth; + + final Fragment fragment1 = new WaterWayFormFragment(); final Fragment fragment2 = new WaterWayReportFragment(); @@ -67,7 +69,7 @@ protected void onCreate(Bundle savedInstanceState) { // fm.beginTransaction().add(R.id.main_container, fragment5, "5").hide(fragment5).commit(); // fm.beginTransaction().add(R.id.main_container, fragment4, "4").hide(fragment4).commit(); - fm.beginTransaction().add(R.id.main_container, fragment2, "2").hide(fragment2).commit(); + fm.beginTransaction().add(R.id.main_container, fragment2, "2").hide(fragment2).commit(); fm.beginTransaction().add(R.id.main_container, fragment1, "1").commit(); } diff --git a/app/src/main/res/layout/activity_construction.xml b/app/src/main/res/layout/activity_construction.xml index 11a7b2d..29e3b03 100644 --- a/app/src/main/res/layout/activity_construction.xml +++ b/app/src/main/res/layout/activity_construction.xml @@ -1,16 +1,17 @@ + android:layout_height="match_parent"> @@ -23,13 +24,15 @@ + app:layout_constraintTop_toBottomOf="@+id/appBarLayout" /> @@ -37,12 +40,10 @@ android:id="@+id/navigationConstruction" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginEnd="0dp" - android:layout_marginStart="0dp" android:background="?android:attr/windowBackground" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintLeft_toLeftOf="parent" - app:layout_constraintRight_toRightOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" app:menu="@menu/construction_nav_menu" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_sample_fordm.xml b/app/src/main/res/layout/activity_sample_fordm.xml index 7b0f1ef..7557eec 100644 --- a/app/src/main/res/layout/activity_sample_fordm.xml +++ b/app/src/main/res/layout/activity_sample_fordm.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".SampleFordm"> + >