package com.guangzhou.haochuan.jxtv.activity; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.util.Log; import android.widget.RelativeLayout; import com.guangzhou.haochuan.jxtv.model.MiniVideo; import com.guangzhou.haochuan.jxtv.util.FileUtil; import com.guangzhou.haochuan.jxtv.util.LocalStore; import com.guangzhou.haochuan.jxtv.util.OttLoginUtil; import com.guangzhou.haochuan.jxtv.R; import com.guangzhou.haochuan.jxtv.util.ScreenUtil; import com.guangzhou.haochuan.jxtv.viewModel.MiniVideoViewModel; import com.ystgame.sdk.billing.api.GameInterface; import com.ystgame.sdk.billing.api.MonthAuthResult; import java.io.File; import java.util.Observable; import java.util.Observer; public class LoginActivity extends Activity implements Observer { //电信计费参数 private int appId = 252; //唯一用户标识,在AndroidMainfest.xml里的Meta-Data里设置 private String appName = "电竞部落"; private String providerName = "广州浩传"; //内容提供商 private String serviceTel = "020-38468029"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); init(); initYst(); } private void init(){ RelativeLayout background = findViewById(R.id.back_image); //设置背景图片 String path = FileUtil.getInstance().getLoadingImageSavePath(this, ScreenUtil.getInstance().getDpiType(this)); File file = new File(path); if(file.exists()){ background.setBackground(Drawable.createFromPath(path)); } } private void initYst(){ LoginActivity.this.runOnUiThread(new Runnable() { @Override public void run() { try{ GameInterface.initializeApp(LoginActivity.this,appId,appName,providerName,serviceTel,new GameInterface.IAppUidCallback(){ @Override public void onResult(int i, String s) { switch (i){ case 0: Log.d("Telecom","init success"); auth(); //Toast.makeText(TelecomPayActivity.this,"易视腾初始化成功",Toast.LENGTH_SHORT).show(); break; default: new AlertDialog.Builder(LoginActivity.this) .setTitle("错误") .setMessage("初始化失败,点击'确定'退出" ) .setNegativeButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { LoginActivity.this.finish(); } }).show(); break; } } }); }catch (Exception e){ e.printStackTrace(); } } }); } //包月鉴权(此函数还未用到,因为现在还是从后台获取用户是否包月状态,后续后台需要更改,再用) protected void auth() { try{ // TODO Auto-generated method stub GameInterface.monthAuth(this,new GameInterface.IAuthCallback() { @Override public void onResult(final int code, final String msg) { // TODO Auto-generated method stub switch(code) { case MonthAuthResult.AUTH_SUCCESS: //鉴权成功 用户已购买... LocalStore.getInstance().storeIsVip(LoginActivity.this,true); OttLogin(); break; default: // 其他错误,服务器端处理请求失败 LocalStore.getInstance().storeIsVip(LoginActivity.this,false); OttLogin(); break; } } }); }catch (Exception e){ e.printStackTrace(); } } private void OttLogin(){ OttLoginUtil.getInstance().init(this, new OttLoginUtil.OnLoginListener() { @Override public void OnSuccess() { LocalStore.getInstance().storeLoginOrNot(LoginActivity.this,true); //创建用户 String uId= String.valueOf(OttLoginUtil.getInstance().getDeviceId()); //Toast.makeText(LoginActivity.this,"uid:" + uId,Toast.LENGTH_SHORT).show(); if(uId.equals("0")){ uId = "13"; } LocalStore.getInstance().storeUserId(LoginActivity.this,uId); String templateId = String.valueOf(OttLoginUtil.getInstance().getTemplateID()); String platformId = String.valueOf(OttLoginUtil.getInstance().getPlatformID()); String mac = String.valueOf(OttLoginUtil.getInstance().getMac()); LocalStore.getInstance().storeMac(LoginActivity.this,mac); //new CreateUserViewModel(uId,templateId,platformId,mac).addObserver(LoginActivity.this); //请求迷你视频窗信息 new MiniVideoViewModel(ScreenUtil.getInstance().getDpiType(LoginActivity.this)).addObserver(LoginActivity.this); } @Override public void onFail(String msg) { new AlertDialog.Builder(LoginActivity.this) .setTitle("错误") .setMessage("验证失败:" + msg + "\n" + "点击'确定'退出" ) .setNegativeButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { LoginActivity.this.finish(); } }).show(); LocalStore.getInstance().storeLoginOrNot(LoginActivity.this,false); //new CreateUserViewModel("","","","").addObserver(LoginActivity.this); //请求迷你视频窗信息 new MiniVideoViewModel(ScreenUtil.getInstance().getDpiType(LoginActivity.this)).addObserver(LoginActivity.this); } }); } private void delayTransMain(){ new Thread(){ public void run(){ Looper.prepare(); new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(LoginActivity.this,DjblWebActivity.class); LoginActivity.this.startActivity(intent); LoginActivity.this.finish(); } },2000); Looper.loop(); } }.start(); } private void delayTransStartVideo(){ new Thread(){ public void run(){ Looper.prepare(); new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(LoginActivity.this,StartVideoActivity.class); LoginActivity.this.startActivity(intent); LoginActivity.this.finish(); } },2000); Looper.loop(); } }.start(); } @Override public void update(Observable o, Object arg) { if(o instanceof MiniVideoViewModel){ MiniVideoViewModel miniVideoViewModel = (MiniVideoViewModel)o; MiniVideo miniVideo = miniVideoViewModel.getMiniVideo(); if(miniVideo.code == 0){ MiniVideo.MiniVideoData miniVideoData = miniVideo.data; int statusCode = -10; if(miniVideoData != null){ statusCode = miniVideoData.status; } switch(statusCode){ case 10: delayTransStartVideo(); break; case -10: delayTransMain(); break; default: delayTransMain(); break; } } } } }