From 93bf4836f76be9bc98a745821a939ec5a2c8d238 Mon Sep 17 00:00:00 2001 From: wangshuo <584363327@qq.com> Date: Fri, 18 Aug 2023 17:02:42 +0800 Subject: [PATCH 1/5] =?UTF-8?q?ctrl=E9=94=AE=E5=8F=AF=E7=A7=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 1 + .../cloudapp/ui/CasCloudPhoneActivity.java | 47 ++++++++++++------- .../res/layout/cas_activity_fullscreen.xml | 17 ++----- .../main/res/layout/cas_ctrl_button_view.xml | 12 +++++ app/src/main/res/layout/cas_ctrl_view.xml | 40 +++++++++++----- app/src/main/res/values/strings.xml | 3 +- .../src/main/cpp/cas_decoder/CasDecoder.cpp | 8 +++- .../cloudphone/apiimpl/CloudPhoneImpl.java | 2 + 8 files changed, 85 insertions(+), 45 deletions(-) create mode 100644 app/src/main/res/layout/cas_ctrl_button_view.xml diff --git a/app/build.gradle b/app/build.gradle index 0146823..8e3e5c3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -73,6 +73,7 @@ dependencies { implementation 'com.github.bumptech.glide:glide:4.13.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.14.0' implementation 'com.hyman:flowlayout-lib:1.1.2' + implementation 'com.github.Petterpx:FloatingX:1.3.1' implementation 'com.android.support:design:28.0.0' implementation 'com.github.Justson.AgentWeb:agentweb-core:v5.0.6-androidx' implementation project(':cloudphone') diff --git a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java index 69c06aa..02a3cfe 100644 --- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java +++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java @@ -37,11 +37,11 @@ import android.view.Window; import android.view.WindowManager; import android.widget.Button; 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; @@ -66,6 +66,8 @@ import com.huawei.cloudphone.api.CloudPhoneVirtualDevDataListener; import com.huawei.cloudphone.api.ICloudPhone; import com.huawei.cloudphone.virtualdevice.VirtualDeviceSession; import com.huawei.cloudphone.virtualdevice.common.RingBufferVirtualDeviceIO; +import com.petterp.floatingx.assist.FxGravity; +import com.petterp.floatingx.assist.helper.ScopeHelper; import java.util.HashMap; @@ -145,8 +147,7 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl // debug info private boolean isShowingLagInfoView; - private TextView lag; - private Button lagSwitch; + private Switch lagSwitch; private TextView textCtrl; private RelativeLayout ctrView; private Button mQuitCloudPhone; @@ -259,11 +260,8 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl mProgressBar = findViewById(R.id.loading_progress_bar); mFrameLayout = (FrameLayout) findViewById(R.id.frame_layout); mFloatContainer = (FrameLayout) findViewById(R.id.floatContainer); - lag = (TextView) findViewById(R.id.lag); - lagSwitch = (Button) findViewById(R.id.lag_switch); + lagSwitch = (Switch) findViewById(R.id.lag_switch); lagSwitch.setOnClickListener(CasCloudPhoneActivity.this); - textCtrl = (TextView) findViewById(R.id.tv_ctrl); - textCtrl.setOnClickListener(CasCloudPhoneActivity.this); ctrView = (RelativeLayout) findViewById(R.id.ctr_view); ctrView.setOnClickListener(CasCloudPhoneActivity.this); mQuitCloudPhone = (Button) findViewById(R.id.quit_cloud_phone); @@ -277,6 +275,19 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl qualityRadioViewGroup.check(radioViewMain.getId()); qualityRadioViewGroup.setOnCheckedChangeListener(qualityCheckedChangeListener); + + float dp = getResources().getDisplayMetrics().density; + ScopeHelper.builder().setLayout(R.layout.cas_ctrl_button_view). + setEnableEdgeAdsorption(true). + setEdgeOffset(10f). + setEnableScrollOutsideScreen(true). + setGravity(FxGravity.LEFT_OR_TOP). + setEnableAssistDirection(150 * dp, 0f, 0f, 0f). + build().toControl(this).show(); + textCtrl = (TextView) findViewById(R.id.tv_ctrl); + textCtrl.setOnClickListener(CasCloudPhoneActivity.this); + + setRotation(mOrientation); isShowingLagInfoView = true; gAcitivity = this; @@ -442,7 +453,8 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl CASLog.i(TAG, "processStateChangeMsg code = " + code); switch (code) { case CasState.CAS_START_SUCCESS: - lag.setVisibility(View.VISIBLE); + textCtrl.setBackground(null); + //lag.setVisibility(View.VISIBLE); mProgressBar.setVisibility(View.GONE); startSuccessThreadTask(); handleStartSuccessMsg(msg); @@ -551,7 +563,7 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl if (Build.VERSION.SDK_INT >= 28) { // Adapt by setting parameters - params.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER; + params.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; } else { CasAdaptPhoneUtils.getInstance().adaptPhoneNotch(this, params); } @@ -598,10 +610,12 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl public void updateLagInfoViewState() { isShowingLagInfoView = !isShowingLagInfoView; if (isShowingLagInfoView) { - lag.setVisibility(View.VISIBLE); + textCtrl.setBackground(null); + //lag.setVisibility(View.VISIBLE); lagSwitch.setText(R.string.cas_close_lag_view); } else { - lag.setVisibility(View.INVISIBLE); + textCtrl.setBackgroundResource(R.drawable.button_sub_action_selector); + //lag.setVisibility(View.INVISIBLE); lagSwitch.setText(R.string.cas_show_lag_view); } } @@ -805,18 +819,17 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl if (lagVal > REFERENCE_LAG_MAX_VALUE || lagVal <= REFERENCE_LAG_ZERO_VALUE) { lagContent = "*"; } - String lagStr = RESIDENT_LAG_FORMAT + lagContent + RESIDENT_LAG_UNIT_FORMAT; if (lagVal > REFERENCE_LAG_MID_VALUE) { - lag.setTextColor(Color.RED); + textCtrl.setTextColor(Color.RED); } else if (lagVal > REFERENCE_LAG_MIN_VALUE) { - lag.setTextColor(Color.YELLOW); + textCtrl.setTextColor(Color.YELLOW); } else if (lagVal > REFERENCE_LAG_ZERO_VALUE) { - lag.setTextColor(Color.GREEN); + textCtrl.setTextColor(Color.GREEN); } else { - lag.setTextColor(Color.RED); + textCtrl.setTextColor(Color.RED); } - lag.setText(lagStr); + textCtrl.setText(lagContent); } @Override diff --git a/app/src/main/res/layout/cas_activity_fullscreen.xml b/app/src/main/res/layout/cas_activity_fullscreen.xml index 6866007..b715b16 100644 --- a/app/src/main/res/layout/cas_activity_fullscreen.xml +++ b/app/src/main/res/layout/cas_activity_fullscreen.xml @@ -13,6 +13,11 @@ android:background="@color/cas_black" android:focusable="true"> + + + - - \ No newline at end of file diff --git a/app/src/main/res/layout/cas_ctrl_button_view.xml b/app/src/main/res/layout/cas_ctrl_button_view.xml new file mode 100644 index 0000000..b189e85 --- /dev/null +++ b/app/src/main/res/layout/cas_ctrl_button_view.xml @@ -0,0 +1,12 @@ + + + \ 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 index 82531f7..6400586 100644 --- a/app/src/main/res/layout/cas_ctrl_view.xml +++ b/app/src/main/res/layout/cas_ctrl_view.xml @@ -60,21 +60,35 @@ -