Skip to content

Commit

Permalink
Merge pull request #43 from jainsahab/master
Browse files Browse the repository at this point in the history
runtime permissions for android #36
  • Loading branch information
Swati4star committed Oct 31, 2016
2 parents 982c96d + 6df20ff commit af9a97c
Show file tree
Hide file tree
Showing 4 changed files with 98 additions and 6 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ android {
defaultConfig {
applicationId "nsit.app.com.nsitapp"
minSdkVersion 14
targetSdkVersion 22
targetSdkVersion 23
versionCode 26
versionName "2.5"
}
Expand All @@ -36,7 +36,7 @@ dependencies {
compile 'org.lucasr.twowayview:twowayview:0.1.4'
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.squareup.okhttp3:okhttp:3.4.1'
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.squareup.picasso:picasso:2.5.2'
compile group: 'org.jsoup', name: 'jsoup', version: '1.8.3'
compile 'com.google.android.gms:play-services-maps:7.5.0'
Expand Down
28 changes: 28 additions & 0 deletions app/src/main/java/nsit/app/com/nsitapp/BaseActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package nsit.app.com.nsitapp;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;

import nsit.app.com.nsitapp.helper.AppPermissionChecker;

/**
* Created by prateekjain on 10/31/16.
*/
public class BaseActivity extends AppCompatActivity {
protected AppPermissionChecker appPermissionChecker;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
appPermissionChecker = new AppPermissionChecker(this);
}

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

}
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package nsit.app.com.nsitapp;

import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
Expand All @@ -25,12 +26,14 @@

import functions.ButtonAnimation;
import functions.Constant;
import nsit.app.com.nsitapp.helper.AppPermissionChecker;

/**
* Created by Sidharth Patro on 21-Jun-15.
*/
public class Hangout_collegeLocations extends AppCompatActivity implements Constant {
public class Hangout_collegeLocations extends BaseActivity implements Constant {

public static final int LOCATION_PERMISSION_REQUEST_CODE = 1;
private ArrayList<LocationGroup> LocationsGroupsList = new ArrayList<>();
private ExpandableListView listView;

Expand All @@ -47,8 +50,8 @@ public void onCreate(Bundle savedInstanceState)
this.listView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {

@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
public boolean onChildClick(ExpandableListView parent, final View v,
final int groupPosition, final int childPosition, long id) {
ButtonAnimation btnAnimation = new ButtonAnimation();
btnAnimation.animateButton(v, Hangout_collegeLocations.this);
String groupType = LocationsGroupsList.get(groupPosition).GroupType;
Expand Down Expand Up @@ -91,6 +94,17 @@ public boolean onChildClick(ExpandableListView parent, View v,
setTitle("College Hangouts");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
appPermissionChecker.handlePermission(Manifest.permission.ACCESS_FINE_LOCATION, LOCATION_PERMISSION_REQUEST_CODE, new AppPermissionChecker.PermissionRequestCallBack() {
@Override
public void permissionGranted() {
Log.d("DEBUG", "Location permission granted");
}

@Override
public void permissionDenied() {
Log.d("DEBUG", "Location permission denied");
}
});


}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package nsit.app.com.nsitapp.helper;

import android.app.Activity;
import android.content.pm.PackageManager;
import android.os.Build;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;

/**
* Created by prateekjain on 10/31/16.
*/
public class AppPermissionChecker {
private int permissionRequestCode;
private PermissionRequestCallBack callBack;
private Activity activity;

public AppPermissionChecker(Activity activity) {
this.activity = activity;
}

public void handlePermission(String permission, int permissionRequestCode, PermissionRequestCallBack callBack) {
this.permissionRequestCode = permissionRequestCode;
this.callBack = callBack;
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(activity, permission) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, new String[]{permission}, permissionRequestCode);
} else {
callBack.permissionGranted();
}
} else {
callBack.permissionGranted();
}
}

public void handlePermissionResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == permissionRequestCode && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
callBack.permissionGranted();
} else {
callBack.permissionDenied();
}

}

public interface PermissionRequestCallBack {
void permissionGranted();

void permissionDenied();
}

}

0 comments on commit af9a97c

Please sign in to comment.