;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Câmera na farda não incomoda PM que age corretamente, diz secretário de SP

Câmeras nas fardas têm sido motivo de debate entre policiais e foi criticada por Eduardo Bolsonaro  - Divulgação/Governo de São Paulo
Câmeras nas fardas têm sido motivo de debate entre policiais e foi criticada por Eduardo Bolsonaro Imagem: Divulgação/Governo de São Paulo

Leonardo Martins

Do UOL, em São Paulo

20/07/2021 04h00

Pouco após o estado de São Paulo registrar, em junho, o menor índice de letalidade policial em oito anos, o secretário de Segurança Pública general João Camilo Pires de Campos, elogiou o programa de câmeras portáteis da Polícia Militar e mostrou otimismo com a ampliação do programa.

"A câmera é uma ferramenta espetacular. Temos 3 mil câmeras e vamos aumentar para 10 mil câmeras", afirmou em entrevista ao UOL. Acopladas à farda dos policiais, elas aram a ser utilizadas em 18 batalhões da PM neste ano. O projeto é discutido e testado desde 2017.

Eu não vejo problema, vejo profissionalismo. Tudo o que é feito com profissionalismo vai bem. Não há de incomodar aquilo que se faz de maneira correta."
General João Camilo Pires de Campos

Internamente, segundo apuração da reportagem, as câmeras são motivo de debate e insatisfação para alguns policiais, principalmente os de baixa patente, que estariam descontentes. A iniciativa já foi publicamente criticada pelo deputado federal Eduardo Bolsonaro (PSL-SP), que argumenta que os agentes serão "desestimulados" a trabalhar.

O secretário de Segurança Pública, João Camilo Pires de Campos - Aloisio Mauricio/Fotoarena/Estadão Conteúdo - Aloisio Mauricio/Fotoarena/Estadão Conteúdo
O secretário de Segurança Pública, João Camilo Pires de Campos
Imagem: Aloisio Mauricio/Fotoarena/Estadão Conteúdo

Na avaliação do general, as câmeras são um o importante para controlar a letalidade. "A câmera é um objeto. A queda da letalidade não se baseia num objeto, é um processo. São os que estão sendo dados", disse.

As câmeras fazem parte de um programa de ações estruturadas para reduzir os índices de letalidade policial no estado de São Paulo. As polícias Civil e Militar, sob o comando do governador João Doria (PSDB), bateram recorde histórico no primeiro semestre de 2020 ao matarem ao menos 514 pessoas em supostos tiroteios, durante o serviço e em folga.

Segundo dados da Secretaria de Segurança Pública, entre junho do ano ado e maio deste ano, houve redução de 36% no número de mortes cometidas por PMs, índice que chegou ao menor patamar desde 2013.

A pressão pela resolução desses índices alarmantes aumentou ainda mais depois da tragédia de Paraisópolis, em que nove jovens morreram após uma ação da PM para dispersar o Baile da DZ7, tradicional baile funk da comunidade. O MP denunciou os agentes por homicídio ontem.

João Campos nega que o caso de Paraisópolis tenha sido o estopim para que o governo estadual voltasse a atenção à letalidade. "Diminuir a letalidade é um objetivo permanente. Não se deve a um evento, a uma circunstância, se deve a uma condição de policiamento. Diminuir a letalidade é bom para a sociedade", concluiu.

A mudança no comando-geral da PM também é considerada fator crucial, segundo oficiais ouvidos pela reportagem, para que o controle da letalidade entrasse na lista de prioridades da pasta da Segurança Pública.

Descrito como um perfil reservado e defensor dos direitos humanos, Fernando Alencar Medeiros, que assumiu a tropa em março de 2020, tinha essa redução dos índices como promessa.

Medeiros foi comandante da Rota, a tropa de elite mais letal da PM, e instrutor da Academia do Barro Branco, onde são formados oficiais da corporação. Ele assumiu o lugar do coronel Marcelo Vieira Salles, que entrou para reserva e disputou a eleição municipal na capital paulista para vereador, mas não foi eleito.