Skip to content

Commit

Permalink
Automatic update of widgets, themes and modules
Browse files Browse the repository at this point in the history
  • Loading branch information
uicontent committed May 31, 2024
1 parent d2a279a commit 869b319
Show file tree
Hide file tree
Showing 40 changed files with 666 additions and 2,196 deletions.
Binary file modified StarterApp_NativeMobile.mpr
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
// This file was generated by Mendix Studio Pro.
//
// WARNING: Only the following code will be retained when actions are regenerated:
// - the import list
// - the code between BEGIN USER CODE and END USER CODE
// - the code between BEGIN EXTRA CODE and END EXTRA CODE
// Other code you write will be lost the next time you deploy the project.
import "mx-global";
import { Big } from "big.js";
import { Platform, NativeModules } from 'react-native';
import { PERMISSIONS as PERMISSIONS$1, check } from 'react-native-permissions';

// BEGIN EXTRA CODE
const PERMISSIONS = {
ANDROID: {
...PERMISSIONS$1.ANDROID,
SCHEDULE_EXACT_ALARM: "android.permission.SCHEDULE_EXACT_ALARM"
},
IOS: PERMISSIONS$1.IOS
};
function mapPermissionName(permissionName) {
if (Platform.OS === "ios") {
const nameWithoutSuffix = permissionName.replace("_IOS", "");
return PERMISSIONS.IOS[nameWithoutSuffix];
}
const nameWithoutSuffix = permissionName.replace("_ANDROID", "");
return PERMISSIONS.ANDROID[nameWithoutSuffix];
}
async function checkScheduleAlarm() {
if (NativeModules && !NativeModules.ScheduleEA) {
return Promise.reject(new Error("ScheduleEA module is not available in your app"));
}
if (Platform.OS !== "android") {
return Promise.resolve("granted");
}
const checkPermissionPromise = new Promise(resolve => {
NativeModules.ScheduleEA.checkPermission((isEnabled) => {
resolve(isEnabled);
});
});
return checkPermissionPromise.then(result => {
return Promise.resolve(result ? "granted" : "blocked");
});
}
// END EXTRA CODE

/**
* @param {"NativeMobileResources.Enum_Permissions.APP_TRACKING_TRANSPARENCY_IOS"|"NativeMobileResources.Enum_Permissions.BLUETOOTH_PERIPHERAL_IOS"|"NativeMobileResources.Enum_Permissions.CAMERA_IOS"|"NativeMobileResources.Enum_Permissions.CALENDARS_IOS"|"NativeMobileResources.Enum_Permissions.CONTACTS_IOS"|"NativeMobileResources.Enum_Permissions.FACE_ID_IOS"|"NativeMobileResources.Enum_Permissions.LOCATION_ALWAYS_IOS"|"NativeMobileResources.Enum_Permissions.LOCATION_WHEN_IN_USE_IOS"|"NativeMobileResources.Enum_Permissions.MEDIA_LIBRARY_IOS"|"NativeMobileResources.Enum_Permissions.MICROPHONE_IOS"|"NativeMobileResources.Enum_Permissions.MOTION_IOS"|"NativeMobileResources.Enum_Permissions.PHOTO_LIBRARY_IOS"|"NativeMobileResources.Enum_Permissions.PHOTO_LIBRARY_ADD_ONLY_IOS"|"NativeMobileResources.Enum_Permissions.REMINDERS_IOS"|"NativeMobileResources.Enum_Permissions.SIRI_IOS"|"NativeMobileResources.Enum_Permissions.SPEECH_RECOGNITION_IOS"|"NativeMobileResources.Enum_Permissions.STOREKIT_IOS"|"NativeMobileResources.Enum_Permissions.ACCEPT_HANDOVER_ANDROID"|"NativeMobileResources.Enum_Permissions.ACCESS_BACKGROUND_LOCATION_ANDROID"|"NativeMobileResources.Enum_Permissions.ACCESS_COARSE_LOCATION_ANDROID"|"NativeMobileResources.Enum_Permissions.ACCESS_FINE_LOCATION_ANDROID"|"NativeMobileResources.Enum_Permissions.ACCESS_MEDIA_LOCATION_ANDROID"|"NativeMobileResources.Enum_Permissions.ACTIVITY_RECOGNITION_ANDROID"|"NativeMobileResources.Enum_Permissions.ADD_VOICEMAIL_ANDROID"|"NativeMobileResources.Enum_Permissions.ANSWER_PHONE_CALLS_ANDROID"|"NativeMobileResources.Enum_Permissions.BLUETOOTH_ADVERTISE_ANDROID"|"NativeMobileResources.Enum_Permissions.BLUETOOTH_CONNECT_ANDROID"|"NativeMobileResources.Enum_Permissions.BLUETOOTH_SCAN_ANDROID"|"NativeMobileResources.Enum_Permissions.BODY_SENSORS_ANDROID"|"NativeMobileResources.Enum_Permissions.CALL_PHONE_ANDROID"|"NativeMobileResources.Enum_Permissions.CAMERA_ANDROID"|"NativeMobileResources.Enum_Permissions.GET_ACCOUNTS_ANDROID"|"NativeMobileResources.Enum_Permissions.PROCESS_OUTGOING_CALLS_ANDROID"|"NativeMobileResources.Enum_Permissions.READ_CALENDAR_ANDROID"|"NativeMobileResources.Enum_Permissions.READ_CALL_LOG_ANDROID"|"NativeMobileResources.Enum_Permissions.READ_CONTACTS_ANDROID"|"NativeMobileResources.Enum_Permissions.READ_EXTERNAL_STORAGE_ANDROID"|"NativeMobileResources.Enum_Permissions.READ_PHONE_NUMBERS_ANDROID"|"NativeMobileResources.Enum_Permissions.READ_PHONE_STATE_ANDROID"|"NativeMobileResources.Enum_Permissions.READ_SMS_ANDROID"|"NativeMobileResources.Enum_Permissions.RECEIVE_MMS_ANDROID"|"NativeMobileResources.Enum_Permissions.RECEIVE_SMS_ANDROID"|"NativeMobileResources.Enum_Permissions.RECEIVE_WAP_PUSH_ANDROID"|"NativeMobileResources.Enum_Permissions.RECORD_AUDIO_ANDROID"|"NativeMobileResources.Enum_Permissions.SEND_SMS_ANDROID"|"NativeMobileResources.Enum_Permissions.USE_SIP_ANDROID"|"NativeMobileResources.Enum_Permissions.WRITE_CALENDAR_ANDROID"|"NativeMobileResources.Enum_Permissions.WRITE_CALL_LOG_ANDROID"|"NativeMobileResources.Enum_Permissions.WRITE_CONTACTS_ANDROID"|"NativeMobileResources.Enum_Permissions.WRITE_EXTERNAL_STORAGE_ANDROID"|"NativeMobileResources.Enum_Permissions.SCHEDULE_EXACT_ALARM_ANDROID"} permission - This field is required.
* @returns {Promise.<"NativeMobileResources.Enum_PermissionStatus.unavailable"|"NativeMobileResources.Enum_PermissionStatus.denied"|"NativeMobileResources.Enum_PermissionStatus.limited"|"NativeMobileResources.Enum_PermissionStatus.granted"|"NativeMobileResources.Enum_PermissionStatus.blocked">}
*/
export async function CheckGenericPermission(permission) {
// BEGIN USER CODE
if (!permission) {
return Promise.reject(new Error("Input parameter 'permission' is required"));
}
const mappedPermissionName = mapPermissionName(permission);
if (!mappedPermissionName) {
console.error(`${permission} permission is not found`);
return Promise.resolve("unavailable");
}
return mappedPermissionName === PERMISSIONS.ANDROID.SCHEDULE_EXACT_ALARM
? checkScheduleAlarm()
: check(mappedPermissionName);
// END USER CODE
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"nativeDependencies": {
"react-native-permissions": "3.3.1"
}
}
Original file line number Diff line number Diff line change
@@ -1,40 +1,62 @@
import { Alert, Platform, NativeModules } from 'react-native';
import { PERMISSIONS as PERMISSIONS$1, check, RESULTS, request, openSettings } from 'react-native-permissions';
import { getPermission } from 'react-native-schedule-exact-alarm-permission';

// This file was generated by Mendix Studio Pro.
//
// WARNING: Only the following code will be retained when actions are regenerated:
// - the import list
// - the code between BEGIN USER CODE and END USER CODE
// - the code between BEGIN EXTRA CODE and END EXTRA CODE
// Other code you write will be lost the next time you deploy the project.
import { Big } from "big.js";
import { Alert, Platform } from 'react-native';
import { check, RESULTS, request, openSettings, PERMISSIONS } from 'react-native-permissions';

// BEGIN EXTRA CODE
const PERMISSIONS = {
ANDROID: {
...PERMISSIONS$1.ANDROID,
SCHEDULE_EXACT_ALARM: "android.permission.SCHEDULE_EXACT_ALARM"
},
IOS: PERMISSIONS$1.IOS
};
function handleBlockedPermission(permission) {
const permissionName = permission.replace(/_IOS|_ANDROID/, "");
Alert.alert("", `Please allow ${permissionName} access`, [
{ text: "go to settings", onPress: () => openSettings() },
{ text: "cancel" }
]);
if (permissionName === "SCHEDULE_EXACT_ALARM") {
Alert.alert("", "Please allow setting alarms and reminders", [
{ text: "Go to alarm settings", onPress: () => getPermission(), isPreferred: true },
{ text: "Cancel", style: "cancel" }
]);
}
else {
Alert.alert("", `Please allow ${permissionName} access`, [
{ text: "Go to settings", onPress: () => openSettings(), isPreferred: true },
{ text: "Cancel", style: "cancel" }
]);
}
}
function mapPermissionName(permissionName) {
if (Platform.OS === "ios") {
const nameWithoutSuffix = permissionName.replace("_IOS", "");
return PERMISSIONS.IOS[nameWithoutSuffix];
}
else if (Platform.OS === "android") {
const nameWithoutSuffix = permissionName.replace("_ANDROID", "");
return PERMISSIONS.ANDROID[nameWithoutSuffix];
const nameWithoutSuffix = permissionName.replace("_ANDROID", "");
return PERMISSIONS.ANDROID[nameWithoutSuffix];
}
async function checkScheduleAlarm() {
if (NativeModules && !NativeModules.ScheduleEA) {
return Promise.reject(new Error("ScheduleEA module is not available in your app"));
}
if (Platform.OS !== "android") {
return Promise.resolve("granted");
}
const checkPermissionPromise = new Promise(resolve => {
NativeModules.ScheduleEA.checkPermission((isEnabled) => {
resolve(isEnabled);
});
});
return checkPermissionPromise.then(result => {
return Promise.resolve(result ? "granted" : "blocked");
});
}
// END EXTRA CODE

/**
* @param {"NativeMobileResources.Enum_Permissions.APP_TRACKING_TRANSPARENCY_IOS"|"NativeMobileResources.Enum_Permissions.BLUETOOTH_PERIPHERAL_IOS"|"NativeMobileResources.Enum_Permissions.CAMERA_IOS"|"NativeMobileResources.Enum_Permissions.CALENDARS_IOS"|"NativeMobileResources.Enum_Permissions.CONTACTS_IOS"|"NativeMobileResources.Enum_Permissions.FACE_ID_IOS"|"NativeMobileResources.Enum_Permissions.LOCATION_ALWAYS_IOS"|"NativeMobileResources.Enum_Permissions.LOCATION_WHEN_IN_USE_IOS"|"NativeMobileResources.Enum_Permissions.MEDIA_LIBRARY_IOS"|"NativeMobileResources.Enum_Permissions.MICROPHONE_IOS"|"NativeMobileResources.Enum_Permissions.MOTION_IOS"|"NativeMobileResources.Enum_Permissions.PHOTO_LIBRARY_IOS"|"NativeMobileResources.Enum_Permissions.PHOTO_LIBRARY_ADD_ONLY_IOS"|"NativeMobileResources.Enum_Permissions.REMINDERS_IOS"|"NativeMobileResources.Enum_Permissions.SIRI_IOS"|"NativeMobileResources.Enum_Permissions.SPEECH_RECOGNITION_IOS"|"NativeMobileResources.Enum_Permissions.STOREKIT_IOS"|"NativeMobileResources.Enum_Permissions.ACCEPT_HANDOVER_ANDROID"|"NativeMobileResources.Enum_Permissions.ACCESS_BACKGROUND_LOCATION_ANDROID"|"NativeMobileResources.Enum_Permissions.ACCESS_COARSE_LOCATION_ANDROID"|"NativeMobileResources.Enum_Permissions.ACCESS_FINE_LOCATION_ANDROID"|"NativeMobileResources.Enum_Permissions.ACCESS_MEDIA_LOCATION_ANDROID"|"NativeMobileResources.Enum_Permissions.ACTIVITY_RECOGNITION_ANDROID"|"NativeMobileResources.Enum_Permissions.ADD_VOICEMAIL_ANDROID"|"NativeMobileResources.Enum_Permissions.ANSWER_PHONE_CALLS_ANDROID"|"NativeMobileResources.Enum_Permissions.BLUETOOTH_ADVERTISE_ANDROID"|"NativeMobileResources.Enum_Permissions.BLUETOOTH_CONNECT_ANDROID"|"NativeMobileResources.Enum_Permissions.BLUETOOTH_SCAN_ANDROID"|"NativeMobileResources.Enum_Permissions.BODY_SENSORS_ANDROID"|"NativeMobileResources.Enum_Permissions.CALL_PHONE_ANDROID"|"NativeMobileResources.Enum_Permissions.CAMERA_ANDROID"|"NativeMobileResources.Enum_Permissions.GET_ACCOUNTS_ANDROID"|"NativeMobileResources.Enum_Permissions.PROCESS_OUTGOING_CALLS_ANDROID"|"NativeMobileResources.Enum_Permissions.READ_CALENDAR_ANDROID"|"NativeMobileResources.Enum_Permissions.READ_CALL_LOG_ANDROID"|"NativeMobileResources.Enum_Permissions.READ_CONTACTS_ANDROID"|"NativeMobileResources.Enum_Permissions.READ_EXTERNAL_STORAGE_ANDROID"|"NativeMobileResources.Enum_Permissions.READ_PHONE_NUMBERS_ANDROID"|"NativeMobileResources.Enum_Permissions.READ_PHONE_STATE_ANDROID"|"NativeMobileResources.Enum_Permissions.READ_SMS_ANDROID"|"NativeMobileResources.Enum_Permissions.RECEIVE_MMS_ANDROID"|"NativeMobileResources.Enum_Permissions.RECEIVE_SMS_ANDROID"|"NativeMobileResources.Enum_Permissions.RECEIVE_WAP_PUSH_ANDROID"|"NativeMobileResources.Enum_Permissions.RECORD_AUDIO_ANDROID"|"NativeMobileResources.Enum_Permissions.SEND_SMS_ANDROID"|"NativeMobileResources.Enum_Permissions.USE_SIP_ANDROID"|"NativeMobileResources.Enum_Permissions.WRITE_CALENDAR_ANDROID"|"NativeMobileResources.Enum_Permissions.WRITE_CALL_LOG_ANDROID"|"NativeMobileResources.Enum_Permissions.WRITE_CONTACTS_ANDROID"|"NativeMobileResources.Enum_Permissions.WRITE_EXTERNAL_STORAGE_ANDROID"} permission - This field is required.
* @returns {Promise.<"NativeMobileResources.Enum_PermissionStatus.unavailable"|"NativeMobileResources.Enum_PermissionStatus.denied"|"NativeMobileResources.Enum_PermissionStatus.limited"|"NativeMobileResources.Enum_PermissionStatus.granted"|"NativeMobileResources.Enum_PermissionStatus.blocked">}
* @param {"NanoflowCommons.Enum_Permissions.APP_TRACKING_TRANSPARENCY_IOS"|"NanoflowCommons.Enum_Permissions.BLUETOOTH_PERIPHERAL_IOS"|"NanoflowCommons.Enum_Permissions.CAMERA_IOS"|"NanoflowCommons.Enum_Permissions.CALENDARS_IOS"|"NanoflowCommons.Enum_Permissions.CONTACTS_IOS"|"NanoflowCommons.Enum_Permissions.FACE_ID_IOS"|"NanoflowCommons.Enum_Permissions.LOCATION_ALWAYS_IOS"|"NanoflowCommons.Enum_Permissions.LOCATION_WHEN_IN_USE_IOS"|"NanoflowCommons.Enum_Permissions.MEDIA_LIBRARY_IOS"|"NanoflowCommons.Enum_Permissions.MICROPHONE_IOS"|"NanoflowCommons.Enum_Permissions.MOTION_IOS"|"NanoflowCommons.Enum_Permissions.PHOTO_LIBRARY_IOS"|"NanoflowCommons.Enum_Permissions.PHOTO_LIBRARY_ADD_ONLY_IOS"|"NanoflowCommons.Enum_Permissions.REMINDERS_IOS"|"NanoflowCommons.Enum_Permissions.SIRI_IOS"|"NanoflowCommons.Enum_Permissions.SPEECH_RECOGNITION_IOS"|"NanoflowCommons.Enum_Permissions.STOREKIT_IOS"|"NanoflowCommons.Enum_Permissions.ACCEPT_HANDOVER_ANDROID"|"NanoflowCommons.Enum_Permissions.ACCESS_BACKGROUND_LOCATION_ANDROID"|"NanoflowCommons.Enum_Permissions.ACCESS_COARSE_LOCATION_ANDROID"|"NanoflowCommons.Enum_Permissions.ACCESS_FINE_LOCATION_ANDROID"|"NanoflowCommons.Enum_Permissions.ACCESS_MEDIA_LOCATION_ANDROID"|"NanoflowCommons.Enum_Permissions.ACTIVITY_RECOGNITION_ANDROID"|"NanoflowCommons.Enum_Permissions.ADD_VOICEMAIL_ANDROID"|"NanoflowCommons.Enum_Permissions.ANSWER_PHONE_CALLS_ANDROID"|"NanoflowCommons.Enum_Permissions.BLUETOOTH_ADVERTISE_ANDROID"|"NanoflowCommons.Enum_Permissions.BLUETOOTH_CONNECT_ANDROID"|"NanoflowCommons.Enum_Permissions.BLUETOOTH_SCAN_ANDROID"|"NanoflowCommons.Enum_Permissions.BODY_SENSORS_ANDROID"|"NanoflowCommons.Enum_Permissions.CALL_PHONE_ANDROID"|"NanoflowCommons.Enum_Permissions.CAMERA_ANDROID"|"NanoflowCommons.Enum_Permissions.GET_ACCOUNTS_ANDROID"|"NanoflowCommons.Enum_Permissions.PROCESS_OUTGOING_CALLS_ANDROID"|"NanoflowCommons.Enum_Permissions.READ_CALENDAR_ANDROID"|"NanoflowCommons.Enum_Permissions.READ_CALL_LOG_ANDROID"|"NanoflowCommons.Enum_Permissions.READ_CONTACTS_ANDROID"|"NanoflowCommons.Enum_Permissions.READ_EXTERNAL_STORAGE_ANDROID"|"NanoflowCommons.Enum_Permissions.READ_PHONE_NUMBERS_ANDROID"|"NanoflowCommons.Enum_Permissions.READ_PHONE_STATE_ANDROID"|"NanoflowCommons.Enum_Permissions.READ_SMS_ANDROID"|"NanoflowCommons.Enum_Permissions.RECEIVE_MMS_ANDROID"|"NanoflowCommons.Enum_Permissions.RECEIVE_SMS_ANDROID"|"NanoflowCommons.Enum_Permissions.RECEIVE_WAP_PUSH_ANDROID"|"NanoflowCommons.Enum_Permissions.RECORD_AUDIO_ANDROID"|"NanoflowCommons.Enum_Permissions.SEND_SMS_ANDROID"|"NanoflowCommons.Enum_Permissions.USE_SIP_ANDROID"|"NanoflowCommons.Enum_Permissions.WRITE_CALENDAR_ANDROID"|"NanoflowCommons.Enum_Permissions.WRITE_CALL_LOG_ANDROID"|"NanoflowCommons.Enum_Permissions.WRITE_CONTACTS_ANDROID"|"NanoflowCommons.Enum_Permissions.WRITE_EXTERNAL_STORAGE_ANDROID"|"NanoflowCommons.Enum_Permissions.SCHEDULE_EXACT_ALARM_ANDROID"} permission - This field is required.
* @returns {Promise.<"NanoflowCommons.Enum_PermissionStatus.unavailable"|"NanoflowCommons.Enum_PermissionStatus.denied"|"NanoflowCommons.Enum_PermissionStatus.limited"|"NanoflowCommons.Enum_PermissionStatus.granted"|"NanoflowCommons.Enum_PermissionStatus.blocked">}
*/
export async function RequestGenericPermission(permission) {
// BEGIN USER CODE
async function RequestGenericPermission(permission) {
// BEGIN USER CODE
if (!permission) {
return Promise.reject(new Error("Input parameter 'permission' is required"));
}
Expand All @@ -43,7 +65,9 @@ export async function RequestGenericPermission(permission) {
console.error(`${permission} permission is not found`);
return Promise.resolve("unavailable");
}
const permissionStatus = await check(mappedPermissionName);
const permissionStatus = mappedPermissionName === PERMISSIONS.ANDROID.SCHEDULE_EXACT_ALARM
? await checkScheduleAlarm()
: await check(mappedPermissionName);
switch (permissionStatus) {
case RESULTS.GRANTED:
case RESULTS.UNAVAILABLE:
Expand All @@ -55,5 +79,7 @@ export async function RequestGenericPermission(permission) {
case RESULTS.DENIED:
return request(mappedPermissionName);
}
// END USER CODE
}
// END USER CODE
}

export { RequestGenericPermission };
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"nativeDependencies": {
"react-native-schedule-exact-alarm-permission": "0.1.4",
"react-native-permissions": "3.3.1"
}
}
Loading

0 comments on commit 869b319

Please sign in to comment.