Search in sources :

Example 1 with UidDetail

use of com.android.settingslib.net.UidDetail in project android_packages_apps_Settings by omnirom.

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)

Example 2 with UidDetail

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

the class AppDataUsagePreferenceTest method setUp.

@Before
public void setUp() {
    MockitoAnnotations.initMocks(this);
    mAppItem = new AppItem(123);
    mUidDetail = new UidDetail();
    mUidDetail.icon = new ColorDrawable(Color.BLUE);
    mUidDetail.label = "title";
}
Also used : UidDetail(com.android.settingslib.net.UidDetail) ColorDrawable(android.graphics.drawable.ColorDrawable) AppItem(com.android.settingslib.AppItem) Before(org.junit.Before)

Example 3 with UidDetail

use of com.android.settingslib.net.UidDetail 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 4 with UidDetail

use of com.android.settingslib.net.UidDetail 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 5 with UidDetail

use of com.android.settingslib.net.UidDetail 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

UidDetail (com.android.settingslib.net.UidDetail)10 Bundle (android.os.Bundle)9 AppItem (com.android.settingslib.AppItem)9 UidDetailProvider (com.android.settingslib.net.UidDetailProvider)9 Context (android.content.Context)7 Intent (android.content.Intent)7 ApplicationInfo (android.content.pm.ApplicationInfo)7 PackageManager (android.content.pm.PackageManager)7 NetworkTemplate (android.net.NetworkTemplate)7 RemoteException (android.os.RemoteException)6 PackageManagerWrapperImpl (com.android.settings.applications.PackageManagerWrapperImpl)6 FragmentActivity (androidx.fragment.app.FragmentActivity)2 Test (org.junit.Test)2 ColorDrawable (android.graphics.drawable.ColorDrawable)1 ArrayList (java.util.ArrayList)1 Before (org.junit.Before)1 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)1 Config (org.robolectric.annotation.Config)1