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