diff --git a/app/build.gradle b/app/build.gradle index 8e3e5c3d321f908a9ab6b50ad6d08e9979c0aa1a..b6e54db0c7ea0f380226c3f205b8ea7fc2a32534 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -73,7 +73,7 @@ dependencies { implementation 'com.github.bumptech.glide:glide:4.13.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.14.0' implementation 'com.hyman:flowlayout-lib:1.1.2' - implementation 'com.github.Petterpx:FloatingX:1.3.1' + implementation 'com.github.Petterpx:FloatingX:1.3.3' implementation 'com.android.support:design:28.0.0' implementation 'com.github.Justson.AgentWeb:agentweb-core:v5.0.6-androidx' implementation project(':cloudphone') diff --git a/app/src/main/java/com/huawei/cloudapp/common/CasState.java b/app/src/main/java/com/huawei/cloudapp/common/CasState.java index 80cacb411c4885d3803a371fcfa10d7907dcb52c..5839fffe5da7984175cf7e4400317c8f43cf89d1 100644 --- a/app/src/main/java/com/huawei/cloudapp/common/CasState.java +++ b/app/src/main/java/com/huawei/cloudapp/common/CasState.java @@ -54,5 +54,6 @@ public class CasState { static public final int CAS_SWITCH_BACKGROUND_ERROR = 0x1301; static public final int CAS_SWITCH_FOREGROUND_SUCCESS = 0x1400; static public final int CAS_EXIT = 0x1700; + static public final int CAS_BACK_HOME = 0x1900; static public final int CAS_INVALID_CMD = 0xFFFF; } diff --git a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java index 15ebf22c114071e821fd1377e82eaea656806fa8..60ed5e2b69fc7503d4d3b86438a313fdf1bcd8a2 100644 --- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java +++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java @@ -519,6 +519,10 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl case CasState.CAS_NOTOUCH_TIMEOUT: showDialog(getResources().getString(R.string.cas_notouch_timeout_tip_message)); break; + case CasState.CAS_BACK_HOME: + CASLog.i(TAG, "back home"); + showUiLevelDialog(); + break; default: break; } @@ -672,7 +676,6 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl ctrView.setVisibility(View.GONE); return true; } - showUiLevelDialog(); return true; } else if (keyCode == KeyEvent.KEYCODE_APP_SWITCH) { return true; diff --git a/cloudphone/src/main/cpp/CasCommon.h b/cloudphone/src/main/cpp/CasCommon.h index b6f9d2964d78c89567bff1e82af92b48f8c21502..840f9b69ae9e1ebfd4e17d1b43ce6aaab10bc979 100644 --- a/cloudphone/src/main/cpp/CasCommon.h +++ b/cloudphone/src/main/cpp/CasCommon.h @@ -83,7 +83,8 @@ enum { CAS_SWITCH_FOREGROUND_ERROR = 0x1501, CAS_ORIENTATION = 0x1600, - CAS_EXIT = 0x1700 + CAS_EXIT = 0x1700, + CAS_BACK_HOME = 0x1900, }; const int CAS_THREAD_RUNNING = 1; diff --git a/cloudphone/src/main/cpp/cas_service/CasTouch.cpp b/cloudphone/src/main/cpp/cas_service/CasTouch.cpp index ca182ec00c4edd23da1f1c02385a46ae3e654984..549c8c5d3e49b14949e5072c69e30ed15a0bbe6e 100644 --- a/cloudphone/src/main/cpp/cas_service/CasTouch.cpp +++ b/cloudphone/src/main/cpp/cas_service/CasTouch.cpp @@ -59,8 +59,8 @@ bool CasTouch::SendTouchEvent(int id, int action, int x, int y, int pressure, in bool CasTouch::SendKeyEvent(uint16_t keycode, uint16_t action) { CasKeyEventMsg keyEventMsg { 0, 0 }; - keyEventMsg.keycode = keycode; - keyEventMsg.action = action; + keyEventMsg.keycode = (unsigned short) htons(keycode); + keyEventMsg.action = (unsigned short) htons(action); if (m_streamBuildSender == nullptr) { return false; diff --git a/cloudphone/src/main/java/com/huawei/cloudphone/apiimpl/CloudPhoneImpl.java b/cloudphone/src/main/java/com/huawei/cloudphone/apiimpl/CloudPhoneImpl.java index ddb3569f18e53bdef8d01b42fad4771a81903914..be01a76852472a90d677f3fbafe7718e99d406a9 100644 --- a/cloudphone/src/main/java/com/huawei/cloudphone/apiimpl/CloudPhoneImpl.java +++ b/cloudphone/src/main/java/com/huawei/cloudphone/apiimpl/CloudPhoneImpl.java @@ -462,21 +462,20 @@ public class CloudPhoneImpl implements ICloudPhone { } }); - if (mDevType == CloudPhoneParas.DevType.DEV_TV) { - mSurfaceView.setOnKeyListener(new View.OnKeyListener() { - @Override - public boolean onKey(View v, int keyCode, KeyEvent event) { - if ((keyCode == KEYCODE_BACK) - || (keyCode == KEYCODE_VOLUME_DOWN) - || (keyCode == KEYCODE_VOLUME_UP)) { - return false; - } - CASLog.i(TAG, "keyCode = " + keyCode + " event = " + event.toString()); - mCASClient.sendKeyEvent(keyCode, event.getAction()); - return true; + mSurfaceView.setOnKeyListener(new View.OnKeyListener() { + @Override + public boolean onKey(View v, int keyCode, KeyEvent event) { + if ((keyCode == KEYCODE_VOLUME_DOWN) || (keyCode == KEYCODE_VOLUME_UP)) { + return false; } - }); - } + if ((keyCode == KEYCODE_BACK) && mDevType == CloudPhoneParas.DevType.DEV_TV) { + return false; + } + CASLog.i(TAG, "keyCode = " + keyCode + " event = " + event.toString()); + mCASClient.sendKeyEvent(keyCode, event.getAction()); + return true; + } + }); //设置SurfaceView参数 activity.runOnUiThread(new Runnable() {