This commit is contained in:
2020-09-22 11:15:45 +08:00
parent 124518a570
commit b0704fee96
8 changed files with 164 additions and 100 deletions

View File

@@ -324,54 +324,14 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
.skinManager(QMUISkinManager.defaultInstance(InCallMeetingActivity.this))
.edgeProtection(QMUIDisplayHelper.dp2px(InCallMeetingActivity.this, 20));
if (DBUser.mySelf.isManager) {
if (d.isMute) {
qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unmute).text("取消禁言").onClick(
new QMUIQuickAction.OnClickListener() {
@Override
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
quickAction.dismiss();
Net.unmuteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
@Override
public void onRequestComplete(int cmd, String result, Object orgs) {
getMembers();
}
@Override
public void onRequestError(int cmd, String result, Object orgs) {
}
}, null);
}
}
));
} else {
qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.mute).text("禁言").onClick(
new QMUIQuickAction.OnClickListener() {
@Override
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
quickAction.dismiss();
Net.muteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
@Override
public void onRequestComplete(int cmd, String result, Object orgs) {
getMembers();
}
@Override
public void onRequestError(int cmd, String result, Object orgs) {
}
}, null);
}
}
));
}
if (VIDEOSTATE) {
if (d.isVMute) {
qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.video).text("恢复视频").onClick(
if(d.isBusy()) {
if (d.isMute) {
qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unmute).text("取消禁言").onClick(
new QMUIQuickAction.OnClickListener() {
@Override
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
quickAction.dismiss();
Net.unvmuteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
Net.unmuteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
@Override
public void onRequestComplete(int cmd, String result, Object orgs) {
getMembers();
@@ -385,12 +345,12 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
}
));
} else {
qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unvideo).text("停止视频").onClick(
qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.mute).text("禁言").onClick(
new QMUIQuickAction.OnClickListener() {
@Override
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
quickAction.dismiss();
Net.vmuteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
Net.muteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
@Override
public void onRequestComplete(int cmd, String result, Object orgs) {
getMembers();
@@ -405,48 +365,115 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
));
}
qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.fullscreen).text("主界面").onClick(
if (VIDEOSTATE) {
if (d.isVMute) {
qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.video).text("恢复视频").onClick(
new QMUIQuickAction.OnClickListener() {
@Override
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
quickAction.dismiss();
Net.unvmuteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
@Override
public void onRequestComplete(int cmd, String result, Object orgs) {
getMembers();
}
@Override
public void onRequestError(int cmd, String result, Object orgs) {
}
}, null);
}
}
));
} else {
qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.unvideo).text("停止视频").onClick(
new QMUIQuickAction.OnClickListener() {
@Override
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
quickAction.dismiss();
Net.vmuteMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
@Override
public void onRequestComplete(int cmd, String result, Object orgs) {
getMembers();
}
@Override
public void onRequestError(int cmd, String result, Object orgs) {
}
}, null);
}
}
));
}
qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.fullscreen).text("主界面").onClick(
new QMUIQuickAction.OnClickListener() {
@Override
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
quickAction.dismiss();
Net.vidfloorMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
@Override
public void onRequestComplete(int cmd, String result, Object orgs) {
getMembers();
}
@Override
public void onRequestError(int cmd, String result, Object orgs) {
}
}, null);
}
}
));
}
qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("移除").onClick(
new QMUIQuickAction.OnClickListener() {
@Override
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
quickAction.dismiss();
Net.vidfloorMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
QMUITipDialog dialog = UIUtl.toastLoading("");
Net.kickMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
@Override
public void onRequestComplete(int cmd, String result, Object orgs) {
UIUtl.toastS("移除分机成功");
getMembers();
dialog.dismiss();
}
@Override
public void onRequestError(int cmd, String result, Object orgs) {
dialog.dismiss();
}
}, null);
}
}
));
}
} else if (d.isOnline()) {
//空闲的可以加入进来
qa.addAction(new QMUIQuickAction.Action().icon(R.drawable.add).text("加入会议").onClick(
new QMUIQuickAction.OnClickListener() {
@Override
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
quickAction.dismiss();
QMUITipDialog dialog = UIUtl.toastLoading("");
Net.addMember2Group(callnumber, d.phone, new HttpUtl.CallBack() {
@Override
public void onRequestComplete(int cmd, String result, Object orgs) {
UIUtl.toastS("加入会议成功");
getMembers();
dialog.dismiss();
}
qa.addAction(new QMUIQuickAction.Action().icon(android.R.drawable.ic_delete).text("移除").onClick(
new QMUIQuickAction.OnClickListener() {
@Override
public void onClick(QMUIQuickAction quickAction, QMUIQuickAction.Action action, int position) {
quickAction.dismiss();
QMUITipDialog dialog = UIUtl.toastLoading("");
Net.kickMember4Group(callnumber, d.phone, new HttpUtl.CallBack() {
@Override
public void onRequestComplete(int cmd, String result, Object orgs) {
UIUtl.toastS("移除分机成功");
getMembers();
dialog.dismiss();
}
@Override
public void onRequestError(int cmd, String result, Object orgs) {
dialog.dismiss();
}
}, null);
@Override
public void onRequestError(int cmd, String result, Object orgs) {
dialog.dismiss();
}
}, null);
}
}
}
));
));
}
}
qa.show(view);
}
@@ -770,7 +797,7 @@ public class InCallMeetingActivity extends TrBaseActivity implements OnClickList
List<String> list = new ArrayList<>();
List<String> listPhone = new ArrayList<>();
for (DBUser u : DBUser.allUser) {
if (!containMember(u.phone)) {
if (!containMember(u.phone) || u.isOnline()) {
listPhone.add(u.phone);
list.add(u.phone + " | " + u.name);
}

View File

@@ -19,6 +19,7 @@ public class DBRoot {
case Net.CMD_getGroupMenbers:
JSONObject o = JSONObject.parseObject(content);
DBGroup.onGetGroupMembers(o);
DBUser.onGetGroupMembers(o);
break;
default:
break;

View File

@@ -72,6 +72,29 @@ public class DBUser {
}
}
public static void refreshUser(DBUser user) {
for(int i=0; i < allUser.size();i++) {
DBUser u = allUser.get(i);
if(u.phone.equals(user.phone)) {
allUser.set(i, user);
mapUsers.put(user.phone, user);
return;
}
}
allUser.add(user);
mapUsers.put(user.phone, user);
}
public static void onGetGroupMembers(JSONObject content) {
DBGroup group = new DBGroup();
group.head = new DBHead(content);
JSONArray array = content.getJSONArray("members_msg");
for (Object o : array) {
DBUser u = new DBUser((JSONObject) o);
refreshUser(u);
}
}
public static DBUser getUser(String phoneNo) {
return mapUsers.get(phoneNo);
}

View File

@@ -4,11 +4,13 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.media.AudioManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.ParcelUuid;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
@@ -19,6 +21,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
@@ -213,6 +216,7 @@ public class MainActivity extends TrBaseActivity {
mTabSegment.notifyDataChanged();
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void initTabAndPager() {
mContentViewPager.setAdapter(mPagerAdapter);
// mContentViewPager.setCurrentItem(mDestPage.getPosition(), false);
@@ -220,7 +224,7 @@ public class MainActivity extends TrBaseActivity {
for (int i = 0; i < headers.size(); i++) {
mTabSegment.addTab(tabBuilder.setText(headers.get(i).name).build(this));
}
int space = QMUIDisplayHelper.dp2px(this, 16);
int space = QMUIDisplayHelper.dp2px(this, 17);
mTabSegment.setIndicator(new QMUITabIndicator(
QMUIDisplayHelper.dp2px(this, 2), false, true));
mTabSegment.setMode(QMUITabSegment.MODE_SCROLLABLE);
@@ -615,16 +619,7 @@ public class MainActivity extends TrBaseActivity {
}
public void logout(View v) {
SipEngine.getInstance().onLine = false;
SipEngine.getInstance().isRelogin = true;
// SipEngine.getInstance().Unregister();
// SipEngine.getInstance().stop();
Intent intent = new Intent(App.getContext(), LoginActivity.class);
Bundle bundle = new Bundle();
bundle.putBoolean("donotAutoLogin", true);
intent.putExtras(bundle);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
UIUtl.doLogout();
finish();
}

View File

@@ -72,7 +72,10 @@ public class Net {
}
});
}
UIUtl.toastI(result);
// UIUtl.toastI(result);
if(cmd == CMD_getUsers) {
UIUtl.doLogout();
}
}
};

View File

@@ -1,6 +1,8 @@
package com.tianrun.sipcall.ui;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
@@ -12,6 +14,9 @@ import com.qmuiteam.qmui.skin.QMUISkinManager;
import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
import com.qmuiteam.qmui.widget.dialog.QMUITipDialog;
import com.tianrun.sipcall.App;
import com.tianrun.sipcall.SipEngine;
import com.tianrun.sipcall.login.LoginActivity;
import com.tianrun.sipcall.utils.HttpUtl;
import java.util.List;
@@ -168,4 +173,21 @@ public class UIUtl {
}
builder.build().show();
}
public static void doLogout() {
UIUtl.toastI("Token 失效");
HttpUtl.token = null;
ActivityMgr.hideAll();
SipEngine.getInstance().onLine = false;
SipEngine.getInstance().isRelogin = true;
// SipEngine.getInstance().Unregister();
// SipEngine.getInstance().stop();
Intent intent = new Intent(App.getContext(), LoginActivity.class);
Bundle bundle = new Bundle();
bundle.putBoolean("donotAutoLogin", true);
intent.putExtras(bundle);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// ActivityMgr.topActivity.startActivity(intent);
App.getInstance().startActivity(intent);
}
}

View File

@@ -160,6 +160,7 @@ public class HttpUtl {
checkTokenFailed(retCode);
return "";
} else {
UIUtl.toastI("内部错误");
throw new RuntimeException(" responseCode :" + retCode);
}
@@ -184,20 +185,7 @@ public class HttpUtl {
static void checkTokenFailed(int code) {
if (code == 401) {
UIUtl.toastI("Token 失效");
token = null;
ActivityMgr.hideAll();
SipEngine.getInstance().onLine = false;
SipEngine.getInstance().isRelogin = true;
// SipEngine.getInstance().Unregister();
// SipEngine.getInstance().stop();
Intent intent = new Intent(App.getContext(), LoginActivity.class);
Bundle bundle = new Bundle();
bundle.putBoolean("donotAutoLogin", true);
intent.putExtras(bundle);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// ActivityMgr.topActivity.startActivity(intent);
App.getInstance().startActivity(intent);
UIUtl.doLogout();
}
}
@@ -209,7 +197,7 @@ public class HttpUtl {
* @return 所代表远程资源的响应结果
* @throws Exception
*/
public static String doPost(String url, String param) {
public static String doPost(String url, String param) throws Exception {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
@@ -252,7 +240,12 @@ public class HttpUtl {
}
int retCode = conn.getResponseCode();
checkTokenFailed(retCode);
if(retCode == 401) {
checkTokenFailed(retCode);
} else {
UIUtl.toastI("内部错误");
throw new RuntimeException(" responseCode :" + retCode);
}
} catch (Exception e) {
e.printStackTrace();
Log.i("http", e.toString());

View File

@@ -269,7 +269,7 @@
android:text="退出"
android:textColor="#FFFFFF"
android:textSize="20sp"
android:visibility="invisible" />
android:visibility="visible" />
</LinearLayout>
</ScrollView>