package com.qingdaofushan.home.activity; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.TextView; import com.google.gson.Gson; import com.hjq.permissions.OnPermissionCallback; import com.hjq.permissions.Permission; import com.hjq.permissions.XXPermissions; import com.kongzue.dialogx.dialogs.WaitDialog; import com.lzy.okgo.OkGo; import com.lzy.okgo.model.Progress; import com.lzy.okgo.model.Response; import com.lzy.okgo.request.GetRequest; import com.lzy.okserver.OkDownload; import com.lzy.okserver.download.DownloadListener; import com.qingdaofushan.home.R; import com.qingdaofushan.home.bean.ExpandsBean; import com.qingdaofushan.home.bean.FetchUpBean; import com.qingdaofushan.home.bean.ItemCommonList; import com.qingdaofushan.home.bean.appVMBean; import com.qingdaofushan.home.component.ServerManager; import com.qingdaofushan.home.data.ConstantData; import com.qingdaofushan.home.data.JsonCallBack; import com.qingdaofushan.home.data.Url; import com.qingdaofushan.home.utils.CompressUtil; import com.qingdaofushan.home.utils.SharedPreferenceUtil; import com.qingdaofushan.home.utils.ToastUtil; import com.qingdaofushan.home.view.VersionCheckingUtil; import com.qingdaofushan.home.weiview.WebViewActivity; import com.tencent.trtc.videocall.VideoCallingEnterActivity; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import io.reactivex.Observable; public class MainActivity extends AppCompatActivity { private String mRootUrl; private ServerManager mServerManager; private EditText editText; private TextView start; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); start = findViewById(R.id.start); editText = findViewById(R.id.ed_text); initPermission(); start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // initApp("https://cq-1253658654.file.myqcloud.com/friday.zip", 1); // mServerManager.startServer(); SharedPreferenceUtil.put(MainActivity.this, "webUrl", editText.getText().toString()); Intent intent = new Intent(MainActivity.this, WebViewActivity.class); intent.putExtra("url", editText.getText().toString()); // intent.putExtra("url", "http://127.0.0.1:8080"); startActivity(intent); } }); } private void initPermission() { XXPermissions.with(this) .permission(Permission.WRITE_EXTERNAL_STORAGE) .permission(Permission.READ_EXTERNAL_STORAGE) .permission(Permission.CAMERA) .request(new OnPermissionCallback() { @Override public void onGranted(List permissions, boolean all) { if (all) { // 初始化HTTP服务 // mServerManager = new ServerManager(MainActivity.this); // mServerManager.register(); // getVM(); // initApp("https://cq-1253658654.cos.ap-shanghai.myqcloud.com/friday.zip", 1); // if (!TextUtils.isEmpty((String) SharedPreferenceUtil.get(MainActivity.this, "webUrl", ""))) { // Intent intent = new Intent(MainActivity.this, WebViewActivity.class); // intent.putExtra("url", (String) SharedPreferenceUtil.get(MainActivity.this, "webUrl", "")); //// intent.putExtra("url", "http://debug.qingdaofushan.com/friday/fsmobile/#/main"); // startActivity(intent); // } else { // editText.setVisibility(View.VISIBLE); // start.setVisibility(View.VISIBLE); // } Intent intent=new Intent(MainActivity.this, VideoCallingEnterActivity.class); startActivity(intent); } else { initPermission(); ToastUtil.showToast("获取部分权限成功,但部分权限未正常授予"); } } @Override public void onDenied(List permissions, boolean never) { if (never) { ToastUtil.showToast("被永久拒绝授权,请手动授予录音和日历权限"); // 如果是被永久拒绝就跳转到应用权限系统设置页面 XXPermissions.startPermissionActivity(MainActivity.this, permissions); } else { ToastUtil.showToast("获取录音和日历权限失败"); } } }); } private void initApp(String appWebUrl, int updataType) { OkDownload.getInstance().setFolder(Environment.getExternalStorageDirectory().getAbsolutePath() + "/fshome/"); File indexFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/fshome/friday/fsmobile/index.html"); File zipFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/fshome/friday.zip"); if (!indexFile.exists() || updataType == 1) { if (zipFile.exists()) { zipFile.delete(); } WaitDialog.show("正在进行第一次加载...", 0f); // String url = "https://pwxmax.cn/homeLifemini.zip"; GetRequest requesta = OkGo.get(appWebUrl); OkDownload.request(appWebUrl, requesta)// .save() .register(new DownloadListener(appWebUrl) { @Override public void onStart(Progress progress) { // ToastUtil.showToast("开始下载"); } @Override public void onProgress(Progress progress) { WaitDialog.show("正在进行第一次加载...", progress.fraction); } @Override public void onError(Progress progress) { ToastUtil.showToast("下载错误" + progress.exception.toString()); Log.e("pwx", "onError: " + progress.exception.toString()); WaitDialog.dismiss(); } @Override public void onFinish(File file, Progress progress) { CompressUtil.unzip(file, Environment.getExternalStorageDirectory().getAbsolutePath() + "/fshome/"); // ToastUtil.showToast("下载完成"); mServerManager.startServer(); Intent intent = new Intent(MainActivity.this, WebViewActivity.class); intent.putExtra("url", "http://127.0.0.1:8080/friday/fsmobile"); startActivity(intent); WaitDialog.dismiss(); } @Override public void onRemove(Progress progress) { } }).start(); } } private void getVM() { File versionFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/fshome/fsmobile/version"); FetchUpBean fetchUpBean = new FetchUpBean(); ArrayList querysBeans = new ArrayList<>(); FetchUpBean.QuerysBean querysBean = new FetchUpBean.QuerysBean(); FetchUpBean.QuerysBean.OrderbyBean orderbyBean = new FetchUpBean.QuerysBean.OrderbyBean(); ArrayList strings = new ArrayList<>(); strings.add("createTime"); orderbyBean.setColumns(strings); orderbyBean.setSeq("DESC"); querysBean.setOrderby(orderbyBean); FetchUpBean.QuerysBean.LimitBean limitBean = new FetchUpBean.QuerysBean.LimitBean(); limitBean.setStart(0); limitBean.setLength(1); querysBean.setLimit(limitBean); querysBean.setOrderby(orderbyBean); querysBeans.add(querysBean); fetchUpBean.setQuerys(querysBeans); OkGo.>post(Url.URL_VERSION) .upJson(new Gson().toJson(fetchUpBean)) .execute(new JsonCallBack>() { @Override public void onSuccess(Response> response) { super.onSuccess(response); ItemCommonList body = response.body(); if (body.getCode() == ConstantData.CODE_RESULT_SUCCESS) { if (body.getData() != null && body.getData().size() > 0) { if (body.getData().get(0).getUpdateType() == 2) { new VersionCheckingUtil().isChecking(MainActivity.this, body.getData().get(0), 0); } else if (body.getData().get(0).getUpdateType() == 1) { if (versionFile.exists()) { if (!readFileContent(versionFile).equals(body.getData().get(0).getWebVersion())) { initApp(body.getData().get(0).getAppWebUrl(), 1); } } else { initApp(body.getData().get(0).getAppWebUrl(), 1); } } } } else { ToastUtil.showToast("加载失败"); } } @Override public void onError(Response> response) { super.onError(response); } }); } /** * Start notify. */ public void onServerStart(String ip) { if (!TextUtils.isEmpty(ip)) { List addressList = new LinkedList<>(); mRootUrl = "http://127.0.0.1:8080/"; addressList.add(mRootUrl); // ToastUtil.showToast("服务器启动"); } else { mRootUrl = null; } } /** * 【读取文件内容】 **/ public static String readFileContent(File file) { try { if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { byte[] buffer = new byte[32 * 1024]; FileInputStream fis = new FileInputStream(file); int len = 0; StringBuffer sb = new StringBuffer(""); while ((len = fis.read(buffer)) > 0) { sb.append(new String(buffer, 0, len)); } fis.close(); return sb.toString(); } } catch (Exception e) { return ""; } return null; } /** * Error notify. */ public void onServerError(String message) { mRootUrl = null; } /** * Stop notify. */ public void onServerStop() { mRootUrl = null; } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == XXPermissions.REQUEST_CODE) { if (XXPermissions.isGranted(this, Permission.WRITE_EXTERNAL_STORAGE) && XXPermissions.isGranted(this, Permission.READ_EXTERNAL_STORAGE) && XXPermissions.isGranted(this, Permission.CAMERA)) { } else { ToastUtil.showToast("权限未正常获取"); initPermission(); } } } @Override protected void onDestroy() { super.onDestroy(); if (mServerManager != null) { mServerManager.unRegister(); } } }