Android 13 禁用热点,蓝牙后,下拉状态栏,热点,蓝牙快捷方式未隐藏问题修改

— a/android13/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java
+++ b/android13/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/QSPanelControllerBase.java
@@ -21,9 +21,14 @@ import static com.android.systemui.qs.dagger.QSFragmentModule.QS_USING_MEDIA_PLA

import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.content.BroadcastReceiver;
import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
import android.content.res.Configuration;
import android.metrics.LogMaker;
+import android.os.SystemProperties;
import android.view.View;

import com.android.internal.annotations.VisibleForTesting;
@@ -44,6 +49,7 @@ import com.android.systemui.util.animation.DisappearParameters;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.List;
import java.util.Objects;
import java.util.function.Consumer;
import java.util.stream.Collectors;
@@ -167,6 +173,12 @@ public abstract class QSPanelControllerBase extends ViewContr
switchTileLayout(true);

     mDumpManager.registerDumpable(mView.getDumpableTag(), this);
  •    // add 
    
  •    IntentFilter intentFilter = new IntentFilter();
    
  •    intentFilter.addAction("com.action.wlanHotspot.enable");
    
  •    intentFilter.addAction("com.action.bluetooth.enable");
    
  •    getContext().registerReceiver(mDwSettingReceiver,intentFilter);
    
  •    // add end
    

    }

    @Override
    @@ -183,6 +195,9 @@ public abstract class QSPanelControllerBase extends ViewContr
    }
    mRecords.clear();
    mDumpManager.unregisterDumpable(mView.getDumpableTag());

  •    // add 
    
  •    getContext().unregisterReceiver(mDwSettingReceiver);
    
  •    // add end
    

    }

    @Nullable
    @@ -197,6 +212,7 @@ public abstract class QSPanelControllerBase extends ViewContr

    /** */
    public void setTiles(Collection tiles, boolean collapsedView) {

  •    // TODO(b/168904199): move this logic into QSPanelController.
       if (!collapsedView && mQsTileRevealController != null) {
           mQsTileRevealController.updateRevealedTiles(tiles);
    

@@ -206,8 +222,23 @@ public abstract class QSPanelControllerBase extends ViewContr
mView.removeTile(record);
record.tile.removeCallback(record.callback);
}
+
mRecords.clear();
mCachedSpecs = “”;
+

  •    // add 
    
  •    List<QSTile> list = new ArrayList<>();
    
  •    for (QSTile qstile : tiles
    
  •    ) {
    
  •        if (((qstile.getTileSpec().equals("hotspot") && SystemProperties.getInt("persist.sys.settings_Tether_control", 1) != 1)) ||
    
  •                (qstile.getTileSpec().equals("bt") && SystemProperties.getInt("persist.sys.settings_bluetooth_control", 1) != 1)) {
    
  •            continue;
    
  •        }
    
  •        list.add(qstile);
    
  •    }
    
  •    tiles = list;
    
  •    // add end
    
  •    for (QSTile tile : tiles) {
           addTile(tile, collapsedView);
       }
    

@@ -459,4 +490,37 @@ public abstract class QSPanelControllerBase extends ViewContr
@Nullable
public QSTile.Callback callback;
}
+

  • // add
  • private final BroadcastReceiver mDwSettingReceiver = new BroadcastReceiver() {
  •    @Override
    
  •    public void onReceive(Context context, Intent intent) {
    
  •        boolean enable = intent.getBooleanExtra("enable", true);
    
  •        String spec = "";
    
  •        if ("com.action.wlanHotspot.enable".equals(intent.getAction())) {
    
  •            spec = "hotspot";
    
  •        } else if ("com.action.bluetooth.enable".equals(intent.getAction())) {
    
  •            spec = "bt";
    
  •        }
    
  •        for (QSTile qstile: mHost.getTiles()
    
  •             ) {
    
  •            if (qstile.getTileSpec().equals(spec)){
    
  •                if (enable){
    
  •                    addTile(qstile,false);
    
  •                } else {
    
  •                    for (QSPanelControllerBase.TileRecord record : mRecords) {
    
  •                        if (record.tile.getTileSpec().equals(spec)){
    
  •                            mView.removeTile(record);
    
  •                            qstile.removeCallback(record.callback);
    
  •                            mRecords.remove(record);
    
  •                            break;
    
  •                        }
    
  •                    }
    
  •                }
    
  •                break;
    
  •            }
    
  •        }
    
  •    }
    
  • };
  • // add end
    }
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值