mirror of
https://github.com/M66B/NetGuard.git
synced 2025-03-15 08:29:02 +00:00
Block when roaming
This commit is contained in:
parent
99f8cab27d
commit
4d87d0494b
15 changed files with 132 additions and 24 deletions
|
@ -326,6 +326,7 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
|
|||
|
||||
menu.findItem(R.id.menu_whitelist_wifi).setChecked(prefs.getBoolean("whitelist_wifi", true));
|
||||
menu.findItem(R.id.menu_whitelist_other).setChecked(prefs.getBoolean("whitelist_other", true));
|
||||
menu.findItem(R.id.menu_whitelist_roaming).setChecked(prefs.getBoolean("whitelist_roaming", true));
|
||||
menu.findItem(R.id.menu_system).setChecked(prefs.getBoolean("manage_system", false));
|
||||
menu.findItem(R.id.menu_export).setEnabled(getIntentCreateDocument().resolveActivity(getPackageManager()) != null);
|
||||
menu.findItem(R.id.menu_import).setEnabled(getIntentOpenDocument().resolveActivity(getPackageManager()) != null);
|
||||
|
@ -354,6 +355,10 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
|
|||
menu_whitelist_other(prefs);
|
||||
return true;
|
||||
|
||||
case R.id.menu_whitelist_roaming:
|
||||
menu_whitelist_roaming(prefs);
|
||||
return true;
|
||||
|
||||
case R.id.menu_system:
|
||||
menu_system(prefs);
|
||||
return true;
|
||||
|
@ -408,6 +413,12 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
|
|||
SinkholeService.reload("other", this);
|
||||
}
|
||||
|
||||
private void menu_whitelist_roaming(SharedPreferences prefs) {
|
||||
prefs.edit().putBoolean("whitelist_roaming", !prefs.getBoolean("whitelist_roaming", true)).apply();
|
||||
updateApplicationList();
|
||||
SinkholeService.reload("other", this);
|
||||
}
|
||||
|
||||
private void menu_system(SharedPreferences prefs) {
|
||||
prefs.edit().putBoolean("manage_system", !prefs.getBoolean("manage_system", true)).apply();
|
||||
updateApplicationList();
|
||||
|
|
|
@ -27,6 +27,7 @@ public class Rule implements Comparable<Rule> {
|
|||
public boolean wifi_blocked;
|
||||
public boolean other_blocked;
|
||||
public boolean unused;
|
||||
public boolean roaming;
|
||||
public boolean changed;
|
||||
public Intent intent;
|
||||
public boolean attributes = false;
|
||||
|
@ -51,13 +52,15 @@ public class Rule implements Comparable<Rule> {
|
|||
SharedPreferences wifi = context.getSharedPreferences("wifi", Context.MODE_PRIVATE);
|
||||
SharedPreferences other = context.getSharedPreferences("other", Context.MODE_PRIVATE);
|
||||
SharedPreferences unused = context.getSharedPreferences("unused", Context.MODE_PRIVATE);
|
||||
SharedPreferences roaming = context.getSharedPreferences("roaming", Context.MODE_PRIVATE);
|
||||
|
||||
// Get settings
|
||||
boolean whitelist_wifi = prefs.getBoolean("whitelist_wifi", true);
|
||||
boolean whitelist_other = prefs.getBoolean("whitelist_other", true);
|
||||
boolean whitelist_roaming = prefs.getBoolean("whitelist_roaming", true);
|
||||
boolean manage_system = prefs.getBoolean("manage_system", false);
|
||||
|
||||
// Get predifined rules
|
||||
// Get predefined rules
|
||||
Map<String, Boolean> predefined = new HashMap<>();
|
||||
try {
|
||||
XmlResourceParser xml = context.getResources().getXml(R.xml.predefined);
|
||||
|
@ -80,18 +83,18 @@ public class Rule implements Comparable<Rule> {
|
|||
for (PackageInfo info : context.getPackageManager().getInstalledPackages(0)) {
|
||||
boolean system = ((info.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0);
|
||||
if (!system || manage_system || all) {
|
||||
boolean isPredefined = predefined.containsKey(info.packageName);
|
||||
Rule rule = new Rule(info, context);
|
||||
rule.system = system;
|
||||
rule.wifi_blocked = (system && !manage_system ? false :
|
||||
wifi.getBoolean(info.packageName, predefined.containsKey(info.packageName)
|
||||
? predefined.get(info.packageName)
|
||||
: whitelist_wifi));
|
||||
wifi.getBoolean(info.packageName, isPredefined ? predefined.get(info.packageName) : whitelist_wifi));
|
||||
rule.other_blocked = (system && !manage_system ? false :
|
||||
other.getBoolean(info.packageName, predefined.containsKey(info.packageName)
|
||||
? predefined.get(info.packageName)
|
||||
: whitelist_other));
|
||||
other.getBoolean(info.packageName, isPredefined ? predefined.get(info.packageName) : whitelist_other));
|
||||
rule.unused = unused.getBoolean(info.packageName, false);
|
||||
rule.changed = (rule.wifi_blocked != whitelist_wifi || rule.other_blocked != whitelist_other);
|
||||
rule.roaming = roaming.getBoolean(info.packageName, isPredefined ? predefined.get(info.packageName) : whitelist_roaming);
|
||||
rule.changed = (rule.wifi_blocked != whitelist_wifi ||
|
||||
rule.other_blocked != whitelist_other ||
|
||||
(!rule.other_blocked || rule.unused) && rule.roaming != whitelist_roaming);
|
||||
listRules.add(rule);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@ public class RuleAdapter extends RecyclerView.Adapter<RuleAdapter.ViewHolder> im
|
|||
|
||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
public View view;
|
||||
|
||||
public LinearLayout llApplication;
|
||||
public ImageView ivIcon;
|
||||
public ImageView ivExpander;
|
||||
|
@ -45,26 +46,36 @@ public class RuleAdapter extends RecyclerView.Adapter<RuleAdapter.ViewHolder> im
|
|||
public TextView tvPackage;
|
||||
public CheckBox cbWifi;
|
||||
public CheckBox cbOther;
|
||||
|
||||
public LinearLayout llAttributes;
|
||||
public ImageView ivUsing;
|
||||
public TextView tvRoaming;
|
||||
|
||||
public LinearLayout llConfiguration;
|
||||
public CheckBox cbUsing;
|
||||
public CheckBox cbRoaming;
|
||||
public Button btnLaunch;
|
||||
|
||||
public ViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
view = itemView;
|
||||
|
||||
llApplication = (LinearLayout) itemView.findViewById(R.id.llApplication);
|
||||
ivIcon = (ImageView) itemView.findViewById(R.id.ivIcon);
|
||||
ivExpander = (ImageView) itemView.findViewById(R.id.ivExpander);
|
||||
tvName = (TextView) itemView.findViewById(R.id.tvName);
|
||||
tvPackage = (TextView) itemView.findViewById(R.id.tvPackage);
|
||||
|
||||
cbWifi = (CheckBox) itemView.findViewById(R.id.cbWifi);
|
||||
cbOther = (CheckBox) itemView.findViewById(R.id.cbOther);
|
||||
|
||||
llAttributes = (LinearLayout) itemView.findViewById(R.id.llAttributes);
|
||||
ivUsing = (ImageView) itemView.findViewById(R.id.ivUsing);
|
||||
tvRoaming = (TextView) itemView.findViewById(R.id.tvRoaming);
|
||||
|
||||
llConfiguration = (LinearLayout) itemView.findViewById(R.id.llConfiguration);
|
||||
tvPackage = (TextView) itemView.findViewById(R.id.tvPackage);
|
||||
cbUsing = (CheckBox) itemView.findViewById(R.id.cbUsing);
|
||||
cbRoaming = (CheckBox) itemView.findViewById(R.id.cbRoaming);
|
||||
btnLaunch = (Button) itemView.findViewById(R.id.btnLaunch);
|
||||
}
|
||||
}
|
||||
|
@ -134,9 +145,7 @@ public class RuleAdapter extends RecyclerView.Adapter<RuleAdapter.ViewHolder> im
|
|||
}
|
||||
};
|
||||
|
||||
int color = rule.system ? colorAccent : colorText;
|
||||
if (rule.disabled)
|
||||
color = Color.argb(100, Color.red(color), Color.green(color), Color.blue(color));
|
||||
holder.llApplication.setOnClickListener(llListener);
|
||||
|
||||
if (rule.info.applicationInfo.icon == 0)
|
||||
Picasso.with(context).load(android.R.drawable.sym_def_app_icon).into(holder.ivIcon);
|
||||
|
@ -146,11 +155,12 @@ public class RuleAdapter extends RecyclerView.Adapter<RuleAdapter.ViewHolder> im
|
|||
}
|
||||
|
||||
holder.ivExpander.setImageResource(rule.attributes ? android.R.drawable.arrow_up_float : android.R.drawable.arrow_down_float);
|
||||
holder.llApplication.setOnClickListener(llListener);
|
||||
holder.tvName.setText(rule.name);
|
||||
|
||||
int color = rule.system ? colorAccent : colorText;
|
||||
if (rule.disabled)
|
||||
color = Color.argb(100, Color.red(color), Color.green(color), Color.blue(color));
|
||||
holder.tvName.setTextColor(color);
|
||||
holder.tvPackage.setText(rule.info.packageName);
|
||||
holder.tvPackage.setTextColor(color);
|
||||
|
||||
holder.cbWifi.setOnCheckedChangeListener(null);
|
||||
holder.cbWifi.setChecked(rule.wifi_blocked);
|
||||
|
@ -162,8 +172,11 @@ public class RuleAdapter extends RecyclerView.Adapter<RuleAdapter.ViewHolder> im
|
|||
|
||||
holder.llAttributes.setOnClickListener(llListener);
|
||||
holder.ivUsing.setVisibility(rule.unused && (rule.wifi_blocked || rule.other_blocked) ? View.VISIBLE : View.INVISIBLE);
|
||||
holder.tvRoaming.setVisibility(rule.roaming && (!rule.other_blocked || rule.unused) ? View.VISIBLE : View.INVISIBLE);
|
||||
|
||||
holder.llConfiguration.setVisibility(rule.attributes ? View.VISIBLE : View.GONE);
|
||||
holder.tvPackage.setText(rule.info.packageName);
|
||||
|
||||
holder.cbUsing.setOnCheckedChangeListener(null);
|
||||
holder.cbUsing.setChecked(rule.unused);
|
||||
holder.cbUsing.setEnabled(rule.wifi_blocked || rule.other_blocked);
|
||||
|
@ -189,6 +202,32 @@ public class RuleAdapter extends RecyclerView.Adapter<RuleAdapter.ViewHolder> im
|
|||
}
|
||||
});
|
||||
|
||||
holder.cbRoaming.setOnCheckedChangeListener(null);
|
||||
holder.cbRoaming.setChecked(rule.roaming);
|
||||
holder.cbRoaming.setEnabled(!rule.other_blocked || rule.unused);
|
||||
|
||||
holder.cbRoaming.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
// Update rule
|
||||
rule.roaming = isChecked;
|
||||
|
||||
// Store rule
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
SharedPreferences roaming = context.getSharedPreferences("roaming", Context.MODE_PRIVATE);
|
||||
if (rule.roaming == prefs.getBoolean("whitelist_roaming", true))
|
||||
roaming.edit().remove(rule.info.packageName).apply();
|
||||
else
|
||||
roaming.edit().putBoolean(rule.info.packageName, rule.roaming).apply();
|
||||
|
||||
// Update UI
|
||||
notifyItemChanged(position);
|
||||
|
||||
// Apply updated rule
|
||||
SinkholeService.reload(null, context);
|
||||
}
|
||||
});
|
||||
|
||||
holder.btnLaunch.setEnabled(rule.intent != null);
|
||||
holder.btnLaunch.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
|
|
@ -25,6 +25,7 @@ import java.nio.ByteOrder;
|
|||
public class SinkholeService extends VpnService {
|
||||
private static final String TAG = "NetGuard.Service";
|
||||
|
||||
private boolean last_roaming;
|
||||
private ParcelFileDescriptor vpn = null;
|
||||
private boolean debug = false;
|
||||
private Thread thread = null;
|
||||
|
@ -52,6 +53,7 @@ public class SinkholeService extends VpnService {
|
|||
switch (cmd) {
|
||||
case start:
|
||||
if (enabled && vpn == null) {
|
||||
last_roaming = Util.isRoaming(SinkholeService.this);
|
||||
vpn = startVPN();
|
||||
startDebug(vpn);
|
||||
removeDisabledNotification();
|
||||
|
@ -93,6 +95,10 @@ public class SinkholeService extends VpnService {
|
|||
boolean wifi = Util.isWifiActive(this);
|
||||
Log.i(TAG, "wifi=" + wifi);
|
||||
|
||||
// Check if Wi-Fi
|
||||
boolean roaming = Util.isRoaming(this);
|
||||
Log.i(TAG, "roaming=" + roaming);
|
||||
|
||||
// Check if interactive
|
||||
boolean interactive = Util.isInteractive(this);
|
||||
Log.i(TAG, "interactive=" + interactive);
|
||||
|
@ -106,8 +112,9 @@ public class SinkholeService extends VpnService {
|
|||
builder.addRoute("0:0:0:0:0:0:0:0", 0);
|
||||
|
||||
// Add list of allowed applications
|
||||
for (Rule rule : Rule.getRules(true, TAG, this))
|
||||
if (!(wifi ? rule.wifi_blocked : rule.other_blocked) || (rule.unused && interactive)) {
|
||||
for (Rule rule : Rule.getRules(true, TAG, this)) {
|
||||
boolean blocked = (wifi ? rule.wifi_blocked : rule.other_blocked);
|
||||
if ((!blocked || (rule.unused && interactive)) && (wifi || !(rule.roaming && roaming))) {
|
||||
Log.i(TAG, "Allowing " + rule.info.packageName);
|
||||
try {
|
||||
builder.addDisallowedApplication(rule.info.packageName);
|
||||
|
@ -115,6 +122,7 @@ public class SinkholeService extends VpnService {
|
|||
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Build configure intent
|
||||
Intent configure = new Intent(this, ActivityMain.class);
|
||||
|
@ -228,8 +236,15 @@ public class SinkholeService extends VpnService {
|
|||
public void onReceive(Context context, Intent intent) {
|
||||
Log.i(TAG, "Received " + intent);
|
||||
Util.logExtras(TAG, intent);
|
||||
if (intent.hasExtra(ConnectivityManager.EXTRA_NETWORK_TYPE) &&
|
||||
intent.getIntExtra(ConnectivityManager.EXTRA_NETWORK_TYPE, ConnectivityManager.TYPE_DUMMY) == ConnectivityManager.TYPE_WIFI)
|
||||
|
||||
if (last_roaming != Util.isRoaming(SinkholeService.this)) {
|
||||
last_roaming = !last_roaming;
|
||||
Log.i(TAG, "New state roaming=" + last_roaming);
|
||||
reload(null, SinkholeService.this);
|
||||
|
||||
} else if (intent.hasExtra(ConnectivityManager.EXTRA_NETWORK_TYPE) &&
|
||||
intent.getIntExtra(ConnectivityManager.EXTRA_NETWORK_TYPE, ConnectivityManager.TYPE_DUMMY) ==
|
||||
ConnectivityManager.TYPE_WIFI)
|
||||
reload(null, SinkholeService.this);
|
||||
}
|
||||
};
|
||||
|
|
|
@ -60,16 +60,26 @@
|
|||
<LinearLayout
|
||||
android:id="@+id/llAttributes"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal">
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="12dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivUsing"
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:src="@drawable/using" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvRoaming"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:text="R"
|
||||
android:textAppearance="@android:style/TextAppearance.Material.Small"
|
||||
android:textColor="@color/colorAccent" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -77,7 +87,7 @@
|
|||
android:id="@+id/llConfiguration"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:orientation="vertical"
|
||||
android:paddingStart="?android:attr/listPreferredItemHeightSmall"
|
||||
android:paddingTop="0dp"
|
||||
|
@ -100,6 +110,14 @@
|
|||
android:text="@string/title_using"
|
||||
android:textAppearance="@android:style/TextAppearance.Material.Small" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/cbRoaming"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="@string/title_roaming"
|
||||
android:textAppearance="@android:style/TextAppearance.Material.Small" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btnLaunch"
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
@ -19,6 +19,10 @@
|
|||
android:id="@+id/menu_whitelist_other"
|
||||
android:checkable="true"
|
||||
android:title="@string/menu_whitelist_other" />
|
||||
<item
|
||||
android:id="@+id/menu_whitelist_roaming"
|
||||
android:checkable="true"
|
||||
android:title="@string/menu_whitelist_roaming" />
|
||||
<item
|
||||
android:id="@+id/menu_system"
|
||||
android:checkable="true"
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<string name="menu_network">فتح إعدادات الشبكة</string>
|
||||
<string name="menu_whitelist_wifi">حظر الواي فاي بشكل افتراضي</string>
|
||||
<string name="menu_whitelist_other">حظر الشبكة بشكل افتراضي</string>
|
||||
<string name="menu_whitelist_roaming">Block roaming by default</string>
|
||||
<string name="menu_system">Manage system applications</string>
|
||||
<string name="menu_export">Export settings</string>
|
||||
<string name="menu_import">Import settings</string>
|
||||
|
@ -19,6 +20,7 @@
|
|||
<string name="msg_revoked">NetGuard has been disabled</string>
|
||||
|
||||
<string name="title_using">السماح عند استخدام الجهاز</string>
|
||||
<string name="title_roaming">Block when roaming</string>
|
||||
<string name="title_launch">Start application</string>
|
||||
<string name="title_donate">Donate</string>
|
||||
<string name="title_thanks">Thank you for your donation!</string>
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<string name="menu_network">Ouvrir les paramètres réseaux</string>
|
||||
<string name="menu_whitelist_wifi">Blocage Wi-Fi par défaut</string>
|
||||
<string name="menu_whitelist_other">Blocage données mobiles par défaut</string>
|
||||
<string name="menu_whitelist_roaming">Block roaming by default</string>
|
||||
<string name="menu_system">Manage system applications</string>
|
||||
<string name="menu_export">Export settings</string>
|
||||
<string name="menu_import">Import settings</string>
|
||||
|
@ -19,6 +20,7 @@
|
|||
<string name="msg_revoked">NetGuard has been disabled</string>
|
||||
|
||||
<string name="title_using">Allow when device in use</string>
|
||||
<string name="title_roaming">Block when roaming</string>
|
||||
<string name="title_launch">Start application</string>
|
||||
<string name="title_donate">Donate</string>
|
||||
<string name="title_thanks">Thank you for your donation!</string>
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<string name="menu_network">Apri impostazioni di rete</string>
|
||||
<string name="menu_whitelist_wifi">Blocca Wi-Fi di default</string>
|
||||
<string name="menu_whitelist_other">Block rete di dati di default</string>
|
||||
<string name="menu_whitelist_roaming">Block roaming by default</string>
|
||||
<string name="menu_system">Manage system applications</string>
|
||||
<string name="menu_export">Export settings</string>
|
||||
<string name="menu_import">Import settings</string>
|
||||
|
@ -19,6 +20,7 @@
|
|||
<string name="msg_revoked">NetGuard has been disabled</string>
|
||||
|
||||
<string name="title_using">Consenti quando il dispositivo è in uso</string>
|
||||
<string name="title_roaming">Block when roaming</string>
|
||||
<string name="title_launch">Start application</string>
|
||||
<string name="title_donate">Donate</string>
|
||||
<string name="title_thanks">Thank you for your donation!</string>
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<string name="menu_network">네트워크 설정 열기</string>
|
||||
<string name="menu_whitelist_wifi">Wi-Fi 차단을 기본 설정으로</string>
|
||||
<string name="menu_whitelist_other">모바일 데이터 차단을 기본 설정으로</string>
|
||||
<string name="menu_whitelist_roaming">Block roaming by default</string>
|
||||
<string name="menu_system">Manage system applications</string>
|
||||
<string name="menu_export">Export settings</string>
|
||||
<string name="menu_import">Import settings</string>
|
||||
|
@ -19,6 +20,7 @@
|
|||
<string name="msg_revoked">넷가드가 해제되었습니다</string>
|
||||
|
||||
<string name="title_using">기기가 사용중일때 허용</string>
|
||||
<string name="title_roaming">Block when roaming</string>
|
||||
<string name="title_launch">앱 시작</string>
|
||||
<string name="title_donate">기부</string>
|
||||
<string name="title_thanks">기부해주셔서 감사합니다!</string>
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<string name="menu_network">Open netwerkinstellingen</string>
|
||||
<string name="menu_whitelist_wifi">Blokkeer Wi-Fi standaard</string>
|
||||
<string name="menu_whitelist_other">Blokkeer mobiel standaard</string>
|
||||
<string name="menu_whitelist_roaming">Blokkeer roaming standaard</string>
|
||||
<string name="menu_system">Beheer systeemapplicaties</string>
|
||||
<string name="menu_export">Exporteer instellingen</string>
|
||||
<string name="menu_import">Importeer instellingen</string>
|
||||
|
@ -19,6 +20,7 @@
|
|||
<string name="msg_revoked">NetGuard is uitgezet</string>
|
||||
|
||||
<string name="title_using">Sta toe als apparaat in gebruik</string>
|
||||
<string name="title_roaming">Blokkeer bij roamen</string>
|
||||
<string name="title_launch">Start applicatie</string>
|
||||
<string name="title_donate">Doneer</string>
|
||||
<string name="title_thanks">Bedankt voor uw donatie!</string>
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<string name="menu_network">Deschide setari retea</string>
|
||||
<string name="menu_whitelist_wifi">Blocheaza implicit Wi-Fi</string>
|
||||
<string name="menu_whitelist_other">Blocheaza implicit date mobile</string>
|
||||
<string name="menu_whitelist_roaming">Block roaming by default</string>
|
||||
<string name="menu_system">Gestionati aplicatii de sistem</string>
|
||||
<string name="menu_export">Exporta setari</string>
|
||||
<string name="menu_import">Importa setari</string>
|
||||
|
@ -19,6 +20,7 @@
|
|||
<string name="msg_revoked">NetGuard a fost dezactivat</string>
|
||||
|
||||
<string name="title_using">Permite cand dispozitivul este folosit</string>
|
||||
<string name="title_roaming">Block when roaming</string>
|
||||
<string name="title_launch">Porneste aplicatia</string>
|
||||
<string name="title_donate">Doneaza</string>
|
||||
<string name="title_thanks">Iti multumesc pentru donatie!</string>
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<string name="menu_network">Otvoriť nastavenia sietí</string>
|
||||
<string name="menu_whitelist_wifi">Predvolene blokovať Wi-Fi</string>
|
||||
<string name="menu_whitelist_other">Predvolene blokovať mobilné dáta</string>
|
||||
<string name="menu_whitelist_roaming">Block roaming by default</string>
|
||||
<string name="menu_system">Spravovať systémové aplikácie</string>
|
||||
<string name="menu_export">Exportovať nastavenia</string>
|
||||
<string name="menu_import">Importovať nastavenia</string>
|
||||
|
@ -19,6 +20,7 @@
|
|||
<string name="msg_revoked">NetGuard je vypnutý</string>
|
||||
|
||||
<string name="title_using">Povoliť pri používaní zariadenia</string>
|
||||
<string name="title_roaming">Block when roaming</string>
|
||||
<string name="title_launch">Spustiť aplikáciu</string>
|
||||
<string name="title_donate">Prispieť</string>
|
||||
<string name="title_thanks">Ďakujeme vám za váš príspevok!</string>
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<string name="menu_network">打开网络设置</string>
|
||||
<string name="menu_whitelist_wifi">默认阻止Wi-Fi网络</string>
|
||||
<string name="menu_whitelist_other">默认阻止移动网络</string>
|
||||
<string name="menu_whitelist_roaming">Block roaming by default</string>
|
||||
<string name="menu_system">管理系统应用</string>
|
||||
<string name="menu_export">导出设置</string>
|
||||
<string name="menu_import">导入设置</string>
|
||||
|
@ -19,6 +20,7 @@
|
|||
<string name="msg_revoked">NetGuard已被停用</string>
|
||||
|
||||
<string name="title_using">设备使用时允许运行</string>
|
||||
<string name="title_roaming">Block when roaming</string>
|
||||
<string name="title_launch">启动应用</string>
|
||||
<string name="title_donate">捐赠</string>
|
||||
<string name="title_thanks">感谢您的捐赠!</string>
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<string name="menu_network">Open network settings</string>
|
||||
<string name="menu_whitelist_wifi">Block Wi-Fi by default</string>
|
||||
<string name="menu_whitelist_other">Block mobile by default</string>
|
||||
<string name="menu_whitelist_roaming">Block roaming by default</string>
|
||||
<string name="menu_system">Manage system applications</string>
|
||||
<string name="menu_export">Export settings</string>
|
||||
<string name="menu_import">Import settings</string>
|
||||
|
@ -20,6 +21,7 @@
|
|||
<string name="msg_revoked">NetGuard has been disabled</string>
|
||||
|
||||
<string name="title_using">Allow when device in use</string>
|
||||
<string name="title_roaming">Block when roaming</string>
|
||||
<string name="title_launch">Start application</string>
|
||||
<string name="title_donate">Donate</string>
|
||||
<string name="title_thanks">Thank you for your donation!</string>
|
||||
|
|
Loading…
Add table
Reference in a new issue