| 94 | } |
| 95 | |
| 96 | void SensitiveContent::update(bool enabled) { |
| 97 | if (!_canChange.current()) { |
| 98 | return; |
| 99 | } |
| 100 | using Flag = MTPaccount_SetContentSettings::Flag; |
| 101 | _api.request(_saveRequestId).cancel(); |
| 102 | if (const auto load = base::take(_loadRequestId)) { |
| 103 | _api.request(load).cancel(); |
| 104 | _loadPending = true; |
| 105 | } |
| 106 | const auto finish = [=] { |
| 107 | _saveRequestId = 0; |
| 108 | if (base::take(_loadPending)) { |
| 109 | _appConfigReloadForce = true; |
| 110 | reload(true); |
| 111 | } else { |
| 112 | _appConfigReloadTimer.callOnce(kRefreshAppConfigTimeout); |
| 113 | } |
| 114 | }; |
| 115 | _saveRequestId = _api.request(MTPaccount_SetContentSettings( |
| 116 | MTP_flags(enabled ? Flag::f_sensitive_enabled : Flag(0)) |
| 117 | )).done(finish).fail(finish).send(); |
| 118 | _enabled = enabled; |
| 119 | } |
| 120 | |
| 121 | } // namespace Api |