正在显示
4 个修改的文件
包含
538 行增加
和
484 行删除
| 1 | -//package com.mang.xdy.demo.activity; | ||
| 2 | -// | ||
| 3 | -// import android.app.AlertDialog; | ||
| 4 | -// import android.app.Dialog; | ||
| 5 | -// import android.content.Context; | ||
| 6 | -// import android.content.DialogInterface; | ||
| 7 | -// import android.media.Image; | ||
| 8 | -// import android.os.Bundle; | ||
| 9 | -// import android.os.Handler; | ||
| 10 | -// import android.os.Message; | ||
| 11 | -// import android.support.design.widget.TabLayout; | ||
| 12 | -// import android.support.v4.view.ViewPager; | ||
| 13 | -// import android.support.v7.app.AppCompatActivity; | ||
| 14 | -// import android.text.TextUtils; | ||
| 15 | -// import android.util.Log; | ||
| 16 | -// import android.view.Gravity; | ||
| 17 | -// import android.view.SurfaceView; | ||
| 18 | -// import android.view.View; | ||
| 19 | -// import android.view.Window; | ||
| 20 | -// import android.view.WindowManager; | ||
| 21 | -// import android.widget.Button; | ||
| 22 | -// import android.widget.EditText; | ||
| 23 | -// import android.widget.ImageView; | ||
| 24 | -// import android.widget.TextView; | ||
| 25 | -// import android.widget.Toast; | ||
| 26 | -// | ||
| 27 | -// import com.eventhandle.SmartEventCallback; | ||
| 28 | -// import com.google.gson.Gson; | ||
| 29 | -// import com.mang.xdy.common.Constants; | ||
| 30 | -// import com.mang.xdy.core.XdySdk; | ||
| 31 | -// import com.mang.xdy.demo.R; | ||
| 32 | -// import com.mang.xdy.demo.adapter.SimpleFragmentPagerAdapter; | ||
| 33 | -// import com.mang.xdy.demo.bean.AudioPlayBean; | ||
| 34 | -// import com.mang.xdy.demo.bean.ChatBean; | ||
| 35 | -// import com.mang.xdy.demo.bean.DocEntity; | ||
| 36 | -// import com.mang.xdy.demo.bean.ErrorEntity; | ||
| 37 | -// import com.mang.xdy.demo.bean.InitClassSuccessEntity; | ||
| 38 | -// import com.mang.xdy.demo.bean.JoinClass; | ||
| 39 | -// import com.mang.xdy.demo.bean.LiveBean; | ||
| 40 | -// import com.mang.xdy.demo.bean.PublisherEntity; | ||
| 41 | -// import com.mang.xdy.demo.bean.PublisherVideoExitBean; | ||
| 42 | -// import com.mang.xdy.demo.bean.PublisherVideoReturnBean; | ||
| 43 | -// import com.mang.xdy.demo.bean.VideoPlayBean; | ||
| 44 | -// import com.mang.xdy.demo.utils.JsonUtil; | ||
| 45 | -// import com.mang.xdy.demo.utils.ToastUtil; | ||
| 46 | -// import com.mang.xdy.demo.widget.dialog.LoginDialog; | ||
| 47 | -// import com.mang.xdy.listener.ObserverListener; | ||
| 48 | -// import com.mang.xdy.utils.UIUtils; | ||
| 49 | -// import com.mang.xdy.utils.XdyLogUtil; | ||
| 50 | -// import com.mang.xdy.utils.XdyStringUtils; | ||
| 51 | -// | ||
| 52 | -// import butterknife.BindView; | ||
| 53 | -// import butterknife.ButterKnife; | ||
| 54 | -// import butterknife.OnClick; | ||
| 55 | -// | ||
| 56 | -//public class VideoPublisherActivity extends AppCompatActivity implements ObserverListener{ | ||
| 57 | -// private final static String TAG = "VideoPlayActivity"; | ||
| 58 | -// @BindView(R.id.btn_videoPlay_pubsherVideo) | ||
| 59 | -// Button btnVideoPlayPubsherVideo; | ||
| 60 | -// @BindView(R.id.btn_videoPlay_chat) | ||
| 61 | -// Button btnVideoPlayChat; | ||
| 62 | -// @BindView(R.id.tv_videoPlay_url) | ||
| 63 | -// TextView tv_videoPlay_url; | ||
| 64 | -// @BindView(R.id.surfaceview_pubisherVideo) | ||
| 65 | -// SurfaceView surfaceview_pubisherVideo; | ||
| 66 | -// @BindView(R.id.btn_videoPlay_publisherAudio) | ||
| 67 | -// Button btn_videoPlay_publisherAudio; | ||
| 68 | -//// @BindView(R.id.img_playVideo_novideo) | ||
| 69 | -//// ImageView img_playVideo_novideo; | ||
| 70 | -// private String username=""; | ||
| 71 | -// private String userpwd=""; | ||
| 72 | -// private PersonDialog personDialog; | ||
| 73 | -// private SimpleFragmentPagerAdapter pagerAdapter; | ||
| 74 | -// private XdySdk xdySdk; | ||
| 75 | -// private ViewPager viewPager; | ||
| 76 | -// //默认推送视频 | ||
| 77 | -// private boolean isPusherAudio=false; | ||
| 78 | -// /*默认是可以退出的,如果进行推流则需要主动退出*/ | ||
| 79 | -// private boolean isAbleback=false; | ||
| 80 | -// private TabLayout tabLayout; | ||
| 81 | -// @BindView(R.id.surfaceview_playVideo) | ||
| 82 | -// SurfaceView surfaceviewPlayVideo; | ||
| 83 | -// @BindView(R.id.btn_videoPlay_stop) | ||
| 84 | -// Button btn_videoPlay_stop; | ||
| 85 | -// private String initClass = ""; | ||
| 86 | -// private String publisherSuccess=""; | ||
| 87 | -// /*视频成功返回值*/ | ||
| 88 | -// private PublisherVideoReturnBean publisherVideoReturnBean; | ||
| 89 | -// private Handler handler = new Handler() { | ||
| 90 | -// @Override | ||
| 91 | -// public void handleMessage(Message msg) { | ||
| 92 | -// super.handleMessage(msg); | ||
| 93 | -// switch (msg.what) { | ||
| 94 | -// case -2: | ||
| 95 | -// //加入课堂输入用户名,密码 | ||
| 96 | -// joinClass("", (Boolean) msg.obj); | ||
| 97 | -// break; | ||
| 98 | -// case -1: | ||
| 99 | -// //退出 | ||
| 100 | -// // xdySdk.api("leaveClass", ""); | ||
| 101 | -// break; | ||
| 102 | -// case 0: | ||
| 103 | -// parseJoinClass((String) msg.obj,true); | ||
| 104 | -// break; | ||
| 105 | -// case 7: | ||
| 106 | -// break; | ||
| 107 | -// case 8: | ||
| 108 | -// btnVideoPlayPubsherVideo.setEnabled(true); | ||
| 109 | -// btn_videoPlay_publisherAudio.setEnabled(true); | ||
| 110 | -// break; | ||
| 111 | -// | ||
| 112 | -// } | ||
| 113 | -// } | ||
| 114 | -// }; | ||
| 115 | -// | ||
| 116 | -// @Override | ||
| 117 | -// protected void onCreate(final Bundle savedInstanceState) { | ||
| 118 | -// super.onCreate(savedInstanceState); | ||
| 119 | -// getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); //屏幕常亮 | ||
| 120 | -// setContentView(R.layout.activity_video_publisher); | ||
| 121 | -// ButterKnife.bind(this); | ||
| 122 | -// btn_videoPlay_publisherAudio.setVisibility(View.GONE); | ||
| 123 | -//// setTablayout(); | ||
| 124 | -// xdySdk=XdySdk.getXdyInstance(); | ||
| 125 | -// xdySdk.add(this); | ||
| 126 | -// init(); | ||
| 127 | -// XdyLogUtil.e(TAG,"当前线程 main:"+android.os.Process.myPid()+"线程:"+Thread.currentThread().getId()+""); | ||
| 128 | -// xdySdk.setOnXdyAsyncMessageLitener(new XdySdk.OnXdyAsyncMessageLitener() { | ||
| 129 | -// @Override | ||
| 130 | -// public void onXdyAsyncMessageReceiver(String type, String response) { | ||
| 131 | -// | ||
| 132 | -// switch (type) { | ||
| 133 | -// case "class_init_success": | ||
| 134 | -// ToastUtil.showToastshort("初始化课堂成功", VideoPublisherActivity.this); | ||
| 135 | -// Message message = Message.obtain(); | ||
| 136 | -// message.obj = response; | ||
| 137 | -// message.what = 0; | ||
| 138 | -// handler.sendMessage(message); | ||
| 139 | -// break; | ||
| 140 | -// case "class_join_success": | ||
| 141 | -// //加入课堂成功 | ||
| 142 | -// UIUtils.closeDialog(mLoginDialog); | ||
| 143 | -// ToastUtil.showToastshort("加入课堂成功", VideoPublisherActivity.this); | ||
| 144 | -// //只有加入课堂成功才可以点击推流的按钮 | ||
| 145 | -// handler.sendEmptyMessage(8); | ||
| 146 | -// break; | ||
| 147 | -// case "video_stop": | ||
| 148 | -//// handler.sendEmptyMessage(7); | ||
| 149 | -// break; | ||
| 150 | -// case "audio_stop": | ||
| 151 | -// | ||
| 152 | -// break; | ||
| 153 | -// } | ||
| 154 | -// XdyLogUtil.e(TAG,"type:"+type+" response:"+response); | ||
| 155 | -// } | ||
| 156 | -// }); | ||
| 157 | -// } | ||
| 158 | -// | ||
| 159 | -// public void init() { | ||
| 160 | -// initClass = getIntent().getStringExtra("init"); | ||
| 161 | -// xdySdk.api("init", initClass); | ||
| 162 | -// | ||
| 163 | -// } | ||
| 164 | -//private LoginDialog mLoginDialog; | ||
| 165 | -// //判断解析是否有密码 | ||
| 166 | -// public void parseJoinClass(String rsponse,boolean isShowPwd){ | ||
| 167 | -// InitClassSuccessEntity initClassSuccessEntity=JsonUtil.parseJsonToBean(rsponse,InitClassSuccessEntity.class); | ||
| 168 | -// if(initClassSuccessEntity!=null) { | ||
| 169 | -// if (initClassSuccessEntity.isPasswordRequired()) { | ||
| 170 | -// isShowPwd=true; | ||
| 171 | -// } else { | ||
| 172 | -// isShowPwd=false; | ||
| 173 | -// userpwd = "123321"; | ||
| 174 | -// } | ||
| 175 | -// } | ||
| 176 | -// | ||
| 177 | -// if (mLoginDialog == null) { | ||
| 178 | -// mLoginDialog = new LoginDialog(this, isShowPwd, null); | ||
| 179 | -// mLoginDialog.show(); | ||
| 180 | -// mLoginDialog.setCanceledOnTouchOutside(false); | ||
| 181 | -// final boolean finalIsShowPwd = isShowPwd; | ||
| 182 | -// mLoginDialog.setBtnClick(new View.OnClickListener() { | ||
| 183 | -// @Override | ||
| 184 | -// public void onClick(View view) { | ||
| 185 | -// String[] nameAndPwd = mLoginDialog.getNameAndPwd(); | ||
| 186 | -// joinClass(nameAndPwd[0], nameAndPwd[1], finalIsShowPwd); | ||
| 187 | -// } | ||
| 188 | -// }); | ||
| 189 | -// }else if (mLoginDialog != null) { | ||
| 190 | -// UIUtils.closeDialog(mLoginDialog); | ||
| 191 | -// } | ||
| 192 | -// } | ||
| 193 | -// //加入课堂 | ||
| 194 | -// public void joinClass(String username,String userpwd,boolean isShowPwd) { | ||
| 195 | -// JoinClass joinClass=new JoinClass(); | ||
| 196 | -// joinClass.setHasCamera(false); | ||
| 197 | -// joinClass.setHasMicrophone(false); | ||
| 198 | -// joinClass.setUserName(username); | ||
| 199 | -// if(!isShowPwd){ | ||
| 200 | -// joinClass.setPassword("123321"); | ||
| 201 | -// }else{ | ||
| 202 | -// joinClass.setPassword(userpwd); | ||
| 203 | -// } | ||
| 204 | -// String temp=new Gson().toJson(joinClass); | ||
| 205 | -// String jsonParmp = XdyStringUtils.stringToJson(temp, true); | ||
| 206 | -// XdyLogUtil.e("加入课堂", jsonParmp); | ||
| 207 | -// xdySdk.api("joinClass", jsonParmp); | ||
| 208 | -// } | ||
| 209 | -// | ||
| 210 | -// //加入课堂 | ||
| 211 | -// public void joinClass(String rsponse,boolean isShowPwd) { | ||
| 212 | -// | ||
| 213 | -//// String temp = "{\n" + | ||
| 214 | -//// " \"userName\":\"base\",\n" + | ||
| 215 | -//// " \"password\":\"123321\",\n" + | ||
| 216 | -//// " \"hasCamera\":false,\n" + | ||
| 217 | -//// " \"hasMicrophone\":false}"; | ||
| 218 | -// JoinClass joinClass=new JoinClass(); | ||
| 219 | -// joinClass.setHasCamera(false); | ||
| 220 | -// joinClass.setHasMicrophone(false); | ||
| 221 | -// joinClass.setUserName(username); | ||
| 222 | -// if(!isShowPwd){ | ||
| 223 | -// joinClass.setPassword("123321"); | ||
| 224 | -// }else{ | ||
| 225 | -// joinClass.setPassword(userpwd); | ||
| 226 | -// } | ||
| 227 | -// String temp=new Gson().toJson(joinClass); | ||
| 228 | -// String jsonParmp = XdyStringUtils.stringToJson(temp, true); | ||
| 229 | -// XdyLogUtil.e("加入课堂", jsonParmp); | ||
| 230 | -// xdySdk.api("joinClass", jsonParmp); | ||
| 231 | -// } | ||
| 232 | -// | ||
| 233 | -// | ||
| 234 | -// | ||
| 235 | -// public void sendMeg() { | 1 | +package com.mang.xdy.demo.activity; |
| 2 | + | ||
| 3 | + import android.app.AlertDialog; | ||
| 4 | + import android.app.Dialog; | ||
| 5 | + import android.content.Context; | ||
| 6 | + import android.content.DialogInterface; | ||
| 7 | + import android.media.Image; | ||
| 8 | + import android.os.Bundle; | ||
| 9 | + import android.os.Handler; | ||
| 10 | + import android.os.Message; | ||
| 11 | + import android.support.design.widget.TabLayout; | ||
| 12 | + import android.support.v4.view.ViewPager; | ||
| 13 | + import android.support.v7.app.AppCompatActivity; | ||
| 14 | + import android.text.TextUtils; | ||
| 15 | + import android.util.Log; | ||
| 16 | + import android.view.Gravity; | ||
| 17 | + import android.view.SurfaceView; | ||
| 18 | + import android.view.View; | ||
| 19 | + import android.view.Window; | ||
| 20 | + import android.view.WindowManager; | ||
| 21 | + import android.widget.Button; | ||
| 22 | + import android.widget.EditText; | ||
| 23 | + import android.widget.ImageView; | ||
| 24 | + import android.widget.TextView; | ||
| 25 | + import android.widget.Toast; | ||
| 26 | + | ||
| 27 | + import com.eventhandle.SmartEventCallback; | ||
| 28 | + import com.google.gson.Gson; | ||
| 29 | + import com.mang.xdy.common.Constants; | ||
| 30 | + import com.mang.xdy.core.XdySdk; | ||
| 31 | + import com.mang.xdy.demo.R; | ||
| 32 | + import com.mang.xdy.demo.adapter.SimpleFragmentPagerAdapter; | ||
| 33 | + import com.mang.xdy.demo.bean.AudioPlayBean; | ||
| 34 | + import com.mang.xdy.demo.bean.ChatBean; | ||
| 35 | + import com.mang.xdy.demo.bean.DocEntity; | ||
| 36 | + import com.mang.xdy.demo.bean.ErrorEntity; | ||
| 37 | + import com.mang.xdy.demo.bean.InitClassSuccessEntity; | ||
| 38 | + import com.mang.xdy.demo.bean.JoinClass; | ||
| 39 | + import com.mang.xdy.demo.bean.LiveBean; | ||
| 40 | + import com.mang.xdy.demo.bean.PublisherEntity; | ||
| 41 | + import com.mang.xdy.demo.bean.PublisherVideoExitBean; | ||
| 42 | + import com.mang.xdy.demo.bean.PublisherVideoReturnBean; | ||
| 43 | + import com.mang.xdy.demo.bean.VideoPlayBean; | ||
| 44 | + import com.mang.xdy.demo.utils.JsonUtil; | ||
| 45 | + import com.mang.xdy.demo.utils.ToastUtil; | ||
| 46 | + import com.mang.xdy.demo.widget.dialog.LoginDialog; | ||
| 47 | + import com.mang.xdy.listener.ObserverListener; | ||
| 48 | + import com.mang.xdy.utils.UIUtils; | ||
| 49 | + import com.mang.xdy.utils.XdyLogUtil; | ||
| 50 | + import com.mang.xdy.utils.XdyStringUtils; | ||
| 51 | + | ||
| 52 | + import butterknife.BindView; | ||
| 53 | + import butterknife.ButterKnife; | ||
| 54 | + import butterknife.OnClick; | ||
| 55 | + | ||
| 56 | +public class VideoPublisherActivity extends AppCompatActivity implements ObserverListener{ | ||
| 57 | + private final static String TAG = "VideoPlayActivity"; | ||
| 58 | + @BindView(R.id.btn_videoPlay_pubsherVideo) | ||
| 59 | + Button btnVideoPlayPubsherVideo; | ||
| 60 | + @BindView(R.id.btn_videoPlay_chat) | ||
| 61 | + Button btnVideoPlayChat; | ||
| 62 | + @BindView(R.id.tv_videoPlay_url) | ||
| 63 | + TextView tv_videoPlay_url; | ||
| 64 | + @BindView(R.id.surfaceview_pubisherVideo) | ||
| 65 | + SurfaceView surfaceview_pubisherVideo; | ||
| 66 | + @BindView(R.id.btn_videoPlay_publisherAudio) | ||
| 67 | + Button btn_videoPlay_publisherAudio; | ||
| 68 | +// @BindView(R.id.img_playVideo_novideo) | ||
| 69 | +// ImageView img_playVideo_novideo; | ||
| 70 | + private String username=""; | ||
| 71 | + private String userpwd=""; | ||
| 72 | + private PersonDialog personDialog; | ||
| 73 | + private SimpleFragmentPagerAdapter pagerAdapter; | ||
| 74 | + private XdySdk xdySdk; | ||
| 75 | + private ViewPager viewPager; | ||
| 76 | + //默认推送视频 | ||
| 77 | + private boolean isPusherAudio=false; | ||
| 78 | + /*默认是可以退出的,如果进行推流则需要主动退出*/ | ||
| 79 | + private boolean isAbleback=false; | ||
| 80 | + private TabLayout tabLayout; | ||
| 81 | + @BindView(R.id.surfaceview_playVideo) | ||
| 82 | + SurfaceView surfaceviewPlayVideo; | ||
| 83 | + @BindView(R.id.btn_videoPlay_stop) | ||
| 84 | + Button btn_videoPlay_stop; | ||
| 85 | + private String initClass = ""; | ||
| 86 | + private String publisherSuccess=""; | ||
| 87 | + /*视频成功返回值*/ | ||
| 88 | + private PublisherVideoReturnBean publisherVideoReturnBean; | ||
| 89 | + private Handler handler = new Handler() { | ||
| 90 | + @Override | ||
| 91 | + public void handleMessage(Message msg) { | ||
| 92 | + super.handleMessage(msg); | ||
| 93 | + switch (msg.what) { | ||
| 94 | + case -2: | ||
| 95 | + //加入课堂输入用户名,密码 | ||
| 96 | + joinClass("", (Boolean) msg.obj); | ||
| 97 | + break; | ||
| 98 | + case -1: | ||
| 99 | + //退出 | ||
| 100 | + // xdySdk.api("leaveClass", ""); | ||
| 101 | + break; | ||
| 102 | + case 0: | ||
| 103 | + parseJoinClass((String) msg.obj,true); | ||
| 104 | + break; | ||
| 105 | + case 7: | ||
| 106 | + break; | ||
| 107 | + case 8: | ||
| 108 | + btnVideoPlayPubsherVideo.setEnabled(true); | ||
| 109 | + btn_videoPlay_publisherAudio.setEnabled(true); | ||
| 110 | + break; | ||
| 111 | + | ||
| 112 | + } | ||
| 113 | + } | ||
| 114 | + }; | ||
| 115 | + | ||
| 116 | + @Override | ||
| 117 | + protected void onCreate(final Bundle savedInstanceState) { | ||
| 118 | + super.onCreate(savedInstanceState); | ||
| 119 | + getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); //屏幕常亮 | ||
| 120 | + setContentView(R.layout.activity_video_publisher); | ||
| 121 | + ButterKnife.bind(this); | ||
| 122 | + btn_videoPlay_publisherAudio.setVisibility(View.GONE); | ||
| 123 | +// setTablayout(); | ||
| 124 | + xdySdk=XdySdk.getXdyInstance(); | ||
| 125 | + xdySdk.add(this); | ||
| 126 | + init(); | ||
| 127 | + XdyLogUtil.e(TAG,"当前线程 main:"+android.os.Process.myPid()+"线程:"+Thread.currentThread().getId()+""); | ||
| 128 | + xdySdk.setOnXdyAsyncMessageLitener(new XdySdk.OnXdyAsyncMessageLitener() { | ||
| 129 | + @Override | ||
| 130 | + public void onXdyAsyncMessageReceiver(String type, String response) { | ||
| 131 | + | ||
| 132 | + switch (type) { | ||
| 133 | + case "class_init_success": | ||
| 134 | + ToastUtil.showToastshort("初始化课堂成功", VideoPublisherActivity.this); | ||
| 135 | + Message message = Message.obtain(); | ||
| 136 | + message.obj = response; | ||
| 137 | + message.what = 0; | ||
| 138 | + handler.sendMessage(message); | ||
| 139 | + break; | ||
| 140 | + case "class_join_success": | ||
| 141 | + //加入课堂成功 | ||
| 142 | + UIUtils.closeDialog(mLoginDialog); | ||
| 143 | + ToastUtil.showToastshort("加入课堂成功", VideoPublisherActivity.this); | ||
| 144 | + //只有加入课堂成功才可以点击推流的按钮 | ||
| 145 | + handler.sendEmptyMessage(8); | ||
| 146 | + break; | ||
| 147 | + case "video_stop": | ||
| 148 | +// handler.sendEmptyMessage(7); | ||
| 149 | + break; | ||
| 150 | + case "audio_stop": | ||
| 151 | + | ||
| 152 | + break; | ||
| 153 | + } | ||
| 154 | + XdyLogUtil.e(TAG,"type:"+type+" response:"+response); | ||
| 155 | + } | ||
| 156 | + }); | ||
| 157 | + } | ||
| 158 | + | ||
| 159 | + public void init() { | ||
| 160 | + initClass = getIntent().getStringExtra("init"); | ||
| 161 | + xdySdk.api("init", initClass); | ||
| 162 | + | ||
| 163 | + } | ||
| 164 | +private LoginDialog mLoginDialog; | ||
| 165 | + //判断解析是否有密码 | ||
| 166 | + public void parseJoinClass(String rsponse,boolean isShowPwd){ | ||
| 167 | + InitClassSuccessEntity initClassSuccessEntity=JsonUtil.parseJsonToBean(rsponse,InitClassSuccessEntity.class); | ||
| 168 | + if(initClassSuccessEntity!=null) { | ||
| 169 | + if (initClassSuccessEntity.isPasswordRequired()) { | ||
| 170 | + isShowPwd=true; | ||
| 171 | + } else { | ||
| 172 | + isShowPwd=false; | ||
| 173 | + userpwd = "123321"; | ||
| 174 | + } | ||
| 175 | + } | ||
| 176 | + | ||
| 177 | + if (mLoginDialog == null) { | ||
| 178 | + mLoginDialog = new LoginDialog(this, isShowPwd, null); | ||
| 179 | + mLoginDialog.show(); | ||
| 180 | + mLoginDialog.setCanceledOnTouchOutside(false); | ||
| 181 | + final boolean finalIsShowPwd = isShowPwd; | ||
| 182 | + mLoginDialog.setBtnClick(new View.OnClickListener() { | ||
| 183 | + @Override | ||
| 184 | + public void onClick(View view) { | ||
| 185 | + String[] nameAndPwd = mLoginDialog.getNameAndPwd(); | ||
| 186 | + joinClass(nameAndPwd[0], nameAndPwd[1], finalIsShowPwd); | ||
| 187 | + } | ||
| 188 | + }); | ||
| 189 | + }else if (mLoginDialog != null) { | ||
| 190 | + UIUtils.closeDialog(mLoginDialog); | ||
| 191 | + } | ||
| 192 | + } | ||
| 193 | + //加入课堂 | ||
| 194 | + public void joinClass(String username,String userpwd,boolean isShowPwd) { | ||
| 195 | + JoinClass joinClass=new JoinClass(); | ||
| 196 | + joinClass.setHasCamera(false); | ||
| 197 | + joinClass.setHasMicrophone(false); | ||
| 198 | + joinClass.setUserName(username); | ||
| 199 | + if(!isShowPwd){ | ||
| 200 | + joinClass.setPassword("123321"); | ||
| 201 | + }else{ | ||
| 202 | + joinClass.setPassword(userpwd); | ||
| 203 | + } | ||
| 204 | + String temp=new Gson().toJson(joinClass); | ||
| 205 | + String jsonParmp = XdyStringUtils.stringToJson(temp, true); | ||
| 206 | + XdyLogUtil.e("加入课堂", jsonParmp); | ||
| 207 | + xdySdk.api("joinClass", jsonParmp); | ||
| 208 | + } | ||
| 209 | + | ||
| 210 | + //加入课堂 | ||
| 211 | + public void joinClass(String rsponse,boolean isShowPwd) { | ||
| 212 | + | ||
| 236 | // String temp = "{\n" + | 213 | // String temp = "{\n" + |
| 237 | -// " \"message\": \"固定发送测试 hello\",\n" + | ||
| 238 | -// " \"to\": 0\n" + | ||
| 239 | -// "}"; | ||
| 240 | -// String jsonParmp = XdyStringUtils.stringToJson(temp, true); | ||
| 241 | -// XdyLogUtil.e(TAG, "聊天" + jsonParmp); | ||
| 242 | -// xdySdk.api("sendChatMsg", jsonParmp); | ||
| 243 | -// | ||
| 244 | -// } | ||
| 245 | -// | ||
| 246 | -// /** | ||
| 247 | -// * 获取封装的推流地址 | ||
| 248 | -// */ | ||
| 249 | -// public void publisherVideoText(){ | ||
| 250 | -// xdySdk.api("publishVideo", "", surfaceview_pubisherVideo, VideoPublisherActivity.this); | ||
| 251 | -//// xdySdk.api(Constants.PUBLISH_AUDIO, "", surfaceview_pubisherVideo, VideoPublisherActivity.this); | ||
| 252 | -// | ||
| 253 | -// } | ||
| 254 | -// | ||
| 255 | -// @Override | ||
| 256 | -// protected void onPause() { | ||
| 257 | -// super.onPause(); | ||
| 258 | -//// xdySdk.onPublisherPause(); | ||
| 259 | -// } | ||
| 260 | -// | ||
| 261 | -// @Override | ||
| 262 | -// protected void onResume() { | ||
| 263 | -// super.onResume(); | ||
| 264 | -//// xdySdk.onPublisherResume(); | ||
| 265 | -// } | ||
| 266 | -// | ||
| 267 | -// @Override | ||
| 268 | -// protected void onDestroy() { | ||
| 269 | -// xdySdk.onPublisherStop(); | ||
| 270 | -// super.onDestroy(); | ||
| 271 | -// } | ||
| 272 | -// | ||
| 273 | -// @OnClick({R.id.btn_videoPlay_chat, R.id.btn_videoPlay_pubsherVideo,R.id.btn_videoPlay_publisherAudio,R.id.btn_videoPlay_stop}) | ||
| 274 | -// public void onViewClicked(View view) { | ||
| 275 | -// switch (view.getId()) { | ||
| 276 | -// case R.id.btn_videoPlay_chat: | ||
| 277 | -// handler.sendEmptyMessage(4); | ||
| 278 | -// break; | ||
| 279 | -// case R.id.btn_videoPlay_pubsherVideo: | ||
| 280 | -//// getPublish(); | ||
| 281 | -// publisherVideoText(); | ||
| 282 | -//// publisherAudioText(); | ||
| 283 | -// ToastUtil.showToastshort("推送视频",VideoPublisherActivity.this); | ||
| 284 | -// btnVideoPlayPubsherVideo.setClickable(false); | ||
| 285 | -// | ||
| 286 | -// break; | ||
| 287 | -// case R.id.btn_videoPlay_stop: | ||
| 288 | -// ToastUtil.showToastshort("正在退出,请稍等",this); | ||
| 289 | -// xdySdk.api("unPublishVideo",""); | ||
| 290 | -//// finish(); | ||
| 291 | -// break; | ||
| 292 | -// } | ||
| 293 | -// } | ||
| 294 | -// | ||
| 295 | -// @Override | ||
| 296 | -// public void observerUpData(final String type, final String parameter) { | ||
| 297 | -// handler.post(new Runnable() { | ||
| 298 | -// @Override | ||
| 299 | -// public void run() { | ||
| 300 | -// handError(type,parameter); | ||
| 301 | -// } | ||
| 302 | -// }); | ||
| 303 | -// } | ||
| 304 | -// public void handError(String errorId, String errorMsg) { | ||
| 305 | -// ErrorEntity errorEntity = JsonUtil.parseJsonToBean(errorMsg, ErrorEntity.class); | ||
| 306 | -// if (errorEntity == null) { | ||
| 307 | -// return; | ||
| 308 | -// } | ||
| 309 | -// switch (errorEntity.getCode() + "") { | ||
| 310 | -// case "100": | ||
| 311 | -// case "101": | ||
| 312 | -// case "102": | ||
| 313 | -// case "103": | ||
| 314 | -// case "104": | ||
| 315 | -// case "105": | ||
| 316 | -// case "106": | ||
| 317 | -// case "107": | ||
| 318 | -// case "200": | ||
| 319 | -// case "201": | ||
| 320 | -// case "202": | ||
| 321 | -// case "203": | ||
| 322 | -// case "204": | ||
| 323 | -// case "205": | ||
| 324 | -// case "206": | ||
| 325 | -// case "207": | ||
| 326 | -// case "208": | ||
| 327 | -// ToastUtil.showToastshort(errorEntity.getReson(), this); | ||
| 328 | -// exit(); | ||
| 329 | -// break; | ||
| 330 | -// case "300": | ||
| 331 | -// case "301": | ||
| 332 | -// break; | ||
| 333 | -// case "10000": | ||
| 334 | -// ToastUtil.showToastshort(errorEntity.getReson(), this); | ||
| 335 | -// break; | ||
| 336 | -// case "10001": | ||
| 337 | -// ToastUtil.showToastshort(errorEntity.getReson(), this); | ||
| 338 | -// break; | ||
| 339 | -// case "20000": | ||
| 340 | -// isDefaultExit=false; | ||
| 341 | -// showErrorDialog(); | ||
| 342 | -// ToastUtil.showToastshort(errorEntity.getReson(), this); | ||
| 343 | -// break; | ||
| 344 | -// } | ||
| 345 | -// | ||
| 346 | -// | ||
| 347 | -// } | ||
| 348 | -// | ||
| 349 | -// class EventHande implements SmartEventCallback { | ||
| 350 | -// @Override | ||
| 351 | -// public void onCallback(int code, long param1, long param2, String param3, String param4, Object param5) { | ||
| 352 | -// switch (code) { | ||
| 353 | -// case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_STARTED: | ||
| 354 | -// Log.i(TAG, "开始。。"); | ||
| 355 | -// break; | ||
| 356 | -// case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_CONNECTING: | ||
| 357 | -// Log.i(TAG, "连接中。。"); | ||
| 358 | -// break; | ||
| 359 | -// case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_CONNECTION_FAILED: | ||
| 360 | -// Log.i(TAG, "连接失败。。"); | ||
| 361 | -// break; | ||
| 362 | -// case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_CONNECTED: | ||
| 363 | -// Log.i(TAG, "连接成功。。"); | ||
| 364 | -//// PublisherEntity publisherEntity=new PublisherEntity(); | ||
| 365 | -//// if(TextUtils.isEmpty(publisherSuccess)) { | ||
| 366 | -//// publisherEntity.setPublishUrl(publisherSuccess); | ||
| 367 | -//// XdySdk.setAsyncApi("publishVideo", new Gson().toJson(publisherEntity)); | ||
| 368 | -//// } | ||
| 369 | -// //TODO | ||
| 370 | -// break; | ||
| 371 | -// case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_DISCONNECTED: | ||
| 372 | -// Log.i(TAG, "连接断开。。"); | ||
| 373 | -// break; | ||
| 374 | -// case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_STOP: | ||
| 375 | -// Log.i(TAG, "关闭。。"); | ||
| 376 | -// break; | ||
| 377 | -// case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_RESOLUTION_INFO: | ||
| 378 | -// Log.i(TAG, "分辨率信息: width: " + param1 + ", height: " + param2); | ||
| 379 | -// break; | ||
| 380 | -// case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_NO_MEDIADATA_RECEIVED: | ||
| 381 | -// Log.i(TAG, "收不到媒体数据,可能是url错误。。"); | ||
| 382 | -// } | ||
| 383 | -// | ||
| 384 | -// } | ||
| 385 | -// } | ||
| 386 | -// /*mcu断开或者网络原因为false*/ | ||
| 387 | -// private boolean isDefaultExit=true; | ||
| 388 | -// private android.support.v7.app.AlertDialog mErrorDialog; | ||
| 389 | -// public void showErrorDialog() { | ||
| 390 | -//// if(isDefaultExit){ | ||
| 391 | -//// return; | ||
| 392 | -//// } | ||
| 393 | -// if (mErrorDialog != null) | ||
| 394 | -// return; | ||
| 395 | -// | ||
| 396 | -// mErrorDialog = new android.support.v7.app.AlertDialog.Builder(this) | ||
| 397 | -// .setTitle("退出") | ||
| 398 | -// .setMessage("您设备的网络属于断开状态,请重新进入") | ||
| 399 | -// .setPositiveButton("确认", new DialogInterface.OnClickListener() { | ||
| 400 | -// @Override | ||
| 401 | -// public void onClick(DialogInterface dialogInterface, int i) { | ||
| 402 | -// dialogInterface.dismiss(); | ||
| 403 | -// exit(); | ||
| 404 | -// } | ||
| 405 | -// }) | ||
| 406 | -// .create(); | ||
| 407 | -// mErrorDialog.setCanceledOnTouchOutside(false); | ||
| 408 | -// | ||
| 409 | -// mErrorDialog.show(); | ||
| 410 | -// | ||
| 411 | -// } | ||
| 412 | -// | ||
| 413 | -// /** | ||
| 414 | -// * 错误情况退出 | ||
| 415 | -// */ | ||
| 416 | -// public void exit() { | ||
| 417 | -// | ||
| 418 | -// UIUtils.closeDialog(mLoginDialog); | ||
| 419 | -//// xdySdk.onPublisherStop(); | ||
| 420 | -// xdySdk.remove(this); | ||
| 421 | -// handler.removeCallbacksAndMessages(null); | ||
| 422 | -// this.finish(); | ||
| 423 | -// } | ||
| 424 | -// class PersonDialog extends Dialog { | ||
| 425 | -// public PersonDialog(Context context) { | ||
| 426 | -// this(context, false); | ||
| 427 | -// | ||
| 428 | -// } | ||
| 429 | -// | ||
| 430 | -// public PersonDialog(Context context, boolean showPwd) { | ||
| 431 | -// this(context, R.style.bottom_dialog, showPwd); | ||
| 432 | -// } | ||
| 433 | -// | ||
| 434 | -// public PersonDialog(Context context, int themeResId, boolean showPwd) { | ||
| 435 | -// super(context, themeResId); | ||
| 436 | -// init(context, showPwd); | ||
| 437 | -// } | ||
| 438 | -// | ||
| 439 | -// public void init(Context context, boolean showPwd) { | ||
| 440 | -// View view = View.inflate(context, R.layout.dialog_item, null); | ||
| 441 | -// setContentView(view); | ||
| 442 | -// initView(view,showPwd); | ||
| 443 | -// setCanceledOnTouchOutside(false); | ||
| 444 | -// Window window = getWindow(); | ||
| 445 | -// WindowManager.LayoutParams params = window.getAttributes(); | ||
| 446 | -// params.width = WindowManager.LayoutParams.MATCH_PARENT; | ||
| 447 | -// params.height = dp2px(context, 220); | ||
| 448 | -// window.setAttributes(params); | ||
| 449 | -// window.setGravity(Gravity.CENTER); | ||
| 450 | -// } | ||
| 451 | -// | ||
| 452 | -// public int dp2px(Context context, float dp) { | ||
| 453 | -// return (int) Math.ceil(context.getResources().getDisplayMetrics().density * dp); | ||
| 454 | -// } | ||
| 455 | -// public void initView(View view, final boolean showPwd){ | ||
| 456 | -// final EditText edt_uername= (EditText) view.findViewById(R.id.dialog_edt_username); | ||
| 457 | -// final EditText edt_userpwd= (EditText) view.findViewById(R.id.dialog_edt_userpwd); | ||
| 458 | -// if(showPwd){ | ||
| 459 | -// edt_userpwd.setVisibility(View.VISIBLE); | ||
| 460 | -// }else{ | ||
| 461 | -// edt_userpwd.setVisibility(View.GONE); | ||
| 462 | -// } | ||
| 463 | -// Button btn_enter= (Button) view.findViewById(R.id.dialog_btn_enter); | ||
| 464 | -// btn_enter.setOnClickListener(new View.OnClickListener() { | ||
| 465 | -// @Override | ||
| 466 | -// public void onClick(View v) { | ||
| 467 | -// username=edt_uername.getText().toString(); | ||
| 468 | -// userpwd=edt_userpwd.getText().toString(); | ||
| 469 | -// if(TextUtils.isEmpty(username)){ | ||
| 470 | -// ToastUtil.showToastshort("用户名不能为空",VideoPublisherActivity.this); | ||
| 471 | -// return; | ||
| 472 | -// } | ||
| 473 | -// if(showPwd&&TextUtils.isEmpty(userpwd)){ | ||
| 474 | -// ToastUtil.showToastshort("密码不能为空",VideoPublisherActivity.this); | ||
| 475 | -// return; | 214 | +// " \"userName\":\"base\",\n" + |
| 215 | +// " \"password\":\"123321\",\n" + | ||
| 216 | +// " \"hasCamera\":false,\n" + | ||
| 217 | +// " \"hasMicrophone\":false}"; | ||
| 218 | + JoinClass joinClass=new JoinClass(); | ||
| 219 | + joinClass.setHasCamera(false); | ||
| 220 | + joinClass.setHasMicrophone(false); | ||
| 221 | + joinClass.setUserName(username); | ||
| 222 | + if(!isShowPwd){ | ||
| 223 | + joinClass.setPassword("123321"); | ||
| 224 | + }else{ | ||
| 225 | + joinClass.setPassword(userpwd); | ||
| 226 | + } | ||
| 227 | + String temp=new Gson().toJson(joinClass); | ||
| 228 | + String jsonParmp = XdyStringUtils.stringToJson(temp, true); | ||
| 229 | + XdyLogUtil.e("加入课堂", jsonParmp); | ||
| 230 | + xdySdk.api("joinClass", jsonParmp); | ||
| 231 | + } | ||
| 232 | + | ||
| 233 | + | ||
| 234 | + | ||
| 235 | + public void sendMeg() { | ||
| 236 | + String temp = "{\n" + | ||
| 237 | + " \"message\": \"固定发送测试 hello\",\n" + | ||
| 238 | + " \"to\": 0\n" + | ||
| 239 | + "}"; | ||
| 240 | + String jsonParmp = XdyStringUtils.stringToJson(temp, true); | ||
| 241 | + XdyLogUtil.e(TAG, "聊天" + jsonParmp); | ||
| 242 | + xdySdk.api("sendChatMsg", jsonParmp); | ||
| 243 | + | ||
| 244 | + } | ||
| 245 | + | ||
| 246 | + /** | ||
| 247 | + * 获取封装的推流地址 | ||
| 248 | + */ | ||
| 249 | + public void publisherVideoText(){ | ||
| 250 | + xdySdk.api("publishVideo", "", surfaceview_pubisherVideo, VideoPublisherActivity.this); | ||
| 251 | +// xdySdk.api(Constants.PUBLISH_AUDIO, "", surfaceview_pubisherVideo, VideoPublisherActivity.this); | ||
| 252 | + | ||
| 253 | + } | ||
| 254 | + | ||
| 255 | + @Override | ||
| 256 | + protected void onPause() { | ||
| 257 | + super.onPause(); | ||
| 258 | + xdySdk.onPublisherPause(); | ||
| 259 | + } | ||
| 260 | + | ||
| 261 | + @Override | ||
| 262 | + protected void onResume() { | ||
| 263 | + super.onResume(); | ||
| 264 | + xdySdk.onPublisherResume(); | ||
| 265 | + } | ||
| 266 | + | ||
| 267 | + @Override | ||
| 268 | + protected void onDestroy() { | ||
| 269 | + xdySdk.onPublisherStop(); | ||
| 270 | + super.onDestroy(); | ||
| 271 | + } | ||
| 272 | + | ||
| 273 | + @OnClick({R.id.btn_videoPlay_chat, R.id.btn_videoPlay_pubsherVideo,R.id.btn_videoPlay_publisherAudio,R.id.btn_videoPlay_stop}) | ||
| 274 | + public void onViewClicked(View view) { | ||
| 275 | + switch (view.getId()) { | ||
| 276 | + case R.id.btn_videoPlay_chat: | ||
| 277 | + handler.sendEmptyMessage(4); | ||
| 278 | + break; | ||
| 279 | + case R.id.btn_videoPlay_pubsherVideo: | ||
| 280 | +// getPublish(); | ||
| 281 | + publisherVideoText(); | ||
| 282 | +// publisherAudioText(); | ||
| 283 | + ToastUtil.showToastshort("推送视频",VideoPublisherActivity.this); | ||
| 284 | + btnVideoPlayPubsherVideo.setClickable(false); | ||
| 285 | + | ||
| 286 | + break; | ||
| 287 | + case R.id.btn_videoPlay_stop: | ||
| 288 | + ToastUtil.showToastshort("正在退出,请稍等",this); | ||
| 289 | + xdySdk.api("unPublishVideo",""); | ||
| 290 | +// finish(); | ||
| 291 | + break; | ||
| 292 | + } | ||
| 293 | + } | ||
| 294 | + | ||
| 295 | + @Override | ||
| 296 | + public void observerUpData(final String type, final String parameter) { | ||
| 297 | + handler.post(new Runnable() { | ||
| 298 | + @Override | ||
| 299 | + public void run() { | ||
| 300 | + handError(type,parameter); | ||
| 301 | + } | ||
| 302 | + }); | ||
| 303 | + } | ||
| 304 | + public void handError(String errorId, String errorMsg) { | ||
| 305 | + ErrorEntity errorEntity = JsonUtil.parseJsonToBean(errorMsg, ErrorEntity.class); | ||
| 306 | + if (errorEntity == null) { | ||
| 307 | + return; | ||
| 308 | + } | ||
| 309 | + switch (errorEntity.getCode() + "") { | ||
| 310 | + case "100": | ||
| 311 | + case "101": | ||
| 312 | + case "102": | ||
| 313 | + case "103": | ||
| 314 | + case "104": | ||
| 315 | + case "105": | ||
| 316 | + case "106": | ||
| 317 | + case "107": | ||
| 318 | + case "200": | ||
| 319 | + case "201": | ||
| 320 | + case "202": | ||
| 321 | + case "203": | ||
| 322 | + case "204": | ||
| 323 | + case "205": | ||
| 324 | + case "206": | ||
| 325 | + case "207": | ||
| 326 | + case "208": | ||
| 327 | + ToastUtil.showToastshort(errorEntity.getReson(), this); | ||
| 328 | + exit(); | ||
| 329 | + break; | ||
| 330 | + case "300": | ||
| 331 | + case "301": | ||
| 332 | + break; | ||
| 333 | + case "10000": | ||
| 334 | + ToastUtil.showToastshort(errorEntity.getReson(), this); | ||
| 335 | + break; | ||
| 336 | + case "10001": | ||
| 337 | + ToastUtil.showToastshort(errorEntity.getReson(), this); | ||
| 338 | + break; | ||
| 339 | + case "20000": | ||
| 340 | + isDefaultExit=false; | ||
| 341 | + showErrorDialog(); | ||
| 342 | + ToastUtil.showToastshort(errorEntity.getReson(), this); | ||
| 343 | + break; | ||
| 344 | + } | ||
| 345 | + | ||
| 346 | + | ||
| 347 | + } | ||
| 348 | + | ||
| 349 | + class EventHande implements SmartEventCallback { | ||
| 350 | + @Override | ||
| 351 | + public void onCallback(int code, long param1, long param2, String param3, String param4, Object param5) { | ||
| 352 | + switch (code) { | ||
| 353 | + case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_STARTED: | ||
| 354 | + Log.i(TAG, "开始。。"); | ||
| 355 | + break; | ||
| 356 | + case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_CONNECTING: | ||
| 357 | + Log.i(TAG, "连接中。。"); | ||
| 358 | + break; | ||
| 359 | + case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_CONNECTION_FAILED: | ||
| 360 | + Log.i(TAG, "连接失败。。"); | ||
| 361 | + break; | ||
| 362 | + case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_CONNECTED: | ||
| 363 | + Log.i(TAG, "连接成功。。"); | ||
| 364 | +// PublisherEntity publisherEntity=new PublisherEntity(); | ||
| 365 | +// if(TextUtils.isEmpty(publisherSuccess)) { | ||
| 366 | +// publisherEntity.setPublishUrl(publisherSuccess); | ||
| 367 | +// XdySdk.setAsyncApi("publishVideo", new Gson().toJson(publisherEntity)); | ||
| 476 | // } | 368 | // } |
| 477 | -// dismiss(); | ||
| 478 | -// Message message=Message.obtain(); | ||
| 479 | -// message.what=-2; | ||
| 480 | -// message.obj=showPwd; | ||
| 481 | -// handler.sendMessage(message); | ||
| 482 | -// } | ||
| 483 | -// }); | 369 | + //TODO |
| 370 | + break; | ||
| 371 | + case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_DISCONNECTED: | ||
| 372 | + Log.i(TAG, "连接断开。。"); | ||
| 373 | + break; | ||
| 374 | + case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_STOP: | ||
| 375 | + Log.i(TAG, "关闭。。"); | ||
| 376 | + break; | ||
| 377 | + case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_RESOLUTION_INFO: | ||
| 378 | + Log.i(TAG, "分辨率信息: width: " + param1 + ", height: " + param2); | ||
| 379 | + break; | ||
| 380 | + case EVENTID.EVENT_DANIULIVE_ERC_PLAYER_NO_MEDIADATA_RECEIVED: | ||
| 381 | + Log.i(TAG, "收不到媒体数据,可能是url错误。。"); | ||
| 382 | + } | ||
| 383 | + | ||
| 384 | + } | ||
| 385 | + } | ||
| 386 | + /*mcu断开或者网络原因为false*/ | ||
| 387 | + private boolean isDefaultExit=true; | ||
| 388 | + private android.support.v7.app.AlertDialog mErrorDialog; | ||
| 389 | + public void showErrorDialog() { | ||
| 390 | +// if(isDefaultExit){ | ||
| 391 | +// return; | ||
| 484 | // } | 392 | // } |
| 485 | -// } | ||
| 486 | -// | ||
| 487 | -//} | 393 | + if (mErrorDialog != null) |
| 394 | + return; | ||
| 395 | + | ||
| 396 | + mErrorDialog = new android.support.v7.app.AlertDialog.Builder(this) | ||
| 397 | + .setTitle("退出") | ||
| 398 | + .setMessage("您设备的网络属于断开状态,请重新进入") | ||
| 399 | + .setPositiveButton("确认", new DialogInterface.OnClickListener() { | ||
| 400 | + @Override | ||
| 401 | + public void onClick(DialogInterface dialogInterface, int i) { | ||
| 402 | + dialogInterface.dismiss(); | ||
| 403 | + exit(); | ||
| 404 | + } | ||
| 405 | + }) | ||
| 406 | + .create(); | ||
| 407 | + mErrorDialog.setCanceledOnTouchOutside(false); | ||
| 408 | + | ||
| 409 | + mErrorDialog.show(); | ||
| 410 | + | ||
| 411 | + } | ||
| 412 | + | ||
| 413 | + /** | ||
| 414 | + * 错误情况退出 | ||
| 415 | + */ | ||
| 416 | + public void exit() { | ||
| 417 | + | ||
| 418 | + UIUtils.closeDialog(mLoginDialog); | ||
| 419 | +// xdySdk.onPublisherStop(); | ||
| 420 | + xdySdk.remove(this); | ||
| 421 | + handler.removeCallbacksAndMessages(null); | ||
| 422 | + this.finish(); | ||
| 423 | + } | ||
| 424 | + class PersonDialog extends Dialog { | ||
| 425 | + public PersonDialog(Context context) { | ||
| 426 | + this(context, false); | ||
| 427 | + | ||
| 428 | + } | ||
| 429 | + | ||
| 430 | + public PersonDialog(Context context, boolean showPwd) { | ||
| 431 | + this(context, R.style.bottom_dialog, showPwd); | ||
| 432 | + } | ||
| 433 | + | ||
| 434 | + public PersonDialog(Context context, int themeResId, boolean showPwd) { | ||
| 435 | + super(context, themeResId); | ||
| 436 | + init(context, showPwd); | ||
| 437 | + } | ||
| 438 | + | ||
| 439 | + public void init(Context context, boolean showPwd) { | ||
| 440 | + View view = View.inflate(context, R.layout.dialog_item, null); | ||
| 441 | + setContentView(view); | ||
| 442 | + initView(view,showPwd); | ||
| 443 | + setCanceledOnTouchOutside(false); | ||
| 444 | + Window window = getWindow(); | ||
| 445 | + WindowManager.LayoutParams params = window.getAttributes(); | ||
| 446 | + params.width = WindowManager.LayoutParams.MATCH_PARENT; | ||
| 447 | + params.height = dp2px(context, 220); | ||
| 448 | + window.setAttributes(params); | ||
| 449 | + window.setGravity(Gravity.CENTER); | ||
| 450 | + } | ||
| 451 | + | ||
| 452 | + public int dp2px(Context context, float dp) { | ||
| 453 | + return (int) Math.ceil(context.getResources().getDisplayMetrics().density * dp); | ||
| 454 | + } | ||
| 455 | + public void initView(View view, final boolean showPwd){ | ||
| 456 | + final EditText edt_uername= (EditText) view.findViewById(R.id.dialog_edt_username); | ||
| 457 | + final EditText edt_userpwd= (EditText) view.findViewById(R.id.dialog_edt_userpwd); | ||
| 458 | + if(showPwd){ | ||
| 459 | + edt_userpwd.setVisibility(View.VISIBLE); | ||
| 460 | + }else{ | ||
| 461 | + edt_userpwd.setVisibility(View.GONE); | ||
| 462 | + } | ||
| 463 | + Button btn_enter= (Button) view.findViewById(R.id.dialog_btn_enter); | ||
| 464 | + btn_enter.setOnClickListener(new View.OnClickListener() { | ||
| 465 | + @Override | ||
| 466 | + public void onClick(View v) { | ||
| 467 | + username=edt_uername.getText().toString(); | ||
| 468 | + userpwd=edt_userpwd.getText().toString(); | ||
| 469 | + if(TextUtils.isEmpty(username)){ | ||
| 470 | + ToastUtil.showToastshort("用户名不能为空",VideoPublisherActivity.this); | ||
| 471 | + return; | ||
| 472 | + } | ||
| 473 | + if(showPwd&&TextUtils.isEmpty(userpwd)){ | ||
| 474 | + ToastUtil.showToastshort("密码不能为空",VideoPublisherActivity.this); | ||
| 475 | + return; | ||
| 476 | + } | ||
| 477 | + dismiss(); | ||
| 478 | + Message message=Message.obtain(); | ||
| 479 | + message.what=-2; | ||
| 480 | + message.obj=showPwd; | ||
| 481 | + handler.sendMessage(message); | ||
| 482 | + } | ||
| 483 | + }); | ||
| 484 | + } | ||
| 485 | + } | ||
| 486 | + | ||
| 487 | +} |
MyApplication/XdyDemo/src/main/java/com/mang/xdy/demo/widget/view/AutoAdaptHeaderViewGroup.java
0 → 100644
| 1 | +package com.mang.xdy.demo.widget.view; | ||
| 2 | + | ||
| 3 | +import android.content.Context; | ||
| 4 | +import android.os.Build; | ||
| 5 | +import android.util.AttributeSet; | ||
| 6 | +import android.view.View; | ||
| 7 | +import android.view.ViewGroup; | ||
| 8 | +import android.widget.RelativeLayout; | ||
| 9 | + | ||
| 10 | +import com.mang.xdy.demo.utils.DisplayUtil; | ||
| 11 | + | ||
| 12 | + | ||
| 13 | +public class AutoAdaptHeaderViewGroup extends RelativeLayout { | ||
| 14 | + | ||
| 15 | + private int statusBarHeight; | ||
| 16 | + | ||
| 17 | + public AutoAdaptHeaderViewGroup(Context context) { | ||
| 18 | + this(context, null); | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + public AutoAdaptHeaderViewGroup(Context context, AttributeSet attrs) { | ||
| 22 | + this(context, attrs, 0); | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + public AutoAdaptHeaderViewGroup(Context context, AttributeSet attrs, int defStyle) { | ||
| 26 | + super(context, attrs, defStyle); | ||
| 27 | + statusBarHeight = DisplayUtil.getStatusBarHeight(getContext()); | ||
| 28 | + } | ||
| 29 | + | ||
| 30 | + private LayoutParams makeLayoutParams(View view) { | ||
| 31 | + ViewGroup.LayoutParams lpOld = view.getLayoutParams(); | ||
| 32 | + LayoutParams lp = null; | ||
| 33 | + if (lpOld == null) { | ||
| 34 | + lp = new LayoutParams(-2, -1); | ||
| 35 | + } else { | ||
| 36 | + lp = new LayoutParams(lpOld.width, lpOld.height); | ||
| 37 | + } | ||
| 38 | + return lp; | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + @Override | ||
| 42 | + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { | ||
| 43 | + super.onMeasure(widthMeasureSpec, heightMeasureSpec); | ||
| 44 | + //设置headerbar高度 | ||
| 45 | + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { | ||
| 46 | + //加上状态栏的高度 | ||
| 47 | + | ||
| 48 | + int paddingBottom = getPaddingBottom(); | ||
| 49 | + int paddingRight = getPaddingRight(); | ||
| 50 | + int paddingLeft= getPaddingLeft(); | ||
| 51 | + setPadding(paddingLeft, statusBarHeight, paddingRight, paddingBottom); | ||
| 52 | + } | ||
| 53 | + } | ||
| 54 | +} |
1.7 KB
3.0 KB
-
请 注册 或 登录 后发表评论