|
@@ -51,6 +51,7 @@ public class MainActivity extends BaseActivity implements Listener.VideoListener
|
|
|
private RelativeLayout mBottomInLayout = null;
|
|
|
private RelativeLayout mBottomOutLayout = null;
|
|
|
private RelativeLayout mBottomIngLayout = null;
|
|
|
+ private Button mBottomEndButton = null;
|
|
|
//private ImageView mIconView = null;
|
|
|
private TextView mNameText = null;
|
|
|
private TextView mHintText = null;
|
|
@@ -63,8 +64,8 @@ public class MainActivity extends BaseActivity implements Listener.VideoListener
|
|
|
private int mHideCountMax = 5;
|
|
|
private int mHideCount = mHideCountMax;
|
|
|
|
|
|
- //0:呼入 1:呼出
|
|
|
- private int mVideoType = 0;
|
|
|
+ //1:呼出 2:呼入
|
|
|
+ private int mVideoType = Constant.VIDEO_CALL_OUT;
|
|
|
private String mTargetId = "";
|
|
|
private ContactBean mContactBean = new ContactBean();
|
|
|
|
|
@@ -80,10 +81,10 @@ public class MainActivity extends BaseActivity implements Listener.VideoListener
|
|
|
protected void initDataBase() {
|
|
|
super.initDataBase();
|
|
|
if (Macros.DEBUG) {
|
|
|
- mVideoType = 0;
|
|
|
+ mVideoType = Constant.VIDEO_CALL_OUT;
|
|
|
mTargetId = "3523b1d1-8543-43d9-92c9-df663a3f147d";
|
|
|
} else {
|
|
|
- mVideoType = getIntent().getIntExtra(Constant.EXTRA_VIDEO_TYPE, 0);
|
|
|
+ mVideoType = getIntent().getIntExtra(Constant.EXTRA_VIDEO_TYPE, Constant.VIDEO_CALL_OUT);
|
|
|
mTargetId = getIntent().getStringExtra(Constant.EXTRA_VIDEO_TARGET_ID);
|
|
|
}
|
|
|
Log.d(TAG, "initData: VideoType:" + mVideoType + " TargetId:" + mTargetId );
|
|
@@ -100,6 +101,7 @@ public class MainActivity extends BaseActivity implements Listener.VideoListener
|
|
|
mBottomInLayout = findViewById(R.id.layout_bottom_in);
|
|
|
mBottomOutLayout = findViewById(R.id.layout_bottom_out);
|
|
|
mBottomIngLayout = findViewById(R.id.layout_bottom_ing);
|
|
|
+ mBottomEndButton = findViewById(R.id.bottom_end);
|
|
|
|
|
|
//mIconView = findViewById(R.id.iconIv);
|
|
|
mNameText = findViewById(R.id.nameTv);
|
|
@@ -117,13 +119,13 @@ public class MainActivity extends BaseActivity implements Listener.VideoListener
|
|
|
refreshInfoLayout(0);
|
|
|
});
|
|
|
cancelInBtn.setOnClickListener(v -> {
|
|
|
- mVideoManager.hangup();
|
|
|
+ clickCancelButton();
|
|
|
});
|
|
|
cancelOutBtn.setOnClickListener(v -> {
|
|
|
- mVideoManager.hangup();
|
|
|
+ clickCancelButton();
|
|
|
});
|
|
|
cancelIngBtn.setOnClickListener(v -> {
|
|
|
- mVideoManager.hangup();
|
|
|
+ clickCancelButton();
|
|
|
});
|
|
|
answerInBtn.setOnClickListener(v -> {
|
|
|
mVideoManager.answer();
|
|
@@ -134,6 +136,9 @@ public class MainActivity extends BaseActivity implements Listener.VideoListener
|
|
|
voiceOutBtn.setOnClickListener(v -> {
|
|
|
|
|
|
});
|
|
|
+ mBottomEndButton.setOnClickListener(v -> {
|
|
|
+ actionWithFinish();
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -141,7 +146,7 @@ public class MainActivity extends BaseActivity implements Listener.VideoListener
|
|
|
super.refreshViewBase();
|
|
|
//ToolsUtils.setImageView(mIconView, mContactBean.profilePath, 0, R.drawable.default_avatar);
|
|
|
mNameText.setText(mContactBean.name);
|
|
|
- mHintText.setText(mVideoType == 0 ? R.string.invite : R.string.calling);
|
|
|
+ mHintText.setText(mVideoType == Constant.VIDEO_CALL_OUT ? R.string.calling : R.string.invite);
|
|
|
}
|
|
|
|
|
|
private void initVideoManager() {
|
|
@@ -156,22 +161,49 @@ public class MainActivity extends BaseActivity implements Listener.VideoListener
|
|
|
|
|
|
private void refreshView(int step) {
|
|
|
if (step == 1) {
|
|
|
+ mVideoLayout.setVisibility(View.GONE);
|
|
|
mLoadingLayout.setVisibility(View.GONE);
|
|
|
mNameLayout.setVisibility(View.VISIBLE);
|
|
|
+ mTimeText.setVisibility(View.GONE);
|
|
|
mBottomInLayout.setVisibility(View.GONE);
|
|
|
mBottomOutLayout.setVisibility(View.VISIBLE);
|
|
|
mBottomIngLayout.setVisibility(View.GONE);
|
|
|
+ mBottomEndButton.setVisibility(View.GONE);
|
|
|
} else if (step == 2) {
|
|
|
+ mVideoLayout.setVisibility(View.GONE);
|
|
|
mLoadingLayout.setVisibility(View.GONE);
|
|
|
mNameLayout.setVisibility(View.VISIBLE);
|
|
|
+ mTimeText.setVisibility(View.GONE);
|
|
|
mBottomInLayout.setVisibility(View.VISIBLE);
|
|
|
mBottomOutLayout.setVisibility(View.GONE);
|
|
|
mBottomIngLayout.setVisibility(View.GONE);
|
|
|
+ mBottomEndButton.setVisibility(View.GONE);
|
|
|
} else if (step == 10) {
|
|
|
mVideoLayout.setVisibility(View.VISIBLE);
|
|
|
+ mLoadingLayout.setVisibility(View.GONE);
|
|
|
+ mNameLayout.setVisibility(View.GONE);
|
|
|
+ mTimeText.setVisibility(View.VISIBLE);
|
|
|
mBottomInLayout.setVisibility(View.GONE);
|
|
|
mBottomOutLayout.setVisibility(View.GONE);
|
|
|
mBottomIngLayout.setVisibility(View.VISIBLE);
|
|
|
+ mBottomEndButton.setVisibility(View.GONE);
|
|
|
+ } else if (step == 20) {
|
|
|
+ mVideoLayout.setVisibility(View.GONE);
|
|
|
+ mLoadingLayout.setVisibility(View.GONE);
|
|
|
+ mNameLayout.setVisibility(View.VISIBLE);
|
|
|
+ mTimeText.setVisibility(View.GONE);
|
|
|
+ mBottomInLayout.setVisibility(View.GONE);
|
|
|
+ mBottomOutLayout.setVisibility(View.GONE);
|
|
|
+ mBottomIngLayout.setVisibility(View.GONE);
|
|
|
+ mBottomEndButton.setVisibility(View.VISIBLE);
|
|
|
+ String text = ToolsUtils.getTimeString(mTimeCount);
|
|
|
+ mHintText.setText(text);
|
|
|
+ new Handler().postDelayed(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ actionWithFinish();
|
|
|
+ }
|
|
|
+ }, 3000);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -179,7 +211,7 @@ public class MainActivity extends BaseActivity implements Listener.VideoListener
|
|
|
public void onLoginCallback(boolean isOK) {
|
|
|
Log.d(TAG, "onLoginCallback: " + isOK);
|
|
|
//呼出
|
|
|
- if (isOK && mVideoType == 1) {
|
|
|
+ if (isOK && mVideoType == Constant.VIDEO_CALL_OUT) {
|
|
|
mVideoManager.call(mTargetId);
|
|
|
}
|
|
|
}
|
|
@@ -284,15 +316,7 @@ public class MainActivity extends BaseActivity implements Listener.VideoListener
|
|
|
Log.d(TAG, "onCallItemRemove: ");
|
|
|
stopTimeoutTimer();
|
|
|
stopTalkingTimer();
|
|
|
- if (mMediaPlayerUtils != null) {
|
|
|
- mMediaPlayerUtils.playSound(this, R.raw.video_cancel, false);
|
|
|
- }
|
|
|
- new Handler().postDelayed(new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- finish();
|
|
|
- }
|
|
|
- }, 2000);
|
|
|
+ refreshView(20);
|
|
|
}
|
|
|
|
|
|
/*动态申请权限*/
|
|
@@ -311,6 +335,7 @@ public class MainActivity extends BaseActivity implements Listener.VideoListener
|
|
|
if (mTimeoutTimer != null) {
|
|
|
stopTimeoutTimer();
|
|
|
}
|
|
|
+ mTimeCount = 0;
|
|
|
mTimeoutTimer = new Timer();
|
|
|
mTimeoutTimer.schedule(new TimerTask() {
|
|
|
@Override
|
|
@@ -360,7 +385,6 @@ public class MainActivity extends BaseActivity implements Listener.VideoListener
|
|
|
mTalkingTimer.cancel();
|
|
|
mTalkingTimer = null;
|
|
|
}
|
|
|
- mTimeCount = 0;
|
|
|
}
|
|
|
|
|
|
private void onTimeoutTimerCallback() {
|
|
@@ -372,13 +396,7 @@ public class MainActivity extends BaseActivity implements Listener.VideoListener
|
|
|
private void onTalkingTimerCallback() {
|
|
|
mTimeCount ++;
|
|
|
Log.d(TAG, "onTalkingTimerCallback: " + mTimeCount);
|
|
|
-
|
|
|
- int count = mTimeCount;
|
|
|
- long hours = count / 3600;
|
|
|
- count %= 3600;
|
|
|
- long minutes = count / 60;
|
|
|
- long second = count %= 60;
|
|
|
- String text = hours > 0 ? String.format("%02d:%02d:%02d", hours, minutes, second) : String.format("%02d:%02d", minutes, second);
|
|
|
+ String text = ToolsUtils.getTimeString(mTimeCount);
|
|
|
mTimeText.setText(text);
|
|
|
refreshInfoLayout(1);
|
|
|
}
|
|
@@ -395,11 +413,23 @@ public class MainActivity extends BaseActivity implements Listener.VideoListener
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void actionWithFinish() {
|
|
|
+ if (mMediaPlayerUtils != null) {
|
|
|
+ mMediaPlayerUtils.playSound(this, R.raw.video_cancel, false);
|
|
|
+ }
|
|
|
+ finish();
|
|
|
+ }
|
|
|
+
|
|
|
private void showToast(String content) {
|
|
|
Toast t = Toast.makeText(getApplicationContext(), content, Toast.LENGTH_SHORT);
|
|
|
t.show();
|
|
|
}
|
|
|
|
|
|
+ private void clickCancelButton() {
|
|
|
+ refreshView(20);
|
|
|
+ //mVideoManager.hangup();
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
protected void onDestroy() {
|
|
|
Log.d(TAG, "onDestroy: ");
|