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

Commit 5da840dc authored by Joel Galenson's avatar Joel Galenson
Browse files

Fix time filters and intervals.

The time intervals were being incorrectly computed.

In addition, time filters in the Permissions Hub were broken because
the usage data collects the last access time even if it's outside the
given range.

Test: Change time filters.
Change-Id: I36463c76868d3b4c42bb25de565ca4a4a4eab023
parent f4daf807
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -583,8 +583,7 @@ public final class PermissionControllerServiceImpl extends PermissionControllerS

        long curTime = System.currentTimeMillis();
        PermissionUsages usages = new PermissionUsages(this);
        long filterTimeBeginMillis = Math.max(System.currentTimeMillis() - numMillis,
                System.currentTimeMillis());
        long filterTimeBeginMillis = Math.max(System.currentTimeMillis() - numMillis, 0);
        usages.load(null, null, filterTimeBeginMillis, Long.MAX_VALUE,
                PermissionUsages.USAGE_FLAG_LAST | PermissionUsages.USAGE_FLAG_HISTORICAL, null,
                false, null, true);
+7 −3
Original line number Diff line number Diff line
@@ -359,6 +359,10 @@ public class PermissionUsageFragment extends PermissionsFrameFragment implements

        mHasSystemApps = false;

        final TimeFilterItem timeFilterItem = getSelectedFilterItem();
        long curTime = System.currentTimeMillis();
        long startTime = (timeFilterItem == null ? 0 : (curTime - timeFilterItem.getTime()));

        List<Pair<AppPermissionUsage, GroupUsage>> usages = new ArrayList<>();
        int numApps = appPermissionUsages.size();
        for (int appNum = 0; appNum < numApps; appNum++) {
@@ -368,7 +372,8 @@ public class PermissionUsageFragment extends PermissionsFrameFragment implements
            for (int groupNum = 0; groupNum < numGroups; groupNum++) {
                GroupUsage groupUsage = appGroups.get(groupNum);

                if (groupUsage.getAccessCount() <= 0) {
                if (groupUsage.getAccessCount() <= 0
                        || groupUsage.getLastAccessTime() < startTime) {
                    continue;
                }
                final boolean isSystemApp = Utils.isSystem(appUsage.getApp(), mLauncherPkgs);
@@ -391,7 +396,6 @@ public class PermissionUsageFragment extends PermissionsFrameFragment implements
        }

        // Update bar chart.
        final TimeFilterItem timeFilterItem = getSelectedFilterItem();
        final BarChartPreference barChart = createBarChart(usages, timeFilterItem, context);
        screen.addPreference(barChart);

@@ -478,7 +482,7 @@ public class PermissionUsageFragment extends PermissionsFrameFragment implements
            return;
        }
        final long filterTimeBeginMillis = Math.max(System.currentTimeMillis()
                - timeFilterItem.getTime(), Calendar.getInstance().getTimeInMillis());
                - timeFilterItem.getTime(), 0);
        mPermissionUsages.load(null /*filterPackageName*/, null,
                filterTimeBeginMillis, Long.MAX_VALUE, PermissionUsages.USAGE_FLAG_LAST
                        | PermissionUsages.USAGE_FLAG_HISTORICAL, getActivity().getLoaderManager(),