Skip to content

Commit dec26bd

Browse files
authored
Merge pull request #14 from pulkit4tech/Permissions
#10 : Added Permission request on go
2 parents a88036a + bd98b2e commit dec26bd

File tree

7 files changed

+43
-22
lines changed

7 files changed

+43
-22
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
location permissions for the 'MyLocation' functionality.
99
-->
1010
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
11+
1112
<application
1213
android:allowBackup="true"
1314
android:icon="@mipmap/ic_launcher"
6 KB
Binary file not shown.
Binary file not shown.

app/src/main/java/com/pulkit4tech/privy/MainActivity.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66

77
public class MainActivity extends AppCompatActivity {
88

9-
public static final String DEBUG = "DEBUGGER";
10-
119
@Override
1210
protected void onCreate(Bundle savedInstanceState) {
1311
super.onCreate(savedInstanceState);

app/src/main/java/com/pulkit4tech/privy/PrivyMapsActivity.java

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.pulkit4tech.privy;
22

3+
import android.Manifest;
34
import android.content.Context;
45
import android.content.pm.PackageManager;
56
import android.os.Bundle;
7+
import android.support.annotation.NonNull;
68
import android.support.v4.app.ActivityCompat;
79
import android.support.v7.app.ActionBarActivity;
810
import android.util.Log;
@@ -18,18 +20,19 @@
1820
import com.google.android.gms.maps.model.LatLng;
1921
import com.google.android.gms.maps.model.Marker;
2022
import com.google.android.gms.maps.model.MarkerOptions;
21-
import com.pulkit4tech.privy.Utilities.LocationServices;
2223
import com.pulkit4tech.privy.data.LocationData;
24+
import com.pulkit4tech.privy.utilities.LocationServices;
2325

24-
import static com.pulkit4tech.privy.MainActivity.DEBUG;
26+
import static com.pulkit4tech.privy.constants.Constants.DEBUG;
27+
import static com.pulkit4tech.privy.constants.Constants.CAMERA_ANIMATION_DURATION;
28+
import static com.pulkit4tech.privy.constants.Constants.MY_PERMISSIONS_REQUEST_FINE_LOCATIONS;
2529

2630
public class PrivyMapsActivity extends ActionBarActivity implements OnMapReadyCallback {
2731

2832
private GoogleMap mMap;
2933
private Context mContext;
3034
private Marker myLocationMarker;
3135
private CameraPosition MY_LOCATION_CAMERA_POS;
32-
private static final int CAMERA_ANIMATION_DURATION = 2500;
3336

3437
// My Location
3538
private LocationData myLocationData;
@@ -79,12 +82,17 @@ private void addMarkers() {
7982

8083
private void setUpMapInfo() {
8184

82-
if(!checkLocationEnabledPermission())
83-
return;
85+
if(!checkLocationEnabledPermission()){
86+
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},MY_PERMISSIONS_REQUEST_FINE_LOCATIONS);
87+
}else {
88+
setUpMyLocationMarker();
89+
}
8490

91+
}
8592

93+
private void setUpMyLocationMarker() {
94+
mMap.setMyLocationEnabled(true);
8695
getMyCurrentLocation();
87-
8896
}
8997

9098
private void getMyCurrentLocation(){
@@ -137,18 +145,25 @@ private void changeCamera(CameraUpdate update, GoogleMap.CancelableCallback call
137145
}
138146

139147
private boolean checkLocationEnabledPermission() {
140-
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
141-
// TODO: Consider calling
142-
// ActivityCompat#requestPermissions
143-
// here to request the missing permissions, and then overriding
144-
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
145-
// int[] grantResults)
146-
// to handle the case where the user grants the permission. See the documentation
147-
// for ActivityCompat#requestPermissions for more details.
148-
149-
return false;
148+
return ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED;
149+
}
150+
151+
@Override
152+
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
153+
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
154+
155+
switch (requestCode){
156+
case MY_PERMISSIONS_REQUEST_FINE_LOCATIONS:
157+
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
158+
setUpMyLocationMarker();
159+
}
160+
else {
161+
Toast.makeText(mContext,"Please give permission for location",Toast.LENGTH_SHORT).show();
162+
}
163+
break;
164+
165+
default:
166+
Log.d(DEBUG,"Some other request code: " + requestCode);
150167
}
151-
mMap.setMyLocationEnabled(true);
152-
return true;
153168
}
154169
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.pulkit4tech.privy.constants;
2+
3+
public class Constants {
4+
public static final String DEBUG = "DEBUGGER";
5+
public static final int CAMERA_ANIMATION_DURATION = 2500;
6+
public static final int MY_PERMISSIONS_REQUEST_FINE_LOCATIONS = 1;
7+
}

app/src/main/java/com/pulkit4tech/privy/Utilities/LocationServices.java renamed to app/src/main/java/com/pulkit4tech/privy/utilities/LocationServices.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.pulkit4tech.privy.Utilities;
1+
package com.pulkit4tech.privy.utilities;
22

33
import android.Manifest;
44
import android.content.Context;
@@ -36,7 +36,7 @@ public LocationData getCurrentLocation() {
3636
criteria.setCostAllowed(true);
3737
criteria.setPowerRequirement(Criteria.POWER_MEDIUM);
3838
String bestProvider = locationManager.getBestProvider(criteria, true);
39-
if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
39+
if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
4040
// TODO: Consider calling
4141
// ActivityCompat#requestPermissions
4242
// here to request the missing permissions, and then overriding

0 commit comments

Comments
 (0)