— 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
}