Skip to content

Commit

Permalink
#10 : Added permission request on go
Browse files Browse the repository at this point in the history
  • Loading branch information
pulkit4tech committed Jan 3, 2017
1 parent a88036a commit bd98b2e
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 22 deletions.
1 change: 1 addition & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
location permissions for the 'MyLocation' functionality.
-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
Expand Down
Binary file added app/src/main/java/com/pulkit4tech/.DS_Store
Binary file not shown.
Binary file not shown.
2 changes: 0 additions & 2 deletions app/src/main/java/com/pulkit4tech/privy/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@

public class MainActivity extends AppCompatActivity {

public static final String DEBUG = "DEBUGGER";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Expand Down
51 changes: 33 additions & 18 deletions app/src/main/java/com/pulkit4tech/privy/PrivyMapsActivity.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.pulkit4tech.privy;

import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
Expand All @@ -18,18 +20,19 @@
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.pulkit4tech.privy.Utilities.LocationServices;
import com.pulkit4tech.privy.data.LocationData;
import com.pulkit4tech.privy.utilities.LocationServices;

import static com.pulkit4tech.privy.MainActivity.DEBUG;
import static com.pulkit4tech.privy.constants.Constants.DEBUG;
import static com.pulkit4tech.privy.constants.Constants.CAMERA_ANIMATION_DURATION;
import static com.pulkit4tech.privy.constants.Constants.MY_PERMISSIONS_REQUEST_FINE_LOCATIONS;

public class PrivyMapsActivity extends ActionBarActivity implements OnMapReadyCallback {

private GoogleMap mMap;
private Context mContext;
private Marker myLocationMarker;
private CameraPosition MY_LOCATION_CAMERA_POS;
private static final int CAMERA_ANIMATION_DURATION = 2500;

// My Location
private LocationData myLocationData;
Expand Down Expand Up @@ -79,12 +82,17 @@ private void addMarkers() {

private void setUpMapInfo() {

if(!checkLocationEnabledPermission())
return;
if(!checkLocationEnabledPermission()){
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},MY_PERMISSIONS_REQUEST_FINE_LOCATIONS);
}else {
setUpMyLocationMarker();
}

}

private void setUpMyLocationMarker() {
mMap.setMyLocationEnabled(true);
getMyCurrentLocation();

}

private void getMyCurrentLocation(){
Expand Down Expand Up @@ -137,18 +145,25 @@ private void changeCamera(CameraUpdate update, GoogleMap.CancelableCallback call
}

private boolean checkLocationEnabledPermission() {
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) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.

return false;
return ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED;
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);

switch (requestCode){
case MY_PERMISSIONS_REQUEST_FINE_LOCATIONS:
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
setUpMyLocationMarker();
}
else {
Toast.makeText(mContext,"Please give permission for location",Toast.LENGTH_SHORT).show();
}
break;

default:
Log.d(DEBUG,"Some other request code: " + requestCode);
}
mMap.setMyLocationEnabled(true);
return true;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.pulkit4tech.privy.constants;

public class Constants {
public static final String DEBUG = "DEBUGGER";
public static final int CAMERA_ANIMATION_DURATION = 2500;
public static final int MY_PERMISSIONS_REQUEST_FINE_LOCATIONS = 1;
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.pulkit4tech.privy.Utilities;
package com.pulkit4tech.privy.utilities;

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

0 comments on commit bd98b2e

Please sign in to comment.