diff --git a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudLoginActivity.java b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudLoginActivity.java index 1e40f81b0c87d971b0736caf424c7a2b13049d69..4519ac09c93a94bb6a90aadf19cbb1f5f89d1a71 100644 --- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudLoginActivity.java +++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudLoginActivity.java @@ -16,11 +16,18 @@ package com.huawei.cloudapp.ui; +import static com.huawei.cloudapp.utils.CasCommonUtils.getManagementUrl; import static com.huawei.cloudapp.utils.CasConstantsUtil.ERROR_CODE; import static com.huawei.cloudapp.utils.CasConstantsUtil.ERROR_MSG; +import static com.huawei.cloudapp.utils.CasConstantsUtil.LIST; +import static com.huawei.cloudapp.utils.CasConstantsUtil.LOGIN; +import static com.huawei.cloudapp.utils.CasConstantsUtil.MANAGEMENT_DEV_ENV_URL; +import static com.huawei.cloudapp.utils.CasConstantsUtil.MANAGEMENT_PROD_ENV_URL; import static com.huawei.cloudapp.utils.CasConstantsUtil.PASSWORD; +import static com.huawei.cloudapp.utils.CasConstantsUtil.PHONE; import static com.huawei.cloudapp.utils.CasConstantsUtil.SESSION_ID; import static com.huawei.cloudapp.utils.CasConstantsUtil.TOKEN; +import static com.huawei.cloudapp.utils.CasConstantsUtil.USER; import static com.huawei.cloudapp.utils.CasConstantsUtil.USERNAME; import static com.huawei.cloudapp.utils.CasConstantsUtil.USER_INFO; @@ -132,7 +139,8 @@ public class CasCloudLoginActivity extends Activity { userInfo.put(PASSWORD, pass); Gson gson = new Gson(); String userInfoStr = gson.toJson(userInfo); - CasHttpUtils.post("https://139.9.146.101:18000/user/login", userInfoStr, handler, MSG_GET_LOGIN_RESPONSE); + String url = getManagementUrl() + "/" + USER + "/" + LOGIN; + CasHttpUtils.post(url, userInfoStr, handler, MSG_GET_LOGIN_RESPONSE); } }); } 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 279897b343eeb775c6e70e174445c6544ba28f8e..c3defdadd5cd7f0981104c2416ca2c82ce9f6dfd 100644 --- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudMainActivity.java +++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudMainActivity.java @@ -16,10 +16,17 @@ package com.huawei.cloudapp.ui; +import static android.view.View.GONE; +import static com.huawei.cloudapp.utils.CasCommonUtils.getManagementUrl; import static com.huawei.cloudapp.utils.CasConstantsUtil.ERROR_CODE; import static com.huawei.cloudapp.utils.CasConstantsUtil.ERROR_MSG; +import static com.huawei.cloudapp.utils.CasConstantsUtil.LIST; +import static com.huawei.cloudapp.utils.CasConstantsUtil.MANAGEMENT_DEV_ENV_URL; +import static com.huawei.cloudapp.utils.CasConstantsUtil.MANAGEMENT_PROD_ENV_URL; +import static com.huawei.cloudapp.utils.CasConstantsUtil.PHONE; import static com.huawei.cloudapp.utils.CasConstantsUtil.PHONE_ID; import static com.huawei.cloudapp.utils.CasConstantsUtil.PHONE_NAME; +import static com.huawei.cloudapp.utils.CasConstantsUtil.REGION_ID; import static com.huawei.cloudapp.utils.CasConstantsUtil.SESSION_ID; import static com.huawei.cloudapp.utils.CasConstantsUtil.TOKEN; import static com.huawei.cloudapp.utils.CasConstantsUtil.USERNAME; @@ -47,10 +54,11 @@ import com.huawei.cloudapp.common.CasCommonDialog; import com.huawei.cloudapp.common.CasRecord; import com.huawei.cloudapp.common.CasUserInfo; import com.huawei.cloudapp.ui.surface.CasArcView; -import com.huawei.cloudapp.ui.surface.viewpagecards.CardItem; +import com.huawei.cloudapp.ui.surface.viewpagecards.PhoneCardItem; import com.huawei.cloudapp.ui.surface.viewpagecards.CardPagerAdapter; import com.huawei.cloudapp.ui.surface.viewpagecards.ShadowTransformer; import com.huawei.cloudapp.utils.CasCommonUtils; +import com.huawei.cloudapp.utils.CasConstantsUtil; import com.huawei.cloudapp.utils.CasHttpUtils; import java.util.HashMap; @@ -64,7 +72,6 @@ public class CasCloudMainActivity extends Activity { private static final int MSG_GET_LOGOUT_RESPONSE = 100; private static final int MSG_GET_PHONE_LIST_RESPONSE = 101; private static final double PADDING_VIEW_RATIO = 4; - private ImageView mUserView; private ViewPager mViewpager; private CardPagerAdapter mCardPagerAdapter; private ShadowTransformer mShadowTransformer; @@ -74,6 +81,7 @@ public class CasCloudMainActivity extends Activity { private boolean isLogin = false; private Button appConnect; private CasCommonDialog mDialog; + private int mSelectPhoneIndex = 0; private Handler handler = new Handler() { @Override @@ -109,6 +117,8 @@ public class CasCloudMainActivity extends Activity { Intent intent = new Intent(CasCloudMainActivity.this, CasCloudLoginActivity.class); startActivity(intent); finish(); + } else { + Toast.makeText(this, getResources().getString(R.string.failed_to_get_phone_list), Toast.LENGTH_SHORT).show(); } } else { Toast.makeText(this, getResources().getString(R.string.failed_to_get_phone_list), Toast.LENGTH_SHORT).show(); @@ -122,7 +132,8 @@ public class CasCloudMainActivity extends Activity { Log.e(TAG, "handleGetPhoneListResponse: failed to parse response json str "); return; } - mCardPagerAdapter.addCardItem(new CardItem(phoneInfo.get(PHONE_NAME), "8U-16G-1080P", phoneInfo.get(PHONE_ID))); + mCardPagerAdapter.addCardItem(new PhoneCardItem(phoneInfo.get(PHONE_NAME), "8U-16G-1080P", + phoneInfo.get(PHONE_ID), CasConstantsUtil.REGION_INFO.get(phoneInfo.get(REGION_ID)))); } if (mCardPagerAdapter.getCount() == 1) { @@ -137,24 +148,8 @@ 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); DisplayMetrics metrics = new DisplayMetrics(); @@ -177,34 +172,49 @@ public class CasCloudMainActivity extends Activity { buttonLayoutParams.height = physicalHeight / 16; buttonLayoutParams.width = physicalWidth / 3; appConnect.setLayoutParams(buttonLayoutParams); + appConnect.setVisibility(GONE); + } + private void initView() { + mViewpager.setAdapter(mCardPagerAdapter); + mViewpager.setOffscreenPageLimit(3); + mViewpager.setCurrentItem(mSelectPhoneIndex); 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); + appConnect.setVisibility(View.VISIBLE); } private void GetUserPhoneList(CasUserInfo mUserInfo) { + if (mCardPagerAdapter != null && mCardPagerAdapter.getCount() != 0) { + return; + } + mCardPagerAdapter = new CardPagerAdapter(this); HashMap requestHeader = new HashMap(); requestHeader.put(TOKEN, mUserInfo.getUserToken()); requestHeader.put(SESSION_ID, mUserInfo.getUserSessionId()); - CasHttpUtils.post("https://139.9.146.101:18000/phone/list", requestHeader, "", handler, MSG_GET_PHONE_LIST_RESPONSE); + String url = getManagementUrl() + "/" + PHONE + "/" + LIST; + CasHttpUtils.post(url, requestHeader, "", handler, MSG_GET_PHONE_LIST_RESPONSE); } @Override protected void onResume() { super.onResume(); - if (mUserInfo == null) { - String[] usernameList = mCasRecord.getRecord(USERNAME, 1); - if (usernameList != null && usernameList.length != 0) { - mUserInfo = new CasUserInfo(usernameList[0], - mCasRecord.getRecord(TOKEN, 1)[0], - mCasRecord.getRecord(SESSION_ID, 1)[0]); - isLogin = true; - GetUserPhoneList(mUserInfo); - } + mCasRecord = new CasRecord(getSharedPreferences(USER_INFO, MODE_PRIVATE)); + String[] usernameList = mCasRecord.getRecord(USERNAME, 1); + if (usernameList == null || usernameList.length == 0) { + getSharedPreferences(USER_INFO, MODE_PRIVATE).edit().clear().apply(); + Intent intent = new Intent(CasCloudMainActivity.this, CasCloudLoginActivity.class); + startActivity(intent); + finish(); + } else { + mUserInfo = new CasUserInfo(usernameList[0], + mCasRecord.getRecord(TOKEN, 1)[0], + mCasRecord.getRecord(SESSION_ID, 1)[0]); + isLogin = true; + GetUserPhoneList(mUserInfo); + } } @@ -277,13 +287,14 @@ public class CasCloudMainActivity extends Activity { private void startCloudPhoneActivity(Class cls) { Intent intent = new Intent(CasCloudMainActivity.this, cls); - if (mViewpager != null && mViewpager.getAdapter().getCount() == 0) { + if (mViewpager != null && mCardPagerAdapter != null && mCardPagerAdapter.getCount() == 0) { return; } int index = 0; if (mViewpager != null) { index = mViewpager.getCurrentItem(); } + mSelectPhoneIndex = index; 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 0322946a1448ef3396e970f1b63cc7473721603a..1db0370a3710856a86e42b3cfaf637f143f483ad 100644 --- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java +++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudPhoneActivity.java @@ -75,12 +75,15 @@ import java.util.Map; import java.util.UUID; import static android.os.SystemClock.sleep; +import static com.huawei.cloudapp.utils.CasCommonUtils.getManagementUrl; import static com.huawei.cloudapp.utils.CasCommonUtils.isSupportH265; import static com.huawei.cloudapp.utils.CasConstantsUtil.AES_KEY; +import static com.huawei.cloudapp.utils.CasConstantsUtil.ALLOCATION; import static com.huawei.cloudapp.utils.CasConstantsUtil.AUTH_TS; 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.CONNECTION; import static com.huawei.cloudapp.utils.CasConstantsUtil.DEBUG_MODE; import static com.huawei.cloudapp.utils.CasConstantsUtil.DEFINITION_BEST; import static com.huawei.cloudapp.utils.CasConstantsUtil.ERROR_CODE; @@ -88,6 +91,10 @@ import static com.huawei.cloudapp.utils.CasConstantsUtil.FRAME_TYPE; import static com.huawei.cloudapp.utils.CasConstantsUtil.FRAME_TYPE_H265; import static com.huawei.cloudapp.utils.CasConstantsUtil.IP; import static com.huawei.cloudapp.utils.CasConstantsUtil.IP_PATTERN; +import static com.huawei.cloudapp.utils.CasConstantsUtil.LIST; +import static com.huawei.cloudapp.utils.CasConstantsUtil.MANAGEMENT_DEV_ENV_URL; +import static com.huawei.cloudapp.utils.CasConstantsUtil.MANAGEMENT_PROD_ENV_URL; +import static com.huawei.cloudapp.utils.CasConstantsUtil.PHONE; import static com.huawei.cloudapp.utils.CasConstantsUtil.PHONE_ID; import static com.huawei.cloudapp.utils.CasConstantsUtil.PHYSICAL_HEIGHT; import static com.huawei.cloudapp.utils.CasConstantsUtil.PHYSICAL_WIDTH; @@ -100,6 +107,7 @@ import static com.huawei.cloudapp.utils.CasConstantsUtil.TICKET; import static com.huawei.cloudapp.utils.CasConstantsUtil.TOKEN; import static com.huawei.cloudapp.utils.CasConstantsUtil.TOUCH_TIMEOUT; import static com.huawei.cloudapp.utils.CasConstantsUtil.USER_ID; +import static com.huawei.cloudapp.utils.CasConstantsUtil.USER_INFO; import static com.huawei.cloudapp.utils.CasConstantsUtil.WIDTH; import static com.huawei.cloudphone.api.CloudPhoneParas.DEV_TYPE_CAMERA; import static com.huawei.cloudphone.api.CloudPhoneParas.DEV_TYPE_LOCATION; @@ -113,8 +121,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 = 350; - private static final int WAITING_APP_SWITCH_LONG_PRESS_TIME = 850; + private static final int WAITING_HOME_LONG_PRESS_TIME = 1000; + private static final int WAITING_APP_SWITCH_LONG_PRESS_TIME = 300; private static final int CHANGE_ROTA = 100; private static final int MSG_CONNECT_FAILED = 102; @@ -130,15 +138,12 @@ public class CasCloudPhoneActivity extends FragmentActivity { private static CasListener mCasListener = null; // flag - public volatile boolean rebuildDone = false; - public boolean doCheckConnection = false; private HashMap mMediaConfig = null; private ProgressBar mProgressBar = null; private int currentRotation = -1; private CasCommonDialog quitDialog; private CasCommonDialog mDialog; private CasRecord mCasRecord; - private Thread rttThread; // intent trans value private CasConnectInfo mConnectInfo; @@ -155,8 +160,6 @@ public class CasCloudPhoneActivity extends FragmentActivity { private boolean mIsStopCloudPhoneCalled = false; private ICloudPhone mCloudPhone; private TextView mNavigationTextView; - private boolean mIsPressHomeKey = false; - private boolean mIsPressAppSwitchKey = false; private boolean isReadyToExit; private Toast mToast; @@ -190,13 +193,13 @@ public class CasCloudPhoneActivity extends FragmentActivity { mToast.cancel(); break; case MSG_PRESS_HOME: - mIsPressHomeKey = true; - mIsPressAppSwitchKey = false; + KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME); + dispatchKeyEvent(event); + event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HOME); + dispatchKeyEvent(event); break; case MSG_PRESS_APP_SWITCH: - mIsPressHomeKey = false; - mIsPressAppSwitchKey = true; - KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_APP_SWITCH); + event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_APP_SWITCH); dispatchKeyEvent(event); event = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_APP_SWITCH); dispatchKeyEvent(event); @@ -253,23 +256,11 @@ public class CasCloudPhoneActivity extends FragmentActivity { 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; } break; } @@ -282,7 +273,7 @@ public class CasCloudPhoneActivity extends FragmentActivity { setRotation(mOrientation); try { - mCloudPhone = CloudPhoneManager.createCloudPhoneInstance(); + mCloudPhone = CloudPhoneManager.createCloudPhoneInstance(); mCloudPhone.setDisplayMode(CloudPhoneParas.DisplayMode.DISPLAY_MODE_FILL); mCloudPhone.registerPermissionRequestListener(new CloudPhonePermissionRequestListenerImpl()); mCloudPhone.init(this, DEV_PHONE); @@ -330,8 +321,9 @@ public class CasCloudPhoneActivity extends FragmentActivity { HashMap requestHeader = new HashMap(); requestHeader.put(TOKEN, mUserInfo.getUserToken()); requestHeader.put(SESSION_ID, mUserInfo.getUserSessionId()); - CasHttpUtils.post("https://139.9.146.101:18000/connection/allocate", requestHeader, - gson.toJson(requestBody), handler, MSG_GET_START_PARAM_RESPONSE); + + String url = getManagementUrl() + "/" + CONNECTION + "/" + ALLOCATION; + CasHttpUtils.post(url, requestHeader, gson.toJson(requestBody), handler, MSG_GET_START_PARAM_RESPONSE); } } catch (IllegalArgumentException e) { showDialog(getResources().getString(R.string.cas_phone_input_param_invalid)); @@ -375,7 +367,6 @@ public class CasCloudPhoneActivity extends FragmentActivity { public void onPause() { CASLog.i(TAG, "onPause"); super.onPause(); - bIsStart = false; mIsActivityBackground = true; } @@ -618,14 +609,18 @@ public class CasCloudPhoneActivity extends FragmentActivity { } Map rspMap = CasCommonUtils.parseJsonMessage(rspStr); if (rspMap.isEmpty()) { - Map errorRsp = CasCommonUtils.parseJsonMessage(rspStr); - if (errorRsp.containsKey(ERROR_CODE) && errorRsp.get(ERROR_CODE).equals("CPH.MANAGER.USER.00003")) { - stopCloudPhone(); + Log.e(TAG, "Failed to get start param response, rspMap is empty."); + return; + } + if (rspMap.containsKey(ERROR_CODE)) { + if (rspMap.get(ERROR_CODE).equals("CPH.MANAGER.USER.00003")) { + getSharedPreferences(USER_INFO, MODE_PRIVATE).edit().clear().apply(); + showDialog(getResources().getString(R.string.user_info_invalid_need_login)); + Log.e(TAG, "The session is invalid, need to log in again."); } else { showDialog(getResources().getString(R.string.cas_phone_get_auth_param_fail_tip_message)); Log.e(TAG, "Failed to parse start param response. "); } - Log.e(TAG, "Failed to parse start param response."); return; } @@ -719,7 +714,7 @@ public class CasCloudPhoneActivity extends FragmentActivity { @Override public boolean onKeyDown(int keyCode, KeyEvent event) { - if ((keyCode == KeyEvent.KEYCODE_BACK)) { + if ((keyCode == KeyEvent.KEYCODE_BACK && bIsStart)) { return true; } else if (keyCode == KeyEvent.KEYCODE_APP_SWITCH) { return true; @@ -742,11 +737,7 @@ public class CasCloudPhoneActivity extends FragmentActivity { mIsStopCloudPhoneCalled = true; mProgressBar.setVisibility(View.VISIBLE); mFrameLayout.setVisibility(View.GONE); - doCheckConnection = false; // dismissAllDialogs(); - if (rttThread != null) { - rttThread.interrupt(); - } bIsStart = false; try { mCloudPhone.exitCloudPhone(); @@ -834,9 +825,7 @@ public class CasCloudPhoneActivity extends FragmentActivity { * 启动成功后处理任务 */ private void setStartSuccessFlag() { - doCheckConnection = true; bIsStart = true; - rebuildDone = false; } class CloudPhoneOrientationListener implements CloudPhoneOrientationChangeListener { @@ -921,7 +910,7 @@ public class CasCloudPhoneActivity extends FragmentActivity { connectorInfo.setConnectIp(ip); connectorInfo.setConnectPort(port); connectorInfo.setBackgroundTimeout(backgroundTimeout.isEmpty() ? "60" : backgroundTimeout); - connectorInfo.setAvailablePlayTime(availablePlayTime.isEmpty() ? "4800" : availablePlayTime); + connectorInfo.setAvailablePlayTime(availablePlayTime.isEmpty() ? "0" : availablePlayTime); connectorInfo.setSessionId(sessionId); connectorInfo.setTicket("ticket_xxxxxx"); // 32位16进制数,测试使用 diff --git a/app/src/main/java/com/huawei/cloudapp/ui/surface/viewpagecards/CardPagerAdapter.java b/app/src/main/java/com/huawei/cloudapp/ui/surface/viewpagecards/CardPagerAdapter.java index e4b93cfb6ed5f5e1bb27af94c93d6f6dea2a8c02..5247d31112d7e8edea6e2d8ec204fa8451f5600f 100644 --- a/app/src/main/java/com/huawei/cloudapp/ui/surface/viewpagecards/CardPagerAdapter.java +++ b/app/src/main/java/com/huawei/cloudapp/ui/surface/viewpagecards/CardPagerAdapter.java @@ -16,6 +16,7 @@ package com.huawei.cloudapp.ui.surface.viewpagecards; +import android.annotation.SuppressLint; import android.content.Context; import android.graphics.drawable.GradientDrawable; import android.view.LayoutInflater; @@ -30,6 +31,7 @@ import androidx.viewpager.widget.PagerAdapter; import com.huawei.cloudapp.R; import com.huawei.cloudapp.common.CasRecord; +import com.huawei.cloudapp.utils.CasConstantsUtil; import java.util.ArrayList; import java.util.List; @@ -37,7 +39,7 @@ import java.util.List; public class CardPagerAdapter extends PagerAdapter implements CardAdapter { private List mViews; - private List mData; + private List mData; private float mBaseElevation; private Context mContext; private CasRecord mCasRecord; @@ -50,7 +52,7 @@ public class CardPagerAdapter extends PagerAdapter implements CardAdapter { mContext = context; } - public void addCardItem(CardItem item) { + public void addCardItem(PhoneCardItem item) { mViews.add(null); mData.add(item); notifyDataSetChanged(); @@ -66,11 +68,11 @@ public class CardPagerAdapter extends PagerAdapter implements CardAdapter { removing = false; } - public CardItem getCardItem(int position) { + public PhoneCardItem getCardItem(int position) { if (getCount() == 0) { return null; } - CardItem item = mData.get(position); + PhoneCardItem item = mData.get(position); if (item.getName().isEmpty() && ip != null && port != null) { String ipStr = ip.getText().toString().trim(); String portStr = port.getText().toString().trim(); @@ -148,14 +150,18 @@ public class CardPagerAdapter extends PagerAdapter implements CardAdapter { return index; } - private void bindInfo(CardItem item, View view) { + private void bindInfo(PhoneCardItem item, View view) { TextView titleTextView = view.findViewById(R.id.titleTextView); TextView contentTextView = view.findViewById(R.id.contentTextView); if (item.getName().isEmpty()) { - } else { titleTextView.setText(item.getName()); - contentTextView.setText(item.getInfo()); + String content = item.getInfo(); + String region = item.getRegion(); + if (region != null && !region.isEmpty()) { + content = item.getRegion() + System.lineSeparator() + content; + } + contentTextView.setText(content); } } diff --git a/app/src/main/java/com/huawei/cloudapp/ui/surface/viewpagecards/CardItem.java b/app/src/main/java/com/huawei/cloudapp/ui/surface/viewpagecards/PhoneCardItem.java similarity index 78% rename from app/src/main/java/com/huawei/cloudapp/ui/surface/viewpagecards/CardItem.java rename to app/src/main/java/com/huawei/cloudapp/ui/surface/viewpagecards/PhoneCardItem.java index 1fa39a3d274ac6866e2bf3eb367194ba70c1d778..49011d0fc194bbeef98b409a109b3c97ab2d5cc7 100644 --- a/app/src/main/java/com/huawei/cloudapp/ui/surface/viewpagecards/CardItem.java +++ b/app/src/main/java/com/huawei/cloudapp/ui/surface/viewpagecards/PhoneCardItem.java @@ -16,16 +16,18 @@ package com.huawei.cloudapp.ui.surface.viewpagecards; -public class CardItem { +public class PhoneCardItem { private String mPhoneInfo; private String mPhoneName; private String mPhoneId; + private String mPhoneRegion; - public CardItem(String name, String info, String id) { + public PhoneCardItem(String name, String info, String id, String region) { mPhoneName = name; mPhoneInfo = info; mPhoneId = id; + mPhoneRegion = region; } public String getInfo() { @@ -47,4 +49,12 @@ public class CardItem { public void setPhoneId(String mPhoneId) { this.mPhoneId = mPhoneId; } + + public String getRegion() { + return mPhoneRegion; + } + + public void setRegion(String mPhoneRegion) { + this.mPhoneRegion = mPhoneRegion; + } } diff --git a/app/src/main/java/com/huawei/cloudapp/utils/CasCommonUtils.java b/app/src/main/java/com/huawei/cloudapp/utils/CasCommonUtils.java index 20f609a99e8431399fb5ea24d59a9ad9a9839474..5c938389ba6377f6f1921dbc01c77b0dfe3da978 100644 --- a/app/src/main/java/com/huawei/cloudapp/utils/CasCommonUtils.java +++ b/app/src/main/java/com/huawei/cloudapp/utils/CasCommonUtils.java @@ -71,4 +71,8 @@ public class CasCommonUtils { return mediaCodecList.findDecoderForFormat( MediaFormat.createVideoFormat(mimeType, 1920, 1080)) != null; } + + public static String getManagementUrl() { + return CasConstantsUtil.MANAGEMENT_PROD_ENV_URL; + } } diff --git a/app/src/main/java/com/huawei/cloudapp/utils/CasConstantsUtil.java b/app/src/main/java/com/huawei/cloudapp/utils/CasConstantsUtil.java index ff29d487ad18d14de9f84fbe9b6146d3bc938a5e..070934ea6b3a1642629576b5f49f2446c3264b78 100644 --- a/app/src/main/java/com/huawei/cloudapp/utils/CasConstantsUtil.java +++ b/app/src/main/java/com/huawei/cloudapp/utils/CasConstantsUtil.java @@ -16,6 +16,8 @@ package com.huawei.cloudapp.utils; +import java.util.HashMap; +import java.util.Map; import java.util.regex.Pattern; /** @@ -41,6 +43,8 @@ public class CasConstantsUtil { public static final String PHONE_NAME = "phone_name"; + public static final String REGION_ID = "region_id"; + public static final String CLIENT_TYPE = "client_type"; /** @@ -184,4 +188,27 @@ public class CasConstantsUtil { public static final String DEFINITION_BASIC = "basic"; public static final String DEBUG_MODE = "debug_mode"; + + public static final String MANAGEMENT_DEV_ENV_URL = "https://140.210.196.28:18000"; + public static final String MANAGEMENT_PROD_ENV_URL = "https://139.9.146.101:18000"; + public static final String PHONE = "phone"; + public static final String LIST = "list"; + public static final String CONNECTION = "connection"; + public static final String ALLOCATION = "allocate"; + public static final String USER = "user"; + public static final String LOGIN = "login"; + + + public static final Map REGION_INFO; + static { + REGION_INFO = new HashMap<>(); + REGION_INFO.put("ap-southeast-1", "中国-香港"); + REGION_INFO.put("ap-southeast-3", "亚太-新加坡"); + REGION_INFO.put("cn-east-2", "华东-上海二"); + REGION_INFO.put("cn-east-3", "华东-上海一"); + REGION_INFO.put("cn-north-4", "华北-北京四"); + REGION_INFO.put("cn-south-1", "华南-广州"); + REGION_INFO.put("cn-southwest-2", "西南-贵阳一"); + REGION_INFO.put("ru-northwest-2", "俄罗斯-莫斯科二"); + } } diff --git a/app/src/main/res/layout/activity_cas_cloud_login.xml b/app/src/main/res/layout/activity_cas_cloud_login.xml index 17602805bf5c5e35769749c0abf0af14a62e19a4..77982858234694fe7c28f51e5f40634c43baf861 100644 --- a/app/src/main/res/layout/activity_cas_cloud_login.xml +++ b/app/src/main/res/layout/activity_cas_cloud_login.xml @@ -24,7 +24,7 @@ android:textColor="@color/black" android:clickable="true" android:onClick="cloudPhoneDebug" - android:text="华为云手机" /> + android:text="@string/app_name" /> diff --git a/app/src/main/res/layout/activity_cas_cloud_main.xml b/app/src/main/res/layout/activity_cas_cloud_main.xml index a1203b6332a9cf2924b6401b508965104d718a6c..6404c984737fdfbd0847e4654ba17310a92efc0e 100644 --- a/app/src/main/res/layout/activity_cas_cloud_main.xml +++ b/app/src/main/res/layout/activity_cas_cloud_main.xml @@ -32,7 +32,7 @@ android:textColor="@color/black" android:clickable="true" android:onClick="cloudPhoneDebug" - android:text="华为云手机" /> + android:text="@string/app_name" /> - 华为云手机 + 华为云云手机 CasCloudAppMainActivity GameListActivity GameListActivity2