zoukankan      html  css  js  c++  java
  • A40i Android7 支持隐藏导航栏

    1. 隐藏状态栏以及导航栏

    diff --git a/android/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/android/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
    index 30613bc..7c42abc 100644
    --- a/android/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
    +++ b/android/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
    @@ -3434,6 +3434,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
             mRemoteInputController = new RemoteInputController(mStatusBarWindowManager,
                     mHeadsUpManager);
             mStatusBarWindowManager.add(mStatusBarWindow, getStatusBarHeight());
    +               mStatusBarView.setVisibility(View.GONE);
         }
     
         // called by makeStatusbar and also by PhoneStatusBarView

    2. 在设置->显示栏中 增加 显示导航栏 开关

    diff --git a/android/device/softwinner/a40-p1/overlay/packages/apps/Settings/res/xml/display_settings.xml b/android/device/softwinner/a40-p1/overlay/packages/apps/Settings/res/xml/display_settings.xml
    index 80d03cc..ce5356e 100755
    --- a/android/device/softwinner/a40-p1/overlay/packages/apps/Settings/res/xml/display_settings.xml
    +++ b/android/device/softwinner/a40-p1/overlay/packages/apps/Settings/res/xml/display_settings.xml
    @@ -116,6 +116,12 @@
                     android:summary="%s"
                     android:title="@string/display_vr_pref_title" />
     
    +        <SwitchPreference
    +                android:key="show_nav"
    +                android:title="@string/whether_shownav"
    +                android:summary="@string/whether_shownav" />
    +
    +
                <PreferenceCategory android:key="hdmi_setting"
                     android:title="@string/hdmi_setting">
     
    @@ -136,33 +142,7 @@
                             android:key="hdmi_height_scale"
                             android:title="@string/hdmi_height_scale"
                             android:layout="@layout/preference_iconless_slider" />
    -        </PreferenceCategory>
    -
    -        <PreferenceCategory android:key="smart_color_setting"
    -                android:title="@string/smart_color">
    -
    -                <SwitchPreference
    -                        android:key="smart_color"
    -                        android:title="@string/smart_color"
    -                        android:summary="@string/smart_color_summary" />
    -
    -                <SwitchPreference
    -                        android:key="smart_color_demo"
    -                        android:title="@string/brightness_demo"
    -                        android:summary="@string/brightness_demo_summary" />
    -        </PreferenceCategory>
    -
    -        <PreferenceCategory android:key="intelligent_backlight_setting"
    -                android:title="@string/intelligent_backlight">
    -
    -                <SwitchPreference
    -                        android:key="intelligent_backlight"
    -                        android:title="@string/intelligent_backlight" />
     
    -                <SwitchPreference
    -                        android:key="intelligent_backlight_demo"
    -                        android:title="@string/brightness_demo"
    -                        android:summary="@string/brightness_demo_summary" />
             </PreferenceCategory>
     
     </PreferenceScreen>
    diff --git a/android/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/android/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
    index d010bc5..d8ec69c 100755
    --- a/android/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
    +++ b/android/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
    @@ -242,5 +242,7 @@
         <integer name="def_hdmi_hscaler">90</integer>
     
         <integer name="def_vga_output_mode">888</integer>
    -   <!-- end added by zhongzhiwen -->
    +    
    +    <string name="def_show_nav_bar">false</string>
    +    <!-- end added by zhongzhiwen -->
     </resources>
    diff --git a/android/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/android/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
    index 5e34361..ada7cd6 100755
    --- a/android/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
    +++ b/android/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
    @@ -2363,6 +2363,8 @@ class DatabaseHelper extends SQLiteOpenHelper {
                         R.bool.def_dim_screen);
                 loadIntegerSetting(stmt, Settings.System.SCREEN_OFF_TIMEOUT,
                         R.integer.def_screen_off_timeout);
    +            loadStringSetting(stmt, "show_navigation_bar",
    +                    R.string.def_show_nav_bar);
     
                 // Set default cdma DTMF type
                 loadSetting(stmt, Settings.System.DTMF_TONE_TYPE_WHEN_DIALING, 0);
    diff --git a/android/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/android/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
    index 7c42abc..781ce7f 100644
    --- a/android/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
    +++ b/android/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
    @@ -723,6 +723,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
     
             mScreenPinningRequest = new ScreenPinningRequest(mContext);
             mFalsingManager = FalsingManager.getInstance(mContext);
    +
    +        String isShownav = Settings.System.getString(mContext.getContentResolver(),"show_navigation_bar");
    +        if ("false".equals(isShownav)) {
    +            mWindowManager.removeView(mNavigationBarView);
    +        }
         }
     
         protected void createIconController() {
    @@ -787,9 +792,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
             try {
                 boolean showNav = mWindowManagerService.hasNavigationBar();
                 if (DEBUG) Log.v(TAG, "hasNavigationBar=" + showNav);
    +
                 if (showNav) {
                     createNavigationBarView(context);
                 }
    +
             } catch (RemoteException ex) {
                 // no window manager? good luck with that
             }
    @@ -1012,6 +1019,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
     
             // Private API call to make the shadows look better for Recents
             ThreadedRenderer.overrideProperty("ambientRatio", String.valueOf(1.5f));
    +        
     
             return mStatusBarView;
         }
    @@ -3678,7 +3686,27 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
             mContext.getContentResolver().registerContentObserver(
                     Settings.Secure.getUriFor(Settings.Secure.USER_SETUP_COMPLETE), true,
                     mUserSetupObserver, mCurrentUserId);
    -    }
    +        mContentObserver = new SettingsValueChangeContentObserver();
    +        mContext.getContentResolver().registerContentObserver(
    +                Settings.System.getUriFor("show_navigation_bar"),true, mContentObserver);
    +    }
    +
    +private SettingsValueChangeContentObserver mContentObserver;
    +class SettingsValueChangeContentObserver extends ContentObserver {
    +    public SettingsValueChangeContentObserver() {
    +        super(new Handler());
    +    }
    +    @Override
    +    public void onChange(boolean selfChange) {
    +        super.onChange(selfChange);
    +        String isShownav = Settings.System.getString(mContext.getContentResolver(),"show_navigation_bar");
    +        if ("true".equals(isShownav)) {
    +                mWindowManager.addView(mNavigationBarView, getNavigationBarLayoutParams());
    +        } else {
    +            mWindowManager.removeView(mNavigationBarView);
    +        }
    +    }
    +}
     
         /**
          * Reload some of our resources when the configuration changes.
    diff --git a/android/packages/apps/Settings/res/values-zh-rCN/custom.xml b/android/packages/apps/Settings/res/values-zh-rCN/custom.xml
    index 48f8352..3de5ff8 100755
    --- a/android/packages/apps/Settings/res/values-zh-rCN/custom.xml
    +++ b/android/packages/apps/Settings/res/values-zh-rCN/custom.xml
    @@ -29,7 +29,8 @@
         <string name="smart_color">丽色系统</string>
         <string name="smart_color_summary">丽色系统用于玩游戏,观看视频图片,效果更佳</string>
         <string name="intelligent_backlight">智能背光</string>
    -    <string name="brightness_demo">演示模式</string>
    +    <string name="whether_shownav">"显示导航栏"</string>
    +    <string name="brightness_demo">演示模式</string>
         <string name="brightness_demo_summary">只对半个屏幕有效,便于看出效果</string>
         <!-- display settings end -->
     
    diff --git a/android/packages/apps/Settings/res/values/custom.xml b/android/packages/apps/Settings/res/values/custom.xml
    index 6b4ad1b..aca7000 100755
    --- a/android/packages/apps/Settings/res/values/custom.xml
    +++ b/android/packages/apps/Settings/res/values/custom.xml
    @@ -45,7 +45,8 @@
         <string name="smart_color">Smart color</string>
         <string name="smart_color_summary">It is better for playing games and video and picture.</string>
         <string name="intelligent_backlight">Intelligent backlight</string>
    -    <string name="brightness_demo">Demo mode</string>
    +    <string name="whether_shownav">"whether show nav"</string>
    +    <string name="brightness_demo">Demo mode</string>
         <string name="brightness_demo_summary">Only half of the screen is effective, in order to show the effect easily.</string>
         <!-- display settings end -->
     
    diff --git a/android/packages/apps/Settings/src/com/android/settings/DisplaySettings.java b/android/packages/apps/Settings/src/com/android/settings/DisplaySettings.java
    index bf041c1..ac5bb68 100644
    --- a/android/packages/apps/Settings/src/com/android/settings/DisplaySettings.java
    +++ b/android/packages/apps/Settings/src/com/android/settings/DisplaySettings.java
    @@ -122,6 +122,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
         private SwitchPreference mSmartColorDemoPreference;
         private SwitchPreference mIntelligentBacklightPreference;
         private SwitchPreference mIntelligentBacklightDemoPreference;
    +    private SwitchPreference mshowNavPreference;
     
         @Override
         protected int getMetricsCategory() {
    @@ -135,8 +136,18 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
             final ContentResolver resolver = activity.getContentResolver();
     
             addPreferencesFromResource(R.xml.display_settings);
    -
    -        mScreenSaverPreference = findPreference(KEY_SCREEN_SAVER);
    +        
    +        mshowNavPreference = (SwitchPreference) findPreference("show_nav");
    +        if (mshowNavPreference != null) {
    +        // 显示之前的设置
    +           String isShownav = Settings.System.getString(getContentResolver(),"show_navigation_bar");
    +           mshowNavPreference.setChecked("true".equals(isShownav) ? true : false);
    +           mshowNavPreference.setOnPreferenceChangeListener(this);
    +        } else {
    +            removePreference("show_navigation_bar");
    +        }
    +        
    +        mScreenSaverPreference = findPreference(KEY_SCREEN_SAVER);
             if (mScreenSaverPreference != null
                     && getResources().getBoolean(
                             com.android.internal.R.bool.config_dreamsSupported) == false) {
    @@ -497,6 +508,10 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
                     Log.e(TAG, "could not persist screen timeout setting", e);
                 }
             }
    +        if (preference == mshowNavPreference) {
    +            boolean auto = (Boolean) objValue;
    +            Settings.System.putString(getContentResolver(),"show_navigation_bar",String.valueOf(auto));
    +        }
             if (preference == mAutoBrightnessPreference) {
                 boolean auto = (Boolean) objValue;
                 Settings.System.putInt(getContentResolver(), SCREEN_BRIGHTNESS_MODE,
  • 相关阅读:
    Kubernetes 服务入口管理 Traefik Ingress Controller
    flex的titlewindow如何自适应浏览器的宽度和高度
    JQuery的事件中使用this
    jQuery控制 input 不可编辑
    jquery 操作 input显示或者隐藏
    Word 创建模板
    HTML转PDF
    SQL server 自增主键重新从1开始
    读取 .properties文件到数据库
    根据json生成java实体类文件
  • 原文地址:https://www.cnblogs.com/okshall/p/14312717.html
Copyright © 2011-2022 走看看