Skip to content

Commit

Permalink
Merge pull request #71 from stantmob/task/INS-1085
Browse files Browse the repository at this point in the history
Task/INS-1085
  • Loading branch information
cleylsonsouza authored Oct 25, 2023
2 parents 6e15aff + b2d858f commit 25d0f54
Show file tree
Hide file tree
Showing 6 changed files with 84 additions and 30 deletions.
14 changes: 10 additions & 4 deletions cardshowviewtakenpicturesview/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,19 @@

package="br.com.stant.libraries.cardshowviewtakenpicturesview">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28" />

<uses-feature android:name="android.hardware.camera" />

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import android.view.View;
import android.widget.TextView;

import androidx.annotation.RequiresApi;
import androidx.core.app.ActivityCompat;

import java.util.ArrayList;
Expand All @@ -25,25 +26,55 @@

public class AppPermissions {

public static final Integer PERMISSIONS_CODE = 1;
public static final Integer PERMISSIONS_CODE = 100;
private static boolean doNotAskIsChecked = false;
private static String[] deniedPermissions;
private static final String[] PERMISSIONS = {Manifest.permission.READ_PHONE_STATE
, Manifest.permission.CAMERA
, Manifest.permission.READ_EXTERNAL_STORAGE
, Manifest.permission.WRITE_EXTERNAL_STORAGE
, Manifest.permission.ACCESS_COARSE_LOCATION
, Manifest.permission.ACCESS_FINE_LOCATION};
private static final String[] PERMISSIONS = {
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.VIBRATE};
@RequiresApi(api = Build.VERSION_CODES.Q)
private static final String[] PERMISSIONS_SDK_29 = {
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.VIBRATE};
@RequiresApi(api = Build.VERSION_CODES.TIRAMISU)
private static final String[] PERMISSIONS_SDK_33 = {
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.CAMERA,
Manifest.permission.READ_MEDIA_IMAGES,
Manifest.permission.READ_MEDIA_VIDEO,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.VIBRATE};

private static String[] getPermissions() {
switch (Build.VERSION.SDK_INT) {
case Build.VERSION_CODES.TIRAMISU:
return PERMISSIONS_SDK_33;
case Build.VERSION_CODES.Q:
return PERMISSIONS_SDK_29;
default:
return PERMISSIONS;
}
}

public static void requestPermissionsFor(Activity activity) {
if (isNotApiAndroidM()) return;

buildPermissionDialog(activity).show();
}

private static Dialog buildPermissionDialog(Activity activity) {
Dialog informationDialog = new Dialog(activity);
informationDialog.setContentView(R.layout.permission_information_dialog);
informationDialog.setCancelable(false);

if (donNotAskIsChecked()) {
configureDialogs(activity, informationDialog, View.VISIBLE, R.string.permission_information_dialog_never_checked_message);
Expand Down Expand Up @@ -95,23 +126,25 @@ private static void requestPermission(Activity activity) {
ActivityCompat.requestPermissions(activity, deniedPermissions, PERMISSIONS_CODE);
deniedPermissions = null;
} else if (!hasPermissionsOn(activity.getApplicationContext()) && deniedPermissions == null) {
ActivityCompat.requestPermissions(activity, PERMISSIONS, PERMISSIONS_CODE);
ActivityCompat.requestPermissions(activity, getPermissions(), PERMISSIONS_CODE);
}
}

@SuppressWarnings("BooleanMethodIsAlwaysInverted")
public static boolean hasPermissionsOn(Context context) {
boolean result = true;
List<String> deniedPermissions = new ArrayList<>();
for (String permission : PERMISSIONS) {
int permissionStatus = ActivityCompat.checkSelfPermission(context, permission);
if (permissionStatus != PackageManager.PERMISSION_GRANTED) {

for (String permission : getPermissions()) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
deniedPermissions.add(permission);
result = false;
}
}

AppPermissions.deniedPermissions = new String[deniedPermissions.size()];
deniedPermissions.toArray(AppPermissions.deniedPermissions);

return result;
}

Expand Down
6 changes: 3 additions & 3 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ org.gradle.jvmargs=-Xmx1536m
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.daemon=true
org.gradle.parallel=true
COMPILE_SDK_VERSION=30
COMPILE_SDK_VERSION=33
BUILD_TOOLS_VERSION=30.0.1
MIN_SDK_VERSION=19
TARGET_SDK_VERSION=30
MIN_SDK_VERSION=21
TARGET_SDK_VERSION=33
VERSION_CODE=30
VERSION_NAME=2.11.5
android.useAndroidX=true
Expand Down
6 changes: 6 additions & 0 deletions jitpack.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# configuration file for building snapshots and releases with jitpack.io
jdk:
- openjdk11
before_install:
- sdk install java 11.0.10-open
- sdk use java 11.0.10-open
21 changes: 14 additions & 7 deletions sample/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,19 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="br.com.stant.libraries.card_show_taken_pictures_view" >

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28" />
<uses-feature android:name="android.hardware.camera" />

<application
Expand All @@ -19,8 +26,8 @@
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" >
android:theme="@style/AppTheme.NoActionBar"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package br.com.stant.libraries.card_show_taken_pictures_view;

import android.content.Intent;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import androidx.core.content.ContextCompat;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import androidx.databinding.DataBindingUtil;

import java.util.Date;
import java.util.List;
Expand Down Expand Up @@ -50,8 +51,8 @@ public void onCancel() {
if (gallery != null)
mBinding.cardShowViewTakenPicturesView.setCardImages(gallery.getImages());

mBinding.cardShowViewTakenPicturesView.setBinding(mBinding.cardShowViewTakenPicturesView,
"Denis Vieira", new Date());
//noinspection AccessStaticViaInstance
mBinding.cardShowViewTakenPicturesView.setBinding(mBinding.cardShowViewTakenPicturesView, "Denis Vieira", new Date());
// mBinding.cardShowViewTakenPicturesView.setImagesQuantityLimit(15, null);
mBinding.cardShowViewTakenPicturesView.setIsMultipleGallerySelection(true);
mBinding.cardShowViewTakenPicturesView.enableDragAndDrop();
Expand All @@ -65,6 +66,7 @@ public void onCancel() {

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mBinding.cardShowViewTakenPicturesView.addImageOnActivityResult(requestCode, resultCode, data);
}

Expand Down

0 comments on commit 25d0f54

Please sign in to comment.