yoesuv

Untitled

Feb 23rd, 2021
782
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package tubankab.diskominfo.taprose.menu.home.view;
  2.  
  3. import android.Manifest;
  4. import android.app.Activity;
  5. import android.content.Context;
  6. import android.content.Intent;
  7. import android.content.pm.PackageManager;
  8. import android.graphics.Bitmap;
  9. import android.graphics.Canvas;
  10. import android.graphics.Color;
  11. import android.graphics.PorterDuff;
  12. import android.graphics.drawable.Drawable;
  13. import android.location.Criteria;
  14. import android.location.Location;
  15. import android.location.LocationManager;
  16. import android.os.Build;
  17. import android.os.Bundle;
  18. import android.util.Log;
  19. import android.view.LayoutInflater;
  20. import android.view.Menu;
  21. import android.view.MenuInflater;
  22. import android.view.MenuItem;
  23. import android.view.View;
  24. import android.view.ViewGroup;
  25. import android.view.WindowManager;
  26. import android.widget.ImageView;
  27. import android.widget.TextView;
  28.  
  29. import androidx.annotation.Nullable;
  30. import androidx.core.app.ActivityCompat;
  31. import androidx.core.content.ContextCompat;
  32. import androidx.core.graphics.drawable.RoundedBitmapDrawable;
  33. import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
  34.  
  35. import com.anupcowkur.reservoir.Reservoir;
  36. import com.anupcowkur.reservoir.ReservoirGetCallback;
  37. import com.anupcowkur.reservoir.ReservoirPutCallback;
  38. import com.bumptech.glide.Glide;
  39. import com.bumptech.glide.request.animation.GlideAnimation;
  40. import com.bumptech.glide.request.target.BitmapImageViewTarget;
  41. import com.bumptech.glide.request.target.SimpleTarget;
  42. import com.google.android.gms.maps.CameraUpdateFactory;
  43. import com.google.android.gms.maps.GoogleMap;
  44. import com.google.android.gms.maps.OnMapReadyCallback;
  45. import com.google.android.gms.maps.SupportMapFragment;
  46. import com.google.android.gms.maps.model.BitmapDescriptorFactory;
  47. import com.google.android.gms.maps.model.CameraPosition;
  48. import com.google.android.gms.maps.model.LatLng;
  49. import com.google.android.gms.maps.model.Marker;
  50. import com.google.android.gms.maps.model.MarkerOptions;
  51. import com.google.android.material.bottomsheet.BottomSheetDialog;
  52.  
  53. import java.util.ArrayList;
  54. import java.util.Arrays;
  55. import java.util.Calendar;
  56. import java.util.HashSet;
  57. import java.util.List;
  58. import java.util.Set;
  59.  
  60. import tubankab.diskominfo.taprose.R;
  61. import tubankab.diskominfo.taprose.data.Constant;
  62. import tubankab.diskominfo.taprose.data.Profile;
  63. import tubankab.diskominfo.taprose.data.Settings;
  64. import tubankab.diskominfo.taprose.helper.ActivityHelper;
  65. import tubankab.diskominfo.taprose.helper.ActivityUtilHelper;
  66. import tubankab.diskominfo.taprose.helper.ForegroundRelativeLayout;
  67. import tubankab.diskominfo.taprose.menu.home.model.ListMapAduanModel;
  68. import tubankab.diskominfo.taprose.network.repositories.HomeRepository;
  69.  
  70. /**
  71.  *  Created by yusuf on 3/8/17.
  72.  */
  73.  
  74. public class FragmentMapsLaporan extends SupportMapFragment implements OnMapReadyCallback, GoogleMap.OnMarkerClickListener {
  75.  
  76.     private static final String RESERVOIR_MAPS_KEY = "reservoir_maps_key";
  77.     private static final int REQUEST_LOCATION_CODE = 21;
  78.  
  79.     private Activity activity;
  80.     private Marker marker;
  81.     private List<Marker> listMarker = new ArrayList<>();
  82.  
  83.     private View mCustomMarkerView;
  84.     private ImageView mMarkerImageView;
  85.     private LayoutInflater inflater;
  86.     private HomeRepository api;
  87.  
  88.     private boolean isAttached;
  89.  
  90.     BottomSheetDialog dialogDescription;
  91.     ForegroundRelativeLayout dialogDescriptionLayout;
  92.     ImageView dialogDescriptionImgView;
  93.     TextView dialogDescriptionStatus;
  94.     TextView dialogDescriptionName;
  95.     TextView dialogDescriptionTitle;
  96.     TextView dialogDescriptionDescript;
  97.     TextView dialogDescriptionLike;
  98.     TextView dialogDescriptionComment;
  99.     TextView dialogDescriptionFeedback;
  100.     TextView dialogDescriptionTime;
  101.  
  102.     @Override
  103.     public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
  104.         return super.onCreateView(layoutInflater, viewGroup, bundle);
  105.     }
  106.  
  107.     @Override
  108.     public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
  109.         super.onViewCreated(view, savedInstanceState);
  110.         this.activity = getActivity();
  111.         this.api = new HomeRepository(activity);
  112.         inflater = ((LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE));
  113.  
  114.         mCustomMarkerView = inflater.inflate(R.layout.item_maps_aduan, null);
  115.         mMarkerImageView = mCustomMarkerView.findViewById(R.id.ivHomeItemMapsAduan);
  116.         setupDescription();
  117.  
  118.         setHasOptionsMenu(true);
  119.         getMapAsync(this);
  120.     }
  121.  
  122.     @Override
  123.     public void onMapReady(GoogleMap googleMap) {
  124.         googleMap.getUiSettings().setCompassEnabled(true);
  125.         googleMap.getUiSettings().setZoomControlsEnabled(true);
  126.  
  127.         if (requestLocation()) {
  128.             //show user location
  129.             if (ActivityUtilHelper.isLocationEnabled(getContext())) {
  130.                 googleMap.setMyLocationEnabled(true);
  131.                 LocationManager locationManager = (LocationManager) getContext().getSystemService(Context.LOCATION_SERVICE);
  132.                 Criteria criteria = new Criteria();
  133.                 String bestProvider = locationManager.getBestProvider(criteria, true);
  134.                 if (ContextCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
  135.                         && ContextCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
  136.                     // TODO: Consider calling
  137.                     //    Activity#requestPermissions
  138.                     // here to request the missing permissions, and then overriding
  139.                     //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
  140.                     //                                          int[] grantResults)
  141.                     // to handle the case where the user grants the permission. See the documentation
  142.                     // for Activity#requestPermissions for more details.
  143.                     return;
  144.                 }
  145.                 Location location = locationManager.getLastKnownLocation(bestProvider);
  146.                 if(location!=null){
  147.                     CameraPosition cameraPosition = new CameraPosition.Builder()
  148.                             .target(new LatLng(location.getLatitude(), location.getLongitude()))
  149.                             .zoom(15f)
  150.                             .build();
  151.                     googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
  152.                 }else{
  153.                     googleMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(-7.041284, 112.064566)));
  154.                     googleMap.animateCamera(CameraUpdateFactory.zoomTo(9f));
  155.                 }
  156.             }else{
  157.                 googleMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(-7.041284, 112.064566)));
  158.                 googleMap.animateCamera(CameraUpdateFactory.zoomTo(9f));
  159.                 ActivityHelper.displayToast(getActivity(), getActivity().getResources().getString(R.string.all_msg_request_akses_lokasi), Constant.TOAST_WARNING);
  160.             }
  161.         }
  162.  
  163.         /*
  164.  
  165.         googleMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(-6.894959, 112.065155)));
  166.         googleMap.animateCamera(CameraUpdateFactory.zoomTo(10));*/
  167.  
  168.         googleMap.setOnMarkerClickListener(this);
  169.  
  170.         //start request data onMap Ready
  171.         requestData(googleMap);
  172.         loadLocalDataV2(googleMap);
  173.     }
  174.  
  175.     @Override
  176.     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
  177.         super.onCreateOptionsMenu(menu, inflater);
  178.         inflater.inflate(R.menu.menu_lap_maps, menu);
  179.     }
  180.  
  181.     @Override
  182.     public void onAttach(Activity activity) {
  183.         super.onAttach(activity);
  184.         isAttached = true;
  185.     }
  186.  
  187.     @Override
  188.     public void onDetach() {
  189.         super.onDetach();
  190.         isAttached = false;
  191.     }
  192.  
  193.     @Override
  194.     public boolean onOptionsItemSelected(MenuItem item) {
  195.         if(item.getItemId()==R.id.menuHomeMapsCategory){
  196.             Intent i = new Intent(getContext(), MainActivityMapsCategory.class);
  197.             startActivityForResult(i, Constant.MAP_CATEGORY_REQUEST);
  198.         }
  199.         return super.onOptionsItemSelected(item);
  200.     }
  201.  
  202.     @Override
  203.     public void onActivityResult(int requestCode, int resultCode, Intent data) {
  204.         Log.d(Constant.TAG_DEBUG,"fragment maps laporan on activity result");
  205.         super.onActivityResult(requestCode, resultCode, data);
  206.         if (requestCode == Constant.MAP_CATEGORY_REQUEST) {
  207.             if (data != null) {
  208.                 for (Marker mk : listMarker) {
  209.                     mk.setVisible(true);
  210.                 }
  211.                 Set<String> setListAduanId = new HashSet<>();
  212.                 if(data.getStringArrayListExtra("val").size()>0) {
  213.                     int[] arrayAduanID = new int[data.getStringArrayListExtra("val").size()];
  214.                     for (int i = 0; i < data.getStringArrayListExtra("val").size(); i++) {
  215.                         arrayAduanID[i] = Integer.parseInt(data.getStringArrayListExtra("val").get(i));
  216.                         setListAduanId.add(data.getStringArrayListExtra("val").get(i));
  217.                     }
  218.  
  219.                     Settings.saveListCategoryAduanId(setListAduanId);
  220.                     Log.d(Constant.TAG_DEBUG,"id category laporan : "+ Arrays.toString(arrayAduanID));
  221.  
  222.                     for(Marker mk:listMarker){
  223.                         mk.setVisible(false);
  224.                         TagObject tag = (TagObject) mk.getTag();
  225.                         for(int i:arrayAduanID){
  226.                             if(i==tag.categoryAduanId){
  227.                                 mk.setVisible(true);
  228.                             }
  229.                         }
  230.                     }
  231.                 }
  232.  
  233.             }
  234.         }
  235.     }
  236.  
  237.     @Override
  238.     public void onDestroyView() {
  239.         super.onDestroyView();
  240.         Settings.deleteListCategoryAduanId();
  241.         Settings.saveIsFromMapsLaporanCategory(false);
  242.     }
  243.  
  244.  
  245.     /**
  246.      * request data from server
  247.      * @param googleMap google map
  248.      */
  249.     private void requestData(final GoogleMap googleMap){
  250.  
  251.         Calendar cal = Calendar.getInstance();
  252.         int month = cal.get(Calendar.MONTH)+1 ;
  253.  
  254.         api.getListMapAduan(Profile.getToken(), Profile.getSocialId(), month, (context, object, status, statusCode) -> {
  255.             if (status) {
  256.                 ListMapAduanModel model = (ListMapAduanModel) object;
  257.                 if (model.lastUpdate != null) {
  258.                     if (!model.lastUpdate.equals(Settings.getLastUpdateMapAduan())) {
  259.                         //update localdata
  260.                         Settings.saveLastUpdateMapAduan(model.lastUpdate);
  261.                         Reservoir.putAsync(RESERVOIR_MAPS_KEY, model, new ReservoirPutCallback() {
  262.                             @Override
  263.                             public void onSuccess() {
  264.                                 loadLocalDataV2(googleMap);
  265.                             }
  266.  
  267.                             @Override
  268.                             public void onFailure(Exception e) {
  269.                                 Log.e(Constant.TAG_ERROR, "failed write object " + e.getMessage());
  270.                             }
  271.                         });
  272.                     }
  273.                 }
  274.             } else {
  275.                 ActivityHelper.displayToast(context, context.getResources().getString(R.string.all_msg_load_map_aduan_failed), Constant.TOAST_ERROR);
  276.             }
  277.         });
  278.     }
  279.  
  280.     /**
  281.      * load local data
  282.      * @param googleMap googleMap
  283.      */
  284.     public void loadLocalDataV2(final GoogleMap googleMap){
  285.         Reservoir.getAsync(RESERVOIR_MAPS_KEY, ListMapAduanModel.class, new ReservoirGetCallback<ListMapAduanModel>() {
  286.             @Override
  287.             public void onSuccess(ListMapAduanModel listMapAduanModel) {
  288.                 if(listMapAduanModel.data.size()>0) {
  289.                     for (int i = 0; i < listMapAduanModel.data.size(); i++) {
  290.  
  291. //                        JIKA TIDAK MEMILIKI TITIK LOKASI (LAT,LONG) , MAKA TIDAK DIMUNCULKAN DI PETA
  292.                         if(listMapAduanModel.data.get(i).lat != null &&  listMapAduanModel.data.get(i).lon != null) {
  293.                             int categoryID = 0;
  294.                             if(listMapAduanModel.data.get(i).aduanCategoryId != null){
  295.                                 categoryID = listMapAduanModel.data.get(i).aduanCategoryId;
  296.                             }else{
  297.                                 categoryID = listMapAduanModel.data.get(i).category.id;
  298.                             }
  299.                             addCustomMarker(googleMap, listMapAduanModel.data.get(i).id,
  300.                                     categoryID,
  301.                                     listMapAduanModel.data.get(i).category.iconMarker,
  302.                                     listMapAduanModel.data.get(i).lat,
  303.                                     listMapAduanModel.data.get(i).lon);
  304.                         }
  305.                     }
  306.                 }
  307.             }
  308.  
  309.             @Override
  310.             public void onFailure(Exception e) {
  311.                 Log.e(Constant.TAG_ERROR, "loadLocalDataV2 # get object failed "+e.getMessage());
  312.             }
  313.         });
  314.     }
  315.  
  316.     private void addCustomMarker(final GoogleMap googleMap, final int id, final int categoryId, final String picture, final float longitude, final float latitiude){
  317.         if(googleMap!=null) {
  318.             if(isAttached) {
  319.                 Glide.with(activity).
  320.                         load(picture)
  321.                         .asBitmap()
  322.                         .fitCenter()
  323.                         .into(new SimpleTarget<Bitmap>() {
  324.                             @Override
  325.                             public void onResourceReady(Bitmap bitmap, GlideAnimation<? super Bitmap> glideAnimation) {
  326.                                 MarkerOptions markerOpt = new MarkerOptions()
  327.                                         .position(new LatLng(longitude, latitiude))
  328.                                         .icon(BitmapDescriptorFactory.fromBitmap(getMarkerBitmapFromView(mCustomMarkerView, bitmap)));
  329.                                 marker = googleMap.addMarker(markerOpt);
  330.                                 TagObject tagObject = new TagObject(id, categoryId);
  331.                                 marker.setTag(tagObject);
  332.                                 listMarker.add(marker);
  333.                             }
  334.                         });
  335.             }
  336.  
  337.         }
  338.     }
  339.  
  340.  
  341.     private Bitmap getMarkerBitmapFromView(View view, Bitmap bitmap) {
  342.  
  343.         mMarkerImageView.setImageBitmap(bitmap);
  344.         view.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
  345.         view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
  346.         view.buildDrawingCache();
  347.         Bitmap returnedBitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(),
  348.                 Bitmap.Config.ARGB_8888);
  349.         Canvas canvas = new Canvas(returnedBitmap);
  350.         canvas.drawColor(Color.WHITE, PorterDuff.Mode.SRC_IN);
  351.         Drawable drawable = view.getBackground();
  352.         if (drawable != null)
  353.             drawable.draw(canvas);
  354.         view.draw(canvas);
  355.         return returnedBitmap;
  356.     }
  357.  
  358.     @Override
  359.     public boolean onMarkerClick(Marker marker) {
  360.         final TagObject tag = (TagObject) marker.getTag();
  361.         Reservoir.getAsync(RESERVOIR_MAPS_KEY, ListMapAduanModel.class, new ReservoirGetCallback<ListMapAduanModel>() {
  362.             @Override
  363.             public void onSuccess(ListMapAduanModel listMapAduanModel) {
  364.                 for(int i=0;i<listMapAduanModel.data.size();i++){
  365.                     if(listMapAduanModel.data.get(i).id==tag.aduanId){
  366.                         showDescription(listMapAduanModel.data.get(i));
  367.                         break;
  368.                     }
  369.                 }
  370.             }
  371.  
  372.             @Override
  373.             public void onFailure(Exception e) {
  374.                 Log.e(Constant.TAG_ERROR,"marker click error "+e.getMessage());
  375.             }
  376.         });
  377.         return false;
  378.     }
  379.  
  380.     private void setupDescription(){
  381.         dialogDescription = new BottomSheetDialog(activity);
  382.         View v = inflater.inflate(R.layout.view_aduan_location, null);
  383.         dialogDescription.setContentView(v);
  384.  
  385.         dialogDescriptionLayout = v.findViewById(R.id.layoutAduan);
  386.         dialogDescriptionImgView = v.findViewById(R.id.ivHomeViewAduanProfile);
  387.         dialogDescriptionStatus = v.findViewById(R.id.tvHomeViewAduanStatus);
  388.         dialogDescriptionName = v.findViewById(R.id.tvHomeViewAduanName);
  389.         dialogDescriptionTitle = v.findViewById(R.id.tvHomeViewAduanTitle);
  390.         dialogDescriptionDescript = v.findViewById(R.id.tvHomeViewAduanDescription);
  391.         dialogDescriptionLike = v.findViewById(R.id.tvHomeViewAduanLike);
  392.         dialogDescriptionComment = v.findViewById(R.id.tvHomeViewAduanComment);
  393.         dialogDescriptionFeedback = v.findViewById(R.id.tvHomeViewAduanFeedback);
  394.         dialogDescriptionTime = v.findViewById(R.id.tvHomeViewAduanTime);
  395.     }
  396.  
  397.     private void showDescription(final ListMapAduanModel.Datum dataAduan){
  398.         if (!dialogDescription.isShowing()){
  399.  
  400.             dialogDescriptionLayout.setOnClickListener(view -> {
  401.                 Intent i = new Intent(activity, MainMasyarakatDetail.class);
  402.                 i.putExtra(MainMasyarakatDetail.FROM_MAPS, true);
  403.                 i.putExtra(MainMasyarakatDetail.ID_ADUAN, dataAduan.id);
  404.                 //other data
  405.                 i.putExtra(MainMasyarakatDetail.USER_ID, dataAduan.createdBy.id);
  406.                 i.putExtra(MainMasyarakatDetail.TITLE, dataAduan.title);
  407.                 i.putExtra(MainMasyarakatDetail.PICTURE, dataAduan.picture);
  408.                 i.putExtra(MainMasyarakatDetail.LOCATION, dataAduan.location);
  409.                 i.putExtra(MainMasyarakatDetail.DESCRIPTION, dataAduan.description);
  410.                 i.putExtra(MainMasyarakatDetail.LIKE, dataAduan.totalLikes);
  411.                 i.putExtra(MainMasyarakatDetail.COMMENT, dataAduan.totalComments);
  412.                 i.putExtra(MainMasyarakatDetail.FEEDBACK, dataAduan.totalFeedback);
  413.                 i.putExtra(MainMasyarakatDetail.STATUS, dataAduan.status);
  414.                 i.putExtra(MainMasyarakatDetail.NAME_PERSON, dataAduan.createdBy.fullname);
  415.                 i.putExtra(MainMasyarakatDetail.IMG_PERSON, dataAduan.createdBy.picture);
  416.                 i.putExtra(MainMasyarakatDetail.CATEGORY, dataAduan.category.name);
  417.                 i.putExtra(MainMasyarakatDetail.IC_CATEGORY, dataAduan.category.icon);
  418.                 i.putExtra(MainMasyarakatDetail.CREATED_AT, dataAduan.createdAt);
  419.                 i.putExtra(MainMasyarakatDetail.NAME_CATEGORY, dataAduan.category.name);
  420.                 i.putExtra(MainMasyarakatDetail.IS_HIDDEN, dataAduan.isHidden);
  421.  
  422.                 activity.startActivity(i);
  423.             });
  424.  
  425.             Glide.with(dialogDescriptionImgView.getContext())
  426.                     .load(dataAduan.createdBy.picture).asBitmap().centerCrop()
  427.                     .placeholder(R.drawable.no_image_profile)
  428.                     .error(R.drawable.no_image_profile)
  429.                     .into(new BitmapImageViewTarget(dialogDescriptionImgView) {
  430.                         @Override
  431.                         protected void setResource(Bitmap resource) {
  432.                             //super.setResource(resource);
  433.                             RoundedBitmapDrawable circleImg =
  434.                                     RoundedBitmapDrawableFactory.create(dialogDescriptionImgView.getContext().getResources(), resource);
  435.                             circleImg.setCircular(true);
  436.                             dialogDescriptionImgView.setImageDrawable(circleImg);
  437.                         }
  438.                     });
  439.  
  440.             setStatus(dialogDescriptionStatus, String.valueOf(dataAduan.status));
  441.             dialogDescriptionName.setText(dataAduan.createdBy.fullname);
  442.             dialogDescriptionTitle.setText(dataAduan.title);
  443.             dialogDescriptionDescript.setText(dataAduan.description);
  444.             dialogDescriptionLike.setText(String.valueOf(dataAduan.totalLikes));
  445.             dialogDescriptionComment.setText(String.valueOf(dataAduan.totalComments));
  446.             dialogDescriptionFeedback.setText(String.valueOf(dataAduan.totalFeedback));
  447.  
  448.             String time = "";
  449.             time = ActivityHelper.getTimeHuman(dataAduan.createdAt);
  450.             dialogDescriptionTime.setText(time);
  451.  
  452.             dialogDescription.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
  453.             dialogDescription.show();
  454.         }
  455.     }
  456.  
  457.     private class TagObject{
  458.  
  459.         public int aduanId;
  460.         public int categoryAduanId;
  461.  
  462.         TagObject(int aduanId, int categoryAduanId){
  463.             this.aduanId = aduanId;
  464.             this.categoryAduanId = categoryAduanId;
  465.         }
  466.     }
  467.  
  468.     private void setStatus(TextView textView, String status){
  469.         if(status.toLowerCase().equals("menunggu")){
  470.             textView.setBackground(ContextCompat.getDrawable(activity, R.drawable.bg_laporan_status_red));
  471.         }else if(status.toLowerCase().equals("proses")){
  472.             textView.setBackground(ContextCompat.getDrawable(activity, R.drawable.bg_laporan_status_yellow));
  473.         }else{
  474.             textView.setBackground(ContextCompat.getDrawable(activity, R.drawable.bg_laporan_status_green));
  475.         }
  476.         textView.setText(status);
  477.     }
  478.  
  479.     private boolean requestLocation(){
  480.         if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
  481.             if(getActivity().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED){
  482.                 if(ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION)){
  483.                     ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION_CODE);
  484.                     return false;
  485.                 }else{
  486.                     ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION_CODE);
  487.                     return false;
  488.                 }
  489.             }else{
  490.                 return true;
  491.             }
  492.         }else{
  493.             return true;
  494.         }
  495.     }
  496. }
  497.  
RAW Paste Data