From e922f3067372c9567bf9da8d64cb668367cfb673 Mon Sep 17 00:00:00 2001 From: TrillGates Date: Thu, 15 Jul 2021 14:59:00 +0800 Subject: [PATCH] completed plane mode. --- .../presenter/StatusBarPresenter.java | 22 +++++++++++++++++- .../com/ic/launcher/view/StatusBarView.java | 9 +++++++ app/src/main/res/layout/item_status_bar.xml | 11 ++++++++- .../res/mipmap-mdpi/top_icon_plane_mode.png | Bin 0 -> 399 bytes 4 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/mipmap-mdpi/top_icon_plane_mode.png diff --git a/app/src/main/java/com/ic/launcher/presenter/StatusBarPresenter.java b/app/src/main/java/com/ic/launcher/presenter/StatusBarPresenter.java index 3da4f50..a540245 100644 --- a/app/src/main/java/com/ic/launcher/presenter/StatusBarPresenter.java +++ b/app/src/main/java/com/ic/launcher/presenter/StatusBarPresenter.java @@ -48,7 +48,8 @@ public class StatusBarPresenter extends StatusBarBasePresenter { public MutableLiveData icTalkMsgState = new MutableLiveData<>(); //震动图标 public MutableLiveData shakeValue = new MutableLiveData<>(); - // + //飞行模式 + public MutableLiveData isPlaneModeValue = new MutableLiveData<>(); private final ExecutorService executorService; // private NetworkConnectChangedReceiver mNetworkChangeListener; @@ -72,10 +73,20 @@ public class StatusBarPresenter extends StatusBarBasePresenter { checkIcTalkMsg(); checkHasMissCall(); getShakeState(); + getPlaneMode(); observerContentChange(); } private void observerContentChange() { + //观察飞行模式 + contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".is_air_mode_enable"), true, + new ContentObserver(null) { + @Override + public void onChange(boolean selfChange) { + ICLogger.d("is_air_mode_enable"); + getPlaneMode(); + } + }); contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".key_silent"), true, new ContentObserver(null) { @Override @@ -93,6 +104,15 @@ public class StatusBarPresenter extends StatusBarBasePresenter { }); } + private void getPlaneMode() { + String isPlaneMode = getContent("is_air_mode_enable"); + if ("1".equals(isPlaneMode)) { + isPlaneModeValue.postValue(Boolean.TRUE); + } else { + isPlaneModeValue.postValue(Boolean.FALSE); + } + } + private void getShakeState() { executorService.execute(() -> { //key_shake_mode diff --git a/app/src/main/java/com/ic/launcher/view/StatusBarView.java b/app/src/main/java/com/ic/launcher/view/StatusBarView.java index 239a015..7bda6fb 100644 --- a/app/src/main/java/com/ic/launcher/view/StatusBarView.java +++ b/app/src/main/java/com/ic/launcher/view/StatusBarView.java @@ -34,6 +34,7 @@ public class StatusBarView extends FrameLayout { private View icTalkView; private View silentIconView; private View shakeView; + private View planeModeView; public StatusBarView(@NonNull Context context) { this(context, null); @@ -66,6 +67,7 @@ public class StatusBarView extends FrameLayout { icTalkView = findViewById(R.id.top_icon_ic_talk); silentIconView = findViewById(R.id.top_icon_silent); shakeView = findViewById(R.id.top_icon_ic_shake); + planeModeView = findViewById(R.id.top_icon_plane_mode); } public void initPresenter(LifecycleOwner lifecycleOwner) { @@ -74,6 +76,13 @@ public class StatusBarView extends FrameLayout { //设置闹钟图标显示还是隐藏 alarmView.setVisibility(isAlarmOpen == Boolean.TRUE ? VISIBLE : GONE); }); + statusBarPresenter.isPlaneModeValue.observe(lifecycleOwner, isPlaneMode -> { + if (isPlaneMode == null || isPlaneMode == Boolean.FALSE) { + planeModeView.setVisibility(GONE); + } else { + planeModeView.setVisibility(VISIBLE); + } + }); statusBarPresenter.btState.observe(lifecycleOwner, isOpen -> { //蓝牙是否显示 btView.setVisibility(isOpen == Boolean.TRUE ? VISIBLE : GONE); diff --git a/app/src/main/res/layout/item_status_bar.xml b/app/src/main/res/layout/item_status_bar.xml index 5eced81..4c00407 100644 --- a/app/src/main/res/layout/item_status_bar.xml +++ b/app/src/main/res/layout/item_status_bar.xml @@ -33,6 +33,8 @@ - + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-mdpi/top_icon_plane_mode.png b/app/src/main/res/mipmap-mdpi/top_icon_plane_mode.png new file mode 100644 index 0000000000000000000000000000000000000000..95c196eb51f67ac36fd68d68fb350f03c40794e3 GIT binary patch literal 399 zcmV;A0dW3_P)O&vWP8nKMTeYAWOs1>4>LR{I|*>15mwj)ftbnzSpan=7Zl(;?hb0ec7LBz@%I(QpX&HLz8KI+6~WfcJsU0JJ9Q zAr(*E@nQ(~L=EamTFHWK&j5SX+i$>Z#-h9XVcTUwZM)dvYW_MEO&~GH()RzR%osGhPQ@OH=AT8|WeNe?#Y&&%i#^+A%G*%T tS5?M$f^VvzkG*aw