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 18d5d534db48eedcd854923e3e29d1a1b583811d..279897b343eeb775c6e70e174445c6544ba28f8e 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,9 @@ public class CasCloudMainActivity extends Activity { if (mCardPagerAdapter.getCount() == 1) { startCloudPhoneActivity(CasCloudPhoneActivity.class); + finish(); + } else { + initView(); } } @@ -134,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); @@ -161,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) { @@ -272,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 8c8cd7c2b2299691a5e4b1c16b63b862dcdec255..cd8521fe08431f96c70eab8621494be8d3d0ca9b 100644 --- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java +++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java @@ -23,7 +23,6 @@ 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.os.Build; import android.os.Bundle; import android.os.Handler; @@ -33,18 +32,15 @@ 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; 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; @@ -55,7 +51,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; @@ -68,17 +63,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; @@ -86,9 +76,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; @@ -115,36 +103,27 @@ 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 { 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 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; 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_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 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; @@ -157,23 +136,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; @@ -183,42 +149,15 @@ 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 GestureDetector mGestureDetector; - - 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 TextView mNavigationTextView; + private boolean mIsPressHomeKey = false; + private boolean mIsPressAppSwitchKey = false; + private boolean isReadyToExit; + private Toast mToast; - 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() { + @SuppressLint("RestrictedApi") @Override public void handleMessage(Message msg) { switch (msg.what) { @@ -242,6 +181,22 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl case MSG_GET_START_PARAM_RESPONSE: handleGetResponseMsg((String) msg.obj); break; + case MSG_CANCLE_EXIT: + isReadyToExit = false; + mToast.cancel(); + break; + case MSG_PRESS_HOME: + mIsPressHomeKey = true; + mIsPressAppSwitchKey = false; + break; + case MSG_PRESS_APP_SWITCH: + 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); + dispatchKeyEvent(event); + break; default: break; } @@ -271,81 +226,54 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl 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); 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(radioViewMain.getId()); - qualityRadioViewGroup.setOnCheckedChangeListener(qualityCheckedChangeListener); - - 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") + + mNavigationTextView = findViewById(R.id.cas_navigaiton); + mNavigationTextView.setOnTouchListener(new View.OnTouchListener() { + @SuppressLint({"RestrictedApi", "ClickableViewAccessibility"}) @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; - } + 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; + 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); + mIsPressHomeKey = false; } - }, DOUBLE_CLICK_TIME_DELTA); + break; } - } - }); - - 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); + motionEvent.setLocation(motionEvent.getX() + (mFrameLayout.getWidth() / 3), + mFrameLayout.getHeight() - (view.getHeight() - motionEvent.getY())); + mFrameLayout.dispatchTouchEvent(motionEvent); return true; } }); - textCtrl.setBackgroundResource(R.drawable.ctrl_view); setRotation(mOrientation); - lagSwitch.setChecked(false); - ctrlSwitch.setChecked(true); - gAcitivity = this; try { mCloudPhone = CloudPhoneManager.createCloudPhoneInstance(); mCloudPhone.setDisplayMode(CloudPhoneParas.DisplayMode.DISPLAY_MODE_FILL); @@ -369,7 +297,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)); @@ -520,7 +448,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); @@ -570,21 +498,24 @@ 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 { + mToast.setText(R.string.cas_exit_confirmation); + mToast.show(); + handler.sendEmptyMessageDelayed(MSG_CANCLE_EXIT, 1000); + isReadyToExit = true; + } break; default: break; @@ -601,12 +532,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); - } - qualityRadioViewGroup.setVisibility(View.VISIBLE); } /** @@ -671,54 +596,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(""); - } - } - - /** - * 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)); @@ -823,10 +700,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; @@ -845,12 +718,12 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl return; } CASLog.d(TAG, "stop cloud phone"); + handler.removeCallbacksAndMessages(null); mIsStopCloudPhoneCalled = true; mProgressBar.setVisibility(View.VISIBLE); mFrameLayout.setVisibility(View.GONE); doCheckConnection = false; // dismissAllDialogs(); - gAcitivity = null; if (rttThread != null) { rttThread.interrupt(); } @@ -940,78 +813,10 @@ 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) { - 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()); - } - } - - private void updateCtrlViewState(Boolean isChecked) { - if (!isChecked) { - textCtrl.setVisibility(View.GONE); - } else { - textCtrl.setVisibility(View.VISIBLE); - } } class CloudPhoneOrientationListener implements CloudPhoneOrientationChangeListener { @@ -1051,17 +856,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, @@ -1087,4 +881,10 @@ public class CasCloudPhoneActivity extends FragmentActivity implements View.OnCl 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 15a851704928d9b11b7fa61d367545204787f785..6d3dee6ee81653cf2d7c7d7c99fb26f60d6ae51c 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 @@ @@ -25,9 +26,27 @@ android:layout_gravity="center" android:tooltipText="加载中" /> - + + + + + + + + \ 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 index 843b77d8e0d429b71a62d98cde834c13a14bac43..441b5573c63cf3266e00df9cc2078927e295afff 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" 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 4b5a01ec0048c9c964eae233e5b5ed0768d2d1fc..0000000000000000000000000000000000000000 --- a/app/src/main/res/layout/cas_ctrl_view.xml +++ /dev/null @@ -1,122 +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 bc16f09d7f8ab0b0275291954e8c1d19e2922b0c..1bbaa8cebfcc917d35ef7194426a3d06960ba7d8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -37,10 +37,6 @@ 软编 硬编 远编 - 超清 - 高清 - 标清 - 流畅 编码服务器ip: 编码服务器port: 视频格式: @@ -50,6 +46,6 @@ 获取手机列表失败 "登录失败" "登录失败,请检查用户名和账号" - "悬浮球指引:长按多任务,双击返回桌面" + "再次操作退出云手机" #ff00ff \ No newline at end of file