1106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei/* 2106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei * Copyright (C) 2017 The Android Open Source Project 3106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei * 4106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei * Licensed under the Apache License, Version 2.0 (the "License"); 5106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei * you may not use this file except in compliance with the License. 6106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei * You may obtain a copy of the License at 7106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei * 8106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei * http://www.apache.org/licenses/LICENSE-2.0 9106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei * 10106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei * Unless required by applicable law or agreed to in writing, software 11106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei * distributed under the License is distributed on an "AS IS" BASIS, 12106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei * See the License for the specific language governing permissions and 14106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei * limitations under the License. 15106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei */ 16106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei 17106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyuleipackage com.android.settings.fuelgauge; 18106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei 19106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyuleiimport android.content.Context; 20106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyuleiimport android.os.BatteryStats; 21106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyuleiimport android.os.Bundle; 22106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyuleiimport android.os.UserManager; 23106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyuleiimport android.support.annotation.VisibleForTesting; 24106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei 25106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyuleiimport com.android.internal.os.BatteryStatsHelper; 26106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyuleiimport com.android.settings.utils.AsyncLoader; 27106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei 28106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei/** 29106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei * Loader to get new {@link BatteryStatsHelper} in the background 30106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei */ 31106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyuleipublic class BatteryStatsHelperLoader extends AsyncLoader<BatteryStatsHelper> { 32106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei @VisibleForTesting 33106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei UserManager mUserManager; 34114cf2a1a75a4e46243aa2b27e007add7899d08fjackqdyulei @VisibleForTesting 35114cf2a1a75a4e46243aa2b27e007add7899d08fjackqdyulei BatteryUtils mBatteryUtils; 36106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei 37114cf2a1a75a4e46243aa2b27e007add7899d08fjackqdyulei public BatteryStatsHelperLoader(Context context) { 38106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei super(context); 39106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE); 40114cf2a1a75a4e46243aa2b27e007add7899d08fjackqdyulei mBatteryUtils = BatteryUtils.getInstance(context); 41106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei } 42106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei 43106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei @Override 44106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei public BatteryStatsHelper loadInBackground() { 45bfe82cab893b85412bda9aeb7149179a57956873Matthew Fritze Context context = getContext(); 46bfe82cab893b85412bda9aeb7149179a57956873Matthew Fritze final BatteryStatsHelper statsHelper = new BatteryStatsHelper(context, 47bfe82cab893b85412bda9aeb7149179a57956873Matthew Fritze true /* collectBatteryBroadcast */); 48114cf2a1a75a4e46243aa2b27e007add7899d08fjackqdyulei mBatteryUtils.initBatteryStatsHelper(statsHelper, null /* bundle */, mUserManager); 49106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei 50106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei return statsHelper; 51106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei } 52106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei 53106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei @Override 54106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei protected void onDiscardResult(BatteryStatsHelper result) { 55106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei 56106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei } 57106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei 58106dc459e0e89132cd39125d281b1c3ef8b26267jackqdyulei} 59