Newer
Older
VipVideo / app / src / main / java / me / bello / viptv / ui / MainActivity.java
bello on 21 Jan 2021 5 KB 下载功能
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, "解析二维码失败");
                }
            }
        }
    }

}