mirror of https://github.com/M66B/NetGuard.git
Added option to start as foreground service
This commit is contained in:
parent
115ff6cf5e
commit
c3514d69df
|
@ -114,6 +114,13 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
|||
|
||||
else if ("dark_theme".equals(name))
|
||||
recreate();
|
||||
|
||||
else if ("foreground".equals(name)) {
|
||||
if (prefs.getBoolean("enabled", false)) {
|
||||
SinkholeService.stop(this);
|
||||
SinkholeService.start(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -46,12 +46,14 @@ import java.nio.ByteOrder;
|
|||
public class SinkholeService extends VpnService {
|
||||
private static final String TAG = "NetGuard.Service";
|
||||
|
||||
private boolean foreground;
|
||||
private boolean last_roaming;
|
||||
private ParcelFileDescriptor vpn = null;
|
||||
private boolean debug = false;
|
||||
private Thread thread = null;
|
||||
|
||||
private static final int NOTIFY_DISABLED = 1;
|
||||
private static final int NOTIFY_FOREGROUND = 1;
|
||||
private static final int NOTIFY_DISABLED = 2;
|
||||
|
||||
private static final String EXTRA_COMMAND = "Command";
|
||||
|
||||
|
@ -59,6 +61,8 @@ public class SinkholeService extends VpnService {
|
|||
|
||||
@Override
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
|
||||
// Get command
|
||||
final Command cmd = (intent == null ? Command.start : (Command) intent.getSerializableExtra(EXTRA_COMMAND));
|
||||
Log.i(TAG, "Start intent=" + intent + " command=" + cmd + " vpn=" + (vpn != null));
|
||||
|
@ -71,6 +75,10 @@ public class SinkholeService extends VpnService {
|
|||
Log.i(TAG, "Executing command=" + cmd + " vpn=" + (vpn != null));
|
||||
switch (cmd) {
|
||||
case start:
|
||||
if (prefs.getBoolean("foreground", false)) {
|
||||
foreground = true;
|
||||
startForeground(NOTIFY_FOREGROUND, getForegroundNotification());
|
||||
}
|
||||
if (vpn == null) {
|
||||
last_roaming = Util.isRoaming(SinkholeService.this);
|
||||
vpn = startVPN();
|
||||
|
@ -96,6 +104,10 @@ public class SinkholeService extends VpnService {
|
|||
stopVPN(vpn);
|
||||
vpn = null;
|
||||
}
|
||||
if (foreground) {
|
||||
foreground = false;
|
||||
stopForeground(true);
|
||||
}
|
||||
Widget.updateWidgets(SinkholeService.this);
|
||||
stopSelf();
|
||||
break;
|
||||
|
@ -344,15 +356,32 @@ public class SinkholeService extends VpnService {
|
|||
super.onRevoke();
|
||||
}
|
||||
|
||||
private Notification getForegroundNotification() {
|
||||
Intent main = new Intent(this, ActivityMain.class);
|
||||
PendingIntent pi = PendingIntent.getActivity(this, 0, main, PendingIntent.FLAG_CANCEL_CURRENT);
|
||||
|
||||
NotificationCompat.Builder notification = new NotificationCompat.Builder(this)
|
||||
.setSmallIcon(R.drawable.ic_security_white_24dp)
|
||||
.setContentTitle(getString(R.string.app_name))
|
||||
.setContentText(getString(R.string.msg_started))
|
||||
.setContentIntent(pi)
|
||||
.setCategory(Notification.CATEGORY_STATUS)
|
||||
.setVisibility(Notification.VISIBILITY_SECRET)
|
||||
.setColor(ContextCompat.getColor(this, R.color.colorAccent))
|
||||
.setAutoCancel(true);
|
||||
|
||||
return notification.build();
|
||||
}
|
||||
|
||||
private void showDisabledNotification() {
|
||||
Intent riMain = new Intent(this, ActivityMain.class);
|
||||
PendingIntent piMain = PendingIntent.getActivity(this, 0, riMain, PendingIntent.FLAG_CANCEL_CURRENT);
|
||||
Intent main = new Intent(this, ActivityMain.class);
|
||||
PendingIntent pi = PendingIntent.getActivity(this, 0, main, PendingIntent.FLAG_CANCEL_CURRENT);
|
||||
|
||||
NotificationCompat.Builder notification = new NotificationCompat.Builder(this)
|
||||
.setSmallIcon(R.drawable.ic_security_white_24dp)
|
||||
.setContentTitle(getString(R.string.app_name))
|
||||
.setContentText(getString(R.string.msg_revoked))
|
||||
.setContentIntent(piMain)
|
||||
.setContentIntent(pi)
|
||||
.setCategory(Notification.CATEGORY_STATUS)
|
||||
.setVisibility(Notification.VISIBILITY_SECRET)
|
||||
.setColor(ContextCompat.getColor(this, R.color.colorAccent))
|
||||
|
|
|
@ -19,14 +19,17 @@ These issues are caused by bugs in Android, or in the software provided by the m
|
|||
<string name="setting_system">Manage system applications</string>
|
||||
<string name="setting_dark">استخدام الثيم الداكن</string>
|
||||
<string name="setting_indicators">Show state indicators</string>
|
||||
<string name="setting_foreground">Start as foreground service</string>
|
||||
<string name="setting_export">Export settings</string>
|
||||
<string name="setting_import">Import settings</string>
|
||||
<string name="setting_vpn">فتح إعدادات الـVPN</string>
|
||||
|
||||
<string name="summary_system">Define rules for system applications (for experts)</string>
|
||||
<string name="summary_indicators">Display the network type and if the network is metered in the action bar</string>
|
||||
<string name="summary_foreground">Foreground services show on ongoing notification in the status bar and have less chance of being killed by Android</string>
|
||||
|
||||
<string name="msg_sure">هل أنت متأكد؟</string>
|
||||
<string name="msg_started">Enforcing rules</string>
|
||||
<string name="msg_disabled">التطبيق غير مُفعّل, قم بتفعيل التطبيق من الخيار أعلاه.</string>
|
||||
<string name="msg_revoked">NetGuard has been disabled</string>
|
||||
<string name="msg_completed">Action completed</string>
|
||||
|
|
|
@ -18,14 +18,17 @@ Das wird von Fehlern in Android oder in Software vom Hersteller verursacht. Bitt
|
|||
<string name="setting_system">System Apps anzeigen</string>
|
||||
<string name="setting_dark">Verwende dunkles Theme</string>
|
||||
<string name="setting_indicators">Zustandsanzeigen</string>
|
||||
<string name="setting_foreground">Start as foreground service</string>
|
||||
<string name="setting_export">Exportiere Einstellungen</string>
|
||||
<string name="setting_import">Importiere Einstellungen</string>
|
||||
<string name="setting_vpn">Öffne Android VPN Einstellungen</string>
|
||||
|
||||
<string name="summary_system">Regeln für System Apps definieren, nur für Experten</string>
|
||||
<string name="summary_indicators">Netzwerk Typ und ob Netzwerk getaktet ist in Action Bar anzeigen</string>
|
||||
<string name="summary_foreground">Foreground services show on ongoing notification in the status bar and have less chance of being killed by Android</string>
|
||||
|
||||
<string name="msg_sure">Bist du sicher?</string>
|
||||
<string name="msg_started">Enforcing rules</string>
|
||||
<string name="msg_disabled">NetGuard ist deaktiviert, verwende den Schalter um NetGuard zu aktivieren</string>
|
||||
<string name="msg_revoked">NetGuard wurde deaktiviert</string>
|
||||
<string name="msg_completed">Aktion abgeschlossen</string>
|
||||
|
|
|
@ -19,14 +19,17 @@ Esto es causado por errores en Android, o por el software proporcionado por el f
|
|||
<string name="setting_system">Administrar aplicaciones de sistema</string>
|
||||
<string name="setting_dark">Usar tema oscuro</string>
|
||||
<string name="setting_indicators">Show state indicators</string>
|
||||
<string name="setting_foreground">Start as foreground service</string>
|
||||
<string name="setting_export">Exportar configuración</string>
|
||||
<string name="setting_import">Importar configuración</string>
|
||||
<string name="setting_vpn">Abrir configuración VPN de Android</string>
|
||||
|
||||
<string name="summary_system">Define rules for system applications (for experts)</string>
|
||||
<string name="summary_indicators">Display the network type and if the network is metered in the action bar</string>
|
||||
<string name="summary_foreground">Foreground services show on ongoing notification in the status bar and have less chance of being killed by Android</string>
|
||||
|
||||
<string name="msg_sure">¿Estás seguro?</string>
|
||||
<string name="msg_started">Enforcing rules</string>
|
||||
<string name="msg_disabled">NetGuard está deshabilitado, utiliza el interruptor de arriba para habilitar a NetGuard</string>
|
||||
<string name="msg_revoked">NetGuard ha sido deshabilitado</string>
|
||||
<string name="msg_completed">Acción completada</string>
|
||||
|
|
|
@ -19,14 +19,17 @@ Ceci est causé par des bugs dans Android, ou dans le logiciel fourni par le con
|
|||
<string name="setting_system">Gérer les applications système</string>
|
||||
<string name="setting_dark">Utiliser le thème sombre</string>
|
||||
<string name="setting_indicators">Show state indicators</string>
|
||||
<string name="setting_foreground">Start as foreground service</string>
|
||||
<string name="setting_export">Exporter paramètres</string>
|
||||
<string name="setting_import">Importer paramètres</string>
|
||||
<string name="setting_vpn">Ouvrir les paramètres VPN</string>
|
||||
|
||||
<string name="summary_system">Define rules for system applications (for experts)</string>
|
||||
<string name="summary_indicators">Display the network type and if the network is metered in the action bar</string>
|
||||
<string name="summary_foreground">Foreground services show on ongoing notification in the status bar and have less chance of being killed by Android</string>
|
||||
|
||||
<string name="msg_sure">Etes-vous sûr ?</string>
|
||||
<string name="msg_started">Enforcing rules</string>
|
||||
<string name="msg_disabled">NetGuard est désactivé, utilisez le bouton ci-dessus pour activer NetGuard</string>
|
||||
<string name="msg_revoked">NetGuard a été désactivé</string>
|
||||
<string name="msg_completed">Action completed</string>
|
||||
|
|
|
@ -20,14 +20,17 @@ Ció è causato da alcuni bug contenuti in Android, o in programmi forniti dal p
|
|||
<string name="setting_system">Gestisci applicazioni di sistema</string>
|
||||
<string name="setting_dark">Usa il tema scuro</string>
|
||||
<string name="setting_indicators">Mostra indicatori di stato</string>
|
||||
<string name="setting_foreground">Start as foreground service</string>
|
||||
<string name="setting_export">Esporta impostazioni</string>
|
||||
<string name="setting_import">Importa impostazioni</string>
|
||||
<string name="setting_vpn">Apri impostazioni VPN</string>
|
||||
|
||||
<string name="summary_system">Definisci regole per le applicazioni di sistema, solo per esperti</string>
|
||||
<string name="summary_indicators">Mostra, nella action bar, il tipo di rete e se la rete è a consumo</string>
|
||||
<string name="summary_foreground">Foreground services show on ongoing notification in the status bar and have less chance of being killed by Android</string>
|
||||
|
||||
<string name="msg_sure">Sei sicuro?</string>
|
||||
<string name="msg_started">Regole applicate</string>
|
||||
<string name="msg_disabled">NetGuard è disabilitata, usa lo switch per abilitarla nuovamente</string>
|
||||
<string name="msg_revoked">NetGuard è stata disabilitata</string>
|
||||
<string name="msg_completed">Azione completata</string>
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
<string name="setting_system">システムアプリケーションの管理</string>
|
||||
<string name="setting_dark">ダークテーマを使用する</string>
|
||||
<string name="setting_indicators">状態インジケーターを表示</string>
|
||||
<string name="setting_foreground">Start as foreground service</string>
|
||||
<string name="setting_export">設定をエクスポート</string>
|
||||
<string name="setting_import">設定をインポート</string>
|
||||
<string name="setting_vpn">Android VPN 設定を開く</string>
|
||||
|
@ -26,8 +27,10 @@
|
|||
|
||||
<string name="summary_system">システムアプリケーションのルールを定義します (エキスパート向け)</string>
|
||||
<string name="summary_indicators">アクションバーにネットワークの種類と計測しているかどうかを表示します</string>
|
||||
<string name="summary_foreground">Foreground services show on ongoing notification in the status bar and have less chance of being killed by Android</string>
|
||||
|
||||
<string name="msg_sure">よろしいですか?</string>
|
||||
<string name="msg_started">Enforcing rules</string>
|
||||
<string name="msg_disabled">NetGuard は無効です。NetGuard を有効にするには上のスイッチを使用してください</string>
|
||||
<string name="msg_revoked">NetGuard は無効になりました</string>
|
||||
<string name="msg_completed">操作を完了しました</string>
|
||||
|
|
|
@ -19,14 +19,17 @@ These issues are caused by bugs in Android, or in the software provided by the m
|
|||
<string name="setting_system">Manage system applications</string>
|
||||
<string name="setting_dark">어두운 테마 사용</string>
|
||||
<string name="setting_indicators">Show state indicators</string>
|
||||
<string name="setting_foreground">Start as foreground service</string>
|
||||
<string name="setting_export">Export settings</string>
|
||||
<string name="setting_import">Import settings</string>
|
||||
<string name="setting_vpn">Android VPN 설정 열기</string>
|
||||
|
||||
<string name="summary_system">Define rules for system applications (for experts)</string>
|
||||
<string name="summary_indicators">Display the network type and if the network is metered in the action bar</string>
|
||||
<string name="summary_foreground">Foreground services show on ongoing notification in the status bar and have less chance of being killed by Android</string>
|
||||
|
||||
<string name="msg_sure">계속 하시겠습니까?</string>
|
||||
<string name="msg_started">Enforcing rules</string>
|
||||
<string name="msg_disabled">넷가드가 해제되어 있습니다. 상단 스위치를 사용해 넷가드를 활성화하세요.</string>
|
||||
<string name="msg_revoked">넷가드가 해제되었습니다</string>
|
||||
<string name="msg_completed">Action completed</string>
|
||||
|
|
|
@ -19,14 +19,17 @@ These issues are caused by bugs in Android, or in the software provided by the m
|
|||
<string name="setting_system">Beheer systeemapplicaties</string>
|
||||
<string name="setting_dark">Gebruik donker thema</string>
|
||||
<string name="setting_indicators">Toon toestand indicatoren</string>
|
||||
<string name="setting_foreground">Start als voorgrondservice</string>
|
||||
<string name="setting_export">Exporteer instellingen</string>
|
||||
<string name="setting_import">Importeer instellingen</string>
|
||||
<string name="setting_vpn">Open Android VPN-instellingen</string>
|
||||
|
||||
<string name="summary_system">Define rules for system applications (for experts)</string>
|
||||
<string name="summary_indicators">Display the network type and if the network is metered in the action bar</string>
|
||||
<string name="summary_foreground">Foreground services show on ongoing notification in the status bar and have less chance of being killed by Android</string>
|
||||
|
||||
<string name="msg_sure">Weet u het zeker?</string>
|
||||
<string name="msg_started">Regels worden afgedwongen</string>
|
||||
<string name="msg_disabled">NetGuard staat uit, gebruik de schakelaar boven om NetGuard aan te zetten</string>
|
||||
<string name="msg_revoked">NetGuard is uitgezet</string>
|
||||
<string name="msg_completed">Actie uitgevoerd</string>
|
||||
|
|
|
@ -19,14 +19,17 @@ Problemy te są spowodowane błędami w samym Androidzie, lub oprogramowaniu dos
|
|||
<string name="setting_system">Zarządzaj aplikacjami systemowymi</string>
|
||||
<string name="setting_dark">Użyj ciemnej skórki</string>
|
||||
<string name="setting_indicators">Pokaż wskaźniki stanu</string>
|
||||
<string name="setting_foreground">Start as foreground service</string>
|
||||
<string name="setting_export">Eksport ustawień</string>
|
||||
<string name="setting_import">Import ustawień</string>
|
||||
<string name="setting_vpn">Otwórz ustawienia VPN w Androidzie</string>
|
||||
|
||||
<string name="summary_system">Stwórz reguły dla aplikacji systemowych(zaawansowane)</string>
|
||||
<string name="summary_indicators">Jeśli sieć jest mierzona, wyświetlaj typ sieci w pasku aplikacji</string>
|
||||
<string name="summary_foreground">Foreground services show on ongoing notification in the status bar and have less chance of being killed by Android</string>
|
||||
|
||||
<string name="msg_sure">Na pewno?</string>
|
||||
<string name="msg_started">Enforcing rules</string>
|
||||
<string name="msg_disabled">NetGuard jest wyłączony, użyj przełącznika u góry by go uruchomić</string>
|
||||
<string name="msg_revoked">NetGuard został wyłączony</string>
|
||||
<string name="msg_completed">Wykonano</string>
|
||||
|
|
|
@ -19,14 +19,17 @@ Acest lucru este cauzat de bug-uri in Android sau in software-ul pus la dispozit
|
|||
<string name="setting_system">Gestionati aplicatiile de sistem</string>
|
||||
<string name="setting_dark">Foloseste tema intunecata</string>
|
||||
<string name="setting_indicators">Arata indicatorii de stare</string>
|
||||
<string name="setting_foreground">Start as foreground service</string>
|
||||
<string name="setting_export">Exporta setari</string>
|
||||
<string name="setting_import">Importa setari</string>
|
||||
<string name="setting_vpn">Deschide setari VPN Android</string>
|
||||
|
||||
<string name="summary_system">Defineste reguli pentru aplicatiile de sistem, setare expert</string>
|
||||
<string name="summary_indicators">Arata tipul retelei conectate precum si daca aceasta este una contorizata</string>
|
||||
<string name="summary_foreground">Foreground services show on ongoing notification in the status bar and have less chance of being killed by Android</string>
|
||||
|
||||
<string name="msg_sure">Esti sigur?</string>
|
||||
<string name="msg_started">Limitari activate</string>
|
||||
<string name="msg_disabled">NetGuard este momentan dezactivat, foloseste comutatorul de mai sus pentru a il activa</string>
|
||||
<string name="msg_revoked">NetGuard a fost dezactivat</string>
|
||||
<string name="msg_completed">Setari aplicate</string>
|
||||
|
|
|
@ -17,14 +17,17 @@
|
|||
<string name="setting_system">Управлять системными приложениями</string>
|
||||
<string name="setting_dark">Использовать темную тему</string>
|
||||
<string name="setting_indicators">Показать индикаторы состояния</string>
|
||||
<string name="setting_foreground">Start as foreground service</string>
|
||||
<string name="setting_export">Экспорт настроек</string>
|
||||
<string name="setting_import">Импорт настроек</string>
|
||||
<string name="setting_vpn">Открыть параметры VPN</string>
|
||||
|
||||
<string name="summary_system">Определить правила для системных приложений (для профи)</string>
|
||||
<string name="summary_indicators">Отображать измененные сети на панели</string>
|
||||
<string name="summary_foreground">Foreground services show on ongoing notification in the status bar and have less chance of being killed by Android</string>
|
||||
|
||||
<string name="msg_sure">Вы уверены?</string>
|
||||
<string name="msg_started">Enforcing rules</string>
|
||||
<string name="msg_disabled">NetGuard отключен, используйте переключатель выше для включения</string>
|
||||
<string name="msg_revoked">NetGuard был отключен</string>
|
||||
<string name="msg_completed">Действие завершено</string>
|
||||
|
|
|
@ -19,14 +19,17 @@ Je to spôsobené chybami v Androide alebo v softvéri poskytovanom výrobcom, p
|
|||
<string name="setting_system">Spravovať systémové aplikácie</string>
|
||||
<string name="setting_dark">Použiť tmavú tému</string>
|
||||
<string name="setting_indicators">Show state indicators</string>
|
||||
<string name="setting_foreground">Start as foreground service</string>
|
||||
<string name="setting_export">Exportovať nastavenia</string>
|
||||
<string name="setting_import">Importovať nastavenia</string>
|
||||
<string name="setting_vpn">Otvoriť nastavenia VPN</string>
|
||||
|
||||
<string name="summary_system">Define rules for system applications (for experts)</string>
|
||||
<string name="summary_indicators">Display the network type and if the network is metered in the action bar</string>
|
||||
<string name="summary_foreground">Foreground services show on ongoing notification in the status bar and have less chance of being killed by Android</string>
|
||||
|
||||
<string name="msg_sure">Ste si istý?</string>
|
||||
<string name="msg_started">Enforcing rules</string>
|
||||
<string name="msg_disabled">NetGuard je vypnutý, použite prepínač vyššie na zapnutie NetGuard</string>
|
||||
<string name="msg_revoked">NetGuard je vypnutý</string>
|
||||
<string name="msg_completed">Akcia bola dokončená</string>
|
||||
|
|
|
@ -19,14 +19,17 @@
|
|||
<string name="setting_system">管理系统应用</string>
|
||||
<string name="setting_dark">使用暗色主题</string>
|
||||
<string name="setting_indicators">显示状态指示器</string>
|
||||
<string name="setting_foreground">Start as foreground service</string>
|
||||
<string name="setting_export">导出设置</string>
|
||||
<string name="setting_import">导入设置</string>
|
||||
<string name="setting_vpn">打开安卓VPN设置</string>
|
||||
|
||||
<string name="summary_system">定义系统应用规则, 仅供专业用户</string>
|
||||
<string name="summary_indicators">在状态栏显示网络类型及网络是否按流量计费</string>
|
||||
<string name="summary_foreground">Foreground services show on ongoing notification in the status bar and have less chance of being killed by Android</string>
|
||||
|
||||
<string name="msg_sure">是否确认?</string>
|
||||
<string name="msg_started">Enforcing rules</string>
|
||||
<string name="msg_disabled">NetGuard已被停用, 请使用上方的开关启用NetGuard</string>
|
||||
<string name="msg_revoked">NetGuard已被停用</string>
|
||||
<string name="msg_completed">操作完成</string>
|
||||
|
|
|
@ -20,14 +20,17 @@ These issues are caused by bugs in Android, or in the software provided by the m
|
|||
<string name="setting_system">Manage system applications</string>
|
||||
<string name="setting_dark">Use dark theme</string>
|
||||
<string name="setting_indicators">Show state indicators</string>
|
||||
<string name="setting_foreground">Start as foreground service</string>
|
||||
<string name="setting_export">Export settings</string>
|
||||
<string name="setting_import">Import settings</string>
|
||||
<string name="setting_vpn">Open Android VPN settings</string>
|
||||
|
||||
<string name="summary_system">Define rules for system applications (for experts)</string>
|
||||
<string name="summary_indicators">Display the network type and if the network is metered in the action bar</string>
|
||||
<string name="summary_foreground">Foreground services show on ongoing notification in the status bar and have less chance of being killed by Android</string>
|
||||
|
||||
<string name="msg_sure">Are you sure?</string>
|
||||
<string name="msg_started">Enforcing rules</string>
|
||||
<string name="msg_disabled">NetGuard is disabled, use the switch above to enable NetGuard</string>
|
||||
<string name="msg_revoked">NetGuard has been disabled</string>
|
||||
<string name="msg_completed">Action completed</string>
|
||||
|
|
|
@ -26,6 +26,11 @@
|
|||
android:key="indicators"
|
||||
android:summary="@string/summary_indicators"
|
||||
android:title="@string/setting_indicators" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:key="foreground"
|
||||
android:summary="@string/summary_foreground"
|
||||
android:title="@string/setting_foreground" />
|
||||
<Preference
|
||||
android:key="export"
|
||||
android:title="@string/setting_export" />
|
||||
|
|
Loading…
Reference in New Issue