package me.bello.viptv.ui;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.github.dfqin.grantor.PermissionListener;
import com.github.dfqin.grantor.PermissionsUtil;
import com.uuzuche.lib_zxing.activity.CaptureActivity;
import com.uuzuche.lib_zxing.activity.CodeUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import me.bello.viptv.R;
import me.bello.viptv.app.AppConst;
import me.bello.viptv.http.ApiRequest;
public class MainActivity extends BaseActivity implements View.OnClickListener {
private Context mContext;
private final int REQUEST_CODE = 19999;
private LinearLayout layout1, layout2, layout3, layout4;
private TextView ipText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = this;
initUI();
requestSD();
new ApiRequest().getBaseUrl(mContext);
}
private void initUI() {
layout1 = findViewById(R.id.layout_1);
layout1.setOnClickListener(this);
layout2 = findViewById(R.id.layout_2);
layout2.setOnClickListener(this);
layout3 = findViewById(R.id.layout_3);
layout3.setOnClickListener(this);
layout4 = findViewById(R.id.layout_4);
layout4.setOnClickListener(this);
findViewById(R.id.down_list).setOnClickListener(this);
ipText = findViewById(R.id.connect_text);
ipText.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
SharedPreferences sharedPreferences = getSharedPreferences("data", 0);
sharedPreferences.edit().putString("ip", "").commit();
toast(mContext, "断开绑定");
return false;
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.layout_1:
sendIntent(mContext, TvQrActivity.class, null);
break;
case R.id.layout_2:
requestCamera();
break;
case R.id.layout_3:
sendIntent(mContext, VideoSiteActivity.class, null);
break;
case R.id.layout_4:
Bundle bundle = new Bundle();
bundle.putString("type", AppConst.TYPE_TV);
sendIntent(mContext, PlayActivity.class, bundle);
break;
case R.id.down_list:
sendIntent(mContext, DownHistoryActivity.class, null);
break;
default:
}
}
@Override
protected void onResume() {
super.onResume();
SharedPreferences sharedPreferences = getSharedPreferences("data", 0);
String ip = sharedPreferences.getString("ip", "");
if (ip.isEmpty()){
ipText.setText("");
} else {
ipText.setText("已绑定到设备:" + ip);
}
}
private void requestCamera() {
PermissionsUtil.requestPermission(getApplication(), new PermissionListener() {
@Override
public void permissionGranted(@NonNull String[] permissions) {
Intent intent = new Intent(mContext, CaptureActivity.class);
startActivityForResult(intent, REQUEST_CODE);
}
@Override
public void permissionDenied(@NonNull String[] permissions) {
toast(mContext, "扫码需要您授权访问摄像头");
}
}, Manifest.permission.CAMERA);
}
private void requestSD() {
PermissionsUtil.requestPermission(getApplication(), new PermissionListener() {
@Override
public void permissionGranted(@NonNull String[] permissions) {
}
@Override
public void permissionDenied(@NonNull String[] permissions) {
toast(mContext, "视频缓存需要访问您的存储");
}
}, Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
//处理扫描结果(在界面上显示)
if (null != data) {
Bundle bundle = data.getExtras();
if (bundle == null) {
return;
}
if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS) {
String result = bundle.getString(CodeUtils.RESULT_STRING);
log(result);
if (!result.startsWith("tvIp")) {
toast(mContext, "二维码不正确");
} else {
String ip = result.split("-")[1];
SharedPreferences sharedPreferences = getSharedPreferences("data", 0);
sharedPreferences.edit().putString("ip", ip).commit();
toast(mContext, "绑定成功");
}
} else if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_FAILED) {
toast(mContext, "解析二维码失败");
}
}
}
}
}