Loading packages/LineageSettingsProvider/src/org/lineageos/lineagesettings/LineageDatabaseHelper.java +43 −2 Original line number Diff line number Diff line Loading @@ -17,8 +17,12 @@ package org.lineageos.lineagesettings; import android.Manifest; import android.app.AppGlobals; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.content.res.AssetManager; import android.content.res.Configuration; import android.content.res.Resources; Loading @@ -26,9 +30,13 @@ import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDoneException; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteStatement; import android.net.ConnectivitySettingsManager; import android.os.Environment; import android.os.RemoteException; import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Log; Loading @@ -38,6 +46,10 @@ import lineageos.providers.LineageSettings; import org.lineageos.internal.util.FileUtils; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** * The LineageDatabaseHelper allows creation of a database to store Lineage specific settings for a user Loading @@ -48,7 +60,7 @@ public class LineageDatabaseHelper extends SQLiteOpenHelper{ private static final boolean LOCAL_LOGV = false; private static final String DATABASE_NAME = "lineagesettings.db"; private static final int DATABASE_VERSION = 14; private static final int DATABASE_VERSION = 15; private static final String DATABASE_NAME_OLD = "cmsettings.db"; Loading Loading @@ -389,6 +401,13 @@ public class LineageDatabaseHelper extends SQLiteOpenHelper{ } upgradeVersion = 14; } if (upgradeVersion < 15) { if (mUserHandle == UserHandle.USER_OWNER) { loadRestrictedNetworkingModeSetting(); } upgradeVersion = 15; } // *** Remember to update DATABASE_VERSION above! } Loading Loading @@ -527,12 +546,34 @@ public class LineageDatabaseHelper extends SQLiteOpenHelper{ stmt = db.compileStatement("INSERT OR IGNORE INTO global(name,value)" + " VALUES(?,?);"); // Global // this is a placeholder loadRestrictedNetworkingModeSetting(); } finally { if (stmt != null) stmt.close(); } } private void loadRestrictedNetworkingModeSetting() { Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.RESTRICTED_NETWORKING_MODE, 1); try { List<PackageInfo> packages = new ArrayList<>(); for (UserInfo userInfo : UserManager.get(mContext).getAliveUsers()) { packages.addAll( AppGlobals.getPackageManager().getPackagesHoldingPermissions( new String[]{Manifest.permission.INTERNET}, PackageManager.MATCH_UNINSTALLED_PACKAGES, userInfo.id ).getList()); } Set<Integer> uids = packages.stream().map( packageInfo -> packageInfo.applicationInfo.uid) .collect(Collectors.toSet()); ConnectivitySettingsManager.setUidsAllowedOnRestrictedNetworks(mContext, uids); } catch (RemoteException e) { Log.e(TAG, "Failed to set uids allowed on restricted networks"); } } /** * Loads a region locked string setting into a database table. If the resource for the specific * mcc is not found, the setting is loaded from the default resources. Loading Loading
packages/LineageSettingsProvider/src/org/lineageos/lineagesettings/LineageDatabaseHelper.java +43 −2 Original line number Diff line number Diff line Loading @@ -17,8 +17,12 @@ package org.lineageos.lineagesettings; import android.Manifest; import android.app.AppGlobals; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.content.res.AssetManager; import android.content.res.Configuration; import android.content.res.Resources; Loading @@ -26,9 +30,13 @@ import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDoneException; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteStatement; import android.net.ConnectivitySettingsManager; import android.os.Environment; import android.os.RemoteException; import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Log; Loading @@ -38,6 +46,10 @@ import lineageos.providers.LineageSettings; import org.lineageos.internal.util.FileUtils; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** * The LineageDatabaseHelper allows creation of a database to store Lineage specific settings for a user Loading @@ -48,7 +60,7 @@ public class LineageDatabaseHelper extends SQLiteOpenHelper{ private static final boolean LOCAL_LOGV = false; private static final String DATABASE_NAME = "lineagesettings.db"; private static final int DATABASE_VERSION = 14; private static final int DATABASE_VERSION = 15; private static final String DATABASE_NAME_OLD = "cmsettings.db"; Loading Loading @@ -389,6 +401,13 @@ public class LineageDatabaseHelper extends SQLiteOpenHelper{ } upgradeVersion = 14; } if (upgradeVersion < 15) { if (mUserHandle == UserHandle.USER_OWNER) { loadRestrictedNetworkingModeSetting(); } upgradeVersion = 15; } // *** Remember to update DATABASE_VERSION above! } Loading Loading @@ -527,12 +546,34 @@ public class LineageDatabaseHelper extends SQLiteOpenHelper{ stmt = db.compileStatement("INSERT OR IGNORE INTO global(name,value)" + " VALUES(?,?);"); // Global // this is a placeholder loadRestrictedNetworkingModeSetting(); } finally { if (stmt != null) stmt.close(); } } private void loadRestrictedNetworkingModeSetting() { Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.RESTRICTED_NETWORKING_MODE, 1); try { List<PackageInfo> packages = new ArrayList<>(); for (UserInfo userInfo : UserManager.get(mContext).getAliveUsers()) { packages.addAll( AppGlobals.getPackageManager().getPackagesHoldingPermissions( new String[]{Manifest.permission.INTERNET}, PackageManager.MATCH_UNINSTALLED_PACKAGES, userInfo.id ).getList()); } Set<Integer> uids = packages.stream().map( packageInfo -> packageInfo.applicationInfo.uid) .collect(Collectors.toSet()); ConnectivitySettingsManager.setUidsAllowedOnRestrictedNetworks(mContext, uids); } catch (RemoteException e) { Log.e(TAG, "Failed to set uids allowed on restricted networks"); } } /** * Loads a region locked string setting into a database table. If the resource for the specific * mcc is not found, the setting is loaded from the default resources. Loading