安卓10.0 分屏相关

安卓10.0 分屏

packages/apps/Launcher3/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskMenuView.java

208 private void addMenuOption(TaskSystemShortcut menuOption, OnClickListener onClickListener) {

209 ViewGroup menuOptionView = (ViewGroup) mActivity.getLayoutInflater().inflate(

210 R.layout.task_view_menu_option, this, false);

211 menuOption.setIconAndLabelFor(

212 menuOptionView.findViewById(R.id.icon), menuOptionView.findViewById(R.id.text));

213 menuOptionView.setOnClickListener(onClickListener);

214 mOptionLayout.addView(menuOptionView);

215 }

packages/apps/Launcher3/quickstep/recents_ui_overrides/src/com/android/quickstep/TaskSystemShortcut.java

public static class SplitScreen extends MultiWindow

sysUiProxy.onSplitScreenInvoked()

frameworks/base/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java

private boolean onLongPressNavigationButtons(View v, @IdRes int btnId1, @IdRes int btnId2)

onLongPressRecents()

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java

public void toggleSplitScreen()

protected boolean toggleSplitScreenMode(int metricsDockAction, int metricsUndockAction)

分屏流程:

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java

//长按任务栏进行分屏

onLongPressRecents()

mStatusBarLazy.get().toggleSplitScreenMode(MetricsEvent.ACTION_WINDOW_DOCK_LONGPRESS,MetricsEvent.ACTION_WINDOW_UNDOCK_LONGPRESS);

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java

toggleSplitScreenMode(int metricsDockAction, int metricsUndockAction)

mRecentsOptional.get().splitPrimaryTask(createMode, null, metricsDockAction);

frameworks/base/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java

public boolean splitPrimaryTask(int stackCreateMode, Rect initialBounds, int metricsDockAction)

//支持分屏多窗口

if (runningTask.supportsSplitScreenMultiWindow) {

if (ActivityManagerWrapper.getInstance().setTaskWindowingModeSplitScreenPrimary(

runningTask.id, stackCreateMode, initialBounds)) {

mDividerOptional.ifPresent(Divider::onDockedTopTask);

// 全景服务正在处理拆分屏幕,因此只需跳过等待第一个绘制的通知,并通知分屏器立即开始制作动画。

mDividerOptional.ifPresent(Divider::onRecentsDrawn); return true; } } else { //不支持分屏多窗口 Toast.makeText(mContext, R.string.dock_non_resizeble_failed_to_dock_text,Toast.LENGTH_SHORT).show(); }新增setTaskWindowingModeSplitScreenPrimary函数,该函数可将任务移动至WindowingMode与ActivityType匹配SPLIT属性栈的Stack运行;

相关推荐
爱装代码的小瓶子21 分钟前
【c++知识铺子】封装map和set(详细版)
android·java·c++
私人珍藏库38 分钟前
AutoGLM无需豆包手机,让AI自动帮你点外卖-刷视频
android·ai·智能手机·工具·软件·辅助·autoglm
孤舟簔笠翁1 小时前
【Android驱动14】Android系统Crash工具使用方法和分析
android
帅得不敢出门2 小时前
MTK Android11 APP调用OTA升级
android·java·开发语言·framework
2501_915909062 小时前
苹果应用加密方案的一种方法,在没有源码的前提下,如何处理 IPA 的安全问题
android·安全·ios·小程序·uni-app·iphone·webview
用户2018792831672 小时前
Android App 换肤原理:用 "装修小房子" 故事浅谈
android
百锦再3 小时前
与AI沟通的正确方式——AI提示词:原理、策略与精通之道
android·java·开发语言·人工智能·python·ui·uni-app
2501_915909063 小时前
iOS 项目中常被忽略的 Bundle ID 管理问题
android·ios·小程序·https·uni-app·iphone·webview
dora3 小时前
如何防防防之防抓包伪造请求
android·安全
2501_915921433 小时前
iOS App 测试的工程化实践,多工具协同的一些尝试
android·ios·小程序·https·uni-app·iphone·webview