public SettingPage() { InitializeComponent(); isWorking = false; isEnable = false; isNotification = false; settingDatabaseHelper = new SettingDatabaseHelper(); try { isEnable = settingDatabaseHelper.GetKeyValue(SystemKey.IS_ENABLE); isNotification = settingDatabaseHelper.GetKeyValue(SystemKey.IS_NOTIFICATION); } catch { } swNotifiaction.IsToggled = isNotification; sw_Enable.IsToggled = isEnable; isWorking = true; }
// THƯƠNG THỨC OVERRIDE NÀY SẼ ĐƯỢC THỰC THI KỂ CẢ APP LÚC KHÔNG CHẠY public override void OnReceive(Context context, Intent intent) { try { // MANUAL CREATE CONNECTION FOR SETTING Android_SQLite android_SQLite = new Android_SQLite(); connection = android_SQLite.GetConnection(); settingDatabaseHelper = new SettingDatabaseHelper("" + "IF_WE_ADD_THIS_TEXT_OUR_CLASS_WILL_" + "USE_A_DEFALT_CONSTRUCTOR_WITHOUT_PLATFORM_ERROR" + "WHEN_RUNNING_IN_BACKGROUND"); // MANUAL ADD CONNECT FOR THIS CLASS settingDatabaseHelper.connection = connection; settingDatabaseHelper.CreateTable(); isEnale = settingDatabaseHelper.GetKeyValue(SystemKey.IS_ENABLE); isNotification = settingDatabaseHelper.GetKeyValue(SystemKey.IS_NOTIFICATION); } catch { } // LẤY DANH SÁCH REPORT MỖI LẦN ĐƯỢC INVOKE try { // MANUAL CREATE CONNECTION Android_SQLite android_SQLite = new Android_SQLite(); connection = android_SQLite.GetConnection(); reportDatabaseHelper = new UserReportDatabaseHelper("" + "IF_WE_ADD_THIS_TEXT_OUR_CLASS_WILL_" + "USE_A_DEFALT_CONSTRUCTOR_WITHOUT_PLATFORM_ERROR" + "WHEN_RUNNING_IN_BACKGROUND"); // MANUAL ADD CONNECT FOR THIS CLASS reportDatabaseHelper.connection = connection; reportDatabaseHelper.CreateTable(); reports = reportDatabaseHelper.GetAllReport(); //MANUAL ADD CONNECT FOR THIS Telemarketer connection = android_SQLite.GetConnection(); telemarketerDatabaseHelper = new TelemarketerDatabaseHelper("" + "IF_WE_ADD_THIS_TEXT_OUR_CLASS_WILL_" + "USE_A_DEFALT_CONSTRUCTOR_WITHOUT_PLATFORM_ERROR" + "WHEN_RUNNING_IN_BACKGROUND"); telemarketerDatabaseHelper.connection = connection; telemarketerDatabaseHelper.CreateTable(); telemarketers = telemarketerDatabaseHelper.GetAllTelemarketer(); } catch { } // Toast.MakeText(context, "EX: " + reportDatabaseHelper.exceptionError, ToastLength.Short).Show(); // LẤY DANH BẠ LÊN // MỤC ĐÍCH ĐỂ SO SÁNH NÊU KHÔNG CÓ Ở TRONG DANH BẠ THÌ MỚI BLOCK try { contactServiceAndroid = new ContactService_Android(); phoneContacts = contactServiceAndroid.GetAllContacts(); } catch { Toast.MakeText(context, "ERROR WHEN GET CONTACT", ToastLength.Short).Show(); } #region BLOCKING if (intent.Extras != null) { if (!isEnale) { return; } string state = intent.GetStringExtra(TelephonyManager.ExtraState); // TRÍCH XUẤT SỐ ĐIỆN THOẠI GỌI ĐÊN (GỌI ĐI) incomingNumber = intent.GetStringExtra(TelephonyManager.ExtraIncomingNumber); // incomingNumber = "6505551212"; // CUỘC GỌI ĐẾN if (state.Equals(TelephonyManager.ExtraStateRinging)) { isIcomingCall = true; //KIẾM TRA XEM CÓ PHẢI LÀ SỐ ĐIỆN THOẠI TRONG DANH BẠ KHÔNG? foreach (PhoneContact phone in phoneContacts) { if (isTheSame(incomingNumber, phone.PhoneNumber)) { isInPhonebook = true; //NẰM TRONG PHONEBOOK THÌ KHÔNG CẦN KIỂM TRA NỮA. return; } } // KIỂM TRA XEM CÓ PHẢI LÀ SỐ TRONG DANH SÁCH BLOCK HAY KHÔNG? foreach (UserReport report in reports) { if (incomingNumber.Equals(report.phoneNumber)) { StopACall(context); isBlocking = true; return; } } //Toast.MakeText(context, reports.Count, ToastLength.Long).Show(); // KIỂM TRA XEM CÓ PHẢI LÀ SỐ TRONG DANH SÁCH Telemarketer HAY KHÔNG? foreach (Telemarketer telemarketer in telemarketers) { if (incomingNumber.Equals(telemarketer.phoneNumber)) { StopACall(context); isBlocking = true; return; } } } if (state.Equals(TelephonyManager.ExtraStateOffhook)) { isIcomingCall = false; return; } // CUỘC GỌI BỊ DẬP MÁY - KỂ CẢ VIỆC GỌI CHO NGƯỜI KHÁC TẮT if (state.Equals(TelephonyManager.ExtraStateIdle)) { if (isInPhonebook) { return; } if (isBlocking && isIcomingCall) { CreateNotification(incomingNumber, context); isBlocking = false; return; } if (!isIcomingCall) { return; } // TẠO RA THÔNG BÁO REPORT NẾU NÓ LÀ MỘT SỐ KHÔNG BỊ BLOCK, KHÔNG NẰM TRONG DANH BẠ VÀ LÀ CUỘC GỌI ĐẾN CreateNotification_Report(incomingNumber, context); isBlocking = false; isIcomingCall = false; isInPhonebook = false; } } #endregion }