| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 |
- 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<String> 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<String> 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<File> 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<FetchUpBean.QuerysBean> querysBeans = new ArrayList<>();
- FetchUpBean.QuerysBean querysBean = new FetchUpBean.QuerysBean();
- FetchUpBean.QuerysBean.OrderbyBean orderbyBean = new FetchUpBean.QuerysBean.OrderbyBean();
- ArrayList<String> 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.<ItemCommonList<appVMBean, ExpandsBean>>post(Url.URL_VERSION)
- .upJson(new Gson().toJson(fetchUpBean))
- .execute(new JsonCallBack<ItemCommonList<appVMBean, ExpandsBean>>() {
- @Override
- public void onSuccess(Response<ItemCommonList<appVMBean, ExpandsBean>> response) {
- super.onSuccess(response);
- ItemCommonList<appVMBean, ExpandsBean> 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<ItemCommonList<appVMBean, ExpandsBean>> response) {
- super.onError(response);
- }
- });
- }
- /**
- * Start notify.
- */
- public void onServerStart(String ip) {
- if (!TextUtils.isEmpty(ip)) {
- List<String> 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();
- }
- }
- }
|