Refactor check...Permission() methods

This commit is contained in:
Aditya-Sood 2019-08-02 09:48:00 +05:30
parent 30b18553cb
commit 314ff811fd

View File

@ -26,6 +26,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
@ -175,9 +176,13 @@ public class LocalFileTransferActivity extends AppCompatActivity implements
if (item.getItemId() == R.id.menu_item_search_devices) { if (item.getItemId() == R.id.menu_item_search_devices) {
/* Permissions essential for this module */ /* Permissions essential for this module */
if (!checkCoarseLocationAccessPermission()) return true; if (!checkCoarseLocationAccessPermission()) {
return true;
}
if (!checkExternalStorageWritePermission()) return true; if (!checkExternalStorageWritePermission()) {
return true;
}
/* Initiate discovery */ /* Initiate discovery */
if (!wifiDirectManager.isWifiP2pEnabled()) { if (!wifiDirectManager.isWifiP2pEnabled()) {
@ -377,58 +382,52 @@ public class LocalFileTransferActivity extends AppCompatActivity implements
/* Helper methods used for checking permissions and states of services */ /* Helper methods used for checking permissions and states of services */
private boolean checkCoarseLocationAccessPermission() { // Required by Android to detect wifi-p2p peers private boolean checkCoarseLocationAccessPermission() { // Required by Android to detect wifi-p2p peers
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) { == PackageManager.PERMISSION_DENIED) {
if (shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_COARSE_LOCATION)) { if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION)) {
alertDialogShower.show(KiwixDialog.LocationPermissionRationale.INSTANCE, alertDialogShower.show(KiwixDialog.LocationPermissionRationale.INSTANCE,
new Function0<Unit>() { new Function0<Unit>() {
@Override public Unit invoke() { @Override public Unit invoke() {
requestPermissions(new String[] { Manifest.permission.ACCESS_COARSE_LOCATION }, ActivityCompat.requestPermissions(LocalFileTransferActivity.this, new String[] { Manifest.permission.ACCESS_COARSE_LOCATION },
PERMISSION_REQUEST_CODE_COARSE_LOCATION); PERMISSION_REQUEST_CODE_COARSE_LOCATION);
return Unit.INSTANCE; return Unit.INSTANCE;
} }
}); });
} else { } else {
requestPermissions(new String[] { Manifest.permission.ACCESS_COARSE_LOCATION }, ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.ACCESS_COARSE_LOCATION },
PERMISSION_REQUEST_CODE_COARSE_LOCATION); PERMISSION_REQUEST_CODE_COARSE_LOCATION);
} }
return false; return false;
}
}
} else {
return true; // Control reaches here: Either permission granted at install time, or at the time of request return true; // Control reaches here: Either permission granted at install time, or at the time of request
} }
}
private boolean checkExternalStorageWritePermission() { // To access and store the zims private boolean checkExternalStorageWritePermission() { // To access and store the zims
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) { == PackageManager.PERMISSION_DENIED) {
if (shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)) { if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
alertDialogShower.show(KiwixDialog.StoragePermissionRationale.INSTANCE, alertDialogShower.show(KiwixDialog.StoragePermissionRationale.INSTANCE,
new Function0<Unit>() { new Function0<Unit>() {
@Override public Unit invoke() { @Override public Unit invoke() {
requestPermissions(new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, ActivityCompat.requestPermissions(LocalFileTransferActivity.this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE },
PERMISSION_REQUEST_CODE_STORAGE_WRITE_ACCESS); PERMISSION_REQUEST_CODE_STORAGE_WRITE_ACCESS);
return Unit.INSTANCE; return Unit.INSTANCE;
} }
}); });
} else { } else {
requestPermissions(new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE },
PERMISSION_REQUEST_CODE_STORAGE_WRITE_ACCESS); PERMISSION_REQUEST_CODE_STORAGE_WRITE_ACCESS);
} }
return false; return false;
}
}
} else {
return true; // Control reaches here: Either permission granted at install time, or at the time of request return true; // Control reaches here: Either permission granted at install time, or at the time of request
} }
}
@Override @Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,