Firefly开源社区

打印 上一主题 下一主题

关于FireFly-RK3399 :Android7.1代码发布和固件更新(2017/5/19)后的问题

139

积分

0

威望

0

贡献

技术小白

积分
139

关于FireFly-RK3399 :Android7.1代码发布和固件更新(2017/5/19)后的问题

发表于 2017-6-5 10:58:15      浏览:16380 | 回复:8        打印      只看该作者   [复制链接] 楼主
本帖最后由 yfb1991 于 2017-6-5 11:08 编辑

如下图            问题1:关闭不了打开过的应用,点击应用严重的拖动情况。
       问题2:少了关闭最下控制按键的功能,想全屏显示都不可以了。


希望解决一下!谢谢!

QQ图片20170605105318.png (695.05 KB, 下载次数: 1286)

QQ图片20170605105318.png
回复

使用道具 举报

139

积分

0

威望

0

贡献

技术小白

积分
139
发表于 2017-6-5 10:58:56        只看该作者  沙发
顶起来
回复

使用道具 举报

33

积分

0

威望

0

贡献

游客

积分
33
发表于 2017-6-5 14:28:14        只看该作者  板凳
回复

使用道具 举报

2965

积分

12

威望

22

贡献

高级创客

Rank: 6Rank: 6

积分
2965
发表于 2017-6-5 14:46:11        只看该作者  地板
相信他们后面会解决的
回复

使用道具 举报

741

积分

68

威望

68

贡献

技术大神

Rank: 3Rank: 3

积分
741
QQ
发表于 2017-6-5 16:52:28        只看该作者  5#
我看了一下代码,这个是google原来的代码就是在这样设计的,很奇怪,那个x的图标并没有做点击监控,他点击响应的是整个taskview
下面是点击时的处理代码
frameworks/base/packages/SystemUI/src/com/android/systemui/recents/tv/views/TaskStackHorizontalViewAdapter.java
  1.         @Override
  2.         public void onClick(View v) {
  3.             try {
  4.                 if (mTaskCardView.isInDismissState()) {<font color="#ff0000">//判断是否处于dismissstate,如处于则removeTask</font>
  5.                     mTaskCardView.startDismissTaskAnimation(
  6.                             getRemoveAtListener(getAdapterPosition(), mTaskCardView.getTask()));
  7.                 } else {<font color="#ff0000">//否则launcherTask</font>
  8.                     EventBus.getDefault().send(new LaunchTvTaskEvent(mTaskCardView, mTask,
  9.                             null, INVALID_STACK_ID));
  10.                 }
  11.             } catch (Exception e) {
  12.                 Log.e(TAG, v.getContext()
  13.                         .getString(R.string.recents_launch_error_message, mTask.title), e);
  14.             }

  15.         }
复制代码
而如何处于DismiaaState呢看一下代码
frameworks/base/packages/SystemUI/src/com/android/systemui/recents/tv/views/TaskCardView.java
  1.     @Override
  2.     public boolean dispatchKeyEvent(KeyEvent event) {
  3.         // Override dispatchKeyEvent() instead of onKeyDown() to prevent warning from ViewRootImpl.
  4.         switch (event.getKeyCode()) {
  5.             case KeyEvent.KEYCODE_DPAD_DOWN : {
  6.                 if (!isInDismissState() && event.getAction() == KeyEvent.ACTION_DOWN) {
  7.                     setDismissState(true);<font color="#ff0000">//设DismissState = true</font>
  8.                     return true;
  9.                 }
  10.                 break;
  11.             }
  12.             case KeyEvent.KEYCODE_DPAD_UP : {
  13.                 if (event.getAction() == KeyEvent.ACTION_DOWN) {
  14.                     if (isInDismissState()) {
  15.                         setDismissState(false);
  16.                     } else {
  17.                         ((RecentsTvActivity) getContext()).requestPipControlsFocus();
  18.                     }
  19.                 }
  20.                 return true;
  21.             }

  22.             // Eat right and left key presses when we are in dismiss state
  23.             case KeyEvent.KEYCODE_DPAD_LEFT :
  24.             case KeyEvent.KEYCODE_DPAD_RIGHT : {
  25.                 if (isInDismissState()) {
  26.                     return true;
  27.                 }
  28.                 break;
  29.             }
  30.         }
  31.         return super.dispatchKeyEvent(event);
  32.     }
复制代码

所以,很奇怪不知道为啥google这样设计的,但是确实是这样的。后面的话,我会做一下修改,改掉这个问题


回复

使用道具 举报

139

积分

0

威望

0

贡献

技术小白

积分
139
发表于 2017-6-6 16:39:02        只看该作者  6#
风之空响 发表于 2017-6-5 16:52
我看了一下代码,这个是google原来的代码就是在这样设计的,很奇怪,那个x的图标并没有做点击监控,他点击 ...

加油!!真棒!
回复

使用道具 举报

741

积分

68

威望

68

贡献

技术大神

Rank: 3Rank: 3

积分
741
QQ
发表于 2017-6-20 11:50:37        只看该作者  7#
yfb1991 发表于 2017-6-6 16:39
加油!!真棒!

后来又看了下,这个不是google自带的,是rk后加的,估计是为了tvbox操作的。但是没有考虑触摸操作和鼠标操作的场景
回复

使用道具 举报

156

积分

0

威望

0

贡献

技术小白

积分
156
发表于 2017-6-21 11:14:38        只看该作者  8#
风之空响 发表于 2017-6-20 11:50
后来又看了下,这个不是google自带的,是rk后加的,估计是为了tvbox操作的。但是没有考虑触摸操作和鼠标 ...

那这个你们rk修改了哪里?
回复

使用道具 举报

279

积分

10

威望

9

贡献

社区版主

Rank: 7Rank: 7Rank: 7

积分
279
QQ
发表于 2017-6-24 16:06:32        只看该作者  9#
修改如下,以下是Git修改记录:

  1. diff --git a/frameworks/base/packages/SystemUI/src/com/android/systemui/recents/tv/views/TaskStackHorizontalViewAdapter.java b/frameworks/base/pa
  2. index 236d077..8b2f31b 100644
  3. --- a/frameworks/base/packages/SystemUI/src/com/android/systemui/recents/tv/views/TaskStackHorizontalViewAdapter.java
  4. +++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/recents/tv/views/TaskStackHorizontalViewAdapter.java
  5. @@ -21,6 +21,7 @@ import android.util.Log;
  6. import android.view.LayoutInflater;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. +import android.widget.ImageView;

  10. import com.android.systemui.R;
  11. import com.android.systemui.recents.Recents;
  12. @@ -36,6 +37,7 @@ import java.util.List;

  13. import static android.app.ActivityManager.StackId.INVALID_STACK_ID;

  14. +
  15. public class TaskStackHorizontalViewAdapter extends
  16.          RecyclerView.Adapter<TaskStackHorizontalViewAdapter.ViewHolder> {

  17. @@ -47,31 +49,46 @@ public class TaskStackHorizontalViewAdapter extends
  18.      public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
  19.          private TaskCardView mTaskCardView;
  20.          private Task mTask;
  21. +               private ImageView dismissIcon;
  22. +
  23.          public ViewHolder(View v) {
  24.              super(v);
  25.              mTaskCardView = (TaskCardView) v;
  26. +                       dismissIcon = (ImageView) v.findViewById(R.id.dismiss_icon);
  27.          }

  28.          public void init(Task task) {
  29.              mTaskCardView.init(task);
  30.              mTask = task;
  31.              mTaskCardView.setOnClickListener(this);
  32. +                       dismissIcon.setOnClickListener(this);
  33.          }

  34.          @Override
  35.          public void onClick(View v) {
  36. -            try {
  37. -                if (mTaskCardView.isInDismissState()) {
  38. -                    mTaskCardView.startDismissTaskAnimation(
  39. -                            getRemoveAtListener(getAdapterPosition(), mTaskCardView.getTask()));
  40. -                } else {
  41. -                    EventBus.getDefault().send(new LaunchTvTaskEvent(mTaskCardView, mTask,
  42. -                            null, INVALID_STACK_ID));
  43. -                }
  44. -            } catch (Exception e) {
  45. -                Log.e(TAG, v.getContext()
  46. -                        .getString(R.string.recents_launch_error_message, mTask.title), e);
  47. -            }
  48. +                       if(v == mTaskCardView) { // 遥控器选择X按钮,modify by ZZP
  49. +                               try {
  50. +                           if (mTaskCardView.isInDismissState()) {
  51. +                               mTaskCardView.startDismissTaskAnimation(
  52. +                                       getRemoveAtListener(getAdapterPosition(), mTaskCardView.getTask()));
  53. +                           } else {
  54. +                               EventBus.getDefault().send(new LaunchTvTaskEvent(mTaskCardView, mTask,
  55. +                                       null, INVALID_STACK_ID));
  56. +                           }
  57. +                       } catch (Exception e) {
  58. +                           Log.e(TAG, v.getContext()
  59. +                                   .getString(R.string.recents_launch_error_message, mTask.title), e);
  60. +                       }
  61. +                       } else if(v == dismissIcon){ // 鼠标点击X按钮
  62. +                               try{
  63. +                                       mTaskCardView.startDismissTaskAnimation(
  64. +                                       getRemoveAtListener(getAdapterPosition(), mTaskCardView.getTask()));
  65. +                               } catch(Exception e) {
  66. +                                        Log.e(TAG, v.getContext()
  67. +                                   .getString(R.string.recents_launch_error_message, mTask.title), e);
  68. +                               }
  69. +                       }
  70. +            

  71.          }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表