Show number of allowed/blocked packages in notification summary

This commit is contained in:
M66B 2015-11-18 19:33:48 +01:00
parent efd1fb93bb
commit bb00f41ab8
17 changed files with 40 additions and 14 deletions

View File

@ -20,6 +20,7 @@ package eu.faircode.netguard;
*/
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
@ -104,7 +105,7 @@ public class SinkholeService extends VpnService {
Log.i(TAG, "Executing intent=" + intent + " command=" + cmd + " vpn=" + (vpn != null));
switch (cmd) {
case start:
startForeground(NOTIFY_FOREGROUND, getForegroundNotification());
startForeground(NOTIFY_FOREGROUND, getForegroundNotification(0, 0));
if (vpn == null) {
vpn = startVPN();
startDebug(vpn);
@ -163,11 +164,12 @@ public class SinkholeService extends VpnService {
builder.addRoute("0:0:0:0:0:0:0:0", 0);
// Add list of allowed applications
int allowed = 0;
int nAllowed = 0;
int nBlocked = 0;
for (Rule rule : Rule.getRules(true, TAG, this)) {
boolean blocked = (metered ? rule.other_blocked : rule.wifi_blocked);
if ((!blocked || (rule.unused && interactive)) && (!metered || !(rule.roaming && last_roaming))) {
allowed++;
nAllowed++;
if (debug)
Log.i(TAG, "Allowing " + rule.info.packageName);
try {
@ -175,9 +177,15 @@ public class SinkholeService extends VpnService {
} catch (PackageManager.NameNotFoundException ex) {
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
}
}
} else
nBlocked++;
}
Log.i(TAG, "Allowed count=" + allowed);
Log.i(TAG, "Allowed=" + nAllowed + " blocked=" + nBlocked);
// Update notification
Notification notification = getForegroundNotification(nAllowed, nBlocked);
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nm.notify(NOTIFY_FOREGROUND, notification);
// Build configure intent
Intent configure = new Intent(this, ActivityMain.class);
@ -427,11 +435,11 @@ public class SinkholeService extends VpnService {
super.onRevoke();
}
private Notification getForegroundNotification() {
private Notification getForegroundNotification(int allowed, int blocked) {
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)
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_security_white_24dp)
.setContentTitle(getString(R.string.app_name))
.setContentText(getString(R.string.msg_started))
@ -442,7 +450,13 @@ public class SinkholeService extends VpnService {
.setColor(ContextCompat.getColor(this, R.color.colorPrimary))
.setAutoCancel(true);
return notification.build();
if (allowed > 0 || blocked > 0) {
NotificationCompat.BigTextStyle notification = new NotificationCompat.BigTextStyle(builder);
notification.bigText(getString(R.string.msg_started));
notification.setSummaryText(getString(R.string.msg_packages, allowed, blocked));
return notification.build();
} else
return builder.build();
}
private void showDisabledNotification() {

View File

@ -29,6 +29,7 @@ These issues are caused by bugs in Android, or in the software provided by the m
<string name="msg_sure">هل أنت متأكد؟</string>
<string name="msg_started">Enforcing rules</string>
<string name="msg_packages">%1$d allowed, %2$d blocked</string>
<string name="msg_disabled">التطبيق غير مُفعّل, قم بتفعيل التطبيق من الخيار أعلاه.</string>
<string name="msg_revoked">NetGuard has been disabled, likely by using another VPN based application</string>
<string name="msg_completed">Action completed</string>

View File

@ -28,6 +28,7 @@ Das wird von Fehlern in Android oder in Software vom Hersteller verursacht. Bitt
<string name="msg_sure">Sind Sie sicher?</string>
<string name="msg_started">Regeln werden angewendet</string>
<string name="msg_packages">%1$d allowed, %2$d blocked</string>
<string name="msg_disabled">NetGuard ist deaktiviert. Verwenden Sie den Schalter, um NetGuard zu aktivieren</string>
<string name="msg_revoked">NetGuard wurde deaktiviert. Wahrscheinlich durch Verwendung einer VPN-Anwendung</string>
<string name="msg_completed">Aktion abgeschlossen</string>

View File

@ -29,6 +29,7 @@ Esto es causado por errores en Android, o por el software proporcionado por el f
<string name="msg_sure">¿Estás seguro?</string>
<string name="msg_started">Aplicando reglas</string>
<string name="msg_packages">%1$d allowed, %2$d blocked</string>
<string name="msg_disabled">NetGuard está deshabilitado, utiliza el interruptor de arriba para habilitar a NetGuard</string>
<string name="msg_revoked">NetGuard has been disabled, likely by using another VPN based application</string>
<string name="msg_completed">Acción completada</string>

View File

@ -29,6 +29,7 @@ Ceci est causé par des bugs dans Android, ou dans le logiciel fourni par le con
<string name="msg_sure">Etes-vous sûr ?</string>
<string name="msg_started">Enforcing rules</string>
<string name="msg_packages">%1$d allowed, %2$d blocked</string>
<string name="msg_disabled">NetGuard est désactivé, utilisez le bouton ci-dessus pour activer NetGuard</string>
<string name="msg_revoked">NetGuard has been disabled, likely by using another VPN based application</string>
<string name="msg_completed">Action completé</string>

View File

@ -30,6 +30,7 @@ Ció è causato da alcuni bug contenuti in Android, o in programmi forniti dal p
<string name="msg_sure">Sei sicuro?</string>
<string name="msg_started">Regole applicate</string>
<string name="msg_packages">%1$d allowed, %2$d blocked</string>
<string name="msg_disabled">NetGuard è disabilitata, usa lo switch per abilitarla nuovamente</string>
<string name="msg_revoked">NetGuard è stata disabilitata, probabilmente a causa di un\'altra applicazione che usa il servizio VPN</string>
<string name="msg_completed">Azione completata</string>

View File

@ -32,6 +32,7 @@
<string name="msg_sure">よろしいですか?</string>
<string name="msg_started">Enforcing rules</string>
<string name="msg_packages">%1$d allowed, %2$d blocked</string>
<string name="msg_disabled">NetGuard は無効です。NetGuard を有効にするには上のスイッチを使用してください</string>
<string name="msg_revoked">NetGuard has been disabled, likely by using another VPN based application</string>
<string name="msg_completed">操作を完了しました</string>

View File

@ -29,6 +29,7 @@ These issues are caused by bugs in Android, or in the software provided by the m
<string name="msg_sure">계속 하시겠습니까?</string>
<string name="msg_started">Enforcing rules</string>
<string name="msg_packages">%1$d allowed, %2$d blocked</string>
<string name="msg_disabled">넷가드가 해제되어 있습니다. 상단 스위치를 사용해 넷가드를 활성화하세요.</string>
<string name="msg_revoked">NetGuard has been disabled, likely by using another VPN based application</string>
<string name="msg_completed">Action completed</string>

View File

@ -29,6 +29,7 @@ These issues are caused by bugs in Android, or in the software provided by the m
<string name="msg_sure">Weet u het zeker?</string>
<string name="msg_started">Regels worden afgedwongen</string>
<string name="msg_packages">%1$d allowed, %2$d blocked</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, waarschijnlijk door een andere VPN applicatie</string>
<string name="msg_completed">Actie uitgevoerd</string>

View File

@ -29,6 +29,7 @@ Problemy te są spowodowane błędami w samym Androidzie, lub oprogramowaniu dos
<string name="msg_sure">Na pewno?</string>
<string name="msg_started">Wymuś Reguły</string>
<string name="msg_packages">%1$d allowed, %2$d blocked</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 has been disabled, likely by using another VPN based application</string>
<string name="msg_completed">Wykonano</string>

View File

@ -29,6 +29,7 @@ Acest lucru este cauzat de bug-uri in Android sau in software-ul pus la dispozit
<string name="msg_sure">Esti sigur?</string>
<string name="msg_started">Limitari activate</string>
<string name="msg_packages">%1$d allowed, %2$d blocked</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, probabil de o alta aplicatie ce foloseste o conexiune VPN</string>
<string name="msg_completed">Setari aplicate</string>

View File

@ -27,6 +27,7 @@
<string name="msg_sure">Вы уверены?</string>
<string name="msg_started">Определить правила</string>
<string name="msg_packages">%1$d allowed, %2$d blocked</string>
<string name="msg_disabled">NetGuard отключен, используйте переключатель выше для включения</string>
<string name="msg_revoked">NetGuard был отключен, скорее всего, из-за применения другого VPN-подключения</string>
<string name="msg_completed">Действие завершено</string>

View File

@ -29,6 +29,7 @@ Je to spôsobené chybami v Androide alebo v softvéri poskytovanom výrobcom, p
<string name="msg_sure">Ste si istý?</string>
<string name="msg_started">Pravidlá vynútenia</string>
<string name="msg_packages">%1$d allowed, %2$d blocked</string>
<string name="msg_disabled">NetGuard je vypnutý, použite prepínač vyššie na zapnutie NetGuard</string>
<string name="msg_revoked">NetGuard has been disabled, likely by using another VPN based application</string>
<string name="msg_completed">Akcia bola dokončená</string>

View File

@ -25,6 +25,7 @@
<string name="msg_sure">Ви впевнені?</string>
<string name="msg_started">Визначити правила</string>
<string name="msg_packages">%1$d allowed, %2$d blocked</string>
<string name="msg_disabled">NetGuard вимкнено, аби увімкнути, використовуй перемикач, що знаходиться вище</string>
<string name="msg_revoked">NetGuard has been disabled, likely by using another VPN based application</string>
<string name="msg_completed">Дію завершено</string>

View File

@ -29,6 +29,7 @@
<string name="msg_sure">是否确认?</string>
<string name="msg_started">规则加载中</string>
<string name="msg_packages">%1$d allowed, %2$d blocked</string>
<string name="msg_disabled">NetGuard已被停用, 请使用上方的开关启用NetGuard</string>
<string name="msg_revoked">NetGuard已被停用, 可能是由于您启动了另一个基于VPN的应用</string>
<string name="msg_completed">操作完成</string>

View File

@ -30,6 +30,7 @@ These issues are caused by bugs in Android, or in the software provided by the m
<string name="msg_sure">Are you sure?</string>
<string name="msg_started">Enforcing rules</string>
<string name="msg_packages">%1$d allowed, %2$d blocked</string>
<string name="msg_disabled">NetGuard is disabled, use the switch above to enable NetGuard</string>
<string name="msg_revoked">NetGuard has been disabled, likely by using another VPN based application</string>
<string name="msg_completed">Action completed</string>

View File

@ -1,12 +1,9 @@
#!/bin/bash
grep -RIl "\<string name=\"setting_metered" app/src/main/res | xargs sed -i -e '/setting_metered/d'
grep -RIl "\<string name=\"setting_whitelist_roaming" app/src/main/res | xargs sed -i -e '/setting_whitelist_roaming/a\
\ \ \ \ <string name="setting_metered">Handle metered WiFi networks</string>'
grep -RIl "\<string name=\"msg_packages" app/src/main/res | xargs sed -i -e '/msg_packages/d'
grep -RIl "\<string name=\"msg_started" app/src/main/res | xargs sed -i -e '/msg_started/a\
\ \ \ \ <string name="msg_packages">%1$d allowed, %2$d blocked</string>'
grep -RIl "\<string name=\"summary_metered" app/src/main/res | xargs sed -i -e '/summary_metered/d'
grep -RIl "\<string name=\"summary_system" app/src/main/res | xargs sed -i -e '/summary_system/a\
\ \ \ \ <string name="summary_metered">Apply mobile network rules to metered (paid, tethered) WiFi networks</string>'
#grep -RIl "\<string name=\"title_disabled" app/src/main/res | xargs sed -i -e 's/Is disabled/is disabled/g'
#grep -RIl "\<string name=\"title_internet" app/src/main/res | xargs sed -i -e 's/Has no internet access/has no internet permission/g'