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

Commit bee2554f authored by Youhan Wang's avatar Youhan Wang Committed by Android (Google) Code Review
Browse files

Merge "Add TelephonyMonitor debug switch in Developer Options."

parents 427b99cb 607ffe68
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -38,6 +38,9 @@
    <!-- When true enable color temperature setting. -->
    <bool name="config_enableColorTemperature">false</bool>

    <!-- Whether to show TelphonyMonitor switch in Developer Options -->
    <bool name="config_show_telephony_monitor">false</bool>

    <!-- Fully-qualified class name for the implementation of the FeatureFactory to be instantiated. -->
    <string name="config_featureFactory" translatable="false">com.android.settings.overlay.FeatureFactoryImpl</string>

+3 −0
Original line number Diff line number Diff line
@@ -7558,6 +7558,9 @@
    <!-- Toast message letting the user know the color temperature setting is not immediate -->
    <string name="color_temperature_toast">To apply color change, turn off screen</string>
    <!-- Toast message letting the user know the how to trigger telephony monitor -->
    <string name="telephony_monitor_toast">To apply telephony monitor change, reboot device</string>
    <!-- Name of the setting to disable the automatic update -->
    <string name="ota_disable_automatic_update">Automatic system updates</string>
+5 −0
Original line number Diff line number Diff line
@@ -166,6 +166,11 @@
            android:entries="@array/select_logpersist_titles"
            android:entryValues="@array/select_logpersist_values" />

        <SwitchPreference
            android:key="telephony_monitor_switch"
            android:title="@string/telephony_monitor_switch"
            android:summary="@string/telephony_monitor_switch_summary"/>

    </PreferenceCategory>

    <PreferenceCategory android:key="debug_networking_category"
+11 −0
Original line number Diff line number Diff line
@@ -89,6 +89,7 @@ import com.android.settings.applications.BackgroundCheckSummary;
import com.android.settings.dashboard.DashboardFeatureProvider;
import com.android.settings.development.BugReportPreferenceController;
import com.android.settings.development.BugReportInPowerPreferenceController;
import com.android.settings.development.TelephonyMonitorPreferenceController;
import com.android.settings.fuelgauge.InactiveApps;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
@@ -353,6 +354,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
    private DashboardFeatureProvider mDashboardFeatureProvider;
    private BugReportPreferenceController mBugReportController;
    private BugReportInPowerPreferenceController mBugReportInPowerController;
    private TelephonyMonitorPreferenceController mTelephonyMonitorController;

    public DevelopmentSettings() {
        super(UserManager.DISALLOW_DEBUGGING_FEATURES);
@@ -389,6 +391,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment

        mBugReportController = new BugReportPreferenceController(getActivity());
        mBugReportInPowerController = new BugReportInPowerPreferenceController(getActivity());
        mTelephonyMonitorController = new TelephonyMonitorPreferenceController(getActivity());
        mWebViewAppPrefController = new WebViewAppPreferenceController(getActivity());

        setIfOnlyAvailableForAdmins(true);
@@ -420,6 +423,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment

        mBugReportController.displayPreference(getPreferenceScreen());
        mBugReportInPowerController.displayPreference(getPreferenceScreen());
        mTelephonyMonitorController.displayPreference(getPreferenceScreen());
        mWebViewAppPrefController.displayPreference(getPreferenceScreen());

        mKeepScreenOn = (RestrictedSwitchPreference) findAndInitSwitchPref(KEEP_SCREEN_ON);
@@ -638,6 +642,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
            pref.setEnabled(enabled && !mDisabledPrefs.contains(pref));
        }
        mBugReportInPowerController.enablePreference(enabled);
        mTelephonyMonitorController.enablePreference(enabled);
        mWebViewAppPrefController.enablePreference(enabled);
        updateAllOptions();
    }
@@ -760,6 +765,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
                            == PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
        }
        mHaveDebugSettings |= mBugReportInPowerController.updatePreference();
        mHaveDebugSettings |= mTelephonyMonitorController.updatePreference();
        updateSwitchPreference(mKeepScreenOn, Settings.Global.getInt(cr,
                Settings.Global.STAY_ON_WHILE_PLUGGED_IN, 0) != 0);
        updateSwitchPreference(mBtHciSnoopLog, Settings.Secure.getInt(cr,
@@ -2382,6 +2388,11 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
        if (mBugReportInPowerController.handlePreferenceTreeClick(preference)) {
            return true;
        }

        if (mTelephonyMonitorController.handlePreferenceTreeClick(preference)) {
            return true;
        }

        if (mWebViewAppPrefController.handlePreferenceTreeClick(preference)) {
            return true;
        }
+95 −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.os.SystemProperties;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.widget.Toast;

import com.android.settings.core.PreferenceController;
import com.android.settings.R;

public class TelephonyMonitorPreferenceController extends PreferenceController {

    private static final String KEY_TELEPHONY_MONITOR_SWITCH = "telephony_monitor_switch";
    static final String BUILD_TYPE = "ro.build.type";
    static final String PROPERTY_TELEPHONY_MONITOR = "persist.radio.enable_tel_mon";

    private SwitchPreference mPreference;

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

    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        if (isAvailable()) {
            mPreference = (SwitchPreference) screen.findPreference(KEY_TELEPHONY_MONITOR_SWITCH);
            mPreference.setChecked(SystemProperties.getBoolean(PROPERTY_TELEPHONY_MONITOR, false));
        }
    }

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

    @Override
    public boolean isAvailable() {
        return mContext.getResources().getBoolean(R.bool.config_show_telephony_monitor) &&
                (SystemProperties.get(BUILD_TYPE).equals("userdebug") ||
                        SystemProperties.get(BUILD_TYPE).equals("eng"));
    }

    @Override
    public void updateState(Preference preference) {
        updatePreference();
    }

    @Override
    public boolean handlePreferenceTreeClick(Preference preference) {
        if (KEY_TELEPHONY_MONITOR_SWITCH.equals(preference.getKey())) {
            final SwitchPreference switchPreference = (SwitchPreference) preference;
            SystemProperties.set(PROPERTY_TELEPHONY_MONITOR,
                    switchPreference.isChecked() ? "true" : "false");
            Toast.makeText(mContext, R.string.telephony_monitor_toast,
                    Toast.LENGTH_LONG).show();
            return true;
        }
        return false;
    }

    public void enablePreference(boolean enabled) {
        if (isAvailable()) {
            mPreference.setEnabled(enabled);
        }
    }

    public boolean updatePreference() {
        if (!isAvailable()) {
            return false;
        }
        final boolean enabled = SystemProperties.getBoolean(PROPERTY_TELEPHONY_MONITOR, false);
        mPreference.setChecked(enabled);
        return enabled;
    }

}
Loading