// WARNING:  This file was autogenerated by jni-bindgen.  Any changes to this file may be lost!!!


#[cfg(any(feature = "all", feature = "android-icu-util-IslamicCalendar"))]
__jni_bindgen! {
    /// public class [IslamicCalendar](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html)
    ///
    /// Required feature: android-icu-util-IslamicCalendar
    public class IslamicCalendar ("android/icu/util/IslamicCalendar") extends crate::android::icu::util::Calendar {

        /// [IslamicCalendar](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#IslamicCalendar())
        pub fn new<'env>(__jni_env: &'env __jni_bindgen::Env) -> __jni_bindgen::std::result::Result<__jni_bindgen::Local<'env, crate::android::icu::util::IslamicCalendar>, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
            // class.path == "android/icu/util/IslamicCalendar", java.flags == PUBLIC, .name == "<init>", .descriptor == "()V"
            unsafe {
                let __jni_args = [];
                let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "<init>\0", "()V\0");
                __jni_env.new_object_a(__jni_class, __jni_method, __jni_args.as_ptr())
            }
        }

        /// [IslamicCalendar](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#IslamicCalendar(android.icu.util.TimeZone))
        ///
        /// Required features: "android-icu-util-TimeZone"
        #[cfg(any(feature = "all", all(feature = "android-icu-util-TimeZone")))]
        pub fn new_TimeZone<'env>(__jni_env: &'env __jni_bindgen::Env, arg0: impl __jni_bindgen::std::convert::Into<__jni_bindgen::std::option::Option<&'env crate::android::icu::util::TimeZone>>) -> __jni_bindgen::std::result::Result<__jni_bindgen::Local<'env, crate::android::icu::util::IslamicCalendar>, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
            // class.path == "android/icu/util/IslamicCalendar", java.flags == PUBLIC, .name == "<init>", .descriptor == "(Landroid/icu/util/TimeZone;)V"
            unsafe {
                let __jni_args = [__jni_bindgen::AsJValue::as_jvalue(&arg0.into())];
                let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "<init>\0", "(Landroid/icu/util/TimeZone;)V\0");
                __jni_env.new_object_a(__jni_class, __jni_method, __jni_args.as_ptr())
            }
        }

        /// [IslamicCalendar](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#IslamicCalendar(java.util.Locale))
        ///
        /// Required features: "java-util-Locale"
        #[cfg(any(feature = "all", all(feature = "java-util-Locale")))]
        pub fn new_Locale<'env>(__jni_env: &'env __jni_bindgen::Env, arg0: impl __jni_bindgen::std::convert::Into<__jni_bindgen::std::option::Option<&'env crate::java::util::Locale>>) -> __jni_bindgen::std::result::Result<__jni_bindgen::Local<'env, crate::android::icu::util::IslamicCalendar>, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
            // class.path == "android/icu/util/IslamicCalendar", java.flags == PUBLIC, .name == "<init>", .descriptor == "(Ljava/util/Locale;)V"
            unsafe {
                let __jni_args = [__jni_bindgen::AsJValue::as_jvalue(&arg0.into())];
                let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "<init>\0", "(Ljava/util/Locale;)V\0");
                __jni_env.new_object_a(__jni_class, __jni_method, __jni_args.as_ptr())
            }
        }

        /// [IslamicCalendar](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#IslamicCalendar(android.icu.util.ULocale))
        ///
        /// Required features: "android-icu-util-ULocale"
        #[cfg(any(feature = "all", all(feature = "android-icu-util-ULocale")))]
        pub fn new_ULocale<'env>(__jni_env: &'env __jni_bindgen::Env, arg0: impl __jni_bindgen::std::convert::Into<__jni_bindgen::std::option::Option<&'env crate::android::icu::util::ULocale>>) -> __jni_bindgen::std::result::Result<__jni_bindgen::Local<'env, crate::android::icu::util::IslamicCalendar>, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
            // class.path == "android/icu/util/IslamicCalendar", java.flags == PUBLIC, .name == "<init>", .descriptor == "(Landroid/icu/util/ULocale;)V"
            unsafe {
                let __jni_args = [__jni_bindgen::AsJValue::as_jvalue(&arg0.into())];
                let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "<init>\0", "(Landroid/icu/util/ULocale;)V\0");
                __jni_env.new_object_a(__jni_class, __jni_method, __jni_args.as_ptr())
            }
        }

        /// [IslamicCalendar](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#IslamicCalendar(android.icu.util.TimeZone,%20java.util.Locale))
        ///
        /// Required features: "android-icu-util-TimeZone", "java-util-Locale"
        #[cfg(any(feature = "all", all(feature = "android-icu-util-TimeZone", feature = "java-util-Locale")))]
        pub fn new_TimeZone_Locale<'env>(__jni_env: &'env __jni_bindgen::Env, arg0: impl __jni_bindgen::std::convert::Into<__jni_bindgen::std::option::Option<&'env crate::android::icu::util::TimeZone>>, arg1: impl __jni_bindgen::std::convert::Into<__jni_bindgen::std::option::Option<&'env crate::java::util::Locale>>) -> __jni_bindgen::std::result::Result<__jni_bindgen::Local<'env, crate::android::icu::util::IslamicCalendar>, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
            // class.path == "android/icu/util/IslamicCalendar", java.flags == PUBLIC, .name == "<init>", .descriptor == "(Landroid/icu/util/TimeZone;Ljava/util/Locale;)V"
            unsafe {
                let __jni_args = [__jni_bindgen::AsJValue::as_jvalue(&arg0.into()), __jni_bindgen::AsJValue::as_jvalue(&arg1.into())];
                let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "<init>\0", "(Landroid/icu/util/TimeZone;Ljava/util/Locale;)V\0");
                __jni_env.new_object_a(__jni_class, __jni_method, __jni_args.as_ptr())
            }
        }

        /// [IslamicCalendar](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#IslamicCalendar(android.icu.util.TimeZone,%20android.icu.util.ULocale))
        ///
        /// Required features: "android-icu-util-TimeZone", "android-icu-util-ULocale"
        #[cfg(any(feature = "all", all(feature = "android-icu-util-TimeZone", feature = "android-icu-util-ULocale")))]
        pub fn new_TimeZone_ULocale<'env>(__jni_env: &'env __jni_bindgen::Env, arg0: impl __jni_bindgen::std::convert::Into<__jni_bindgen::std::option::Option<&'env crate::android::icu::util::TimeZone>>, arg1: impl __jni_bindgen::std::convert::Into<__jni_bindgen::std::option::Option<&'env crate::android::icu::util::ULocale>>) -> __jni_bindgen::std::result::Result<__jni_bindgen::Local<'env, crate::android::icu::util::IslamicCalendar>, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
            // class.path == "android/icu/util/IslamicCalendar", java.flags == PUBLIC, .name == "<init>", .descriptor == "(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V"
            unsafe {
                let __jni_args = [__jni_bindgen::AsJValue::as_jvalue(&arg0.into()), __jni_bindgen::AsJValue::as_jvalue(&arg1.into())];
                let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "<init>\0", "(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V\0");
                __jni_env.new_object_a(__jni_class, __jni_method, __jni_args.as_ptr())
            }
        }

        /// [IslamicCalendar](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#IslamicCalendar(java.util.Date))
        ///
        /// Required features: "java-util-Date"
        #[cfg(any(feature = "all", all(feature = "java-util-Date")))]
        pub fn new_Date<'env>(__jni_env: &'env __jni_bindgen::Env, arg0: impl __jni_bindgen::std::convert::Into<__jni_bindgen::std::option::Option<&'env crate::java::util::Date>>) -> __jni_bindgen::std::result::Result<__jni_bindgen::Local<'env, crate::android::icu::util::IslamicCalendar>, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
            // class.path == "android/icu/util/IslamicCalendar", java.flags == PUBLIC, .name == "<init>", .descriptor == "(Ljava/util/Date;)V"
            unsafe {
                let __jni_args = [__jni_bindgen::AsJValue::as_jvalue(&arg0.into())];
                let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "<init>\0", "(Ljava/util/Date;)V\0");
                __jni_env.new_object_a(__jni_class, __jni_method, __jni_args.as_ptr())
            }
        }

        /// [IslamicCalendar](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#IslamicCalendar(int,%20int,%20int))
        pub fn new_int_int_int<'env>(__jni_env: &'env __jni_bindgen::Env, arg0: i32, arg1: i32, arg2: i32) -> __jni_bindgen::std::result::Result<__jni_bindgen::Local<'env, crate::android::icu::util::IslamicCalendar>, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
            // class.path == "android/icu/util/IslamicCalendar", java.flags == PUBLIC, .name == "<init>", .descriptor == "(III)V"
            unsafe {
                let __jni_args = [__jni_bindgen::AsJValue::as_jvalue(&arg0), __jni_bindgen::AsJValue::as_jvalue(&arg1), __jni_bindgen::AsJValue::as_jvalue(&arg2)];
                let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "<init>\0", "(III)V\0");
                __jni_env.new_object_a(__jni_class, __jni_method, __jni_args.as_ptr())
            }
        }

        /// [IslamicCalendar](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#IslamicCalendar(int,%20int,%20int,%20int,%20int,%20int))
        pub fn new_int_int_int_int_int_int<'env>(__jni_env: &'env __jni_bindgen::Env, arg0: i32, arg1: i32, arg2: i32, arg3: i32, arg4: i32, arg5: i32) -> __jni_bindgen::std::result::Result<__jni_bindgen::Local<'env, crate::android::icu::util::IslamicCalendar>, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
            // class.path == "android/icu/util/IslamicCalendar", java.flags == PUBLIC, .name == "<init>", .descriptor == "(IIIIII)V"
            unsafe {
                let __jni_args = [__jni_bindgen::AsJValue::as_jvalue(&arg0), __jni_bindgen::AsJValue::as_jvalue(&arg1), __jni_bindgen::AsJValue::as_jvalue(&arg2), __jni_bindgen::AsJValue::as_jvalue(&arg3), __jni_bindgen::AsJValue::as_jvalue(&arg4), __jni_bindgen::AsJValue::as_jvalue(&arg5)];
                let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "<init>\0", "(IIIIII)V\0");
                __jni_env.new_object_a(__jni_class, __jni_method, __jni_args.as_ptr())
            }
        }

        // // Not emitting: Non-public method
        // /// [handleGetLimit](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#handleGetLimit(int,%20int))
        // fn handleGetLimit<'env>(&'env self, arg0: i32, arg1: i32) -> __jni_bindgen::std::result::Result<i32, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
        //     // class.path == "android/icu/util/IslamicCalendar", java.flags == PROTECTED, .name == "handleGetLimit", .descriptor == "(II)I"
        //     unsafe {
        //         let __jni_args = [__jni_bindgen::AsJValue::as_jvalue(&arg0), __jni_bindgen::AsJValue::as_jvalue(&arg1)];
        //         let __jni_env = __jni_bindgen::Env::from_ptr(self.0.env);
        //         let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "handleGetLimit\0", "(II)I\0");
        //         __jni_env.call_int_method_a(self.0.object, __jni_method, __jni_args.as_ptr())
        //     }
        // }

        // // Not emitting: Non-public method
        // /// [handleGetMonthLength](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#handleGetMonthLength(int,%20int))
        // fn handleGetMonthLength<'env>(&'env self, arg0: i32, arg1: i32) -> __jni_bindgen::std::result::Result<i32, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
        //     // class.path == "android/icu/util/IslamicCalendar", java.flags == PROTECTED, .name == "handleGetMonthLength", .descriptor == "(II)I"
        //     unsafe {
        //         let __jni_args = [__jni_bindgen::AsJValue::as_jvalue(&arg0), __jni_bindgen::AsJValue::as_jvalue(&arg1)];
        //         let __jni_env = __jni_bindgen::Env::from_ptr(self.0.env);
        //         let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "handleGetMonthLength\0", "(II)I\0");
        //         __jni_env.call_int_method_a(self.0.object, __jni_method, __jni_args.as_ptr())
        //     }
        // }

        // // Not emitting: Non-public method
        // /// [handleGetYearLength](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#handleGetYearLength(int))
        // fn handleGetYearLength<'env>(&'env self, arg0: i32) -> __jni_bindgen::std::result::Result<i32, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
        //     // class.path == "android/icu/util/IslamicCalendar", java.flags == PROTECTED, .name == "handleGetYearLength", .descriptor == "(I)I"
        //     unsafe {
        //         let __jni_args = [__jni_bindgen::AsJValue::as_jvalue(&arg0)];
        //         let __jni_env = __jni_bindgen::Env::from_ptr(self.0.env);
        //         let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "handleGetYearLength\0", "(I)I\0");
        //         __jni_env.call_int_method_a(self.0.object, __jni_method, __jni_args.as_ptr())
        //     }
        // }

        // // Not emitting: Non-public method
        // /// [handleComputeMonthStart](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#handleComputeMonthStart(int,%20int,%20boolean))
        // fn handleComputeMonthStart<'env>(&'env self, arg0: i32, arg1: i32, arg2: bool) -> __jni_bindgen::std::result::Result<i32, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
        //     // class.path == "android/icu/util/IslamicCalendar", java.flags == PROTECTED, .name == "handleComputeMonthStart", .descriptor == "(IIZ)I"
        //     unsafe {
        //         let __jni_args = [__jni_bindgen::AsJValue::as_jvalue(&arg0), __jni_bindgen::AsJValue::as_jvalue(&arg1), __jni_bindgen::AsJValue::as_jvalue(&arg2)];
        //         let __jni_env = __jni_bindgen::Env::from_ptr(self.0.env);
        //         let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "handleComputeMonthStart\0", "(IIZ)I\0");
        //         __jni_env.call_int_method_a(self.0.object, __jni_method, __jni_args.as_ptr())
        //     }
        // }

        // // Not emitting: Non-public method
        // /// [handleGetExtendedYear](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#handleGetExtendedYear())
        // fn handleGetExtendedYear<'env>(&'env self) -> __jni_bindgen::std::result::Result<i32, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
        //     // class.path == "android/icu/util/IslamicCalendar", java.flags == PROTECTED, .name == "handleGetExtendedYear", .descriptor == "()I"
        //     unsafe {
        //         let __jni_args = [];
        //         let __jni_env = __jni_bindgen::Env::from_ptr(self.0.env);
        //         let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "handleGetExtendedYear\0", "()I\0");
        //         __jni_env.call_int_method_a(self.0.object, __jni_method, __jni_args.as_ptr())
        //     }
        // }

        // // Not emitting: Non-public method
        // /// [handleComputeFields](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#handleComputeFields(int))
        // fn handleComputeFields<'env>(&'env self, arg0: i32) -> __jni_bindgen::std::result::Result<(), __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
        //     // class.path == "android/icu/util/IslamicCalendar", java.flags == PROTECTED, .name == "handleComputeFields", .descriptor == "(I)V"
        //     unsafe {
        //         let __jni_args = [__jni_bindgen::AsJValue::as_jvalue(&arg0)];
        //         let __jni_env = __jni_bindgen::Env::from_ptr(self.0.env);
        //         let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "handleComputeFields\0", "(I)V\0");
        //         __jni_env.call_void_method_a(self.0.object, __jni_method, __jni_args.as_ptr())
        //     }
        // }

        /// [setCalculationType](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#setCalculationType(android.icu.util.IslamicCalendar.CalculationType))
        ///
        /// Required features: "android-icu-util-IslamicCalendar_CalculationType"
        #[cfg(any(feature = "all", all(feature = "android-icu-util-IslamicCalendar_CalculationType")))]
        pub fn setCalculationType<'env>(&'env self, arg0: impl __jni_bindgen::std::convert::Into<__jni_bindgen::std::option::Option<&'env crate::android::icu::util::IslamicCalendar_CalculationType>>) -> __jni_bindgen::std::result::Result<(), __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
            // class.path == "android/icu/util/IslamicCalendar", java.flags == PUBLIC, .name == "setCalculationType", .descriptor == "(Landroid/icu/util/IslamicCalendar$CalculationType;)V"
            unsafe {
                let __jni_args = [__jni_bindgen::AsJValue::as_jvalue(&arg0.into())];
                let __jni_env = __jni_bindgen::Env::from_ptr(self.0.env);
                let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "setCalculationType\0", "(Landroid/icu/util/IslamicCalendar$CalculationType;)V\0");
                __jni_env.call_void_method_a(self.0.object, __jni_method, __jni_args.as_ptr())
            }
        }

        /// [getCalculationType](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#getCalculationType())
        ///
        /// Required features: "android-icu-util-IslamicCalendar_CalculationType"
        #[cfg(any(feature = "all", all(feature = "android-icu-util-IslamicCalendar_CalculationType")))]
        pub fn getCalculationType<'env>(&'env self) -> __jni_bindgen::std::result::Result<__jni_bindgen::std::option::Option<__jni_bindgen::Local<'env, crate::android::icu::util::IslamicCalendar_CalculationType>>, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
            // class.path == "android/icu/util/IslamicCalendar", java.flags == PUBLIC, .name == "getCalculationType", .descriptor == "()Landroid/icu/util/IslamicCalendar$CalculationType;"
            unsafe {
                let __jni_args = [];
                let __jni_env = __jni_bindgen::Env::from_ptr(self.0.env);
                let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "getCalculationType\0", "()Landroid/icu/util/IslamicCalendar$CalculationType;\0");
                __jni_env.call_object_method_a(self.0.object, __jni_method, __jni_args.as_ptr())
            }
        }

        /// [getType](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#getType())
        ///
        /// Required features: "java-lang-String"
        #[cfg(any(feature = "all", all(feature = "java-lang-String")))]
        pub fn getType<'env>(&'env self) -> __jni_bindgen::std::result::Result<__jni_bindgen::std::option::Option<__jni_bindgen::Local<'env, crate::java::lang::String>>, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
            // class.path == "android/icu/util/IslamicCalendar", java.flags == PUBLIC, .name == "getType", .descriptor == "()Ljava/lang/String;"
            unsafe {
                let __jni_args = [];
                let __jni_env = __jni_bindgen::Env::from_ptr(self.0.env);
                let (__jni_class, __jni_method) = __jni_env.require_class_method("android/icu/util/IslamicCalendar\0", "getType\0", "()Ljava/lang/String;\0");
                __jni_env.call_object_method_a(self.0.object, __jni_method, __jni_args.as_ptr())
            }
        }

        /// public static final [DHU_AL_HIJJAH](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#DHU_AL_HIJJAH)
        pub const DHU_AL_HIJJAH : i32 = 11;

        /// public static final [DHU_AL_QIDAH](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#DHU_AL_QIDAH)
        pub const DHU_AL_QIDAH : i32 = 10;

        /// public static final [JUMADA_1](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#JUMADA_1)
        pub const JUMADA_1 : i32 = 4;

        /// public static final [JUMADA_2](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#JUMADA_2)
        pub const JUMADA_2 : i32 = 5;

        /// public static final [MUHARRAM](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#MUHARRAM)
        pub const MUHARRAM : i32 = 0;

        /// public static final [RABI_1](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#RABI_1)
        pub const RABI_1 : i32 = 2;

        /// public static final [RABI_2](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#RABI_2)
        pub const RABI_2 : i32 = 3;

        /// public static final [RAJAB](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#RAJAB)
        pub const RAJAB : i32 = 6;

        /// public static final [RAMADAN](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#RAMADAN)
        pub const RAMADAN : i32 = 8;

        /// public static final [SAFAR](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#SAFAR)
        pub const SAFAR : i32 = 1;

        /// public static final [SHABAN](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#SHABAN)
        pub const SHABAN : i32 = 7;

        /// public static final [SHAWWAL](https://developer.android.com/reference/android/icu/util/IslamicCalendar.html#SHAWWAL)
        pub const SHAWWAL : i32 = 9;
    }
}
