|
|
|
@ -1,14 +1,12 @@
|
|
|
|
package org.tasks.preferences;
|
|
|
|
package org.tasks.preferences;
|
|
|
|
|
|
|
|
|
|
|
|
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastOreo;
|
|
|
|
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastOreo;
|
|
|
|
import static java.util.Arrays.asList;
|
|
|
|
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastQ;
|
|
|
|
import static java.util.Collections.singletonList;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import android.Manifest;
|
|
|
|
import android.Manifest.permission;
|
|
|
|
import android.content.Context;
|
|
|
|
import android.content.Context;
|
|
|
|
import android.content.pm.PackageManager;
|
|
|
|
import android.content.pm.PackageManager;
|
|
|
|
import androidx.core.app.ActivityCompat;
|
|
|
|
import androidx.core.app.ActivityCompat;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import javax.inject.Inject;
|
|
|
|
import javax.inject.Inject;
|
|
|
|
import org.tasks.injection.ForApplication;
|
|
|
|
import org.tasks.injection.ForApplication;
|
|
|
|
import timber.log.Timber;
|
|
|
|
import timber.log.Timber;
|
|
|
|
@ -23,27 +21,24 @@ public class PermissionChecker {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public boolean canAccessCalendars() {
|
|
|
|
public boolean canAccessCalendars() {
|
|
|
|
return checkPermissions(
|
|
|
|
return checkPermissions(permission.READ_CALENDAR, permission.WRITE_CALENDAR);
|
|
|
|
asList(Manifest.permission.READ_CALENDAR, Manifest.permission.WRITE_CALENDAR));
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public boolean canAccessAccounts() {
|
|
|
|
public boolean canAccessAccounts() {
|
|
|
|
return atLeastOreo() || checkPermission(Manifest.permission.GET_ACCOUNTS);
|
|
|
|
return atLeastOreo() || checkPermissions(permission.GET_ACCOUNTS);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public boolean canAccessLocation() {
|
|
|
|
public boolean canAccessLocation() {
|
|
|
|
return checkPermission(Manifest.permission.ACCESS_FINE_LOCATION);
|
|
|
|
return atLeastQ()
|
|
|
|
|
|
|
|
? checkPermissions(permission.ACCESS_FINE_LOCATION, permission.ACCESS_BACKGROUND_LOCATION)
|
|
|
|
|
|
|
|
: checkPermissions(permission.ACCESS_FINE_LOCATION);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public boolean canAccessMic() {
|
|
|
|
public boolean canAccessMic() {
|
|
|
|
return checkPermission(Manifest.permission.RECORD_AUDIO);
|
|
|
|
return checkPermissions(permission.RECORD_AUDIO);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private boolean checkPermission(String permission) {
|
|
|
|
private boolean checkPermissions(String... permissions) {
|
|
|
|
return checkPermissions(singletonList(permission));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private boolean checkPermissions(List<String> permissions) {
|
|
|
|
|
|
|
|
for (String permission : permissions) {
|
|
|
|
for (String permission : permissions) {
|
|
|
|
if (ActivityCompat.checkSelfPermission(context, permission)
|
|
|
|
if (ActivityCompat.checkSelfPermission(context, permission)
|
|
|
|
!= PackageManager.PERMISSION_GRANTED) {
|
|
|
|
!= PackageManager.PERMISSION_GRANTED) {
|
|
|
|
|