stopou_blocker 0.7.3 copy "stopou_blocker: ^0.7.3" to clipboard
stopou_blocker: ^0.7.3 copied to clipboard

PlatformAndroid

Plugin do Stopou para bloqueio por VPN local (preparado para estratégias futuras).

🛡️ Stopou Blocker #

Plugin Flutter para bloqueio de conteúdo via VPN local e detecção de palavras-chave.

Versão: 0.7.3
Compatibilidade: Flutter 3.3.0+ | FlutterFlow ✅

🎯 Funcionalidades #

  • Bloqueio VPN: Filtragem DNS em tempo real via VPN local
  • Detecção Keywords: Alertas para palavras-chave via Accessibility Service
  • Status em Tempo Real: APIs para verificar permissões e estado dos serviços
  • Overlays Customizáveis: Modais personalizáveis para alertas
  • Recovery Automático: Sistema robusto com retry e health checks
  • FlutterFlow Ready: APIs otimizadas para desenvolvimento visual

🚀 Instalação #

dependencies:
  stopou_blocker: ^0.7.3
flutter pub get

📋 Uso Básico #

1. Verificar e Solicitar Permissões #

// Verificar status das permissões
final hasVpnPermission = await StopouBlocker.hasVpnPermission();
final hasAccessibilityPermission = await StopouBlocker.hasAccessibilityPermission();

// Solicitar permissões se necessário
if (!hasVpnPermission) {
  await StopouBlocker.requestPermission();
}

if (!hasAccessibilityPermission) {
  await StopouBlocker.requestAccessibilityPermission();
}

2. Iniciar Bloqueio VPN #

await StopouBlocker.start(
  blocklist: ['.bet.br', 'exemplo.com'],
  logAttempts: true,
  dnsServers: ['1.1.1.1', '8.8.8.8'],
  strategies: [BlockStrategies.vpn],
);

3. Configurar Bloqueio de Keywords #

await StopouBlocker.startKeywordBlocker([
  'bet',
  'casino', 
  'apostas',
]);

4. Monitorar Status #

// Verificar se serviços estão rodando
final vpnRunning = await StopouBlocker.isVpnRunning();
final keywordBlockerRunning = await StopouBlocker.isKeywordBlockerRunning();

// Escutar eventos em tempo real
StopouBlocker.events.listen((event) {
  print('Evento: ${event['status']}');
  if (event['type'] == 'keyword_alert') {
    print('Palavra detectada: ${event['message']}');
  }
});

🎛️ API Completa #

Método Descrição Retorno
hasVpnPermission() Verifica permissão VPN Future<bool>
hasAccessibilityPermission() Verifica permissão acessibilidade Future<bool>
hasNotificationPermission() Verifica permissão notificação Future<bool>
isVpnRunning() Status do serviço VPN Future<bool>
isKeywordBlockerRunning() Status do bloqueador keywords Future<bool>
start() Inicia bloqueio VPN Future<void>
stop() Para todos os serviços Future<void>
startKeywordBlocker() Inicia detecção keywords Future<List<String>>
stopKeywordBlocker() Para detecção keywords Future<void>
events Stream de eventos Stream<BlockEvent>

🏗️ Melhorias v0.1.2 #

📖 Ver documentação completa das melhorias

Principais Adições: #

  • 6 novos métodos de verificação de status
  • Overlay customizável para alertas (substitui Toast)
  • Accessibility Service otimizado (-80% eventos processados)
  • VPN com retry automático e health checks
  • Cache persistente de keywords
  • Testes unitários expandidos
  • App exemplo completamente redesenhado

🔧 Configuração Android #

Permissões (Automáticas) #

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

Configuração Proguard #

Adicione ao android/app/proguard-rules.pro:

-keep class app.stopou.stopou_blocker.** { *; }

🧪 Exemplo de Uso Completo #

Veja o app de exemplo para uma implementação completa com:

  • Dashboard de status em tempo real
  • Gestão inteligente de permissões
  • Controles adaptativos baseados no estado
  • Log de eventos detalhado

📱 Compatibilidade FlutterFlow #

O plugin foi otimizado para FlutterFlow com:

  • ✅ APIs síncronas para verificação de estado
  • ✅ Widgets condicionais baseados em permissões
  • ✅ Event listeners para atualizações em tempo real
  • ✅ Tratamento robusto de erros

Exemplo FlutterFlow: #

// Use em Actions do FlutterFlow
if (await StopouBlocker.hasVpnPermission()) {
  // Mostrar botão "Iniciar VPN"
} else {
  // Mostrar botão "Configurar Permissões"
}

🐛 Troubleshooting #

VPN não inicia #

  1. Verificar permissão: await StopouBlocker.hasVpnPermission()
  2. Ver eventos: StopouBlocker.events.listen()
  3. Verificar logs no console

Keywords não detectadas #

  1. Habilitar acessibilidade: await StopouBlocker.requestAccessibilityPermission()
  2. Verificar status: await StopouBlocker.isKeywordBlockerRunning()
  3. Testar com keywords simples primeiro

Performance Issues #

  • Use hasVpnPermission() em vez de tentar iniciar VPN
  • Limite keywords a 10-20 termos
  • Evite polling frequente de status

🤝 Contribuição #

  1. Fork o projeto
  2. Crie feature branch: git checkout -b feature/nova-funcionalidade
  3. Commit: git commit -m 'Adiciona nova funcionalidade'
  4. Push: git push origin feature/nova-funcionalidade
  5. Abra Pull Request

📄 Licença #

Este projeto está sob licença MIT. Veja LICENSE para detalhes.

🆘 Suporte #

0
likes
150
points
9
downloads

Publisher

unverified uploader

Weekly Downloads

Plugin do Stopou para bloqueio por VPN local (preparado para estratégias futuras).

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on stopou_blocker

Packages that implement stopou_blocker