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

Commit dae8c154 authored by John Spurlock's avatar John Spurlock
Browse files

Settings: Remove unreachable "Battery Info" screen.

Bug: 21576824
Change-Id: Ia2bb3b22b7512cd05ceca5798e85e5479e064213
parent edb7b0d9
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -1900,16 +1900,6 @@
            </intent-filter>
        </receiver>

        <activity android:name="BatteryInfo" android:label="@string/battery_info_label"
                  android:taskAffinity="com.android.settings"
                  android:parentActivityName="Settings">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
                <category android:name="android.intent.category.VOICE_LAUNCH" />
            </intent-filter>
        </activity>

        <activity android:name="Display" android:label="@string/display_label"
                android:configChanges="fontScale"
                android:taskAffinity="com.android.settings"

res/layout/battery_info.xml

deleted100644 → 0
+0 −78
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
/* //device/apps/Settings/assets/res/any/layout/battery_info.xml
**
** Copyright 2006, 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.
*/
-->

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" style="@style/info_layout">        

    <!-- Battery Status -->
    <LinearLayout style="@style/entry_layout">
        <TextView android:text="@string/battery_info_status_label" style="@style/info_label" />
        <TextView android:id="@+id/status" style="@style/info_value" />
    </LinearLayout>

    <!-- Battery Status -->
    <LinearLayout style="@style/entry_layout">
        <TextView android:text="@string/battery_info_power_label" style="@style/info_label" />
        <TextView android:id="@+id/power" style="@style/info_value" />
    </LinearLayout>

    <!-- Battery Level -->
    <LinearLayout style="@style/entry_layout">
        <TextView android:text="@string/battery_info_level_label" style="@style/info_label" />
        <TextView android:id="@+id/level" style="@style/info_value" />
    </LinearLayout>

    <!-- Battery Scale -->
    <LinearLayout style="@style/entry_layout">
        <TextView android:text="@string/battery_info_scale_label" style="@style/info_label" />
        <TextView android:id="@+id/scale" style="@style/info_value" />
    </LinearLayout>
    
    <!-- Battery Health -->
    <LinearLayout style="@style/entry_layout">
        <TextView android:text="@string/battery_info_health_label" style="@style/info_label" />
        <TextView android:id="@+id/health" style="@style/info_value" />
    </LinearLayout>

    <!-- Battery Voltage -->
    <LinearLayout style="@style/entry_layout">
        <TextView android:text="@string/battery_info_voltage_label" style="@style/info_label" />
        <TextView android:id="@+id/voltage" style="@style/info_value" />
    </LinearLayout>

    <!-- Battery Temperature -->
    <LinearLayout style="@style/entry_layout">
        <TextView android:text="@string/battery_info_temperature_label" style="@style/info_label" />
        <TextView android:id="@+id/temperature" style="@style/info_value" />
    </LinearLayout>

    <!-- Battery Technology -->
    <LinearLayout style="@style/entry_layout">
        <TextView android:text="@string/battery_info_technology_label" style="@style/info_label" />
        <TextView android:id="@+id/technology" style="@style/info_value" />
    </LinearLayout>

    <!-- Uptime -->
    <LinearLayout style="@style/entry_layout">
        <TextView android:text="@string/battery_info_uptime" style="@style/info_label" />
        <TextView android:id="@+id/uptime" style="@style/info_value" />
    </LinearLayout>

</LinearLayout>
+0 −56
Original line number Diff line number Diff line
@@ -164,35 +164,6 @@
    <!-- Title for a notification shown. -->
    <string name="sdcard_setting" product="default">SD card</string>
    <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_status_label">Battery status:</string>
    <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_power_label">Power plug:</string>
    <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_scale_label">Battery scale:</string>
    <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_level_label">Battery level:</string>
    <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_health_label">Battery health:</string>
    <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_technology_label">Battery technology:</string>
    <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_voltage_label">Battery voltage:</string>
    <!-- Battery Info screen. Units shown after a value.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_voltage_units">mV</string>
    <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_temperature_label">Battery temperature:</string>
    <!-- Battery Info screen. Units shown after a value.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_temperature_units">\u00B0 C</string>
    <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_uptime">Time since boot:</string>
    <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_awake_battery">Awake time on battery:</string>
    <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_awake_plugged">Awake time when charging:</string>
    <!-- Battery Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_screen_on">Screen ON time:</string>
    <!-- Battery Info screen. Value for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_status_unknown">Unknown</string>
    <!-- [CHAR_LIMIT=20] Battery use screen.  Battery status shown in chart label when charging from an unknown source.  -->
@@ -210,29 +181,6 @@
    <!-- Battery Info screen. Value for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_status_full">Full</string>
    <!-- Battery Info screen. Units shown after a value.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_power_unplugged">Unplugged</string>
    <string name="battery_info_power_ac">AC</string>
    <string name="battery_info_power_usb">USB</string>
    <string name="battery_info_power_wireless">wireless</string>
    <string name="battery_info_power_ac_usb">AC+USB</string>
    <string name="battery_info_power_unknown">Unknown</string>
    <!-- Battery Info screen. Value for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_health_unknown">Unknown</string>
    <!-- Battery Info screen. Value for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_health_good">Good</string>
    <!-- Battery Info screen. Value for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_health_overheat">Overheat</string>
    <!-- Battery Info screen. Value for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_health_dead">Dead</string>
    <!-- Battery Info screen. Value for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_health_over_voltage">Over voltage</string>
    <!-- Battery Info screen. Value for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_health_unspecified_failure">Unknown error</string>
    <!-- Battery Info screen. Value for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="battery_info_health_cold">Cold</string>
    <!-- Used as setting title (for checkbox) on second screen after selecting Bluetooth settings -->
    <string name="bluetooth">Bluetooth</string>
    <!-- Bluetooth settings screen, summary after selecting Discoverable check box [CHAR LIMIT=50] -->
@@ -572,8 +520,6 @@
    <string name="debug_intent_sender_label">Debug intent sender</string>
    <!-- The title of the activity to see random device info. -->
    <string name="device_info_label">Device info</string>
    <!-- The title of the activity to see battery info. -->
    <string name="battery_info_label">Battery info</string>
    <!-- The title of the activity to adjust display settings -->
    <string name="display_label">Screen</string>
    <!-- The title of the activity to see phone info -->
@@ -3552,8 +3498,6 @@
    <string name="testing_phone_info" product="tablet">Tablet information</string>
    <!-- In the Testing screen.  The item title of the activity that shows a bunch of phone-related information.  -->
    <string name="testing_phone_info" product="default">Phone information</string>
    <!-- In the Testing screen. The item title of the activity that shows a bunch of battery-related information.  -->
    <string name="testing_battery_info">Battery information</string>
    <!-- Do not translate. In the Testing screen. The item title of the activity that shows a bunch of SIM-related operations.  -->
    <string name="testing_sim_toolkit">SIM toolkit</string>
+0 −8
Original line number Diff line number Diff line
@@ -24,14 +24,6 @@
                android:targetClass="com.android.settings.RadioInfo" />
    </PreferenceScreen>

    <PreferenceScreen
            android:title="@string/testing_battery_info">
        <intent android:action="android.intent.action.MAIN"
                android:targetPackage="com.android.settings"
                android:targetClass="com.android.settings.BatteryInfo" />
    </PreferenceScreen>


    <PreferenceScreen
            android:title="@string/testing_usage_stats">
        <intent android:action="android.intent.action.MAIN"
+0 −189
Original line number Diff line number Diff line
/*
 * Copyright (C) 2006 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;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.os.BatteryStats;
import android.os.Bundle;
import android.os.Handler;
import android.os.IPowerManager;
import android.os.Message;
import android.os.ServiceManager;
import android.os.SystemClock;
import android.text.format.DateUtils;
import android.widget.TextView;

import com.android.internal.app.IBatteryStats;

public class BatteryInfo extends Activity {
    private TextView mStatus;
    private TextView mPower;
    private TextView mLevel;
    private TextView mScale;
    private TextView mHealth;
    private TextView mVoltage;
    private TextView mTemperature;
    private TextView mTechnology;
    private TextView mUptime;
    private IBatteryStats mBatteryStats;
    private IPowerManager mScreenStats;
    
    private static final int EVENT_TICK = 1;
    
    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case EVENT_TICK:
                    updateBatteryStats();
                    sendEmptyMessageDelayed(EVENT_TICK, 1000);
                    
                    break;
            }
        }
    };

    /**
     * Format a number of tenths-units as a decimal string without using a
     * conversion to float.  E.g. 347 -> "34.7", -99 -> "-9.9"
     */
    private final String tenthsToFixedString(int x) {
        int tens = x / 10;
        // use Math.abs to avoid "-9.-9" about -99
        return Integer.toString(tens) + "." + Math.abs(x - 10 * tens);
    }

   /**
    *Listens for intent broadcasts
    */
    private IntentFilter   mIntentFilter;

    private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
                int plugType = intent.getIntExtra("plugged", 0);

                mLevel.setText("" + intent.getIntExtra("level", 0));
                mScale.setText("" + intent.getIntExtra("scale", 0));
                mVoltage.setText("" + intent.getIntExtra("voltage", 0) + " "
                        + getString(R.string.battery_info_voltage_units));
                mTemperature.setText("" + tenthsToFixedString(intent.getIntExtra("temperature", 0))
                        + getString(R.string.battery_info_temperature_units));
                mTechnology.setText("" + intent.getStringExtra("technology"));
                
                mStatus.setText(Utils.getBatteryStatus(getResources(), intent));

                switch (plugType) {
                    case 0:
                        mPower.setText(getString(R.string.battery_info_power_unplugged));
                        break;
                    case BatteryManager.BATTERY_PLUGGED_AC:
                        mPower.setText(getString(R.string.battery_info_power_ac));
                        break;
                    case BatteryManager.BATTERY_PLUGGED_USB:
                        mPower.setText(getString(R.string.battery_info_power_usb));
                        break;
                    case BatteryManager.BATTERY_PLUGGED_WIRELESS:
                        mPower.setText(getString(R.string.battery_info_power_wireless));
                        break;
                    case (BatteryManager.BATTERY_PLUGGED_AC|BatteryManager.BATTERY_PLUGGED_USB):
                        mPower.setText(getString(R.string.battery_info_power_ac_usb));
                        break;
                    default:
                        mPower.setText(getString(R.string.battery_info_power_unknown));
                        break;
                }
                
                int health = intent.getIntExtra("health", BatteryManager.BATTERY_HEALTH_UNKNOWN);
                String healthString;
                if (health == BatteryManager.BATTERY_HEALTH_GOOD) {
                    healthString = getString(R.string.battery_info_health_good);
                } else if (health == BatteryManager.BATTERY_HEALTH_OVERHEAT) {
                    healthString = getString(R.string.battery_info_health_overheat);
                } else if (health == BatteryManager.BATTERY_HEALTH_DEAD) {
                    healthString = getString(R.string.battery_info_health_dead);
                } else if (health == BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE) {
                    healthString = getString(R.string.battery_info_health_over_voltage);
                } else if (health == BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE) {
                    healthString = getString(R.string.battery_info_health_unspecified_failure);
                } else if (health == BatteryManager.BATTERY_HEALTH_COLD) {
                    healthString = getString(R.string.battery_info_health_cold);
                } else {
                    healthString = getString(R.string.battery_info_health_unknown);
                }
                mHealth.setText(healthString);
            }
        }
    };

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        setContentView(R.layout.battery_info);

        // create the IntentFilter that will be used to listen
        // to battery status broadcasts
        mIntentFilter = new IntentFilter();
        mIntentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
    }

    @Override
    public void onResume() {
        super.onResume();

        mStatus = (TextView)findViewById(R.id.status);
        mPower = (TextView)findViewById(R.id.power);
        mLevel = (TextView)findViewById(R.id.level);
        mScale = (TextView)findViewById(R.id.scale);
        mHealth = (TextView)findViewById(R.id.health);
        mTechnology = (TextView)findViewById(R.id.technology);
        mVoltage = (TextView)findViewById(R.id.voltage);
        mTemperature = (TextView)findViewById(R.id.temperature);
        mUptime = (TextView) findViewById(R.id.uptime);
        
        // Get awake time plugged in and on battery
        mBatteryStats = IBatteryStats.Stub.asInterface(ServiceManager.getService(
                BatteryStats.SERVICE_NAME));
        mScreenStats = IPowerManager.Stub.asInterface(ServiceManager.getService(POWER_SERVICE));
        mHandler.sendEmptyMessageDelayed(EVENT_TICK, 1000);
        
        registerReceiver(mIntentReceiver, mIntentFilter);
    }

    @Override
    public void onPause() {
        super.onPause();
        mHandler.removeMessages(EVENT_TICK);
        
        // we are no longer on the screen stop the observers
        unregisterReceiver(mIntentReceiver);
    }

    private void updateBatteryStats() {
        long uptime = SystemClock.elapsedRealtime();
        mUptime.setText(DateUtils.formatElapsedTime(uptime / 1000));
    }
    
}