Search in sources :

Example 6 with UidDetailProvider

use of com.android.settingslib.net.UidDetailProvider in project platform_packages_apps_Settings by BlissRoms.

the class DataUsageList method onCreate.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    final Context context = getActivity();
    if (!isBandwidthControlEnabled()) {
        Log.w(TAG, "No bandwidth control; leaving");
        getActivity().finish();
    }
    try {
        mStatsSession = services.mStatsService.openSession();
    } catch (RemoteException e) {
        throw new RuntimeException(e);
    }
    mUidDetailProvider = new UidDetailProvider(context);
    addPreferencesFromResource(R.xml.data_usage_list);
    mUsageAmount = findPreference(KEY_USAGE_AMOUNT);
    mChart = (ChartDataUsagePreference) findPreference(KEY_CHART_DATA);
    mApps = (PreferenceGroup) findPreference(KEY_APPS_GROUP);
    final Bundle args = getArguments();
    mSubId = args.getInt(EXTRA_SUB_ID, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
    mTemplate = args.getParcelable(EXTRA_NETWORK_TEMPLATE);
}
Also used : Context(android.content.Context) Bundle(android.os.Bundle) RemoteException(android.os.RemoteException) UidDetailProvider(com.android.settingslib.net.UidDetailProvider)

Example 7 with UidDetailProvider

use of com.android.settingslib.net.UidDetailProvider in project Resurrection_packages_apps_Settings by ResurrectionRemix.

the class AppDataUsageTest method onCreate_notAppUid_shouldGetAppLabelFromUidDetailProvider.

@Test
public void onCreate_notAppUid_shouldGetAppLabelFromUidDetailProvider() {
    mFragment = spy(new AppDataUsage());
    ReflectionHelpers.setField(mFragment, "mDashboardFeatureProvider", FakeFeatureFactory.setupForTest().dashboardFeatureProvider);
    doReturn(Robolectric.setupActivity(FragmentActivity.class)).when(mFragment).getActivity();
    doReturn(RuntimeEnvironment.application).when(mFragment).getContext();
    final UidDetailProvider uidDetailProvider = mock(UidDetailProvider.class);
    doReturn(uidDetailProvider).when(mFragment).getUidDetailProvider();
    final String label = "testLabel";
    final int uid = Process.SYSTEM_UID;
    final UidDetail uidDetail = new UidDetail();
    uidDetail.label = label;
    when(uidDetailProvider.getUidDetail(eq(uid), anyBoolean())).thenReturn(uidDetail);
    final AppItem appItem = new AppItem(uid);
    appItem.uids.put(uid, true);
    final Bundle args = new Bundle();
    args.putParcelable(AppDataUsage.ARG_APP_ITEM, appItem);
    args.putInt(AppInfoBase.ARG_PACKAGE_UID, uid);
    mFragment.setArguments(args);
    mFragment.onCreate(Bundle.EMPTY);
    assertThat(mFragment.mLabel).isEqualTo(label);
}
Also used : FragmentActivity(androidx.fragment.app.FragmentActivity) UidDetail(com.android.settingslib.net.UidDetail) AppItem(com.android.settingslib.AppItem) Bundle(android.os.Bundle) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) UidDetailProvider(com.android.settingslib.net.UidDetailProvider) Test(org.junit.Test)

Example 8 with UidDetailProvider

use of com.android.settingslib.net.UidDetailProvider in project Resurrection_packages_apps_Settings by ResurrectionRemix.

the class DataUsageList method onCreate.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    final Activity activity = getActivity();
    if (!isBandwidthControlEnabled()) {
        Log.w(TAG, "No bandwidth control; leaving");
        activity.finish();
    }
    mUidDetailProvider = new UidDetailProvider(activity);
    mTelephonyManager = activity.getSystemService(TelephonyManager.class);
    mUsageAmount = findPreference(KEY_USAGE_AMOUNT);
    mChart = findPreference(KEY_CHART_DATA);
    mApps = findPreference(KEY_APPS_GROUP);
    processArgument();
}
Also used : TelephonyManager(android.telephony.TelephonyManager) Activity(android.app.Activity) UidDetailProvider(com.android.settingslib.net.UidDetailProvider)

Example 9 with UidDetailProvider

use of com.android.settingslib.net.UidDetailProvider in project Resurrection_packages_apps_Settings by ResurrectionRemix.

the class AppDataUsage method onCreate.

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    mContext = getContext();
    mPackageManager = getPackageManager();
    final Bundle args = getArguments();
    mPolicyManager = NetworkPolicyManager.from(getContext());
    mAppItem = (args != null) ? (AppItem) args.getParcelable(ARG_APP_ITEM) : null;
    mTemplate = (args != null) ? (NetworkTemplate) args.getParcelable(ARG_NETWORK_TEMPLATE) : null;
    mCycles = (args != null) ? (ArrayList) args.getSerializable(ARG_NETWORK_CYCLES) : null;
    mSelectedCycle = (args != null) ? args.getLong(ARG_SELECTED_CYCLE) : 0L;
    if (mTemplate == null) {
        mTemplate = DataUsageUtils.getDefaultTemplate(mContext, SubscriptionManager.getDefaultDataSubscriptionId());
    }
    if (mAppItem == null) {
        int uid = (args != null) ? args.getInt(AppInfoBase.ARG_PACKAGE_UID, -1) : getActivity().getIntent().getIntExtra(AppInfoBase.ARG_PACKAGE_UID, -1);
        if (uid == -1) {
            // TODO: Log error.
            getActivity().finish();
        } else {
            addUid(uid);
            mAppItem = new AppItem(uid);
            mAppItem.addUid(uid);
        }
    } else {
        for (int i = 0; i < mAppItem.uids.size(); i++) {
            addUid(mAppItem.uids.keyAt(i));
        }
    }
    mTotalUsage = findPreference(KEY_TOTAL_USAGE);
    mForegroundUsage = findPreference(KEY_FOREGROUND_USAGE);
    mBackgroundUsage = findPreference(KEY_BACKGROUND_USAGE);
    mCycle = findPreference(KEY_CYCLE);
    mCycleAdapter = new CycleAdapter(mContext, mCycle, mCycleListener);
    final UidDetailProvider uidDetailProvider = getUidDetailProvider();
    if (mAppItem.key > 0) {
        if (!UserHandle.isApp(mAppItem.key)) {
            final UidDetail uidDetail = uidDetailProvider.getUidDetail(mAppItem.key, true);
            mIcon = uidDetail.icon;
            mLabel = uidDetail.label;
            removePreference(KEY_UNRESTRICTED_DATA);
            removePreference(KEY_RESTRICT_BACKGROUND);
            removePreference(KEY_RESTRICT_ALL);
            removePreference(KEY_RESTRICT_DATA);
            removePreference(KEY_RESTRICT_VPN);
            removePreference(KEY_RESTRICT_WLAN);
        } else {
            if (mPackages.size() != 0) {
                try {
                    final ApplicationInfo info = mPackageManager.getApplicationInfoAsUser(mPackages.valueAt(0), 0, UserHandle.getUserId(mAppItem.key));
                    mIcon = IconDrawableFactory.newInstance(getActivity()).getBadgedIcon(info);
                    mLabel = info.loadLabel(mPackageManager);
                    mPackageName = info.packageName;
                } catch (PackageManager.NameNotFoundException e) {
                }
            }
            mRestrictBackground = findPreference(KEY_RESTRICT_BACKGROUND);
            mRestrictBackground.setOnPreferenceChangeListener(this);
            mRestrictAll = findPreference(KEY_RESTRICT_ALL);
            mRestrictAll.setOnPreferenceChangeListener(this);
            mRestrictData = findPreference(KEY_RESTRICT_DATA);
            mRestrictData.setOnPreferenceChangeListener(this);
            mRestrictVpn = findPreference(KEY_RESTRICT_VPN);
            mRestrictVpn.setOnPreferenceChangeListener(this);
            mRestrictWlan = findPreference(KEY_RESTRICT_WLAN);
            mRestrictWlan.setOnPreferenceChangeListener(this);
            mUnrestrictedData = findPreference(KEY_UNRESTRICTED_DATA);
            mUnrestrictedData.setOnPreferenceChangeListener(this);
        }
        mDataSaverBackend = new DataSaverBackend(mContext);
        mAppSettings = findPreference(KEY_APP_SETTINGS);
        mAppSettingsIntent = new Intent(Intent.ACTION_MANAGE_NETWORK_USAGE);
        mAppSettingsIntent.addCategory(Intent.CATEGORY_DEFAULT);
        final PackageManager pm = getPackageManager();
        boolean matchFound = false;
        for (String packageName : mPackages) {
            mAppSettingsIntent.setPackage(packageName);
            if (pm.resolveActivity(mAppSettingsIntent, 0) != null) {
                matchFound = true;
                break;
            }
        }
        if (!matchFound) {
            removePreference(KEY_APP_SETTINGS);
            mAppSettings = null;
        }
        if (mPackages.size() > 1) {
            mAppList = findPreference(KEY_APP_LIST);
            LoaderManager.getInstance(this).restartLoader(LOADER_APP_PREF, Bundle.EMPTY, mAppPrefCallbacks);
        } else {
            removePreference(KEY_APP_LIST);
        }
    } else {
        final Context context = getActivity();
        final UidDetail uidDetail = uidDetailProvider.getUidDetail(mAppItem.key, true);
        mIcon = uidDetail.icon;
        mLabel = uidDetail.label;
        mPackageName = context.getPackageName();
        removePreference(KEY_UNRESTRICTED_DATA);
        removePreference(KEY_APP_SETTINGS);
        removePreference(KEY_RESTRICT_BACKGROUND);
        removePreference(KEY_RESTRICT_ALL);
        removePreference(KEY_RESTRICT_DATA);
        removePreference(KEY_RESTRICT_VPN);
        removePreference(KEY_RESTRICT_WLAN);
        removePreference(KEY_APP_LIST);
    }
}
Also used : Context(android.content.Context) Bundle(android.os.Bundle) ArrayList(java.util.ArrayList) ApplicationInfo(android.content.pm.ApplicationInfo) Intent(android.content.Intent) NetworkTemplate(android.net.NetworkTemplate) UidDetail(com.android.settingslib.net.UidDetail) PackageManager(android.content.pm.PackageManager) AppItem(com.android.settingslib.AppItem) UidDetailProvider(com.android.settingslib.net.UidDetailProvider)

Example 10 with UidDetailProvider

use of com.android.settingslib.net.UidDetailProvider in project android_packages_apps_Settings by LineageOS.

the class AppDataUsage method onCreate.

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    mPackageManagerWrapper = new PackageManagerWrapperImpl(getPackageManager());
    final Bundle args = getArguments();
    try {
        mStatsSession = services.mStatsService.openSession();
    } catch (RemoteException e) {
        throw new RuntimeException(e);
    }
    mAppItem = (args != null) ? (AppItem) args.getParcelable(ARG_APP_ITEM) : null;
    mTemplate = (args != null) ? (NetworkTemplate) args.getParcelable(ARG_NETWORK_TEMPLATE) : null;
    if (mTemplate == null) {
        Context context = getContext();
        mTemplate = DataUsageUtils.getDefaultTemplate(context, DataUsageUtils.getDefaultSubscriptionId(context));
    }
    if (mAppItem == null) {
        int uid = (args != null) ? args.getInt(AppInfoBase.ARG_PACKAGE_UID, -1) : getActivity().getIntent().getIntExtra(AppInfoBase.ARG_PACKAGE_UID, -1);
        if (uid == -1) {
            // TODO: Log error.
            getActivity().finish();
        } else {
            addUid(uid);
            mAppItem = new AppItem(uid);
            mAppItem.addUid(uid);
        }
    } else {
        for (int i = 0; i < mAppItem.uids.size(); i++) {
            addUid(mAppItem.uids.keyAt(i));
        }
    }
    addPreferencesFromResource(R.xml.app_data_usage);
    mTotalUsage = findPreference(KEY_TOTAL_USAGE);
    mForegroundUsage = findPreference(KEY_FOREGROUND_USAGE);
    mBackgroundUsage = findPreference(KEY_BACKGROUND_USAGE);
    mCycle = (SpinnerPreference) findPreference(KEY_CYCLE);
    mCycleAdapter = new CycleAdapter(getContext(), mCycle, mCycleListener, false);
    if (mAppItem.key > 0) {
        if (mPackages.size() != 0) {
            try {
                ApplicationInfo info = mPackageManagerWrapper.getApplicationInfoAsUser(mPackages.valueAt(0), 0, UserHandle.getUserId(mAppItem.key));
                mIcon = IconDrawableFactory.newInstance(getActivity()).getBadgedIcon(info);
                mLabel = info.loadLabel(mPackageManagerWrapper.getPackageManager());
                mPackageName = info.packageName;
            } catch (PackageManager.NameNotFoundException e) {
            }
        }
        if (!UserHandle.isApp(mAppItem.key)) {
            removePreference(KEY_UNRESTRICTED_DATA);
            removePreference(KEY_RESTRICT_BACKGROUND);
        } else {
            mRestrictBackground = (SwitchPreference) findPreference(KEY_RESTRICT_BACKGROUND);
            mRestrictBackground.setOnPreferenceChangeListener(this);
            mUnrestrictedData = (SwitchPreference) findPreference(KEY_UNRESTRICTED_DATA);
            mUnrestrictedData.setOnPreferenceChangeListener(this);
        }
        mDataSaverBackend = new DataSaverBackend(getContext());
        mAppSettings = findPreference(KEY_APP_SETTINGS);
        mAppSettingsIntent = new Intent(Intent.ACTION_MANAGE_NETWORK_USAGE);
        mAppSettingsIntent.addCategory(Intent.CATEGORY_DEFAULT);
        PackageManager pm = getPackageManager();
        boolean matchFound = false;
        for (String packageName : mPackages) {
            mAppSettingsIntent.setPackage(packageName);
            if (pm.resolveActivity(mAppSettingsIntent, 0) != null) {
                matchFound = true;
                break;
            }
        }
        if (!matchFound) {
            removePreference(KEY_APP_SETTINGS);
            mAppSettings = null;
        }
        if (mPackages.size() > 1) {
            mAppList = (PreferenceCategory) findPreference(KEY_APP_LIST);
            getLoaderManager().initLoader(LOADER_APP_PREF, Bundle.EMPTY, mAppPrefCallbacks);
        } else {
            removePreference(KEY_APP_LIST);
        }
    } else {
        final Context context = getActivity();
        UidDetail uidDetail = new UidDetailProvider(context).getUidDetail(mAppItem.key, true);
        mIcon = uidDetail.icon;
        mLabel = uidDetail.label;
        mPackageName = context.getPackageName();
        removePreference(KEY_UNRESTRICTED_DATA);
        removePreference(KEY_APP_SETTINGS);
        removePreference(KEY_RESTRICT_BACKGROUND);
        removePreference(KEY_APP_LIST);
    }
}
Also used : Context(android.content.Context) Bundle(android.os.Bundle) ApplicationInfo(android.content.pm.ApplicationInfo) Intent(android.content.Intent) PackageManagerWrapperImpl(com.android.settings.applications.PackageManagerWrapperImpl) NetworkTemplate(android.net.NetworkTemplate) UidDetail(com.android.settingslib.net.UidDetail) PackageManager(android.content.pm.PackageManager) AppItem(com.android.settingslib.AppItem) RemoteException(android.os.RemoteException) UidDetailProvider(com.android.settingslib.net.UidDetailProvider)

Aggregations

UidDetailProvider (com.android.settingslib.net.UidDetailProvider)16 Bundle (android.os.Bundle)15 Context (android.content.Context)13 RemoteException (android.os.RemoteException)12 UidDetail (com.android.settingslib.net.UidDetail)9 AppItem (com.android.settingslib.AppItem)8 Intent (android.content.Intent)7 ApplicationInfo (android.content.pm.ApplicationInfo)7 PackageManager (android.content.pm.PackageManager)7 NetworkTemplate (android.net.NetworkTemplate)7 PackageManagerWrapperImpl (com.android.settings.applications.PackageManagerWrapperImpl)6 FragmentActivity (androidx.fragment.app.FragmentActivity)2 Test (org.junit.Test)2 Activity (android.app.Activity)1 TelephonyManager (android.telephony.TelephonyManager)1 ArrayList (java.util.ArrayList)1 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)1 Config (org.robolectric.annotation.Config)1