Create AppDataUsageSummaryController

Content description for usage will be added later.

Bug: 318780411
Test: manual - on AppDataUsage
Test: unit test
Change-Id: I3990218395dfd7553554346ea8ef00368ba57589
This commit is contained in:
Chaohui Wang
2024-04-17 15:23:32 +08:00
parent 6c8455c22b
commit 07335514c4
5 changed files with 151 additions and 81 deletions

View File

@@ -43,7 +43,6 @@ import com.android.settings.R;
import com.android.settings.applications.AppInfoBase;
import com.android.settings.datausage.lib.AppDataUsageDetailsRepository;
import com.android.settings.datausage.lib.NetworkTemplates;
import com.android.settings.datausage.lib.NetworkUsageDetailsData;
import com.android.settings.fuelgauge.datasaver.DynamicDenylistManager;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.widget.EntityHeaderController;
@@ -70,17 +69,11 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC
static final String ARG_NETWORK_CYCLES = "network_cycles";
static final String ARG_SELECTED_CYCLE = "selected_cycle";
private static final String KEY_TOTAL_USAGE = "total_usage";
private static final String KEY_FOREGROUND_USAGE = "foreground_usage";
private static final String KEY_BACKGROUND_USAGE = "background_usage";
private static final String KEY_RESTRICT_BACKGROUND = "restrict_background";
private static final String KEY_UNRESTRICTED_DATA = "unrestricted_data_saver";
private PackageManager mPackageManager;
private final ArraySet<String> mPackages = new ArraySet<>();
private Preference mTotalUsage;
private Preference mForegroundUsage;
private Preference mBackgroundUsage;
private RestrictedSwitchPreference mRestrictBackground;
private Drawable mIcon;
@@ -139,10 +132,6 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC
}
}
mTotalUsage = findPreference(KEY_TOTAL_USAGE);
mForegroundUsage = findPreference(KEY_FOREGROUND_USAGE);
mBackgroundUsage = findPreference(KEY_BACKGROUND_USAGE);
final List<Integer> uidList = getAppUidList(mAppItem.uids);
initCycle(uidList);
@@ -255,15 +244,17 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC
@VisibleForTesting
void initCycle(List<Integer> uidList) {
var controller = use(AppDataUsageCycleController.class);
var cycleController = use(AppDataUsageCycleController.class);
var summaryController = use(AppDataUsageSummaryController.class);
var repository = new AppDataUsageDetailsRepository(mContext, mTemplate, mCycles, uidList);
controller.init(repository, data -> {
bindData(data);
cycleController.init(repository, data -> {
mIsLoading = false;
summaryController.update(data);
return Unit.INSTANCE;
});
if (mCycles != null) {
Log.d(TAG, "setInitialCycles: " + mCycles + " " + mSelectedCycle);
controller.setInitialCycles(mCycles, mSelectedCycle);
cycleController.setInitialCycles(mCycles, mSelectedCycle);
}
}
@@ -314,16 +305,6 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC
}
}
@VisibleForTesting
void bindData(@NonNull NetworkUsageDetailsData data) {
mIsLoading = false;
mTotalUsage.setSummary(DataUsageUtils.formatDataUsage(mContext, data.getTotalUsage()));
mForegroundUsage.setSummary(
DataUsageUtils.formatDataUsage(mContext, data.getForegroundUsage()));
mBackgroundUsage.setSummary(
DataUsageUtils.formatDataUsage(mContext, data.getBackgroundUsage()));
}
private boolean getAppRestrictBackground() {
final int uid = mAppItem.key;
final int uidPolicy = services.mPolicyManager.getUidPolicy(uid);