Reputation: 344
I'm using the library Android-Image-Cropper (which is great!) and there's something I can't quite understand.
I'm using the library for profile picture add/update using camera of from local filesystem (i.e. gallery, file manager).
Although not adding any storage uses-permission to my manifest I'm still able to capture a picture or pick one from the filesystem.
Is it something to do with me not saving the picture and extracting it from the URI directly to my SharedPreferences?
Permission part of Manifest file:
<uses-feature
android:name="android.hardware.bluetooth_le"
android:required="true" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
An example of use in a Fragment:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.userImage:
CropImage.activity()
.setGuidelines(CropImageView.Guidelines.ON)
.setCropShape(CropImageView.CropShape.OVAL)
.setFixAspectRatio(true)
.setMinCropWindowSize(150,150)
.setScaleType(CropImageView.ScaleType.CENTER)
.start(mActivity, this);
break;
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d("AddNewUserFragment", "[onActivityResult]");
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE)
{
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
Uri resultUri = result.getUri();
try {
newProfilePic = mPalPhotoManager.getThumbnail(resultUri);
String encodeUserImage = mPalPhotoManager.encodeImage(newProfilePic);
mPalPhotoManager.saveImageToPreferences(encodeUserImage);
mPalPhotoManager.setUserImage(newProfilePic, mUserImage);
saveImageToServer = true;
} catch (IOException e) {
e.printStackTrace();
}
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
result.getError().printStackTrace();
saveImageToServer = false;
}
}
}
Upvotes: 1
Views: 567
Reputation: 344
If anyone encounters this question, there is a thread regarding this exact issue in Libraries' closed issues here
Upvotes: 1