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

Commit 9e1570c5 authored by Jeffrey Huang's avatar Jeffrey Huang Committed by Android (Google) Code Review
Browse files

Merge "Introduce MemoryUsagePreferenceController"

parents 6bd610cd c57f18d8
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -1031,10 +1031,6 @@
            <intent-filter android:priority="3">
                <action android:name="com.android.settings.action.SETTINGS" />
            </intent-filter>
            <meta-data android:name="com.android.settings.category"
                android:value="com.android.settings.category.ia.development" />
            <meta-data android:name="com.android.settings.summary"
                android:resource="@string/summary_empty" />
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                android:value="com.android.settings.applications.ProcessStatsSummary" />
        </activity>
+8 −0
Original line number Diff line number Diff line
@@ -18,6 +18,14 @@
        xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
        android:key="development_prefs_screen"
        android:title="@string/development_settings_title">

    <Preference
        android:key="memory"
        android:icon="@drawable/ic_settings_memory"
        android:title="@string/memory_settings_title"
        android:summary="@string/summary_empty"
        android:fragment="com.android.settings.applications.ProcessStatsSummary" />

    <com.android.settings.BugreportPreference
            android:key="bugreport"
            android:title="@*android:string/bugreport_title"
+1 −1
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ public abstract class ProcessStatsBase extends SettingsPreferenceFragment
    // smaller than the actual time selected instead of bumping up to 3 hours
    // beyond it.
    private static final long DURATION_QUANTUM = ProcessStats.COMMIT_PERIOD;
    protected static long[] sDurations = new long[] {
    public  static long[] sDurations = new long[] {
        3 * 60 * 60 * 1000 - DURATION_QUANTUM / 2, 6 * 60 *60 * 1000 - DURATION_QUANTUM / 2,
        12 * 60 * 60 * 1000 - DURATION_QUANTUM / 2, 24 * 60 * 60 * 1000 - DURATION_QUANTUM / 2
    };
+1 −0
Original line number Diff line number Diff line
@@ -352,6 +352,7 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
            Activity activity, Lifecycle lifecycle, DevelopmentSettingsDashboardFragment fragment,
            BluetoothA2dpConfigStore bluetoothA2dpConfigStore) {
        final List<AbstractPreferenceController> controllers = new ArrayList<>();
        controllers.add(new MemoryUsagePreferenceController(context));
        controllers.add(new BugReportPreferenceControllerV2(context));
        controllers.add(new LocalBackupPasswordPreferenceController(context));
        controllers.add(new StayAwakePreferenceController(context, lifecycle));
+78 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.settings.development;

import android.content.Context;
import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.text.format.Formatter;

import com.android.settings.R;
import com.android.settings.applications.ProcStatsData;
import com.android.settings.applications.ProcessStatsBase;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.development.DeveloperOptionsPreferenceController;

public class MemoryUsagePreferenceController extends DeveloperOptionsPreferenceController implements
        PreferenceControllerMixin {

    private static final String MEMORY_USAGE_KEY = "memory";

    private Preference mPreference;
    private ProcStatsData mProcStatsData;

    public MemoryUsagePreferenceController(Context context) {
        super(context);
    }

    @Override
    public String getPreferenceKey() {
        return MEMORY_USAGE_KEY;
    }

    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);

        mPreference = screen.findPreference(getPreferenceKey());
        mProcStatsData = getProcStatsData();
        setDuration();
    }

    @Override
    public void updateState(Preference preference) {
        mProcStatsData.refreshStats(true);
        final ProcStatsData.MemInfo memInfo = mProcStatsData.getMemInfo();
        final String usedResult = Formatter.formatShortFileSize(mContext,
                (long) memInfo.realUsedRam);
        final String totalResult = Formatter.formatShortFileSize(mContext,
                (long) memInfo.realTotalRam);
        mPreference.setSummary(mContext.getString(R.string.memory_summary,
                usedResult, totalResult));
    }

    @VisibleForTesting
    void setDuration() {
        mProcStatsData.setDuration(ProcessStatsBase.sDurations[0] /* 3 hours */);
    }

    @VisibleForTesting
    ProcStatsData getProcStatsData() {
        return new ProcStatsData(mContext, false);
    }
}
Loading