Android O 夜间模式改为护眼模式

在Settings中的dispaly项中显示护眼模式

在\vendor\mediatek\proprietary\packages\apps\MtkSettings\res\xml\display_settings.xml中找到夜间模式的对应的条目

<?xml version="1.0" encoding="utf-8"?>


<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
    android:title="@string/display_settings"
    settings:keywords="@string/keywords_display">
    
    ....
     <com.android.settings.display.NightDisplayPreference
        android:key="night_display"
        android:title="@string/eye_care_title"
        android:fragment="com.android.settings.display.NightDisplaySettings"
        android:widgetLayout="@null"
        settings:widgetLayout="@null"
        settings:keywords="@string/keywords_display_night_display" />


    ...
 </PreferenceScreen>   

通过搜索关键词 android:key="night_display" 找到相关的代码

\vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\display\NightDisplayPreferenceController.java

package com.android.settings.display;

import android.content.Context;

import com.android.internal.app.NightDisplayController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;

public class NightDisplayPreferenceController extends AbstractPreferenceController implements
        PreferenceControllerMixin {

    private static final String KEY_NIGHT_DISPLAY = "night_display";

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

    @Override
    public boolean isAvailable() {
        return NightDisplayController.isAvailable(mContext);
    }

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

通过上面代码中的NightDisplayController.isAvailable(mContext);可以判断是否显示,定位到\frameworks\base\core\java\com\android\internal\app\NightDisplayController.java

/**

/**
     * Returns {@code true} if Night display is supported by the device.
     */
    public static boolean isAvailable(Context context) {
        return context.getResources().getBoolean(R.bool.config_nightDisplayAvailable);
    }
/frameworks\base\core\res\res\values\config.xml

//护眼模式是否开启
  <!-- Boolean indicating whether the HWC setColorTransform function can be performed efficiently
         in hardware. -->
    <bool name="config_setColorTransformAccelerated">false</bool>

    <!-- Control whether Night display is available. This should only be enabled on devices
         that have a HWC implementation that can apply the matrix passed to setColorTransform
         without impacting power, performance, and app compatibility (e.g. protected content). -->
    <bool name="config_nightDisplayAvailable">@bool/config_setColorTransformAccelerated</bool>

\vendor\mediatek\proprietary\packages\apps\MtkSettings\AndroidManifest.xml

<activity android:name="Settings$NightDisplaySettingsActivity"
               --- android:label="@string/night_display_title"
               +++ android:label="@string/eye_care_title"
                android:enabled="@*android:bool/config_nightDisplayAvailable"
               --- android:icon="@drawable/ic_settings_night_display"
               +++ android:icon="@drawable/ic_qs_ear_on"
                android:taskAffinity="">
            ...
        </activity>

        <activity android:name="Settings$NightDisplaySuggestionActivity"
            android:enabled="@*android:bool/config_nightDisplayAvailable"
            android:taskAffinity=""
            ---android:icon="@drawable/ic_settings_night_display"
            +++android:icon="@drawable/ic_qs_ear_on">
            ...

\vendor\mediatek\proprietary\packages\apps\MtkSettings\res\values\strings.xml

+++<string name="eye_care_title">Eye Care</string>
+++	<string name="condition_eye_care_title">Eye Care is on</string>
+++	<string name="eye_care_display_text">Eye Care tints your screen amber. This makes it easier to look at your screen or read in dim light, and may help you fall asleep more easily.</string>

\vendor\mediatek\proprietary\packages\apps\MtkSettings\res\values-zh-rCN\strings.xml

+++<string name="eye_care_title">护眼模式</string>
+++	<string name="condition_eye_care_title">“护眼模式”已开启</string>
+++	<string name="eye_care_display_text">护眼模式会将您的屏幕色调调为琥珀色,可让您在光线昏暗的环境下更舒适地查看屏幕或阅读文字,并有助您入睡。</string>

\vendor\mediatek\proprietary\packages\apps\MtkSettings\res\xml\display_settings.xml

<com.android.settings.display.NightDisplayPreference
        android:key="night_display"
        ---android:title="@string/night_display_title"
        +++android:title="@string/eye_care_title"
        android:fragment="com.android.settings.display.NightDisplaySettings"
        android:widgetLayout="@null"
        settings:widgetLayout="@null"
        settings:keywords="@string/keywords_display_night_display" />

\vendor\mediatek\proprietary\packages\apps\MtkSettings\res\xml\night_display_settings.xml

<PreferenceScreen
        xmlns:android="http://schemas.android.com/apk/res/android"
        ---android:title="@string/night_display_title"
        +++android:title="@string/eye_care_title">

    .......

</PreferenceScreen>

\vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\dashboard\conditional\NightDisplayCondition.java

public final class NightDisplayCondition extends Condition
        implements NightDisplayController.Callback {

    private NightDisplayController mController;

    ...
    
    @Override
    public Icon getIcon() {
       --- return Icon.createWithResource(mManager.getContext(), R.drawable.ic_settings_night_display);
       +++return Icon.createWithResource(mManager.getContext(), R.drawable.ic_qs_ear_on);
    }

    @Override
    public CharSequence getTitle() {
        --- return mManager.getContext().getString(R.string.condition_night_display_title);
        +++ return mManager.getContext().getString(R.string.condition_eye_care_title);
    }

    @Override
    public CharSequence getSummary() {
        return mManager.getContext().getString(R.string.condition_night_display_summary);
    }

    @Override
    public CharSequence[] getActions() {
        return new CharSequence[] { mManager.getContext().getString(R.string.condition_turn_off) };
    }

    @Override
    public void onPrimaryClick() {
       --- Utils.startWithFragment(mManager.getContext(), NightDisplaySettings.class.getName(), null,
         ---       null, 0, R.string.night_display_title, null, MetricsEvent.DASHBOARD_SUMMARY);
      +++Utils.startWithFragment(mManager.getContext(), NightDisplaySettings.class.getName(), null,
                null, 0, R.string.eye_care_title, null, MetricsEvent.DASHBOARD_SUMMARY);
    }

   ...
}

\vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\display\NightDisplaySettings.java

@Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        super.onCreatePreferences(savedInstanceState, rootKey);

        // Load the preferences from xml.
        addPreferencesFromResource(R.xml.night_display_settings);
        ---mFooterPreferenceMixin.createFooterPreference().setTitle(R.string.night_display_text);
        +++mFooterPreferenceMixin.createFooterPreference().setTitle(R.string.eye_care_display_text);
        mAutoModePreference = (DropDownPreference) findPreference(KEY_NIGHT_DISPLAY_AUTO_MODE);
        mStartTimePreference = findPreference(KEY_NIGHT_DISPLAY_START_TIME);
        ...

在下拉菜单新增护眼模式快捷方式

\vendor\mediatek\proprietary\packages\apps\SystemUI\res\values\strings.xml
+++<string name="quick_settings_eye_care_label">Eye Care</string>

\vendor\mediatek\proprietary\packages\apps\SystemUI\res\values-zh-rCN\strings.xml
+++<string name="quick_settings_eye_care_label">护眼模式</string>
\vendor\mediatek\proprietary\packages\apps\SystemUI\src\com\android\systemui\qs\tiles\NightDisplayTile.java
@Override
    protected void handleUpdateState(BooleanState state, Object arg) {
        final boolean isActivated = mController.isActivated();
        state.value = isActivated;
       --- /*state.label = state.contentDescription =
        ---        mContext.getString(R.string.quick_settings_night_display_label);
       --- state.icon = ResourceIcon.get(R.drawable.ic_qs_night_display_on);*/
       
       +++ state.label = state.contentDescription =
       +++         mContext.getString(R.string.quick_settings_eye_care_label);
	+++	if(isActivated){
	+++		state.icon = ResourceIcon.get(R.drawable.ic_qs_eye_on);
	+++	}else {
	+++		state.icon = ResourceIcon.get(R.drawable.ic_qs_eye_off);
	 +++ }
        state.expandedAccessibilityClassName = Switch.class.getName();
        state.state = state.value ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE;
    }
\vendor\mediatek\proprietary\packages\apps\SystemUI\res\values\config.xml

 <!-- The default tiles to display in QuickSettings -->
    <string name="quick_settings_tiles_default" translatable="false">
        wifi,bt,dnd,flashlight,rotation,battery,cell,airplane,supershot,screenrecorder,cast,night
    </string>

    <!-- Tiles native to System UI. Order should match "quick_settings_tiles_default" -->
    <string name="quick_settings_tiles_stock" translatable="false">
        wifi,cell,battery,dnd,flashlight,rotation,bt,airplane,location,hotspot,inversion,saver,work,cast,night
    </string>

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在MATLAB中启用夜间模式(黑色主题),你可以按照以下步骤操作: 1. 打开MATLAB并在命令窗口中输入prefdir,以获取MATLAB的首选项文件夹的路径。 2. 在打开的文件夹中找到matlab.prf文件,如果找不到该文件,请确保显示隐藏文件并重新启动MATLAB。 3. 打开matlab.prf文件并将以下内容添加到文件的末尾: ``` Editor.VariableHighlighting.Color=C-6931898 ColorsText=C-460558 Colors_M_SystemCommands=C-448910 Editorhighlight-lines=C-11974594 Colors_M_Warnings=C-27648 Colors_M_Strings=C-1647756 Editor.NonlocalVariableHighlighting.TextColor=C-5471745 Colors_HTML_HTMLLinks=C-16732805 Colors_M_Comments=C-8355712 Colors_M_Errors=C-65536 Colors_M_UnterminatedStrings=C-5111808 ColorsBackground=C-14211038 Colors_M_Keywords=C-10036753 Color_CmdWinWarnings=C-39936 ColorsMLintAutoFixBackground=C-7973573 Colors_M_Keywords=C-10036753 Editorhighlight-lines=C-13553108 Editorhighlight-caret-row-boolean-color=C-2167080 ColorsUseSystem=Bfalse ``` 4. 保存文件并重新启动MATLAB。 这样,MATLAB的界面就会切换到夜间模式,呈现出黑色主题。请注意,这些颜色值是基于默认的Monokai配色方案和个人偏好进行设置的。如果需要更改颜色,可以按照相同的格式修改相应的颜色值。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Matlab的护眼模式设置](https://blog.csdn.net/Felaim/article/details/75678804)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [ubuntu20.04下面matlabR2015b的夜间模式设置](https://blog.csdn.net/appleyuchi/article/details/107436813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值