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