当前位置: 首页 > wzjs >正文

制作网站需要多少钱平台怎样推广

制作网站需要多少钱,平台怎样推广,下载的Wordpress怎么用,最新网页版传奇一、前言 通知栏添加截图要注意一个问题,就是截图的时候要关闭通知栏,不然就直接截图通知栏了,然后就没有意义了。 二、添加快捷开关 在下面的路径下添加开关,使用dagger注解注入即可。 lineageos/frameworks/base/packages/Sy…

一、前言

通知栏添加截图要注意一个问题,就是截图的时候要关闭通知栏,不然就直接截图通知栏了,然后就没有意义了。

二、添加快捷开关

在下面的路径下添加开关,使用dagger注解注入即可。
lineageos/frameworks/base/packages/SystemUI/src/com/android/systemui/qs/tiles/

/** Copyright (C) 2014 The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at**      http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License*/package com.android.systemui.qs.tiles;import android.content.Intent;
import android.os.Handler;
import android.os.Looper;
import android.provider.MediaStore;
import android.service.quicksettings.Tile;import com.android.internal.logging.MetricsLogger;
import com.android.internal.util.ScreenshotHelper;
import com.android.systemui.animation.Expandable;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.QsEventLogger;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.res.R;
import com.android.systemui.shade.NotificationPanelViewController;import javax.inject.Inject;import androidx.annotation.Nullable;
import dagger.Lazy;import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_ACCESSIBILITY_ACTIONS;
import static com.android.systemui.res.R.string.quick_settings_flashlight_label;/*** Quick settings tile: Control flashlight**/
public class ScreenShotTile extends QSTileImpl<QSTile.State>  {public static final String TILE_SPEC = "screenshot";private final ScreenshotHelper mScreenshotHelper;private final Lazy<NotificationPanelViewController> mShadeViewControllerLazy;private boolean requestScreenShot=false;@Injectpublic ScreenShotTile(QSHost host,QsEventLogger uiEventLogger,@Background Looper backgroundLooper,@Main Handler mainHandler,FalsingManager falsingManager,MetricsLogger metricsLogger,StatusBarStateController statusBarStateController,ActivityStarter activityStarter,QSLogger qsLogger,Lazy<NotificationPanelViewController> shadeViewControllerLazy) {super(host, uiEventLogger, backgroundLooper, mainHandler, falsingManager, metricsLogger,statusBarStateController, activityStarter, qsLogger);mScreenshotHelper = new ScreenshotHelper(mContext);mShadeViewControllerLazy = shadeViewControllerLazy;mShadeViewControllerLazy.get().setIOnPannelExpandListener(() -> {if(requestScreenShot){mScreenshotHelper.takeScreenshot(SCREENSHOT_ACCESSIBILITY_ACTIONS, new Handler(Looper.getMainLooper()), uri -> {//do somethingrequestScreenShot=false;});}});}@Overrideprotected void handleDestroy() {super.handleDestroy();}@Overridepublic BooleanState newTileState() {BooleanState state = new BooleanState();state.handlesLongClick = false;return state;}@Overrideprotected void handleUserSwitch(int newUserId) {}@Overridepublic Intent getLongClickIntent() {return new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);}@Overridepublic boolean isAvailable() {return true;}@Overrideprotected void handleClick(@Nullable Expandable expandable) {mContext.getMainExecutor().execute(()->{requestScreenShot=true;mShadeViewControllerLazy.get().collapse(true,false /* delayed */, 1.0f );});}@Overrideprotected void handleUpdateState(State state, Object arg) {state.icon = ResourceIcon.get(R.drawable.qs_flashlight_icon_off);state.label="ScreenShot";state.stateDescription = mContext.getString(quick_settings_flashlight_label);state.secondaryLabel="";state.state= Tile.STATE_ACTIVE;}@Overridepublic CharSequence getTileLabel() {return "Screen shot";}@Overrideprotected void handleLongClick(@Nullable Expandable expandable) {handleClick(expandable);}@Overridepublic int getMetricsCategory() {return 0;}}

加上finishi方法的回调
lineageos/frameworks/base/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java

  IOnPannelExpandListener  mIOnPannelExpandListener=null;public void setIOnPannelExpandListener(IOnPannelExpandListener IOnPannelExpandListener) {mIOnPannelExpandListener = IOnPannelExpandListener;}public interface IOnPannelExpandListener{void onExpandingFinished();}private void onExpandingFinished() {if (!SceneContainerFlag.isEnabled()) {mNotificationStackScrollLayoutController.onExpansionStopped();}mHeadsUpManager.onExpandingFinished();mConversationNotificationManager.onNotificationPanelExpandStateChanged(isFullyCollapsed());mIsExpandingOrCollapsing = false;mMediaHierarchyManager.setCollapsingShadeFromQS(false);mMediaHierarchyManager.setQsExpanded(mQsController.getExpanded());if (isFullyCollapsed()) {//加上下面的通知代码if(mIOnPannelExpandListener!=null){mIOnPannelExpandListener.onExpandingFinished();}DejankUtils.postAfterTraversal(() -> setListening(false));// Workaround b/22639032: Make sure we invalidate something because else RenderThread// thinks we are actually drawing a frame put in reality we don't, so RT doesn't go// ahead with rendering and we jank.mView.postOnAnimation(() -> mView.getParent().invalidateChild(mView, M_DUMMY_DIRTY_RECT));} else {setListening(true);}if (mBarState != SHADE) {// TODO(b/277909752): remove below logs when bug is fixedmShadeLog.d("onExpandingFinished called");if (mSplitShadeEnabled && !mQsController.getExpanded()) {mShadeLog.d("onExpandingFinished called before QS got expanded");}// updating qsExpandImmediate is done in onPanelStateChanged for unlocked shade but// on keyguard panel state is always OPEN so we need to have that extra updatemQsController.setExpandImmediate(false);}setShowShelfOnly(false);mQsController.setTwoFingerExpandPossible(false);mShadeHeadsUpTracker.updateTrackingHeadsUp(null);mExpandingFromHeadsUp = false;setPanelScrimMinFraction(0.0f);// Reset status bar alpha so alpha can be calculated upon updating view state.setKeyguardStatusBarAlpha(-1f);}

开关配置,上面下面都要加自定义的
/media/arcxea/stat/lineageos/frameworks/base/packages/SystemUI/res/values/config.xml

<!-- The default tiles to display in QuickSettings --><string name="quick_settings_tiles_default" translatable="false">internet,bt,screenshot,flashlight,dnd,alarm,airplane,controls,wallet,rotation,battery,cast,screenrecord,mictoggle,cameratoggle,custom(com.android.permissioncontroller/.permission.service.v33.SafetyCenterQsTileService)</string><!-- Tiles native to System UI. Order should match "quick_settings_tiles_default" --><string name="quick_settings_tiles_stock" translatable="false">internet,screenshot,wifi,cell,bt,flashlight,dnd,alarm,airplane,nfc,controls,wallet,rotation,battery,cast,screenrecord,mictoggle,cameratoggle,location,hotspot,inversion,saver,dark,work,night,reverse,reduce_brightness,qr_code_scanner,onehanded,color_correction,dream,font_scaling,record_issue,hearing_devices,ambient_display,aod,caffeine,heads_up,powershare,profiles,reading_mode,sync,usb_tether,vpn</string>

接入dagger2的配置,照葫芦画瓢,参照其他的写就行了,这时候已经配置完成。

lineageos/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/PolicyModule.kt

/** Copyright (C) 2022 The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License"); you may not use mHost file* except in compliance with the License. You may obtain a copy of the License at**      http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software distributed under the* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY* KIND, either express or implied. See the License for the specific language governing* permissions and limitations under the License.*/package com.android.systemui.statusbar.policyimport android.hardware.SensorPrivacyManager.Sensors.CAMERA
import android.hardware.SensorPrivacyManager.Sensors.MICROPHONE
import android.os.UserManager.DISALLOW_CAMERA_TOGGLE
import android.os.UserManager.DISALLOW_CONFIG_LOCATION
import android.os.UserManager.DISALLOW_MICROPHONE_TOGGLE
import android.os.UserManager.DISALLOW_SHARE_LOCATION
import com.android.systemui.Flags
import com.android.systemui.modes.shared.ModesUi
import com.android.systemui.qs.QsEventLogger
import com.android.systemui.qs.pipeline.shared.TileSpec
import com.android.systemui.qs.shared.model.TileCategory
import com.android.systemui.qs.tileimpl.QSTileImpl
import com.android.systemui.qs.tiles.AlarmTile
import com.android.systemui.qs.tiles.CameraToggleTile
import com.android.systemui.qs.tiles.DndTile
import com.android.systemui.qs.tiles.FlashlightTile
import com.android.systemui.qs.tiles.LocationTile
import com.android.systemui.qs.tiles.MicrophoneToggleTile
import com.android.systemui.qs.tiles.ModesTile
import com.android.systemui.qs.tiles.ScreenShotTile
import com.android.systemui.qs.tiles.UiModeNightTile
import com.android.systemui.qs.tiles.WorkModeTile
import com.android.systemui.qs.tiles.base.interactor.QSTileAvailabilityInteractor
import com.android.systemui.qs.tiles.base.viewmodel.QSTileViewModelFactory
import com.android.systemui.qs.tiles.impl.alarm.domain.AlarmTileMapper
import com.android.systemui.qs.tiles.impl.alarm.domain.interactor.AlarmTileDataInteractor
import com.android.systemui.qs.tiles.impl.alarm.domain.interactor.AlarmTileUserActionInteractor
import com.android.systemui.qs.tiles.impl.alarm.domain.model.AlarmTileModel
import com.android.systemui.qs.tiles.impl.flashlight.domain.FlashlightMapper
import com.android.systemui.qs.tiles.impl.flashlight.domain.interactor.FlashlightTileDataInteractor
import com.android.systemui.qs.tiles.impl.flashlight.domain.interactor.FlashlightTileUserActionInteractor
import com.android.systemui.qs.tiles.impl.flashlight.domain.model.FlashlightTileModel
import com.android.systemui.qs.tiles.impl.location.domain.LocationTileMapper
import com.android.systemui.qs.tiles.impl.location.domain.interactor.LocationTileDataInteractor
import com.android.systemui.qs.tiles.impl.location.domain.interactor.LocationTileUserActionInteractor
import com.android.systemui.qs.tiles.impl.location.domain.model.LocationTileModel
import com.android.systemui.qs.tiles.impl.modes.domain.interactor.ModesTileDataInteractor
import com.android.systemui.qs.tiles.impl.modes.domain.interactor.ModesTileUserActionInteractor
import com.android.systemui.qs.tiles.impl.modes.domain.model.ModesTileModel
import com.android.systemui.qs.tiles.impl.modes.ui.ModesTileMapper
import com.android.systemui.qs.tiles.impl.sensorprivacy.SensorPrivacyToggleTileDataInteractor
import com.android.systemui.qs.tiles.impl.sensorprivacy.domain.SensorPrivacyToggleTileUserActionInteractor
import com.android.systemui.qs.tiles.impl.sensorprivacy.domain.model.SensorPrivacyToggleTileModel
import com.android.systemui.qs.tiles.impl.sensorprivacy.ui.SensorPrivacyTileResources
import com.android.systemui.qs.tiles.impl.sensorprivacy.ui.SensorPrivacyToggleTileMapper
import com.android.systemui.qs.tiles.impl.uimodenight.domain.UiModeNightTileMapper
import com.android.systemui.qs.tiles.impl.uimodenight.domain.interactor.UiModeNightTileDataInteractor
import com.android.systemui.qs.tiles.impl.uimodenight.domain.interactor.UiModeNightTileUserActionInteractor
import com.android.systemui.qs.tiles.impl.uimodenight.domain.model.UiModeNightTileModel
import com.android.systemui.qs.tiles.impl.work.domain.interactor.WorkModeTileDataInteractor
import com.android.systemui.qs.tiles.impl.work.domain.interactor.WorkModeTileUserActionInteractor
import com.android.systemui.qs.tiles.impl.work.domain.model.WorkModeTileModel
import com.android.systemui.qs.tiles.impl.work.ui.WorkModeTileMapper
import com.android.systemui.qs.tiles.viewmodel.QSTileConfig
import com.android.systemui.qs.tiles.viewmodel.QSTilePolicy
import com.android.systemui.qs.tiles.viewmodel.QSTileUIConfig
import com.android.systemui.qs.tiles.viewmodel.QSTileViewModel
import com.android.systemui.qs.tiles.viewmodel.StubQSTileViewModel
import com.android.systemui.res.R
import dagger.Binds
import dagger.Module
import dagger.Provides
import dagger.multibindings.IntoMap
import dagger.multibindings.StringKey
import javax.inject.Provider@Module
interface PolicyModule {/** Inject WorkModeTile into tileMap in QSModule */@Binds@IntoMap@StringKey(WorkModeTile.TILE_SPEC)fun bindWorkModeTile(workModeTile: WorkModeTile): QSTileImpl<*>@Binds@IntoMap@StringKey(FLASHLIGHT_TILE_SPEC)fun provideAirplaneModeAvailabilityInteractor(impl: FlashlightTileDataInteractor): QSTileAvailabilityInteractor@Binds@IntoMap@StringKey(LOCATION_TILE_SPEC)fun provideLocationAvailabilityInteractor(impl: LocationTileDataInteractor): QSTileAvailabilityInteractor@Binds@IntoMap@StringKey(ALARM_TILE_SPEC)fun provideAlarmAvailabilityInteractor(impl: AlarmTileDataInteractor): QSTileAvailabilityInteractor@Binds@IntoMap@StringKey(UIMODENIGHT_TILE_SPEC)fun provideUiModeNightAvailabilityInteractor(impl: UiModeNightTileDataInteractor): QSTileAvailabilityInteractor@Binds@IntoMap@StringKey(WORK_MODE_TILE_SPEC)fun provideWorkModeAvailabilityInteractor(impl: WorkModeTileDataInteractor): QSTileAvailabilityInteractorcompanion object {const val FLASHLIGHT_TILE_SPEC = "flashlight"const val LOCATION_TILE_SPEC = "location"const val ALARM_TILE_SPEC = "alarm"const val UIMODENIGHT_TILE_SPEC = "dark"const val WORK_MODE_TILE_SPEC = "work"const val CAMERA_TOGGLE_TILE_SPEC = "cameratoggle"const val MIC_TOGGLE_TILE_SPEC = "mictoggle"const val DND_TILE_SPEC = "dnd"const val SCREENSHOT_TILE_SPEC = "screenshot"/** Inject screenshot config */@Provides@IntoMap@StringKey(SCREENSHOT_TILE_SPEC)fun provideScreenShotTileConfig(uiEventLogger: QsEventLogger): QSTileConfig =QSTileConfig(tileSpec = TileSpec.create(SCREENSHOT_TILE_SPEC),uiConfig =QSTileUIConfig.Resource(iconRes = R.drawable.qs_flashlight_icon_off,labelRes = R.string.quick_settings_flashlight_label,),instanceId = uiEventLogger.getNewInstanceId(),category = TileCategory.UTILITIES,)/** Inject ScreenShotTile into tileViewModelMap in QSModule */@Provides@IntoMap@StringKey(SCREENSHOT_TILE_SPEC)fun provideScreenShotTileViewModel(factory: QSTileViewModelFactory.Static<FlashlightTileModel>,mapper: FlashlightMapper,stateInteractor: FlashlightTileDataInteractor,userActionInteractor: FlashlightTileUserActionInteractor,): QSTileViewModel =factory.create(TileSpec.create(SCREENSHOT_TILE_SPEC),userActionInteractor,stateInteractor,mapper,)/** Inject DndTile or ModesTile into tileMap in QSModule based on feature flag */@Provides@IntoMap@StringKey(DND_TILE_SPEC)fun bindDndOrModesTile(// Using providers to make sure that the unused tile isn't initialised at all if the// flag is off.dndTile: Provider<DndTile>,modesTile: Provider<ModesTile>,): QSTileImpl<*> {return if (ModesUi.isEnabled) modesTile.get() else dndTile.get()}/** Inject flashlight config */@Provides@IntoMap@StringKey(FLASHLIGHT_TILE_SPEC)fun provideFlashlightTileConfig(uiEventLogger: QsEventLogger): QSTileConfig =QSTileConfig(tileSpec = TileSpec.create(FLASHLIGHT_TILE_SPEC),uiConfig =QSTileUIConfig.Resource(iconRes = R.drawable.qs_flashlight_icon_off,labelRes = R.string.quick_settings_flashlight_label,),instanceId = uiEventLogger.getNewInstanceId(),category = TileCategory.UTILITIES,)/** Inject FlashlightTile into tileViewModelMap in QSModule */@Provides@IntoMap@StringKey(FLASHLIGHT_TILE_SPEC)fun provideFlashlightTileViewModel(factory: QSTileViewModelFactory.Static<FlashlightTileModel>,mapper: FlashlightMapper,stateInteractor: FlashlightTileDataInteractor,userActionInteractor: FlashlightTileUserActionInteractor,): QSTileViewModel =factory.create(TileSpec.create(FLASHLIGHT_TILE_SPEC),userActionInteractor,stateInteractor,mapper,)/** Inject location config */@Provides@IntoMap@StringKey(LOCATION_TILE_SPEC)fun provideLocationTileConfig(uiEventLogger: QsEventLogger): QSTileConfig =QSTileConfig(tileSpec = TileSpec.create(LOCATION_TILE_SPEC),uiConfig =QSTileUIConfig.Resource(iconRes = R.drawable.qs_location_icon_off,labelRes = R.string.quick_settings_location_label,),instanceId = uiEventLogger.getNewInstanceId(),policy =QSTilePolicy.Restricted(listOf(DISALLOW_SHARE_LOCATION, DISALLOW_CONFIG_LOCATION)),category = TileCategory.PRIVACY,)/** Inject LocationTile into tileViewModelMap in QSModule */@Provides@IntoMap@StringKey(LOCATION_TILE_SPEC)fun provideLocationTileViewModel(factory: QSTileViewModelFactory.Static<LocationTileModel>,mapper: LocationTileMapper,stateInteractor: LocationTileDataInteractor,userActionInteractor: LocationTileUserActionInteractor,): QSTileViewModel =factory.create(TileSpec.create(LOCATION_TILE_SPEC),userActionInteractor,stateInteractor,mapper,)/** Inject alarm config */@Provides@IntoMap@StringKey(ALARM_TILE_SPEC)fun provideAlarmTileConfig(uiEventLogger: QsEventLogger): QSTileConfig =QSTileConfig(tileSpec = TileSpec.create(ALARM_TILE_SPEC),uiConfig =QSTileUIConfig.Resource(iconRes = R.drawable.ic_alarm,labelRes = R.string.status_bar_alarm,),instanceId = uiEventLogger.getNewInstanceId(),category = TileCategory.UTILITIES,)/** Inject AlarmTile into tileViewModelMap in QSModule */@Provides@IntoMap@StringKey(ALARM_TILE_SPEC)fun provideAlarmTileViewModel(factory: QSTileViewModelFactory.Static<AlarmTileModel>,mapper: AlarmTileMapper,stateInteractor: AlarmTileDataInteractor,userActionInteractor: AlarmTileUserActionInteractor,): QSTileViewModel =factory.create(TileSpec.create(ALARM_TILE_SPEC),userActionInteractor,stateInteractor,mapper,)/** Inject uimodenight config */@Provides@IntoMap@StringKey(UIMODENIGHT_TILE_SPEC)fun provideUiModeNightTileConfig(uiEventLogger: QsEventLogger): QSTileConfig =QSTileConfig(tileSpec = TileSpec.create(UIMODENIGHT_TILE_SPEC),uiConfig =QSTileUIConfig.Resource(iconRes = R.drawable.qs_light_dark_theme_icon_off,labelRes = R.string.quick_settings_ui_mode_night_label,),instanceId = uiEventLogger.getNewInstanceId(),category = TileCategory.DISPLAY,)/** Inject uimodenight into tileViewModelMap in QSModule */@Provides@IntoMap@StringKey(UIMODENIGHT_TILE_SPEC)fun provideUiModeNightTileViewModel(factory: QSTileViewModelFactory.Static<UiModeNightTileModel>,mapper: UiModeNightTileMapper,stateInteractor: UiModeNightTileDataInteractor,userActionInteractor: UiModeNightTileUserActionInteractor,): QSTileViewModel =factory.create(TileSpec.create(UIMODENIGHT_TILE_SPEC),userActionInteractor,stateInteractor,mapper,)/** Inject work mode tile config */@Provides@IntoMap@StringKey(WORK_MODE_TILE_SPEC)fun provideWorkModeTileConfig(uiEventLogger: QsEventLogger): QSTileConfig =QSTileConfig(tileSpec = TileSpec.create(WORK_MODE_TILE_SPEC),uiConfig =QSTileUIConfig.Resource(iconRes = com.android.internal.R.drawable.stat_sys_managed_profile_status,labelRes = R.string.quick_settings_work_mode_label,),instanceId = uiEventLogger.getNewInstanceId(),autoRemoveOnUnavailable = false,category = TileCategory.PRIVACY,)/** Inject work mode into tileViewModelMap in QSModule */@Provides@IntoMap@StringKey(WORK_MODE_TILE_SPEC)fun provideWorkModeTileViewModel(factory: QSTileViewModelFactory.Static<WorkModeTileModel>,mapper: WorkModeTileMapper,stateInteractor: WorkModeTileDataInteractor,userActionInteractor: WorkModeTileUserActionInteractor,): QSTileViewModel =factory.create(TileSpec.create(WORK_MODE_TILE_SPEC),userActionInteractor,stateInteractor,mapper,)/** Inject camera toggle config */@Provides@IntoMap@StringKey(CAMERA_TOGGLE_TILE_SPEC)fun provideCameraToggleTileConfig(uiEventLogger: QsEventLogger): QSTileConfig =QSTileConfig(tileSpec = TileSpec.create(CAMERA_TOGGLE_TILE_SPEC),uiConfig =QSTileUIConfig.Resource(iconRes = R.drawable.qs_camera_access_icon_off,labelRes = R.string.quick_settings_camera_label,),instanceId = uiEventLogger.getNewInstanceId(),policy = QSTilePolicy.Restricted(listOf(DISALLOW_CAMERA_TOGGLE)),category = TileCategory.PRIVACY,)/** Inject camera toggle tile into tileViewModelMap in QSModule */@Provides@IntoMap@StringKey(CAMERA_TOGGLE_TILE_SPEC)fun provideCameraToggleTileViewModel(factory: QSTileViewModelFactory.Static<SensorPrivacyToggleTileModel>,mapper: SensorPrivacyToggleTileMapper.Factory,stateInteractor: SensorPrivacyToggleTileDataInteractor.Factory,userActionInteractor: SensorPrivacyToggleTileUserActionInteractor.Factory,): QSTileViewModel =factory.create(TileSpec.create(CAMERA_TOGGLE_TILE_SPEC),userActionInteractor.create(CAMERA),stateInteractor.create(CAMERA),mapper.create(SensorPrivacyTileResources.CameraPrivacyTileResources),)@Provides@IntoMap@StringKey(CAMERA_TOGGLE_TILE_SPEC)fun provideCameraToggleAvailabilityInteractor(factory: SensorPrivacyToggleTileDataInteractor.Factory): QSTileAvailabilityInteractor {return factory.create(CAMERA)}/** Inject microphone toggle config */@Provides@IntoMap@StringKey(MIC_TOGGLE_TILE_SPEC)fun provideMicrophoneToggleTileConfig(uiEventLogger: QsEventLogger): QSTileConfig =QSTileConfig(tileSpec = TileSpec.create(MIC_TOGGLE_TILE_SPEC),uiConfig =QSTileUIConfig.Resource(iconRes = R.drawable.qs_mic_access_off,labelRes = R.string.quick_settings_mic_label,),instanceId = uiEventLogger.getNewInstanceId(),policy = QSTilePolicy.Restricted(listOf(DISALLOW_MICROPHONE_TOGGLE)),category = TileCategory.PRIVACY,)/** Inject microphone toggle tile into tileViewModelMap in QSModule */@Provides@IntoMap@StringKey(MIC_TOGGLE_TILE_SPEC)fun provideMicrophoneToggleTileViewModel(factory: QSTileViewModelFactory.Static<SensorPrivacyToggleTileModel>,mapper: SensorPrivacyToggleTileMapper.Factory,stateInteractor: SensorPrivacyToggleTileDataInteractor.Factory,userActionInteractor: SensorPrivacyToggleTileUserActionInteractor.Factory,): QSTileViewModel =factory.create(TileSpec.create(MIC_TOGGLE_TILE_SPEC),userActionInteractor.create(MICROPHONE),stateInteractor.create(MICROPHONE),mapper.create(SensorPrivacyTileResources.MicrophonePrivacyTileResources),)@Provides@IntoMap@StringKey(MIC_TOGGLE_TILE_SPEC)fun provideMicToggleModeAvailabilityInteractor(factory: SensorPrivacyToggleTileDataInteractor.Factory): QSTileAvailabilityInteractor {return factory.create(MICROPHONE)}/** Inject DND tile or Modes tile config based on feature flag */@Provides@IntoMap@StringKey(DND_TILE_SPEC)fun provideDndOrModesTileConfig(uiEventLogger: QsEventLogger): QSTileConfig =if (ModesUi.isEnabled) {QSTileConfig(tileSpec = TileSpec.create(DND_TILE_SPEC),uiConfig =QSTileUIConfig.Resource(iconRes = com.android.internal.R.drawable.ic_zen_priority_modes,labelRes = R.string.quick_settings_modes_label,),instanceId = uiEventLogger.getNewInstanceId(),category = TileCategory.CONNECTIVITY,)} else {QSTileConfig(tileSpec = TileSpec.create(DND_TILE_SPEC),uiConfig =QSTileUIConfig.Resource(iconRes = R.drawable.qs_dnd_icon_off,labelRes = R.string.quick_settings_dnd_label,),instanceId = uiEventLogger.getNewInstanceId(),category = TileCategory.CONNECTIVITY,)}/** Inject ModesTile into tileViewModelMap in QSModule */@Provides@IntoMap@StringKey(DND_TILE_SPEC)fun provideModesTileViewModel(factory: QSTileViewModelFactory.Static<ModesTileModel>,mapper: ModesTileMapper,stateInteractor: ModesTileDataInteractor,userActionInteractor: ModesTileUserActionInteractor,): QSTileViewModel =if (ModesUi.isEnabled && Flags.qsNewTilesFuture())factory.create(TileSpec.create(DND_TILE_SPEC),userActionInteractor,stateInteractor,mapper,)else StubQSTileViewModel}/** Inject FlashlightTile into tileMap in QSModule */@Binds@IntoMap@StringKey(FlashlightTile.TILE_SPEC)fun bindFlashlightTile(flashlightTile: FlashlightTile): QSTileImpl<*>/** Inject ScreenShotTile into tileMap in QSModule */@Binds@IntoMap@StringKey(ScreenShotTile.TILE_SPEC)fun bindScreenShotTile(screenShot: ScreenShotTile): QSTileImpl<*>/** Inject LocationTile into tileMap in QSModule */@Binds@IntoMap@StringKey(LocationTile.TILE_SPEC)fun bindLocationTile(locationTile: LocationTile): QSTileImpl<*>/** Inject CameraToggleTile into tileMap in QSModule */@Binds@IntoMap@StringKey(CameraToggleTile.TILE_SPEC)fun bindCameraToggleTile(cameraToggleTile: CameraToggleTile): QSTileImpl<*>/** Inject MicrophoneToggleTile into tileMap in QSModule */@Binds@IntoMap@StringKey(MicrophoneToggleTile.TILE_SPEC)fun bindMicrophoneToggleTile(microphoneToggleTile: MicrophoneToggleTile): QSTileImpl<*>/** Inject AlarmTile into tileMap in QSModule */@Binds@IntoMap@StringKey(AlarmTile.TILE_SPEC)fun bindAlarmTile(alarmTile: AlarmTile): QSTileImpl<*>@Binds@IntoMap@StringKey(UiModeNightTile.TILE_SPEC)fun bindUiModeNightTile(uiModeNightTile: UiModeNightTile): QSTileImpl<*>
}

编译导入,然后杀掉systemui的进程即可

make SystemUI;adb push out/target/product/blueline/system_ext/priv-app/SystemUI/SystemUI.apk /system_ext/priv-app/SystemUI/SystemUI.apk

在这里插入图片描述

http://www.dtcms.com/wzjs/411657.html

相关文章:

  • 广州企业网站建设公司手机网页设计制作网站
  • 受欢迎的合肥网站建设seo推广优化方案
  • 做面食专业网站四川百度推广和seo优化
  • 滨州建设工程备案网站南昌网站seo
  • 进入淘宝官网网站免费制作小程序平台
  • wordpress 小兽西安网络推广seo0515
  • 陕西省人民政府热线电话系统优化大师官方下载
  • 填表网站怎么做电商培训
  • 门户网站建设模板竞价托管信息
  • 上饶市网站建设深圳网站关键词优化公司
  • 申请网页的注意事项网站优化课程培训
  • 怎么做刷钻网站seo优化技术培训
  • 网站设计目标快速seo整站优化排行
  • 大良做网站优化seo公司哪家好
  • 网站建设营销公司百度推广售后客服电话
  • 深圳网站建设收费长沙网站关键词排名
  • 福州网站建设推进创建一个网站需要什么
  • 什么网站广告做多淘宝的关键词排名怎么查
  • 电子商务网站建设与实例企业网络营销案例分析
  • 公司网站建设会议纪要国外b站浏览器
  • 建设公司怎么做网站运营免费手机网页制作
  • 全球b2b平台seo外包优化网站
  • 新建站点的步骤网络营销做得比较成功的企业
  • 台州网站制作台州网站建设信息流广告有哪些投放平台
  • 郑州哪些公司做网站比较好网站搜索引擎优化主要方法
  • 河南省教育类网站前置审批网站推广的目的是什么
  • h5个人网站模板seo承诺排名的公司
  • 网站浏览路径怎么做搜索大全引擎入口
  • 郑州富士康官网seo网页推广
  • html指什么推广关键词优化