From 3ea67f45c32363079df46e6a4f959dcb41a77fd3 Mon Sep 17 00:00:00 2001
From: wangshuo <584363327@qq.com>
Date: Wed, 8 Nov 2023 17:01:48 +0800
Subject: [PATCH 01/14] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=BC=95=E5=85=A5aar?=
=?UTF-8?q?=E7=BC=BA=E5=A4=B1=E7=AC=AC=E4=B8=89=E6=96=B9=E4=BE=9D=E8=B5=96?=
=?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/build.gradle | 1 +
.../cloudapp/ui/CasCloudPhoneActivity.java | 71 +++++++++++++++++--
app/src/main/res/drawable/ic_app.xml | 5 ++
app/src/main/res/drawable/ic_back.xml | 5 ++
app/src/main/res/drawable/ic_home.xml | 5 ++
app/src/main/res/layout/cas_ctrl_view.xml | 1 +
app/src/main/res/layout/cas_navigation.xml | 33 +++++++++
app/src/main/res/values/strings.xml | 2 +-
app/src/main/res/values/styles.xml | 14 ++++
9 files changed, 131 insertions(+), 6 deletions(-)
create mode 100644 app/src/main/res/drawable/ic_app.xml
create mode 100644 app/src/main/res/drawable/ic_back.xml
create mode 100644 app/src/main/res/drawable/ic_home.xml
create mode 100644 app/src/main/res/layout/cas_navigation.xml
diff --git a/app/build.gradle b/app/build.gradle
index 4c0274f..a06251f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -68,6 +68,7 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'],)
+ implementation 'com.google.android.material:material:1.4.0'
implementation 'com.google.code.gson:gson:2.9.1'
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.github.bumptech.glide:glide:4.13.0'
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 8c8cd7c..0f9d7f8 100644
--- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
+++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
@@ -18,12 +18,17 @@ package com.huawei.cloudapp.ui;
import android.annotation.SuppressLint;
import android.app.Activity;
+import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.graphics.Color;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
@@ -40,6 +45,7 @@ import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.FrameLayout;
+import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.RadioButton;
import android.widget.RadioGroup;
@@ -48,6 +54,7 @@ import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
+import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.gson.Gson;
import com.huawei.cloudapp.BuildConfig;
import com.huawei.cloudapp.R;
@@ -115,7 +122,7 @@ import static com.huawei.cloudphone.api.CloudPhoneParas.GRANT_CAMERA_PERMISSION_
import static com.huawei.cloudphone.api.CloudPhoneParas.GRANT_LOCATION_PERMISSION_SUCCESS_ACTION;
import static com.huawei.cloudphone.api.CloudPhoneParas.GRANT_MICROPHONE_PERMISSION_SUCCESS_ACTION;
-public class CasCloudPhoneActivity extends FragmentActivity implements View.OnClickListener {
+public class CasCloudPhoneActivity extends FragmentActivity implements View.OnClickListener, SensorEventListener {
private static final String TAG = "CasCloudPhoneActivity";
// Intent Trans Key
@@ -185,7 +192,9 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
private boolean mIsStopCloudPhoneCalled = false;
private volatile boolean mIsStartTaskRunning = false;
private ICloudPhone mCloudPhone;
- private GestureDetector mGestureDetector;
+ private SensorManager mSensorManager;
+ private ImageView mNavigationApp, mNavigationHome, mNavigationBack;
+ private BottomSheetDialog mButtonSheetDialog;
RadioGroup.OnCheckedChangeListener qualityCheckedChangeListener = new RadioGroup.OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup group, int checkedId) {
@@ -289,9 +298,19 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
radioViewMain = findViewById(R.id.pic_quality_main);
radioViewBasic = findViewById(R.id.pic_quality_basic);
qualityRadioViewGroup.setVisibility(View.GONE);
- qualityRadioViewGroup.check(radioViewMain.getId());
+ qualityRadioViewGroup.check(radioViewBest.getId());
qualityRadioViewGroup.setOnCheckedChangeListener(qualityCheckedChangeListener);
+ mButtonSheetDialog = new BottomSheetDialog(this, R.style.CasBottomSheetDialog);
+ mButtonSheetDialog.setContentView(getLayoutInflater().inflate(R.layout.cas_navigation, null));
+ mNavigationApp = mButtonSheetDialog.findViewById(R.id.navigation_app);
+ mNavigationBack = mButtonSheetDialog.findViewById(R.id.navigation_back);
+ mNavigationHome = mButtonSheetDialog.findViewById(R.id.navigation_home);
+
+ mNavigationApp.setOnClickListener(this);
+ mNavigationBack.setOnClickListener(this);
+ mNavigationHome.setOnClickListener(this);
+
ScopeHelper.builder().setLayout(R.layout.cas_ctrl_button_view).
setEnableEdgeAdsorption(true).
setEdgeOffset(10f).
@@ -342,9 +361,13 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
});
textCtrl.setBackgroundResource(R.drawable.ctrl_view);
+ mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
+ mSensorManager.registerListener(this,
+ mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
+
setRotation(mOrientation);
lagSwitch.setChecked(false);
- ctrlSwitch.setChecked(true);
+ ctrlSwitch.setChecked(false);
gAcitivity = this;
try {
mCloudPhone = CloudPhoneManager.createCloudPhoneInstance();
@@ -606,7 +629,6 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
radioViewMain.setText(R.string.quality_HD);
radioViewBasic.setText(R.string.quality_SD);
}
- qualityRadioViewGroup.setVisibility(View.VISIBLE);
}
/**
@@ -679,6 +701,10 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
if (!isShowingLagInfoView) {
textCtrl.setText("");
}
+ if (!ctrlSwitch.isChecked()) {
+ ctrlSwitch.setChecked(true);
+ updateCtrlViewState(true);
+ }
}
/**
@@ -845,6 +871,7 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
return;
}
CASLog.d(TAG, "stop cloud phone");
+ mSensorManager.unregisterListener(this);
mIsStopCloudPhoneCalled = true;
mProgressBar.setVisibility(View.VISIBLE);
mFrameLayout.setVisibility(View.GONE);
@@ -1003,6 +1030,24 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
updateLagInfoViewState(lagSwitch.isChecked());
} else if (id == R.id.ctrl_switch) {
updateCtrlViewState(ctrlSwitch.isChecked());
+ } else if (id == R.id.navigation_back) {
+ KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
+ ((Activity) this).dispatchKeyEvent(event);
+ event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK);
+ ((Activity) this).dispatchKeyEvent(event);
+ mButtonSheetDialog.cancel();
+ } else if (id == R.id.navigation_home) {
+ KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME);
+ ((Activity) this).dispatchKeyEvent(event);
+ event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HOME);
+ ((Activity) this).dispatchKeyEvent(event);
+ mButtonSheetDialog.cancel();
+ } else if (id == R.id.navigation_app) {
+ KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_APP_SWITCH);
+ ((Activity) this).dispatchKeyEvent(event);
+ event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_APP_SWITCH);
+ ((Activity) this).dispatchKeyEvent(event);
+ mButtonSheetDialog.cancel();
}
}
@@ -1014,6 +1059,22 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
}
}
+ @Override
+ public void onSensorChanged(SensorEvent sensorEvent) {
+ if (sensorEvent.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
+ float x = sensorEvent.values[0];
+ float y = sensorEvent.values[1];
+ float z = sensorEvent.values[2];
+ float acceleration = (float) Math.sqrt(x * x + y * y + z * z) - SensorManager.GRAVITY_EARTH;
+ if (acceleration > 20) {
+ mButtonSheetDialog.show();
+ }
+ }
+ }
+
+ @Override
+ public void onAccuracyChanged(Sensor sensor, int i) {}
+
class CloudPhoneOrientationListener implements CloudPhoneOrientationChangeListener {
@Override
public void onOrientationChange(int msg) {
diff --git a/app/src/main/res/drawable/ic_app.xml b/app/src/main/res/drawable/ic_app.xml
new file mode 100644
index 0000000..4373660
--- /dev/null
+++ b/app/src/main/res/drawable/ic_app.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml
new file mode 100644
index 0000000..d148bac
--- /dev/null
+++ b/app/src/main/res/drawable/ic_back.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_home.xml b/app/src/main/res/drawable/ic_home.xml
new file mode 100644
index 0000000..b62f3a1
--- /dev/null
+++ b/app/src/main/res/drawable/ic_home.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/layout/cas_ctrl_view.xml b/app/src/main/res/layout/cas_ctrl_view.xml
index 4b5a01e..7a181ac 100644
--- a/app/src/main/res/layout/cas_ctrl_view.xml
+++ b/app/src/main/res/layout/cas_ctrl_view.xml
@@ -21,6 +21,7 @@
android:layout_height="match_parent"
android:gravity="center"
android:orientation="horizontal"
+ android:visibility="gone"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="5dp">
diff --git a/app/src/main/res/layout/cas_navigation.xml b/app/src/main/res/layout/cas_navigation.xml
new file mode 100644
index 0000000..24929f2
--- /dev/null
+++ b/app/src/main/res/layout/cas_navigation.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bc16f09..d906dd9 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -50,6 +50,6 @@
获取手机列表失败
"登录失败"
"登录失败,请检查用户名和账号"
- "悬浮球指引:长按多任务,双击返回桌面"
+ "使用指引:长按多任务,双击返回桌面\n摇晃手机,显示导航栏"
#ff00ff
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 120772c..8bb0f85 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -54,4 +54,18 @@
- @color/cas_colorAccent
+
+
+
+
--
Gitee
From 58c3297350cda0295c73f611526ff844f23354d5 Mon Sep 17 00:00:00 2001
From: wangshuo <584363327@qq.com>
Date: Wed, 8 Nov 2023 17:26:43 +0800
Subject: [PATCH 02/14] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E4=B8=8D=E6=98=BE?=
=?UTF-8?q?=E7=A4=BA=E6=82=AC=E6=B5=AE=E7=90=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/src/main/res/layout/cas_ctrl_button_view.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/app/src/main/res/layout/cas_ctrl_button_view.xml b/app/src/main/res/layout/cas_ctrl_button_view.xml
index 843b77d..441b557 100644
--- a/app/src/main/res/layout/cas_ctrl_button_view.xml
+++ b/app/src/main/res/layout/cas_ctrl_button_view.xml
@@ -3,6 +3,7 @@
android:id="@+id/tv_ctrl"
android:layout_width="40dp"
android:layout_height="40dp"
+ android:visibility="gone"
android:background="@drawable/ctrl_view"
android:clickable="true"
android:gravity="center"
--
Gitee
From 283500b05716205da632d8156f6ece109b244a45 Mon Sep 17 00:00:00 2001
From: wangshuo <584363327@qq.com>
Date: Thu, 9 Nov 2023 19:50:12 +0800
Subject: [PATCH 03/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BA=95=E9=83=A8?=
=?UTF-8?q?=E5=AF=BC=E8=88=AA=E6=A0=8F=E5=AE=9E=E7=8E=B0=E6=96=B9=E5=BC=8F?=
=?UTF-8?q?=EF=BC=8C=E9=BB=98=E8=AE=A4=E9=AB=98=E7=94=BB=E8=B4=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/build.gradle | 1 -
.../cloudapp/ui/CasCloudPhoneActivity.java | 55 ++++++++++-------
app/src/main/res/drawable/ic_app.xml | 2 +-
app/src/main/res/drawable/ic_back.xml | 5 --
app/src/main/res/drawable/ic_exit.xml | 5 ++
app/src/main/res/drawable/ic_home.xml | 2 +-
.../res/layout/cas_activity_fullscreen.xml | 5 ++
app/src/main/res/layout/cas_navigation.xml | 59 +++++++++++--------
app/src/main/res/values/colors.xml | 2 +
app/src/main/res/values/strings.xml | 2 +-
app/src/main/res/values/styles.xml | 15 -----
11 files changed, 83 insertions(+), 70 deletions(-)
delete mode 100644 app/src/main/res/drawable/ic_back.xml
create mode 100644 app/src/main/res/drawable/ic_exit.xml
diff --git a/app/build.gradle b/app/build.gradle
index a06251f..4c0274f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -68,7 +68,6 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'],)
- implementation 'com.google.android.material:material:1.4.0'
implementation 'com.google.code.gson:gson:2.9.1'
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.github.bumptech.glide:glide:4.13.0'
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 0f9d7f8..583c808 100644
--- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
+++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
@@ -38,9 +38,9 @@ import androidx.fragment.app.FragmentActivity;
import android.util.DisplayMetrics;
import android.util.Log;
-import android.view.GestureDetector;
import android.view.Gravity;
import android.view.KeyEvent;
+import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
@@ -54,7 +54,6 @@ import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
-import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.gson.Gson;
import com.huawei.cloudapp.BuildConfig;
import com.huawei.cloudapp.R;
@@ -147,6 +146,7 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
private static final int MSG_SHOW_TRAIL_PLAY_TIMEOUT = 104;
private static final int MSG_RECONNECT_FAILED = 105;
private static final int MSG_GET_START_PARAM_RESPONSE = 106;
+ private static final int MSG_HIDE_NAVIGATION = 107;
private static final int STATE_DEINIT = 1;
private static CasCloudPhoneActivity gAcitivity = null;
private static CasListener mCasListener = null;
@@ -193,8 +193,9 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
private volatile boolean mIsStartTaskRunning = false;
private ICloudPhone mCloudPhone;
private SensorManager mSensorManager;
- private ImageView mNavigationApp, mNavigationHome, mNavigationBack;
- private BottomSheetDialog mButtonSheetDialog;
+ private FrameLayout mNavigationLayout;
+ private ImageView mNavigationApp, mNavigationHome, mNavigationExit;
+ private View mTouchOutside;
RadioGroup.OnCheckedChangeListener qualityCheckedChangeListener = new RadioGroup.OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup group, int checkedId) {
@@ -251,6 +252,9 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
case MSG_GET_START_PARAM_RESPONSE:
handleGetResponseMsg((String) msg.obj);
break;
+ case MSG_HIDE_NAVIGATION:
+ mNavigationLayout.setVisibility(View.GONE);
+ break;
default:
break;
}
@@ -301,15 +305,26 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
qualityRadioViewGroup.check(radioViewBest.getId());
qualityRadioViewGroup.setOnCheckedChangeListener(qualityCheckedChangeListener);
- mButtonSheetDialog = new BottomSheetDialog(this, R.style.CasBottomSheetDialog);
- mButtonSheetDialog.setContentView(getLayoutInflater().inflate(R.layout.cas_navigation, null));
- mNavigationApp = mButtonSheetDialog.findViewById(R.id.navigation_app);
- mNavigationBack = mButtonSheetDialog.findViewById(R.id.navigation_back);
- mNavigationHome = mButtonSheetDialog.findViewById(R.id.navigation_home);
+ mNavigationLayout = findViewById(R.id.navigation);
+ mNavigationApp = findViewById(R.id.navigation_app);
+ mNavigationExit = findViewById(R.id.navigation_exit);
+ mNavigationHome = findViewById(R.id.navigation_home);
+ mTouchOutside = findViewById(R.id.touch_outside);
mNavigationApp.setOnClickListener(this);
- mNavigationBack.setOnClickListener(this);
+ mNavigationExit.setOnClickListener(this);
mNavigationHome.setOnClickListener(this);
+ mNavigationLayout.setVisibility(View.GONE);
+
+ mTouchOutside.setOnTouchListener(new View.OnTouchListener() {
+ @Override
+ public boolean onTouch(View view, MotionEvent motionEvent) {
+ if (mNavigationLayout.getVisibility() == View.VISIBLE) {
+ mNavigationLayout.setVisibility(View.GONE);
+ }
+ return false;
+ }
+ });
ScopeHelper.builder().setLayout(R.layout.cas_ctrl_button_view).
setEnableEdgeAdsorption(true).
@@ -392,7 +407,7 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
mMediaConfig.put(FRAME_TYPE, "h264");
}
- mMediaConfig.put(QUALITY, DEFINITION_MAIN);
+ mMediaConfig.put(QUALITY, DEFINITION_BEST);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
mMediaConfig.put(PHYSICAL_WIDTH, String.valueOf(metrics.widthPixels));
@@ -871,6 +886,7 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
return;
}
CASLog.d(TAG, "stop cloud phone");
+ handler.removeCallbacksAndMessages(null);
mSensorManager.unregisterListener(this);
mIsStopCloudPhoneCalled = true;
mProgressBar.setVisibility(View.VISIBLE);
@@ -1030,24 +1046,21 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
updateLagInfoViewState(lagSwitch.isChecked());
} else if (id == R.id.ctrl_switch) {
updateCtrlViewState(ctrlSwitch.isChecked());
- } else if (id == R.id.navigation_back) {
- KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
- ((Activity) this).dispatchKeyEvent(event);
- event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK);
- ((Activity) this).dispatchKeyEvent(event);
- mButtonSheetDialog.cancel();
+ } else if (id == R.id.navigation_exit) {
+ ctrView.setVisibility(View.VISIBLE);
+ mNavigationLayout.setVisibility(View.GONE);
} else if (id == R.id.navigation_home) {
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME);
((Activity) this).dispatchKeyEvent(event);
event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HOME);
((Activity) this).dispatchKeyEvent(event);
- mButtonSheetDialog.cancel();
+ mNavigationLayout.setVisibility(View.GONE);
} else if (id == R.id.navigation_app) {
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_APP_SWITCH);
((Activity) this).dispatchKeyEvent(event);
event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_APP_SWITCH);
((Activity) this).dispatchKeyEvent(event);
- mButtonSheetDialog.cancel();
+ mNavigationLayout.setVisibility(View.GONE);
}
}
@@ -1067,7 +1080,9 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
float z = sensorEvent.values[2];
float acceleration = (float) Math.sqrt(x * x + y * y + z * z) - SensorManager.GRAVITY_EARTH;
if (acceleration > 20) {
- mButtonSheetDialog.show();
+ mNavigationLayout.setVisibility(View.VISIBLE);
+ handler.removeMessages(MSG_HIDE_NAVIGATION);
+ handler.sendEmptyMessageDelayed(MSG_HIDE_NAVIGATION, 3000);
}
}
}
diff --git a/app/src/main/res/drawable/ic_app.xml b/app/src/main/res/drawable/ic_app.xml
index 4373660..e682225 100644
--- a/app/src/main/res/drawable/ic_app.xml
+++ b/app/src/main/res/drawable/ic_app.xml
@@ -1,4 +1,4 @@
-
diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml
deleted file mode 100644
index d148bac..0000000
--- a/app/src/main/res/drawable/ic_back.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_exit.xml b/app/src/main/res/drawable/ic_exit.xml
new file mode 100644
index 0000000..d89c0a1
--- /dev/null
+++ b/app/src/main/res/drawable/ic_exit.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_home.xml b/app/src/main/res/drawable/ic_home.xml
index b62f3a1..f33299b 100644
--- a/app/src/main/res/drawable/ic_home.xml
+++ b/app/src/main/res/drawable/ic_home.xml
@@ -1,4 +1,4 @@
-
diff --git a/app/src/main/res/layout/cas_activity_fullscreen.xml b/app/src/main/res/layout/cas_activity_fullscreen.xml
index 15a8517..317611c 100644
--- a/app/src/main/res/layout/cas_activity_fullscreen.xml
+++ b/app/src/main/res/layout/cas_activity_fullscreen.xml
@@ -15,6 +15,7 @@
@@ -30,4 +31,8 @@
layout="@layout/cas_ctrl_view"
android:visibility="gone" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/cas_navigation.xml b/app/src/main/res/layout/cas_navigation.xml
index 24929f2..814d56b 100644
--- a/app/src/main/res/layout/cas_navigation.xml
+++ b/app/src/main/res/layout/cas_navigation.xml
@@ -1,33 +1,40 @@
-
+ android:layout_height="match_parent"
+ android:fitsSystemWindows="false">
-
+
-
+
-
+
-
\ No newline at end of file
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index f388871..7f6ef3f 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -50,4 +50,6 @@
#FFFFFF
#FFFFFF
+
+ #CC464646
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d906dd9..dc96c8a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -50,6 +50,6 @@
获取手机列表失败
"登录失败"
"登录失败,请检查用户名和账号"
- "使用指引:长按多任务,双击返回桌面\n摇晃手机,显示导航栏"
+ "使用指引:摇晃手机,显示导航栏\n显示悬浮球时,长按悬浮球显示多任务,双击悬浮球返回桌面"
#ff00ff
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 8bb0f85..a31dc40 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -53,19 +53,4 @@
-
-
-
-
-
--
Gitee
From fe095c4b330c784c363e6c974189239a9dea0dc2 Mon Sep 17 00:00:00 2001
From: wangshuo <584363327@qq.com>
Date: Fri, 10 Nov 2023 17:04:19 +0800
Subject: [PATCH 04/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BA=95=E9=83=A8?=
=?UTF-8?q?=E5=AF=BC=E8=88=AA=E6=A0=8F=E5=AE=9E=E7=8E=B0=E6=96=B9=E5=BC=8F?=
=?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E9=95=BF=E6=8C=89=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../cloudapp/ui/CasCloudPhoneActivity.java | 44 ++++++++++++++-----
app/src/main/res/layout/cas_navigation.xml | 6 +--
2 files changed, 34 insertions(+), 16 deletions(-)
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 583c808..08edeaf 100644
--- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
+++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
@@ -121,7 +121,7 @@ import static com.huawei.cloudphone.api.CloudPhoneParas.GRANT_CAMERA_PERMISSION_
import static com.huawei.cloudphone.api.CloudPhoneParas.GRANT_LOCATION_PERMISSION_SUCCESS_ACTION;
import static com.huawei.cloudphone.api.CloudPhoneParas.GRANT_MICROPHONE_PERMISSION_SUCCESS_ACTION;
-public class CasCloudPhoneActivity extends FragmentActivity implements View.OnClickListener, SensorEventListener {
+public class CasCloudPhoneActivity extends FragmentActivity implements View.OnClickListener, SensorEventListener, View.OnLongClickListener {
private static final String TAG = "CasCloudPhoneActivity";
// Intent Trans Key
@@ -196,6 +196,7 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
private FrameLayout mNavigationLayout;
private ImageView mNavigationApp, mNavigationHome, mNavigationExit;
private View mTouchOutside;
+ private boolean mIsNavigationVisible = false;
RadioGroup.OnCheckedChangeListener qualityCheckedChangeListener = new RadioGroup.OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup group, int checkedId) {
@@ -253,7 +254,7 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
handleGetResponseMsg((String) msg.obj);
break;
case MSG_HIDE_NAVIGATION:
- mNavigationLayout.setVisibility(View.GONE);
+ updateNavigationView(false);
break;
default:
break;
@@ -314,13 +315,16 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
mNavigationApp.setOnClickListener(this);
mNavigationExit.setOnClickListener(this);
mNavigationHome.setOnClickListener(this);
- mNavigationLayout.setVisibility(View.GONE);
+ mNavigationApp.setOnLongClickListener(this);
+ mNavigationExit.setOnLongClickListener(this);
+ mNavigationHome.setOnLongClickListener(this);
+ updateNavigationView(false);
mTouchOutside.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (mNavigationLayout.getVisibility() == View.VISIBLE) {
- mNavigationLayout.setVisibility(View.GONE);
+ updateNavigationView(false);
}
return false;
}
@@ -1046,21 +1050,21 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
updateLagInfoViewState(lagSwitch.isChecked());
} else if (id == R.id.ctrl_switch) {
updateCtrlViewState(ctrlSwitch.isChecked());
- } else if (id == R.id.navigation_exit) {
+ } else if (id == R.id.navigation_exit && mIsNavigationVisible) {
ctrView.setVisibility(View.VISIBLE);
- mNavigationLayout.setVisibility(View.GONE);
- } else if (id == R.id.navigation_home) {
+ updateNavigationView(false);
+ } else if (id == R.id.navigation_home && mIsNavigationVisible) {
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME);
((Activity) this).dispatchKeyEvent(event);
event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HOME);
((Activity) this).dispatchKeyEvent(event);
- mNavigationLayout.setVisibility(View.GONE);
- } else if (id == R.id.navigation_app) {
+ updateNavigationView(false);
+ } else if (id == R.id.navigation_app && mIsNavigationVisible) {
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_APP_SWITCH);
((Activity) this).dispatchKeyEvent(event);
event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_APP_SWITCH);
((Activity) this).dispatchKeyEvent(event);
- mNavigationLayout.setVisibility(View.GONE);
+ updateNavigationView(false);
}
}
@@ -1072,6 +1076,19 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
}
}
+ private void updateNavigationView(Boolean isVisible) {
+ mIsNavigationVisible = isVisible;
+ if (!isVisible) {
+ mNavigationApp.setImageAlpha(0);
+ mNavigationExit.setImageAlpha(0);
+ mNavigationHome.setImageAlpha(0);
+ } else {
+ mNavigationApp.setImageAlpha(255);
+ mNavigationExit.setImageAlpha(255);
+ mNavigationHome.setImageAlpha(255);
+ }
+ }
+
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
if (sensorEvent.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
@@ -1080,7 +1097,7 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
float z = sensorEvent.values[2];
float acceleration = (float) Math.sqrt(x * x + y * y + z * z) - SensorManager.GRAVITY_EARTH;
if (acceleration > 20) {
- mNavigationLayout.setVisibility(View.VISIBLE);
+ updateNavigationView(true);
handler.removeMessages(MSG_HIDE_NAVIGATION);
handler.sendEmptyMessageDelayed(MSG_HIDE_NAVIGATION, 3000);
}
@@ -1090,6 +1107,11 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
@Override
public void onAccuracyChanged(Sensor sensor, int i) {}
+ @Override
+ public boolean onLongClick(View view) {
+ return false;
+ }
+
class CloudPhoneOrientationListener implements CloudPhoneOrientationChangeListener {
@Override
public void onOrientationChange(int msg) {
diff --git a/app/src/main/res/layout/cas_navigation.xml b/app/src/main/res/layout/cas_navigation.xml
index 814d56b..030fea3 100644
--- a/app/src/main/res/layout/cas_navigation.xml
+++ b/app/src/main/res/layout/cas_navigation.xml
@@ -7,9 +7,8 @@
--
Gitee
From 64e23e5cdce7473cea905423f2e450de7b17ee75 Mon Sep 17 00:00:00 2001
From: wangshuo <584363327@qq.com>
Date: Sat, 11 Nov 2023 12:24:54 +0800
Subject: [PATCH 05/14] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E6=82=AC=E6=B5=AE?=
=?UTF-8?q?=E7=90=83=EF=BC=8C=E9=80=80=E5=87=BA=E9=80=BB=E8=BE=91=E7=AE=80?=
=?UTF-8?q?=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../cloudapp/ui/CasCloudPhoneActivity.java | 390 ++----------------
.../res/layout/cas_activity_fullscreen.xml | 38 +-
app/src/main/res/layout/cas_ctrl_view.xml | 123 ------
app/src/main/res/layout/cas_navigation.xml | 36 --
app/src/main/res/values/strings.xml | 5 +-
5 files changed, 59 insertions(+), 533 deletions(-)
delete mode 100644 app/src/main/res/layout/cas_ctrl_view.xml
delete mode 100644 app/src/main/res/layout/cas_navigation.xml
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 08edeaf..d734973 100644
--- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
+++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
@@ -16,19 +16,12 @@
package com.huawei.cloudapp.ui;
-import android.annotation.SuppressLint;
import android.app.Activity;
-import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
-import android.graphics.Color;
-import android.hardware.Sensor;
-import android.hardware.SensorEvent;
-import android.hardware.SensorEventListener;
-import android.hardware.SensorManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
@@ -40,18 +33,12 @@ import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
-import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.ProgressBar;
-import android.widget.RadioButton;
-import android.widget.RadioGroup;
-import android.widget.RelativeLayout;
-import android.widget.Switch;
-import android.widget.TextView;
import android.widget.Toast;
import com.google.gson.Gson;
@@ -61,7 +48,6 @@ import com.huawei.cloudapp.common.CASLog;
import com.huawei.cloudapp.common.CasCommonDialog;
import com.huawei.cloudapp.common.CasConnectInfo;
import com.huawei.cloudapp.common.CasRecord;
-import com.huawei.cloudapp.common.CasImageQualityManager;
import com.huawei.cloudapp.common.CasListener;
import com.huawei.cloudapp.common.CasState;
import com.huawei.cloudapp.common.CasUserInfo;
@@ -74,17 +60,12 @@ import com.huawei.cloudphone.api.CloudPhoneOrientationChangeListener;
import com.huawei.cloudphone.api.CloudPhoneParas;
import com.huawei.cloudphone.api.CloudPhoneStateListener;
import com.huawei.cloudphone.api.ICloudPhone;
-import com.petterp.floatingx.assist.FxGravity;
-import com.petterp.floatingx.assist.helper.ScopeHelper;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import static android.os.SystemClock.sleep;
-import static com.huawei.cloudapp.common.CasImageQualityManager.QUALITY_MAIN;
-import static com.huawei.cloudapp.common.CasImageQualityManager.QUALITY_BASIC;
-import static com.huawei.cloudapp.common.CasImageQualityManager.QUALITY_BEST;
import static com.huawei.cloudapp.utils.CasCommonUtils.isSupportH265;
import static com.huawei.cloudapp.utils.CasConstantsUtil.AES_KEY;
import static com.huawei.cloudapp.utils.CasConstantsUtil.AUTH_TS;
@@ -92,9 +73,7 @@ import static com.huawei.cloudapp.utils.CasConstantsUtil.AVAILABLE_PLAYTIME;
import static com.huawei.cloudapp.utils.CasConstantsUtil.BACKGROUND_TIMEOUT;
import static com.huawei.cloudapp.utils.CasConstantsUtil.CLIENT_TYPE;
import static com.huawei.cloudapp.utils.CasConstantsUtil.DEBUG_MODE;
-import static com.huawei.cloudapp.utils.CasConstantsUtil.DEFINITION_BASIC;
import static com.huawei.cloudapp.utils.CasConstantsUtil.DEFINITION_BEST;
-import static com.huawei.cloudapp.utils.CasConstantsUtil.DEFINITION_MAIN;
import static com.huawei.cloudapp.utils.CasConstantsUtil.ERROR_CODE;
import static com.huawei.cloudapp.utils.CasConstantsUtil.FRAME_TYPE;
import static com.huawei.cloudapp.utils.CasConstantsUtil.FRAME_TYPE_H265;
@@ -121,37 +100,26 @@ import static com.huawei.cloudphone.api.CloudPhoneParas.GRANT_CAMERA_PERMISSION_
import static com.huawei.cloudphone.api.CloudPhoneParas.GRANT_LOCATION_PERMISSION_SUCCESS_ACTION;
import static com.huawei.cloudphone.api.CloudPhoneParas.GRANT_MICROPHONE_PERMISSION_SUCCESS_ACTION;
-public class CasCloudPhoneActivity extends FragmentActivity implements View.OnClickListener, SensorEventListener, View.OnLongClickListener {
+public class CasCloudPhoneActivity extends FragmentActivity implements View.OnLongClickListener {
private static final String TAG = "CasCloudPhoneActivity";
// Intent Trans Key
public static final String ORIENTATION = "orientation";
- public static final String CUSTOM_VIEW = "custom_view";
- public static final String DISPLAY_MODE = "display_mode";
- public static final String DEV_TYPE = "device_type";
public static final String MEDIA_CONFIG = "media_config";
- // resident lag
- public static final String RESIDENT_LAG_FORMAT = "LAG: ";
- public static final String RESIDENT_LAG_UNIT_FORMAT = " ms";
public static final int REFERENCE_LAG_MAX_VALUE = 500;
public static final int REFERENCE_LAG_MID_VALUE = 300;
public static final int REFERENCE_LAG_MIN_VALUE = 200;
public static final int REFERENCE_LAG_ZERO_VALUE = 0;
- public static final int CAMERA_PERMISSION_REQUEST_CODE = 0;
- public static final int RECORD_AUDIO_PERMISSION_REQUEST_CODE = 1;
private static final int CHANGE_ROTA = 100;
private static final int MSG_CONNECT_FAILED = 102;
private static final int MSG_STATE_CHANGE = 103;
private static final int MSG_SHOW_TRAIL_PLAY_TIMEOUT = 104;
private static final int MSG_RECONNECT_FAILED = 105;
private static final int MSG_GET_START_PARAM_RESPONSE = 106;
- private static final int MSG_HIDE_NAVIGATION = 107;
+ private static final int MSG_CANCLE_EXIT = 107;
private static final int STATE_DEINIT = 1;
- private static CasCloudPhoneActivity gAcitivity = null;
private static CasListener mCasListener = null;
- private static final int DOUBLE_CLICK_TIME_DELTA = 200;
- private long lastClickTime = 0;
// flag
public volatile boolean rebuildDone = false;
@@ -164,23 +132,10 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
private CasRecord mCasRecord;
private Thread rttThread;
- // debug info
- private boolean isShowingLagInfoView;
- private Switch lagSwitch;
- private Switch ctrlSwitch;
- private TextView textCtrl;
- private RelativeLayout ctrView;
- private TextView mQuitCloudPhone;
-
// intent trans value
private CasConnectInfo mConnectInfo;
private CasUserInfo mUserInfo;
- private String mPhoneInfo;
private String mPhoneId;
- private RadioGroup qualityRadioViewGroup;
- private RadioButton radioViewBest;
- private RadioButton radioViewMain;
- private RadioButton radioViewBasic;
private boolean bIsStart = false;
private int mOrientation = 0;
private String mFrameType = FRAME_TYPE_H265;
@@ -190,45 +145,10 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
private boolean mIsTrailPlayTimeout = false;
private boolean mIsActivityBackground = false;
private boolean mIsStopCloudPhoneCalled = false;
- private volatile boolean mIsStartTaskRunning = false;
private ICloudPhone mCloudPhone;
- private SensorManager mSensorManager;
- private FrameLayout mNavigationLayout;
private ImageView mNavigationApp, mNavigationHome, mNavigationExit;
- private View mTouchOutside;
- private boolean mIsNavigationVisible = false;
-
- RadioGroup.OnCheckedChangeListener qualityCheckedChangeListener = new RadioGroup.OnCheckedChangeListener() {
- public void onCheckedChanged(RadioGroup group, int checkedId) {
- if (group.getCheckedRadioButtonId() != checkedId) {
- CASLog.e("CasMainActivity", "group.getCheckedRadioButtonId() != checkedId");
- } else {
- int selectType = QUALITY_MAIN;
- String quality = DEFINITION_MAIN;
- if (radioViewBest.getId() == checkedId) {
- selectType = QUALITY_BEST;
- quality = DEFINITION_BEST;
- } else if (radioViewMain.getId() == checkedId) {
- selectType = QUALITY_MAIN;
- quality = DEFINITION_MAIN;
- } else if (radioViewBasic.getId() == checkedId) {
- selectType = QUALITY_BASIC;
- quality = DEFINITION_BASIC;
- }
+ private boolean isReadyToExit;
- int oldSelectType = CasImageQualityManager.getInstance().getImageQualityStatus();
- resumeImageQualityStatus(oldSelectType);
- CasImageQualityManager.getInstance().setImageQualityStatus(selectType);
- checkImageQualityStatus(selectType);
- HashMap config = new HashMap<>();
- config.put(QUALITY, quality);
- mCloudPhone.setMediaConfig(config);
- }
- if (ctrView != null && ctrView.getVisibility() == View.VISIBLE) {
- ctrView.setVisibility(View.GONE);
- }
- }
- };
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
@@ -253,8 +173,8 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
case MSG_GET_START_PARAM_RESPONSE:
handleGetResponseMsg((String) msg.obj);
break;
- case MSG_HIDE_NAVIGATION:
- updateNavigationView(false);
+ case MSG_CANCLE_EXIT:
+ isReadyToExit = false;
break;
default:
break;
@@ -289,105 +209,16 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
// get views
mProgressBar = findViewById(R.id.loading_progress_bar);
mFrameLayout = (FrameLayout) findViewById(R.id.frame_layout);
- lagSwitch = findViewById(R.id.lag_switch);
- lagSwitch.setOnClickListener(CasCloudPhoneActivity.this);
- ctrlSwitch = findViewById(R.id.ctrl_switch);
- ctrlSwitch.setOnClickListener(CasCloudPhoneActivity.this);
- ctrView = (RelativeLayout) findViewById(R.id.ctr_view);
- ctrView.setOnClickListener(CasCloudPhoneActivity.this);
- mQuitCloudPhone = (TextView) findViewById(R.id.quit_cloud_phone);
- mQuitCloudPhone.setOnClickListener(CasCloudPhoneActivity.this);
- // ctrlView
- qualityRadioViewGroup = findViewById(R.id.pic_quality_choose_layout);
- radioViewBest = findViewById(R.id.pic_quality_best);
- radioViewMain = findViewById(R.id.pic_quality_main);
- radioViewBasic = findViewById(R.id.pic_quality_basic);
- qualityRadioViewGroup.setVisibility(View.GONE);
- qualityRadioViewGroup.check(radioViewBest.getId());
- qualityRadioViewGroup.setOnCheckedChangeListener(qualityCheckedChangeListener);
-
- mNavigationLayout = findViewById(R.id.navigation);
+
mNavigationApp = findViewById(R.id.navigation_app);
mNavigationExit = findViewById(R.id.navigation_exit);
mNavigationHome = findViewById(R.id.navigation_home);
- mTouchOutside = findViewById(R.id.touch_outside);
- mNavigationApp.setOnClickListener(this);
- mNavigationExit.setOnClickListener(this);
- mNavigationHome.setOnClickListener(this);
mNavigationApp.setOnLongClickListener(this);
mNavigationExit.setOnLongClickListener(this);
mNavigationHome.setOnLongClickListener(this);
- updateNavigationView(false);
-
- mTouchOutside.setOnTouchListener(new View.OnTouchListener() {
- @Override
- public boolean onTouch(View view, MotionEvent motionEvent) {
- if (mNavigationLayout.getVisibility() == View.VISIBLE) {
- updateNavigationView(false);
- }
- return false;
- }
- });
-
- ScopeHelper.builder().setLayout(R.layout.cas_ctrl_button_view).
- setEnableEdgeAdsorption(true).
- setEdgeOffset(10f).
- setEnableScrollOutsideScreen(true).
- setGravity(FxGravity.LEFT_OR_TOP).
- setEnableAssistDirection(150 * getResources().getDisplayMetrics().density, 0f, 0f, 0f).
- build().toControl(this).show();
- textCtrl = (TextView) findViewById(R.id.tv_ctrl);
- textCtrl.setOnClickListener(new View.OnClickListener() {
-
- @SuppressLint("RestrictedApi")
- @Override
- public void onClick(View view) {
- long clickTime = System.currentTimeMillis();
- if (clickTime - lastClickTime < DOUBLE_CLICK_TIME_DELTA){
- // Double click action
- KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME);
- dispatchKeyEvent(event);
- event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HOME);
- dispatchKeyEvent(event);
- lastClickTime = 0;
- } else {
- // Single click action
- lastClickTime = clickTime;
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- if (lastClickTime != 0) {
- switchCtrlViewShow();
- lastClickTime = 0;
- }
- }
- }, DOUBLE_CLICK_TIME_DELTA);
- }
- }
- });
-
- textCtrl.setOnLongClickListener(new View.OnLongClickListener() {
- @SuppressLint("RestrictedApi")
- @Override
- public boolean onLongClick(View view) {
- KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_APP_SWITCH);
- dispatchKeyEvent(event);
- event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_APP_SWITCH);
- dispatchKeyEvent(event);
- return true;
- }
- });
- textCtrl.setBackgroundResource(R.drawable.ctrl_view);
-
- mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
- mSensorManager.registerListener(this,
- mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
setRotation(mOrientation);
- lagSwitch.setChecked(false);
- ctrlSwitch.setChecked(false);
- gAcitivity = this;
try {
mCloudPhone = CloudPhoneManager.createCloudPhoneInstance();
mCloudPhone.setDisplayMode(CloudPhoneParas.DisplayMode.DISPLAY_MODE_FILL);
@@ -562,7 +393,7 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
switch (code) {
case CasState.CAS_START_SUCCESS:
mProgressBar.setVisibility(View.GONE);
- startSuccessThreadTask();
+ setStartSuccessFlag();
handleStartSuccessMsg(msg);
if (mIsDebugMode) {
mCasRecord.setRecord("ip", mConnectInfo.getConnectIp(), 10);
@@ -612,21 +443,23 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
stopCloudPhone();
break;
case CasState.CAS_SWITCH_FOREGROUND_SUCCESS:
- startSuccessThreadTask();
+ setStartSuccessFlag();
break;
case CasState.CAS_CONNECT_LOST:
showDialog(getResources().getString(R.string.cas_phone_reconnect_server_fail_tip_message));
break;
- // 切home网络断开,切到前台会尝试重连,重连成功后需要启动网络监控和状态获取任务
- case CasState.CAS_RECONNECT_SUCCESS:
- CASLog.i(TAG, "mIsStartTaskRunning = " + mIsStartTaskRunning);
- break;
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");
- switchCtrlViewShow();
+ if (isReadyToExit) {
+ stopCloudPhone();
+ } else {
+ Toast.makeText(this, getResources().getString(R.string.cas_exit_confirmation), Toast.LENGTH_SHORT).show();
+ handler.sendEmptyMessageDelayed(MSG_CANCLE_EXIT, 2000);
+ isReadyToExit = true;
+ }
break;
default:
break;
@@ -643,11 +476,6 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
mResolution = String.valueOf(((Double) cloudMediaConfig.get(WIDTH)).intValue());
mFrameType = (String) cloudMediaConfig.get(FRAME_TYPE);
CASLog.i(TAG, "mResolution = " + mResolution + ", mFrameType = " + mFrameType);
- if (mResolution.equals(RESOLUTION_1080P)) {
- radioViewBest.setText(R.string.quality_UHD);
- radioViewMain.setText(R.string.quality_HD);
- radioViewBasic.setText(R.string.quality_SD);
- }
}
/**
@@ -712,58 +540,6 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
}
}
- /**
- * update lag info view state
- */
- public void updateLagInfoViewState(Boolean isChecked) {
- isShowingLagInfoView = isChecked;
- if (!isShowingLagInfoView) {
- textCtrl.setText("");
- }
- if (!ctrlSwitch.isChecked()) {
- ctrlSwitch.setChecked(true);
- updateCtrlViewState(true);
- }
- }
-
- /**
- * set the color of the selected image quality
- */
- private void checkImageQualityStatus(int selectType) {
- switch (selectType) {
- case QUALITY_BASIC:
- radioViewBasic.setTextColor(this.getResources().getColor(R.color.cas_colorAccent));
- break;
- case QUALITY_MAIN:
- radioViewMain.setTextColor(this.getResources().getColor(R.color.cas_colorAccent));
- break;
- case QUALITY_BEST:
- radioViewBest.setTextColor(this.getResources().getColor(R.color.cas_colorAccent));
- break;
- default:
- break;
- }
- }
-
- /**
- * set the color of the previous selected image quality
- */
- private void resumeImageQualityStatus(int selectType) {
- switch (selectType) {
- case QUALITY_BASIC:
- radioViewBasic.setTextColor(this.getResources().getColor(R.color.cas_white));
- break;
- case QUALITY_MAIN:
- radioViewMain.setTextColor(this.getResources().getColor(R.color.cas_white));
- break;
- case QUALITY_BEST:
- radioViewBest.setTextColor(this.getResources().getColor(R.color.cas_white));
- break;
- default:
- break;
- }
- }
-
private void handleGetResponseMsg(String rspStr) {
if (rspStr == null) {
showDialog(getResources().getString(R.string.cas_phone_get_auth_param_fail_tip_message));
@@ -868,10 +644,6 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
- if (null != ctrView && ctrView.getVisibility() == View.VISIBLE) {
- ctrView.setVisibility(View.GONE);
- return true;
- }
return true;
} else if (keyCode == KeyEvent.KEYCODE_APP_SWITCH) {
return true;
@@ -891,13 +663,11 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
}
CASLog.d(TAG, "stop cloud phone");
handler.removeCallbacksAndMessages(null);
- mSensorManager.unregisterListener(this);
mIsStopCloudPhoneCalled = true;
mProgressBar.setVisibility(View.VISIBLE);
mFrameLayout.setVisibility(View.GONE);
doCheckConnection = false; //
dismissAllDialogs();
- gAcitivity = null;
if (rttThread != null) {
rttThread.interrupt();
}
@@ -987,128 +757,35 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
/**
* 启动成功后处理任务
*/
- private void startSuccessThreadTask() {
+ private void setStartSuccessFlag() {
doCheckConnection = true;
bIsStart = true;
rebuildDone = false;
- // monitor network
- rttThread = new Thread(new Runnable() {
- @Override
- public void run() {
- mIsStartTaskRunning = true;
- CASLog.i(TAG, "startSuccessThreadTask in");
- while (bIsStart) {
- sleep(200);
- final int lagVal = mCloudPhone.getRtt();
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- setLagText(lagVal);
- }
- });
- }
- CASLog.i(TAG, "startSuccessThreadTask out");
- mIsStartTaskRunning = false;
- }
- });
- rttThread.start();
- }
-
- /**
- * resident lag
- */
- private void setLagText(int lagVal) {
- if (!isShowingLagInfoView) return;
- String lagContent = String.valueOf(lagVal);
- if (lagVal > REFERENCE_LAG_MAX_VALUE || lagVal <= REFERENCE_LAG_ZERO_VALUE) {
- lagContent = "*";
- }
-
- if (lagVal > REFERENCE_LAG_MID_VALUE) {
- textCtrl.setTextColor(Color.RED);
- } else if (lagVal > REFERENCE_LAG_MIN_VALUE) {
- textCtrl.setTextColor(Color.YELLOW);
- } else if (lagVal > REFERENCE_LAG_ZERO_VALUE) {
- textCtrl.setTextColor(Color.GREEN);
- } else {
- textCtrl.setTextColor(Color.RED);
- }
- textCtrl.setText(lagContent);
}
@Override
- public void onClick(View view) {
+ public boolean onLongClick(View view) {
int id = view.getId();
- if (id == R.id.tv_ctrl) {
- switchCtrlViewShow();
- } else if (id == R.id.quit_cloud_phone) {
- stopCloudPhone();
- switchCtrlViewShow();
- } else if (id == R.id.ctr_view) {
- switchCtrlViewShow();
- } else if (id == R.id.lag_switch) {
- updateLagInfoViewState(lagSwitch.isChecked());
- } else if (id == R.id.ctrl_switch) {
- updateCtrlViewState(ctrlSwitch.isChecked());
- } else if (id == R.id.navigation_exit && mIsNavigationVisible) {
- ctrView.setVisibility(View.VISIBLE);
- updateNavigationView(false);
- } else if (id == R.id.navigation_home && mIsNavigationVisible) {
+ if (id == R.id.navigation_exit) {
+// ctrView.setVisibility(View.VISIBLE);
+ if (isReadyToExit) {
+ stopCloudPhone();
+ } else {
+ Toast.makeText(this, getResources().getString(R.string.cas_exit_confirmation), Toast.LENGTH_SHORT).show();
+ handler.sendEmptyMessageDelayed(MSG_CANCLE_EXIT, 2000);
+ isReadyToExit = true;
+ }
+ } else if (id == R.id.navigation_home) {
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME);
((Activity) this).dispatchKeyEvent(event);
event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HOME);
((Activity) this).dispatchKeyEvent(event);
- updateNavigationView(false);
- } else if (id == R.id.navigation_app && mIsNavigationVisible) {
+ } else if (id == R.id.navigation_app) {
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_APP_SWITCH);
((Activity) this).dispatchKeyEvent(event);
event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_APP_SWITCH);
((Activity) this).dispatchKeyEvent(event);
- updateNavigationView(false);
}
- }
-
- private void updateCtrlViewState(Boolean isChecked) {
- if (!isChecked) {
- textCtrl.setVisibility(View.GONE);
- } else {
- textCtrl.setVisibility(View.VISIBLE);
- }
- }
-
- private void updateNavigationView(Boolean isVisible) {
- mIsNavigationVisible = isVisible;
- if (!isVisible) {
- mNavigationApp.setImageAlpha(0);
- mNavigationExit.setImageAlpha(0);
- mNavigationHome.setImageAlpha(0);
- } else {
- mNavigationApp.setImageAlpha(255);
- mNavigationExit.setImageAlpha(255);
- mNavigationHome.setImageAlpha(255);
- }
- }
-
- @Override
- public void onSensorChanged(SensorEvent sensorEvent) {
- if (sensorEvent.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
- float x = sensorEvent.values[0];
- float y = sensorEvent.values[1];
- float z = sensorEvent.values[2];
- float acceleration = (float) Math.sqrt(x * x + y * y + z * z) - SensorManager.GRAVITY_EARTH;
- if (acceleration > 20) {
- updateNavigationView(true);
- handler.removeMessages(MSG_HIDE_NAVIGATION);
- handler.sendEmptyMessageDelayed(MSG_HIDE_NAVIGATION, 3000);
- }
- }
- }
-
- @Override
- public void onAccuracyChanged(Sensor sensor, int i) {}
-
- @Override
- public boolean onLongClick(View view) {
return false;
}
@@ -1149,17 +826,6 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl
}
}
- public void switchCtrlViewShow() {
- if (ctrView == null) {
- return;
- }
- if (ctrView.getVisibility() == View.GONE) {
- ctrView.setVisibility(View.VISIBLE);
- } else {
- ctrView.setVisibility(View.GONE);
- }
- }
-
private CasConnectInfo getCasConnectorInfo(String ip,
String port,
String sessionId,
diff --git a/app/src/main/res/layout/cas_activity_fullscreen.xml b/app/src/main/res/layout/cas_activity_fullscreen.xml
index 317611c..c49696d 100644
--- a/app/src/main/res/layout/cas_activity_fullscreen.xml
+++ b/app/src/main/res/layout/cas_activity_fullscreen.xml
@@ -26,13 +26,35 @@
android:layout_gravity="center"
android:tooltipText="加载中" />
-
-
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/cas_ctrl_view.xml b/app/src/main/res/layout/cas_ctrl_view.xml
deleted file mode 100644
index 7a181ac..0000000
--- a/app/src/main/res/layout/cas_ctrl_view.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/cas_navigation.xml b/app/src/main/res/layout/cas_navigation.xml
deleted file mode 100644
index 030fea3..0000000
--- a/app/src/main/res/layout/cas_navigation.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index dc96c8a..3312f37 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -37,10 +37,6 @@
软编
硬编
远编
- 超清
- 高清
- 标清
- 流畅
编码服务器ip:
编码服务器port:
视频格式:
@@ -51,5 +47,6 @@
"登录失败"
"登录失败,请检查用户名和账号"
"使用指引:摇晃手机,显示导航栏\n显示悬浮球时,长按悬浮球显示多任务,双击悬浮球返回桌面"
+ "继续长按退出云手机"
#ff00ff
\ No newline at end of file
--
Gitee
From c9e5542225561d1b67e37b612393af9937d85f80 Mon Sep 17 00:00:00 2001
From: wangshuo <584363327@qq.com>
Date: Sat, 11 Nov 2023 12:43:55 +0800
Subject: [PATCH 06/14] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BA=A4=E4=BA=92?=
=?UTF-8?q?=E6=8F=90=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../huawei/cloudapp/ui/CasCloudPhoneActivity.java | 13 ++++++++-----
app/src/main/res/layout/cas_activity_fullscreen.xml | 2 +-
app/src/main/res/values/strings.xml | 2 +-
3 files changed, 10 insertions(+), 7 deletions(-)
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 d734973..7191ef1 100644
--- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
+++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
@@ -456,8 +456,10 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnLo
if (isReadyToExit) {
stopCloudPhone();
} else {
- Toast.makeText(this, getResources().getString(R.string.cas_exit_confirmation), Toast.LENGTH_SHORT).show();
- handler.sendEmptyMessageDelayed(MSG_CANCLE_EXIT, 2000);
+ Toast toast = Toast.makeText(this, null, Toast.LENGTH_SHORT);
+ toast.setText(R.string.cas_exit_confirmation);
+ toast.show();
+ handler.sendEmptyMessageDelayed(MSG_CANCLE_EXIT, 1000);
isReadyToExit = true;
}
break;
@@ -767,12 +769,13 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnLo
public boolean onLongClick(View view) {
int id = view.getId();
if (id == R.id.navigation_exit) {
-// ctrView.setVisibility(View.VISIBLE);
if (isReadyToExit) {
stopCloudPhone();
} else {
- Toast.makeText(this, getResources().getString(R.string.cas_exit_confirmation), Toast.LENGTH_SHORT).show();
- handler.sendEmptyMessageDelayed(MSG_CANCLE_EXIT, 2000);
+ Toast toast = Toast.makeText(this, null, Toast.LENGTH_SHORT);
+ toast.setText(R.string.cas_exit_confirmation);
+ toast.show();
+ handler.sendEmptyMessageDelayed(MSG_CANCLE_EXIT, 1000);
isReadyToExit = true;
}
} else if (id == R.id.navigation_home) {
diff --git a/app/src/main/res/layout/cas_activity_fullscreen.xml b/app/src/main/res/layout/cas_activity_fullscreen.xml
index c49696d..42702f2 100644
--- a/app/src/main/res/layout/cas_activity_fullscreen.xml
+++ b/app/src/main/res/layout/cas_activity_fullscreen.xml
@@ -28,7 +28,7 @@
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 3312f37..9381337 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -47,6 +47,6 @@
"登录失败"
"登录失败,请检查用户名和账号"
"使用指引:摇晃手机,显示导航栏\n显示悬浮球时,长按悬浮球显示多任务,双击悬浮球返回桌面"
- "继续长按退出云手机"
+ "再次操作退出云手机"
#ff00ff
\ No newline at end of file
--
Gitee
From ffe7e7f575c15a25cf85b2488e50705bc30c40cc Mon Sep 17 00:00:00 2001
From: wangshuo <584363327@qq.com>
Date: Sat, 11 Nov 2023 13:02:11 +0800
Subject: [PATCH 07/14] =?UTF-8?q?=E9=95=BF=E6=8C=89=E5=AE=9E=E7=8E=B0?=
=?UTF-8?q?=E6=8E=A7=E5=88=B6=E4=BA=91=E6=9C=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../cloudapp/ui/CasCloudPhoneActivity.java | 88 ++++++++++---------
app/src/main/res/drawable/ic_app.xml | 5 --
app/src/main/res/drawable/ic_exit.xml | 5 --
app/src/main/res/drawable/ic_home.xml | 5 --
.../res/layout/cas_activity_fullscreen.xml | 32 +------
5 files changed, 52 insertions(+), 83 deletions(-)
delete mode 100644 app/src/main/res/drawable/ic_app.xml
delete mode 100644 app/src/main/res/drawable/ic_exit.xml
delete mode 100644 app/src/main/res/drawable/ic_home.xml
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 7191ef1..0d712dd 100644
--- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
+++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
@@ -16,6 +16,7 @@
package com.huawei.cloudapp.ui;
+import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
@@ -33,12 +34,14 @@ import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
+import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.ProgressBar;
+import android.widget.TextView;
import android.widget.Toast;
import com.google.gson.Gson;
@@ -100,17 +103,16 @@ import static com.huawei.cloudphone.api.CloudPhoneParas.GRANT_CAMERA_PERMISSION_
import static com.huawei.cloudphone.api.CloudPhoneParas.GRANT_LOCATION_PERMISSION_SUCCESS_ACTION;
import static com.huawei.cloudphone.api.CloudPhoneParas.GRANT_MICROPHONE_PERMISSION_SUCCESS_ACTION;
-public class CasCloudPhoneActivity extends FragmentActivity implements View.OnLongClickListener {
+public class CasCloudPhoneActivity extends FragmentActivity {
private static final String TAG = "CasCloudPhoneActivity";
// Intent Trans Key
public static final String ORIENTATION = "orientation";
public static final String MEDIA_CONFIG = "media_config";
- public static final int REFERENCE_LAG_MAX_VALUE = 500;
- public static final int REFERENCE_LAG_MID_VALUE = 300;
- public static final int REFERENCE_LAG_MIN_VALUE = 200;
- public static final int REFERENCE_LAG_ZERO_VALUE = 0;
+ private static final int WAITING_HOME_LONG_PRESS_TIME = 300;
+ private static final int WAITING_APP_SWITCH_LONG_PRESS_TIME = 800;
+
private static final int CHANGE_ROTA = 100;
private static final int MSG_CONNECT_FAILED = 102;
private static final int MSG_STATE_CHANGE = 103;
@@ -118,6 +120,8 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnLo
private static final int MSG_RECONNECT_FAILED = 105;
private static final int MSG_GET_START_PARAM_RESPONSE = 106;
private static final int MSG_CANCLE_EXIT = 107;
+ private static final int MSG_PRESS_HOME = 108;
+ private static final int MSG_PRESS_APP_SWITCH = 109;
private static final int STATE_DEINIT = 1;
private static CasListener mCasListener = null;
@@ -146,10 +150,12 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnLo
private boolean mIsActivityBackground = false;
private boolean mIsStopCloudPhoneCalled = false;
private ICloudPhone mCloudPhone;
- private ImageView mNavigationApp, mNavigationHome, mNavigationExit;
+ private TextView mNavigationTextView;
+ private boolean mIsPressHomeKey = false;
private boolean isReadyToExit;
private Handler handler = new Handler() {
+ @SuppressLint("RestrictedApi")
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
@@ -176,6 +182,16 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnLo
case MSG_CANCLE_EXIT:
isReadyToExit = false;
break;
+ case MSG_PRESS_HOME:
+ mIsPressHomeKey = true;
+ break;
+ case MSG_PRESS_APP_SWITCH:
+ mIsPressHomeKey = false;
+ KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_APP_SWITCH);
+ dispatchKeyEvent(event);
+ event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_APP_SWITCH);
+ dispatchKeyEvent(event);
+ break;
default:
break;
}
@@ -210,13 +226,32 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnLo
mProgressBar = findViewById(R.id.loading_progress_bar);
mFrameLayout = (FrameLayout) findViewById(R.id.frame_layout);
- mNavigationApp = findViewById(R.id.navigation_app);
- mNavigationExit = findViewById(R.id.navigation_exit);
- mNavigationHome = findViewById(R.id.navigation_home);
-
- mNavigationApp.setOnLongClickListener(this);
- mNavigationExit.setOnLongClickListener(this);
- mNavigationHome.setOnLongClickListener(this);
+ mNavigationTextView = findViewById(R.id.cas_navigaiton);
+ mNavigationTextView.setOnTouchListener(new View.OnTouchListener() {
+ @SuppressLint({"RestrictedApi", "ClickableViewAccessibility"})
+ @Override
+ public boolean onTouch(View view, MotionEvent motionEvent) {
+ switch (motionEvent.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ handler.sendEmptyMessageDelayed(MSG_PRESS_HOME, WAITING_HOME_LONG_PRESS_TIME);
+ handler.sendEmptyMessageDelayed(MSG_PRESS_APP_SWITCH, WAITING_APP_SWITCH_LONG_PRESS_TIME);
+ break;
+ case MotionEvent.ACTION_UP:
+ case MotionEvent.ACTION_CANCEL:
+ handler.removeMessages(MSG_PRESS_HOME);
+ handler.removeMessages(MSG_PRESS_APP_SWITCH);
+ if (mIsPressHomeKey) {
+ KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME);
+ dispatchKeyEvent(event);
+ event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HOME);
+ dispatchKeyEvent(event);
+ mIsPressHomeKey = false;
+ }
+ break;
+ }
+ return true;
+ }
+ });
setRotation(mOrientation);
try {
@@ -765,33 +800,6 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnLo
rebuildDone = false;
}
- @Override
- public boolean onLongClick(View view) {
- int id = view.getId();
- if (id == R.id.navigation_exit) {
- if (isReadyToExit) {
- stopCloudPhone();
- } else {
- Toast toast = Toast.makeText(this, null, Toast.LENGTH_SHORT);
- toast.setText(R.string.cas_exit_confirmation);
- toast.show();
- handler.sendEmptyMessageDelayed(MSG_CANCLE_EXIT, 1000);
- isReadyToExit = true;
- }
- } else if (id == R.id.navigation_home) {
- KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME);
- ((Activity) this).dispatchKeyEvent(event);
- event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HOME);
- ((Activity) this).dispatchKeyEvent(event);
- } else if (id == R.id.navigation_app) {
- KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_APP_SWITCH);
- ((Activity) this).dispatchKeyEvent(event);
- event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_APP_SWITCH);
- ((Activity) this).dispatchKeyEvent(event);
- }
- return false;
- }
-
class CloudPhoneOrientationListener implements CloudPhoneOrientationChangeListener {
@Override
public void onOrientationChange(int msg) {
diff --git a/app/src/main/res/drawable/ic_app.xml b/app/src/main/res/drawable/ic_app.xml
deleted file mode 100644
index e682225..0000000
--- a/app/src/main/res/drawable/ic_app.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_exit.xml b/app/src/main/res/drawable/ic_exit.xml
deleted file mode 100644
index d89c0a1..0000000
--- a/app/src/main/res/drawable/ic_exit.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_home.xml b/app/src/main/res/drawable/ic_home.xml
deleted file mode 100644
index f33299b..0000000
--- a/app/src/main/res/drawable/ic_home.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/app/src/main/res/layout/cas_activity_fullscreen.xml b/app/src/main/res/layout/cas_activity_fullscreen.xml
index 42702f2..920e827 100644
--- a/app/src/main/res/layout/cas_activity_fullscreen.xml
+++ b/app/src/main/res/layout/cas_activity_fullscreen.xml
@@ -26,35 +26,11 @@
android:layout_gravity="center"
android:tooltipText="加载中" />
-
-
-
-
-
-
-
-
+ android:background="@color/cas_navigation"
+ android:layout_gravity="bottom"/>
\ No newline at end of file
--
Gitee
From f7317d5b61432f22bf9d48da3348c4c0bfde8ce5 Mon Sep 17 00:00:00 2001
From: wangshuo <584363327@qq.com>
Date: Sat, 11 Nov 2023 13:08:48 +0800
Subject: [PATCH 08/14] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=BA=95=E9=83=A8?=
=?UTF-8?q?=E6=8E=A7=E5=88=B6=E6=A0=8F=E8=83=8C=E6=99=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/src/main/res/layout/cas_activity_fullscreen.xml | 1 -
1 file changed, 1 deletion(-)
diff --git a/app/src/main/res/layout/cas_activity_fullscreen.xml b/app/src/main/res/layout/cas_activity_fullscreen.xml
index 920e827..a37e8dc 100644
--- a/app/src/main/res/layout/cas_activity_fullscreen.xml
+++ b/app/src/main/res/layout/cas_activity_fullscreen.xml
@@ -30,7 +30,6 @@
android:id="@+id/cas_navigaiton"
android:layout_width="match_parent"
android:layout_height="12dp"
- android:background="@color/cas_navigation"
android:layout_gravity="bottom"/>
\ No newline at end of file
--
Gitee
From 0f5a595547431ef08b5923d38ab747ec07af01b3 Mon Sep 17 00:00:00 2001
From: wangshuo <584363327@qq.com>
Date: Mon, 13 Nov 2023 10:30:25 +0800
Subject: [PATCH 09/14] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=93=8D=E4=BD=9C?=
=?UTF-8?q?=E6=8F=90=E7=A4=BA=EF=BC=8C=E7=A7=BB=E5=87=BA=E5=BA=95=E9=83=A8?=
=?UTF-8?q?=E5=8C=BA=E5=9F=9F=E5=8F=96=E6=B6=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../cloudapp/ui/CasCloudMainActivity.java | 1 +
.../cloudapp/ui/CasCloudPhoneActivity.java | 30 +++++++++++++++----
.../res/layout/cas_activity_fullscreen.xml | 2 +-
app/src/main/res/values/strings.xml | 1 +
4 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudMainActivity.java b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudMainActivity.java
index 18d5d53..a24396f 100644
--- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudMainActivity.java
+++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudMainActivity.java
@@ -127,6 +127,7 @@ public class CasCloudMainActivity extends Activity {
if (mCardPagerAdapter.getCount() == 1) {
startCloudPhoneActivity(CasCloudPhoneActivity.class);
+ finish();
}
}
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 0d712dd..2b86663 100644
--- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
+++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
@@ -110,8 +110,8 @@ public class CasCloudPhoneActivity extends FragmentActivity {
public static final String ORIENTATION = "orientation";
public static final String MEDIA_CONFIG = "media_config";
- private static final int WAITING_HOME_LONG_PRESS_TIME = 300;
- private static final int WAITING_APP_SWITCH_LONG_PRESS_TIME = 800;
+ private static final int WAITING_HOME_LONG_PRESS_TIME = 500;
+ private static final int WAITING_APP_SWITCH_LONG_PRESS_TIME = 1500;
private static final int CHANGE_ROTA = 100;
private static final int MSG_CONNECT_FAILED = 102;
@@ -153,6 +153,7 @@ public class CasCloudPhoneActivity extends FragmentActivity {
private TextView mNavigationTextView;
private boolean mIsPressHomeKey = false;
private boolean isReadyToExit;
+ private Toast mToast;
private Handler handler = new Handler() {
@SuppressLint("RestrictedApi")
@@ -181,11 +182,15 @@ public class CasCloudPhoneActivity extends FragmentActivity {
break;
case MSG_CANCLE_EXIT:
isReadyToExit = false;
+ mToast.cancel();
break;
case MSG_PRESS_HOME:
mIsPressHomeKey = true;
+ mToast.setText(R.string.cas_navigation_long_press_tip);
+ mToast.show();
break;
case MSG_PRESS_APP_SWITCH:
+ mToast.cancel();
mIsPressHomeKey = false;
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_APP_SWITCH);
dispatchKeyEvent(event);
@@ -221,6 +226,7 @@ public class CasCloudPhoneActivity extends FragmentActivity {
setContentView(R.layout.cas_activity_fullscreen);
keepScreenLongLight(this, true);
getIntentData();
+ mToast = Toast.makeText(this, null, Toast.LENGTH_SHORT);
mCasRecord = new CasRecord(getSharedPreferences("input_history", MODE_PRIVATE));
// get views
mProgressBar = findViewById(R.id.loading_progress_bar);
@@ -241,6 +247,7 @@ public class CasCloudPhoneActivity extends FragmentActivity {
handler.removeMessages(MSG_PRESS_HOME);
handler.removeMessages(MSG_PRESS_APP_SWITCH);
if (mIsPressHomeKey) {
+ mToast.cancel();
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME);
dispatchKeyEvent(event);
event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HOME);
@@ -248,6 +255,14 @@ public class CasCloudPhoneActivity extends FragmentActivity {
mIsPressHomeKey = false;
}
break;
+ case MotionEvent.ACTION_MOVE:
+ if (!isInView(motionEvent, view)) {
+ handler.removeMessages(MSG_PRESS_HOME);
+ handler.removeMessages(MSG_PRESS_APP_SWITCH);
+ mToast.cancel();
+ mIsPressHomeKey = false;
+ }
+ break;
}
return true;
}
@@ -491,9 +506,8 @@ public class CasCloudPhoneActivity extends FragmentActivity {
if (isReadyToExit) {
stopCloudPhone();
} else {
- Toast toast = Toast.makeText(this, null, Toast.LENGTH_SHORT);
- toast.setText(R.string.cas_exit_confirmation);
- toast.show();
+ mToast.setText(R.string.cas_exit_confirmation);
+ mToast.show();
handler.sendEmptyMessageDelayed(MSG_CANCLE_EXIT, 1000);
isReadyToExit = true;
}
@@ -862,4 +876,10 @@ public class CasCloudPhoneActivity extends FragmentActivity {
connectorInfo.setTouchTimeout(touchTimeout.isEmpty() ? "0" : touchTimeout);
return connectorInfo;
}
+
+ private boolean isInView(MotionEvent event, View view) {
+ float x = event.getX();
+ float y = event.getY();
+ return x >= 0 && x <= view.getWidth() && y >= 0 && y <= view.getHeight();
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/cas_activity_fullscreen.xml b/app/src/main/res/layout/cas_activity_fullscreen.xml
index a37e8dc..d2e30c3 100644
--- a/app/src/main/res/layout/cas_activity_fullscreen.xml
+++ b/app/src/main/res/layout/cas_activity_fullscreen.xml
@@ -29,7 +29,7 @@
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9381337..88054ea 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -47,6 +47,7 @@
"登录失败"
"登录失败,请检查用户名和账号"
"使用指引:摇晃手机,显示导航栏\n显示悬浮球时,长按悬浮球显示多任务,双击悬浮球返回桌面"
+ "释放回到桌面,继续长按进入多任务"
"再次操作退出云手机"
#ff00ff
\ No newline at end of file
--
Gitee
From 87164696927bf2c667c7acfb1207099bec753a4f Mon Sep 17 00:00:00 2001
From: wangshuo <584363327@qq.com>
Date: Mon, 13 Nov 2023 19:58:46 +0800
Subject: [PATCH 10/14] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=93=8D=E4=BD=9C?=
=?UTF-8?q?=E6=8F=90=E7=A4=BA=EF=BC=8C=E7=A7=BB=E5=87=BA=E5=BA=95=E9=83=A8?=
=?UTF-8?q?=E5=8C=BA=E5=9F=9F=E5=8F=96=E6=B6=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java | 2 ++
1 file changed, 2 insertions(+)
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 2b86663..67add34 100644
--- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
+++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
@@ -264,6 +264,8 @@ public class CasCloudPhoneActivity extends FragmentActivity {
}
break;
}
+ motionEvent.setLocation(motionEvent.getX(), mFrameLayout.getHeight() - (view.getHeight() - motionEvent.getY()));
+ mFrameLayout.dispatchTouchEvent(motionEvent);
return true;
}
});
--
Gitee
From 7b7ec1346316c821b6d49baf796c0f1313b6d3c2 Mon Sep 17 00:00:00 2001
From: wangshuo <584363327@qq.com>
Date: Mon, 20 Nov 2023 16:21:07 +0800
Subject: [PATCH 11/14] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=AF=BC=E8=88=AA?=
=?UTF-8?q?=E6=A0=8F=E6=8F=90=E7=A4=BA=EF=BC=8C=E5=8D=95=E4=B8=AA=E6=89=8B?=
=?UTF-8?q?=E6=9C=BA=E7=9B=B4=E6=8E=A5=E8=BF=9B=E5=85=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../cloudapp/ui/CasCloudMainActivity.java | 38 +++++++++++--------
.../cloudapp/ui/CasCloudPhoneActivity.java | 16 ++++----
.../res/layout/cas_activity_fullscreen.xml | 2 +-
3 files changed, 33 insertions(+), 23 deletions(-)
diff --git a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudMainActivity.java b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudMainActivity.java
index a24396f..279897b 100644
--- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudMainActivity.java
+++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudMainActivity.java
@@ -128,6 +128,8 @@ public class CasCloudMainActivity extends Activity {
if (mCardPagerAdapter.getCount() == 1) {
startCloudPhoneActivity(CasCloudPhoneActivity.class);
finish();
+ } else {
+ initView();
}
}
@@ -135,11 +137,25 @@ public class CasCloudMainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ mCasRecord = new CasRecord(getSharedPreferences(USER_INFO, MODE_PRIVATE));
+ String[] usernameList = mCasRecord.getRecord(USERNAME, 1);
+ if (usernameList == null || usernameList.length == 0) {
+ isLogin = false;
+ } else {
+ mUserInfo = new CasUserInfo(usernameList[0],
+ mCasRecord.getRecord(TOKEN, 1)[0],
+ mCasRecord.getRecord(SESSION_ID, 1)[0]);
+ isLogin = true;
+ GetUserPhoneList(mUserInfo);
+ }
+ mCardPagerAdapter = new CardPagerAdapter(this);
+ }
+
+ private void initView() {
setContentView(R.layout.activity_cas_cloud_main);
mViewpager = findViewById(R.id.viewPager);
mUserView = findViewById(R.id.user);
appConnect = findViewById(R.id.app_connect);
- mCasRecord = new CasRecord(getSharedPreferences(USER_INFO, MODE_PRIVATE));
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
@@ -162,24 +178,12 @@ public class CasCloudMainActivity extends Activity {
buttonLayoutParams.width = physicalWidth / 3;
appConnect.setLayoutParams(buttonLayoutParams);
- mCardPagerAdapter = new CardPagerAdapter(this);
mShadowTransformer = new ShadowTransformer(mViewpager, mCardPagerAdapter);
mShadowTransformer.enableScaling(true);
mViewpager.setPageTransformer(false, mShadowTransformer);
mViewpager.setAdapter(mCardPagerAdapter);
mViewpager.setOffscreenPageLimit(3);
appConnect.setText(R.string.button_connect_cloud_phone);
-
- String[] usernameList = mCasRecord.getRecord(USERNAME, 1);
- if (usernameList == null || usernameList.length == 0) {
- isLogin = false;
- } else {
- mUserInfo = new CasUserInfo(usernameList[0],
- mCasRecord.getRecord(TOKEN, 1)[0],
- mCasRecord.getRecord(SESSION_ID, 1)[0]);
- isLogin = true;
- GetUserPhoneList(mUserInfo);
- }
}
private void GetUserPhoneList(CasUserInfo mUserInfo) {
@@ -273,10 +277,14 @@ public class CasCloudMainActivity extends Activity {
private void startCloudPhoneActivity(Class> cls) {
Intent intent = new Intent(CasCloudMainActivity.this, cls);
- if (mViewpager.getAdapter().getCount() == 0) {
+ if (mViewpager != null && mViewpager.getAdapter().getCount() == 0) {
return;
}
- String phoneId = mCardPagerAdapter.getCardItem(mViewpager.getCurrentItem()).getPhoneId();
+ int index = 0;
+ if (mViewpager != null) {
+ index = mViewpager.getCurrentItem();
+ }
+ String phoneId = mCardPagerAdapter.getCardItem(index).getPhoneId();
if (phoneId.isEmpty()) {
return;
}
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 67add34..f349a62 100644
--- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
+++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
@@ -110,8 +110,8 @@ public class CasCloudPhoneActivity extends FragmentActivity {
public static final String ORIENTATION = "orientation";
public static final String MEDIA_CONFIG = "media_config";
- private static final int WAITING_HOME_LONG_PRESS_TIME = 500;
- private static final int WAITING_APP_SWITCH_LONG_PRESS_TIME = 1500;
+ private static final int WAITING_HOME_LONG_PRESS_TIME = 300;
+ private static final int WAITING_APP_SWITCH_LONG_PRESS_TIME = 800;
private static final int CHANGE_ROTA = 100;
private static final int MSG_CONNECT_FAILED = 102;
@@ -152,6 +152,7 @@ public class CasCloudPhoneActivity extends FragmentActivity {
private ICloudPhone mCloudPhone;
private TextView mNavigationTextView;
private boolean mIsPressHomeKey = false;
+ private boolean mIsPressAppSwitchKey = false;
private boolean isReadyToExit;
private Toast mToast;
@@ -186,12 +187,11 @@ public class CasCloudPhoneActivity extends FragmentActivity {
break;
case MSG_PRESS_HOME:
mIsPressHomeKey = true;
- mToast.setText(R.string.cas_navigation_long_press_tip);
- mToast.show();
+ mIsPressAppSwitchKey = false;
break;
case MSG_PRESS_APP_SWITCH:
- mToast.cancel();
mIsPressHomeKey = false;
+ mIsPressAppSwitchKey = true;
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_APP_SWITCH);
dispatchKeyEvent(event);
event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_APP_SWITCH);
@@ -247,19 +247,21 @@ public class CasCloudPhoneActivity extends FragmentActivity {
handler.removeMessages(MSG_PRESS_HOME);
handler.removeMessages(MSG_PRESS_APP_SWITCH);
if (mIsPressHomeKey) {
- mToast.cancel();
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME);
dispatchKeyEvent(event);
event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HOME);
dispatchKeyEvent(event);
mIsPressHomeKey = false;
+ motionEvent.setAction(MotionEvent.ACTION_CANCEL);
+ } else if (mIsPressAppSwitchKey) {
+ mIsPressAppSwitchKey = false;
+ motionEvent.setAction(MotionEvent.ACTION_CANCEL);
}
break;
case MotionEvent.ACTION_MOVE:
if (!isInView(motionEvent, view)) {
handler.removeMessages(MSG_PRESS_HOME);
handler.removeMessages(MSG_PRESS_APP_SWITCH);
- mToast.cancel();
mIsPressHomeKey = false;
}
break;
diff --git a/app/src/main/res/layout/cas_activity_fullscreen.xml b/app/src/main/res/layout/cas_activity_fullscreen.xml
index d2e30c3..cc7e4ba 100644
--- a/app/src/main/res/layout/cas_activity_fullscreen.xml
+++ b/app/src/main/res/layout/cas_activity_fullscreen.xml
@@ -29,7 +29,7 @@
\ No newline at end of file
--
Gitee
From a471b8f59036fc99db2ef687e5724f68ad7f49f6 Mon Sep 17 00:00:00 2001
From: wangshuo <584363327@qq.com>
Date: Mon, 20 Nov 2023 17:34:13 +0800
Subject: [PATCH 12/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=95=BF=E6=8C=89?=
=?UTF-8?q?=E6=97=B6=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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 f349a62..c9d9c57 100644
--- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
+++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
@@ -110,8 +110,8 @@ public class CasCloudPhoneActivity extends FragmentActivity {
public static final String ORIENTATION = "orientation";
public static final String MEDIA_CONFIG = "media_config";
- private static final int WAITING_HOME_LONG_PRESS_TIME = 300;
- private static final int WAITING_APP_SWITCH_LONG_PRESS_TIME = 800;
+ private static final int WAITING_HOME_LONG_PRESS_TIME = 500;
+ private static final int WAITING_APP_SWITCH_LONG_PRESS_TIME = 1000;
private static final int CHANGE_ROTA = 100;
private static final int MSG_CONNECT_FAILED = 102;
--
Gitee
From e68e32899cae74193833c29aae3ae8f330d50473 Mon Sep 17 00:00:00 2001
From: wangshuo <584363327@qq.com>
Date: Mon, 20 Nov 2023 19:45:15 +0800
Subject: [PATCH 13/14] =?UTF-8?q?=E5=AF=BC=E8=88=AA=E6=A0=8F=E6=93=8D?=
=?UTF-8?q?=E6=8E=A7=E5=8C=BA=E5=9F=9F=E7=BC=A9=E5=B0=8F=E5=B1=85=E4=B8=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../cloudapp/ui/CasCloudPhoneActivity.java | 3 ++-
.../res/layout/cas_activity_fullscreen.xml | 25 ++++++++++++++++---
2 files changed, 23 insertions(+), 5 deletions(-)
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 c9d9c57..cd8521f 100644
--- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
+++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java
@@ -266,7 +266,8 @@ public class CasCloudPhoneActivity extends FragmentActivity {
}
break;
}
- motionEvent.setLocation(motionEvent.getX(), mFrameLayout.getHeight() - (view.getHeight() - motionEvent.getY()));
+ motionEvent.setLocation(motionEvent.getX() + (mFrameLayout.getWidth() / 3),
+ mFrameLayout.getHeight() - (view.getHeight() - motionEvent.getY()));
mFrameLayout.dispatchTouchEvent(motionEvent);
return true;
}
diff --git a/app/src/main/res/layout/cas_activity_fullscreen.xml b/app/src/main/res/layout/cas_activity_fullscreen.xml
index cc7e4ba..6d3dee6 100644
--- a/app/src/main/res/layout/cas_activity_fullscreen.xml
+++ b/app/src/main/res/layout/cas_activity_fullscreen.xml
@@ -26,10 +26,27 @@
android:layout_gravity="center"
android:tooltipText="加载中" />
-
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:layout_gravity="bottom" >
+
+
+
+
+
+
+
\ No newline at end of file
--
Gitee
From 24061198d57f72811a5bd6d246fb911252e50d41 Mon Sep 17 00:00:00 2001
From: wangshuo <584363327@qq.com>
Date: Wed, 13 Dec 2023 10:11:06 +0800
Subject: [PATCH 14/14] =?UTF-8?q?=E5=9B=9E=E9=80=80=E6=97=A0=E5=85=B3?=
=?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/src/main/res/values/colors.xml | 2 --
app/src/main/res/values/strings.xml | 2 --
app/src/main/res/values/styles.xml | 1 +
3 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 7f6ef3f..f388871 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -50,6 +50,4 @@
#FFFFFF
#FFFFFF
-
- #CC464646
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 88054ea..1bbaa8c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -46,8 +46,6 @@
获取手机列表失败
"登录失败"
"登录失败,请检查用户名和账号"
- "使用指引:摇晃手机,显示导航栏\n显示悬浮球时,长按悬浮球显示多任务,双击悬浮球返回桌面"
- "释放回到桌面,继续长按进入多任务"
"再次操作退出云手机"
#ff00ff
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index a31dc40..120772c 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -53,4 +53,5 @@
+
--
Gitee