|
18 | 18 | */ |
19 | 19 | package com.sevtinge.hyperceiler.hook.module.skip; |
20 | 20 |
|
| 21 | +import static androidx.core.content.ContextCompat.getSystemService; |
| 22 | + |
| 23 | +import static com.sevtinge.hyperceiler.hook.utils.devicesdk.SystemSDKKt.isMoreAndroidVersion; |
| 24 | + |
21 | 25 | import android.annotation.SuppressLint; |
22 | 26 | import android.content.BroadcastReceiver; |
23 | 27 | import android.content.Context; |
@@ -97,12 +101,12 @@ protected void after(MethodHookParam param) { |
97 | 101 | intentfilter.addAction(StatusBarActionConstants.ACTION_RESTART_LAUNCHER); |
98 | 102 | intentfilter.addAction(StatusBarActionConstants.ACTION_COPY_TO_EXTERNAL); |
99 | 103 |
|
100 | | - ContextCompat.registerReceiver(mStatusBarContext, mStatusBarReceiver, intentfilter, ContextCompat.RECEIVER_NOT_EXPORTED); |
| 104 | + ContextCompat.registerReceiver(mStatusBarContext, mStatusBarReceiver, intentfilter, ContextCompat.RECEIVER_EXPORTED); |
101 | 105 | } |
102 | 106 | }); |
103 | 107 | } |
104 | 108 |
|
105 | | - |
| 109 | + @SuppressLint("UnsafeIntentLaunch") |
106 | 110 | private static final BroadcastReceiver mStatusBarReceiver = new BroadcastReceiver() { |
107 | 111 | @SuppressLint("WrongConstant") |
108 | 112 | @Override |
@@ -154,45 +158,54 @@ public void onReceive(Context context, Intent intent) { |
154 | 158 | }; |
155 | 159 |
|
156 | 160 | public static void OpenVolumeDialogs(Context context) { |
157 | | - try { |
158 | | - Object mVolumeComponent = XposedHelpers.getObjectField(mStatusBar, "mVolumeComponent"); |
159 | | - Object mVolumeDialogPlugin = XposedHelpers.getObjectField(mVolumeComponent, "mDialog"); |
160 | | - Object miuiVolumeDialog = XposedHelpers.getObjectField(mVolumeDialogPlugin, "mVolumeDialogImpl"); |
161 | | - if (miuiVolumeDialog == null) { |
162 | | - logI("OpenVolumeDialog", "com.android.systemui", "MIUI volume dialog is NULL!"); |
163 | | - return; |
| 161 | + if (isMoreAndroidVersion(35)) { |
| 162 | + try { |
| 163 | + AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); |
| 164 | + audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_SAME, AudioManager.FLAG_SHOW_UI); |
| 165 | + } catch (Throwable t) { |
| 166 | + XposedBridge.log(t); |
164 | 167 | } |
| 168 | + } else { |
| 169 | + try { |
| 170 | + Object mVolumeComponent = XposedHelpers.getObjectField(mStatusBar, "mVolumeComponent"); |
| 171 | + Object mVolumeDialogPlugin = XposedHelpers.getObjectField(mVolumeComponent, "mDialog"); |
| 172 | + Object miuiVolumeDialog = XposedHelpers.getObjectField(mVolumeDialogPlugin, "mVolumeDialogImpl"); |
| 173 | + if (miuiVolumeDialog == null) { |
| 174 | + logI("OpenVolumeDialog", "com.android.systemui", "MIUI volume dialog is NULL!"); |
| 175 | + return; |
| 176 | + } |
165 | 177 |
|
166 | | - Handler mHandler = (Handler) XposedHelpers.getObjectField(miuiVolumeDialog, "mHandler"); |
167 | | - mHandler.post(() -> { |
168 | | - boolean mShowing = XposedHelpers.getBooleanField(miuiVolumeDialog, "mShowing"); |
169 | | - boolean mExpanded = XposedHelpers.getBooleanField(miuiVolumeDialog, "mExpanded"); |
170 | | - |
171 | | - AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); |
172 | | - boolean isInCall = am.getMode() == AudioManager.MODE_IN_CALL || am.getMode() == AudioManager.MODE_IN_COMMUNICATION; |
173 | | - if (mShowing) { |
174 | | - if (mExpanded || isInCall) |
175 | | - XposedHelpers.callMethod(miuiVolumeDialog, "dismissH", 1); |
176 | | - else { |
177 | | - Object mDialogView = XposedHelpers.getObjectField(miuiVolumeDialog, "mDialogView"); |
178 | | - View mExpandButton = (View) XposedHelpers.getObjectField(mDialogView, "mExpandButton"); |
179 | | - View.OnClickListener mClickExpand = (View.OnClickListener) XposedHelpers.getObjectField(mDialogView, "expandListener"); |
180 | | - mClickExpand.onClick(mExpandButton); |
181 | | - } |
182 | | - } else { |
183 | | - Object mController = XposedHelpers.getObjectField(mVolumeDialogPlugin, "mController"); |
184 | | - if (isInCall) { |
185 | | - XposedHelpers.callMethod(mController, "setActiveStream", 0); |
186 | | - XposedHelpers.setBooleanField(miuiVolumeDialog, "mNeedReInit", true); |
187 | | - } else if (am.isMusicActive()) { |
188 | | - XposedHelpers.callMethod(mController, "setActiveStream", 3); |
189 | | - XposedHelpers.setBooleanField(miuiVolumeDialog, "mNeedReInit", true); |
| 178 | + Handler mHandler = (Handler) XposedHelpers.getObjectField(miuiVolumeDialog, "mHandler"); |
| 179 | + mHandler.post(() -> { |
| 180 | + boolean mShowing = XposedHelpers.getBooleanField(miuiVolumeDialog, "mShowing"); |
| 181 | + boolean mExpanded = XposedHelpers.getBooleanField(miuiVolumeDialog, "mExpanded"); |
| 182 | + |
| 183 | + AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); |
| 184 | + boolean isInCall = am.getMode() == AudioManager.MODE_IN_CALL || am.getMode() == AudioManager.MODE_IN_COMMUNICATION; |
| 185 | + if (mShowing) { |
| 186 | + if (mExpanded || isInCall) |
| 187 | + XposedHelpers.callMethod(miuiVolumeDialog, "dismissH", 1); |
| 188 | + else { |
| 189 | + Object mDialogView = XposedHelpers.getObjectField(miuiVolumeDialog, "mDialogView"); |
| 190 | + View mExpandButton = (View) XposedHelpers.getObjectField(mDialogView, "mExpandButton"); |
| 191 | + View.OnClickListener mClickExpand = (View.OnClickListener) XposedHelpers.getObjectField(mDialogView, "expandListener"); |
| 192 | + mClickExpand.onClick(mExpandButton); |
| 193 | + } |
| 194 | + } else { |
| 195 | + Object mController = XposedHelpers.getObjectField(mVolumeDialogPlugin, "mController"); |
| 196 | + if (isInCall) { |
| 197 | + XposedHelpers.callMethod(mController, "setActiveStream", 0); |
| 198 | + XposedHelpers.setBooleanField(miuiVolumeDialog, "mNeedReInit", true); |
| 199 | + } else if (am.isMusicActive()) { |
| 200 | + XposedHelpers.callMethod(mController, "setActiveStream", 3); |
| 201 | + XposedHelpers.setBooleanField(miuiVolumeDialog, "mNeedReInit", true); |
| 202 | + } |
| 203 | + XposedHelpers.callMethod(miuiVolumeDialog, "showH", 1); |
190 | 204 | } |
191 | | - XposedHelpers.callMethod(miuiVolumeDialog, "showH", 1); |
192 | | - } |
193 | | - }); |
194 | | - } catch (Throwable t) { |
195 | | - XposedBridge.log(t); |
| 205 | + }); |
| 206 | + } catch (Throwable t) { |
| 207 | + XposedBridge.log(t); |
| 208 | + } |
196 | 209 | } |
197 | 210 | } |
198 | 211 |
|
|
0 commit comments