vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values-zh-rCN/strings.xml
存储容量 总共容量: 剩余空间: vendor/mediatek/proprietary/packages/apps/MtkSettings/res/xml/my_device_info.xml
vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
import com.android.settings.deviceinfo.imei.ImeiInfoPreferenceController; import com.android.settings.deviceinfo.simstatus.SimStatusPreferenceController;+import com.android.settings.deviceinfo.StorageInfoPreferenceController;// add storage+import com.android.settings.deviceinfo.UpdateTimePreferenceController;// add uptime import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.core.AbstractPreferenceController;@@ -68,6 +70,7 @@ public class MyDeviceInfoFragment extends DashboardFragment private static final String KEY_MY_DEVICE_INFO_HEADER = "my_device_info_header"; private static final String KEY_LEGAL_CONTAINER = "legal_container";+ private static UpdateTimePreferenceController mUpdateTimePreferenceController;//add uptime @Override public int getMetricsCategory() {@@ -82,9 +85,18 @@ public class MyDeviceInfoFragment extends DashboardFragment @Override public void onResume() { super.onResume();+ mUpdateTimePreferenceController.onResume();/ add uptime initHeader(); } + // add uptime+ @Override+ public void onPause() {+ super.onPause();+ mUpdateTimePreferenceController.onPause();+ }+ // end uptime+ @Override protected String getLogTag() { return LOG_TAG;@@ -109,6 +121,9 @@ public class MyDeviceInfoFragment extends DashboardFragment final List controllers = new ArrayList<>(); controllers.add(new EmergencyInfoPreferenceController(context)); /// M: Revise for updating phone number.+ mUpdateTimePreferenceController = new UpdateTimePreferenceController(context);// add uptime+ controllers.add(mUpdateTimePreferenceController);// add uptime+ controllers.add(new StorageInfoPreferenceController(context));//add storage controllers.add(new PhoneNumberPreferenceController(context, lifecycle)); controllers.add(new BrandedAccountPreferenceController(context)); 添加vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/deviceinfo/StorageInfoPreferenceController.java
/* * 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.deviceinfo;import java.text.NumberFormat;import com.android.settings.core.PreferenceControllerMixin;import com.android.settingslib.core.AbstractPreferenceController;import com.android.settings.R;import android.content.Context;import android.content.res.Resources;import android.os.storage.StorageManager;import android.support.v7.preference.Preference;import android.support.v7.preference.PreferenceScreen;import android.text.format.Formatter;import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;import com.android.settingslib.deviceinfo.PrivateStorageInfo;public class StorageInfoPreferenceController extends AbstractPreferenceController implementsPreferenceControllerMixin {private static final String KEY_STORAGE_INFO = "storage_info";private StorageManagerVolumeProvider mStorageManagerVolumeProvider;private Context mContext;public StorageInfoPreferenceController(Context context) {super(context);mContext = context;}@Overridepublic boolean isAvailable() {return true;}@Overridepublic void displayPreference(PreferenceScreen screen) {super.displayPreference(screen);final Preference pref = screen.findPreference(KEY_STORAGE_INFO);if (pref != null) {pref.setSummary(getStorageInfo());}}@Overridepublic String getPreferenceKey() {return KEY_STORAGE_INFO;}@Overridepublic boolean handlePreferenceTreeClick(Preference preference) {return false;}private String getStorageInfo() {StorageManager storageManager = mContext.getSystemService(StorageManager.class);mStorageManagerVolumeProvider = new StorageManagerVolumeProvider(storageManager);NumberFormat percentageFormat = NumberFormat.getPercentInstance();PrivateStorageInfo info = PrivateStorageInfo.getPrivateStorageInfo(mStorageManagerVolumeProvider);double privateUsedBytes = info.totalBytes - info.freeBytes;StringBuilder builder = new StringBuilder();Resources res = mContext.getResources();builder.append(res.getString(R.string.storage_total)).append(Formatter.formatFileSize(mContext, info.totalBytes)).append(" ").append(res.getString(R.string.storage_free)).append(Formatter.formatFileSize(mContext, info.freeBytes));return builder.toString();}}添加vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/deviceinfo/UpdateTimePreferenceController.java
/* * 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.deviceinfo;import java.lang.ref.WeakReference;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;import com.android.internal.R;import com.android.settings.core.PreferenceControllerMixin;import com.android.settingslib.core.AbstractPreferenceController;import android.app.ActivityManager;import android.app.Fragment;import android.content.Context;import android.os.Build;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.os.SystemClock;import android.os.storage.StorageManager;import android.support.v7.preference.Preference;import android.support.v7.preference.PreferenceScreen;import android.text.format.DateFormat;public class UpdateTimePreferenceController extends AbstractPreferenceController implementsPreferenceControllerMixin {private static final String KEY_UPDATE_TIME = "up_time";private static final int EVENT_UPDATE_STATS = 500;private Context mContext;private Preference mPref;private MyHandler mMyHandler;public UpdateTimePreferenceController(Context context) {super(context);mContext = context;mMyHandler = new MyHandler(this);}@Overridepublic boolean isAvailable() {return true;}@Overridepublic void displayPreference(PreferenceScreen screen) {super.displayPreference(screen);mPref = screen.findPreference(KEY_UPDATE_TIME);}@Overridepublic String getPreferenceKey() {return KEY_UPDATE_TIME;}@Overridepublic boolean handlePreferenceTreeClick(Preference preference) {return false;}public void onResume() {mMyHandler.sendEmptyMessage(EVENT_UPDATE_STATS);}public void onPause() {mMyHandler.removeMessages(EVENT_UPDATE_STATS);}private void updateTime() {long at = SystemClock.uptimeMillis() / 1000;long ut = SystemClock.elapsedRealtime() / 1000;if (ut == 0) {ut = 1;}if (mPref != null) {mPref.setSummary(convert(ut));}}private String pad(int n) {if (n >= 10) {return String.valueOf(n);} else {return "0" + String.valueOf(n);}}private String convert(long t) {int s = (int) (t % 60);int m = (int) ((t / 60) % 60);int h = (int) ((t / 3600));return h + ":" + pad(m) + ":" + pad(s);}private static class MyHandler extends Handler {UpdateTimePreferenceController controller;public MyHandler(UpdateTimePreferenceController controller) {super(Looper.getMainLooper());this.controller = controller;}@Overridepublic void handleMessage(Message msg) {switch (msg.what) {case EVENT_UPDATE_STATS:controller.updateTime();sendEmptyMessageDelayed(EVENT_UPDATE_STATS, 1000);break;}}}} | 留言与评论(共有 0 条评论) “” |