当前位置:   article > 正文

Android13定制状态栏导航栏_android13 源码修改 隐藏状态栏

android13 源码修改 隐藏状态栏

一、状态栏的隐藏与显示
SystemUI模块修改文件如下:
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowController.java

在这里插入图片描述
二、导航栏的隐藏与显示

packages/apps/Launcher3/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
packages/apps/Launcher3/quickstep/src/com/android/quickstep/TouchInteractionService.java
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三、Settings模块修改添加开关:
packages/apps/Settings/res/xml/display_settings.xml
在这里插入图片描述
packages/apps/Settings/src/com/android/settings/display/status_navi_bar/NaviBarPreferenceController.java

package com.android.settings.display.status_navi_bar;

import android.content.Context;
import android.content.Intent;
import android.os.SystemProperties;
import android.preference.Preference;
import android.util.Log;

import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.TogglePreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume;

public class NaviBarPreferenceController extends TogglePreferenceController implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause {

    private static final String TAG = "NaviBarPreferenceController";

    private static final String SYS_PROPERTY_NAVIGATION_BAR = "persist.sys.navigationbar.enable";
    private static final String ACTION_HIDE_NAVIGATION_BAR = "com.systemui.navigationbar.hide";
    private static final String ACTION_SHOW_NAVIGATION_BAR = "com.systemui.navigationbar.show";
    private Context mContext;
    public NaviBarPreferenceController(Context context, String preferenceKey) {
        super(context, preferenceKey);
        mContext = context;
    }

    @Override
    public int getAvailabilityStatus() {
        return BasePreferenceController.AVAILABLE;
    }

    @Override
    public boolean isChecked() {
        return !SystemProperties.getBoolean(SYS_PROPERTY_NAVIGATION_BAR, false);
    }

    @Override
    public boolean setChecked(boolean isChecked) {
        Log.d(TAG, "setChecked: " + isChecked);
        Intent intent = isChecked ? new Intent(ACTION_HIDE_NAVIGATION_BAR) : new Intent(ACTION_SHOW_NAVIGATION_BAR);
        mContext.sendBroadcast(intent);
        return true;
    }

    @Override
    public int getSliceHighlightMenuRes() {
        return NO_RES;
    }

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        Log.d(TAG, "onPreferenceChange: "+newValue);
        return true;
    }

    @Override
    public void onPause() {
        Log.d(TAG, "onPause: ");
    }

    @Override
    public void onResume() {
        Log.d(TAG, "onResume: ");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67

packages/apps/Settings/src/com/android/settings/display/status_navi_bar/StatusBarPreferenceController.java

package com.android.settings.display.status_navi_bar;

import android.content.Context;
import android.content.Intent;
import android.os.SystemProperties;
import android.preference.Preference;
import android.util.Log;

import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.TogglePreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume;

public class StatusBarPreferenceController extends TogglePreferenceController implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause {

    private static final String TAG = "StatusBarPreferenceController";

    private static final String SYS_PROPERTY_STATUS_BAR = "persist.sys.statusbar.enable";
    private static final String ACTION_HIDE_STATUS_BAR = "com.systemui.statusbar.hide";
    private static final String ACTION_SHOW_STATUS_BAR = "com.systemui.statusbar.show";
    private Context mContext;

    public StatusBarPreferenceController(Context context, String preferenceKey) {
        super(context, preferenceKey);
        mContext = context;
    }

    @Override
    public int getAvailabilityStatus() {
        return BasePreferenceController.AVAILABLE;
    }

    @Override
    public boolean isChecked() {
        return !SystemProperties.getBoolean(SYS_PROPERTY_STATUS_BAR, false);
    }

    @Override
    public boolean setChecked(boolean isChecked) {
        Log.d(TAG, "setChecked: " + isChecked);
        Intent intent = isChecked ? new Intent(ACTION_HIDE_STATUS_BAR) : new Intent(ACTION_SHOW_STATUS_BAR);
        mContext.sendBroadcast(intent);
        return true;
    }

    @Override
    public int getSliceHighlightMenuRes() {
        return NO_RES;
    }

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        Log.d(TAG, "onPreferenceChange: "+newValue);
        return true;
    }

    @Override
    public void onPause() {
        Log.d(TAG, "onPause: ");
    }

    @Override
    public void onResume() {
        Log.d(TAG, "onResume: ");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68

至此,完成了状态栏和导航栏的隐藏与显示

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/496578
推荐阅读
相关标签
  

闽ICP备14008679号