Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6fce580d authored by farenl's avatar farenl Committed by Linux Build Service Account
Browse files

Settings: Implement app network access control on data and WLAN

Add an entrance to start the network control app which could restrict
app access network over cellular data and WLAN.

CRs-Fixed: 1027380

Conflicts:
	src/com/android/settings/datausage/DataUsageSummary.java

Change-Id: I25f1dcc586e9e2ae82cf36d4d3e8104a94a6c20d
parent 0fa4364e
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -18,4 +18,7 @@
    <item
        android:id="@+id/data_usage_menu_cellular_networks"
        android:title="@string/data_usage_menu_cellular_networks" />
    <item
        android:id="@+id/data_usage_menu_app_network_access"
        android:title="@string/app_ops_permiss_name" />
</menu>
+2 −0
Original line number Diff line number Diff line
@@ -7518,6 +7518,8 @@
    <string name="notify_connect">CMCC WLAN prompt</string>
    <string name="notify_connect_summary">Prompt me when access to CMCC WLAN</string>
    <string name="wifi_setting_connect_type_error">There was a problem setting the connect type.</string>
    <string name="app_ops_permiss_name">App network access</string>
    <!-- Roaming Data Settings -->
    <string name="label_global_roaming_settings">Roaming Settings</string>
    <string name="set_data_time_range">Show time range</string>
+26 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ActivityNotFoundException;
import android.net.ConnectivityManager;
import android.net.INetworkStatsSession;
import android.net.NetworkTemplate;
@@ -38,6 +39,7 @@ import android.text.SpannableString;
import android.text.TextUtils;
import android.text.format.Formatter;
import android.text.style.RelativeSizeSpan;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -128,6 +130,17 @@ public class DataUsageSummary extends DataUsageBase implements Indexable {
        super.onCreateOptionsMenu(menu, inflater);
    }

    @Override
    public void onPrepareOptionsMenu(Menu menu) {
        final Context context = getActivity();
        final MenuItem networkaccess = menu.findItem(R.id.data_usage_menu_app_network_access);
        if (context.getResources().getBoolean(R.bool.config_app_network_access_enabled)) {
            networkaccess.setVisible(true);
        } else {
            networkaccess.setVisible(false);
        }
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
@@ -138,6 +151,19 @@ public class DataUsageSummary extends DataUsageBase implements Indexable {
                startActivity(intent);
                return true;
            }
            case R.id.data_usage_menu_app_network_access: {
                try {
                    Intent intent = new Intent();
                    intent.setClassName(
                            "com.qualcomm.qti.appnetaccess",
                            "com.qualcomm.qti.appnetaccess.NetworkControl");
                    intent.setAction("android.intent.networkcontrol");
                    startActivity(intent);
                } catch (ActivityNotFoundException ex) {
                    Log.d(TAG, "activity NetworkControl not found");
                }
                return true;
            }
        }
        return false;
    }