package com.basic.security.fragment;
|
|
import android.content.Intent;
|
import android.content.pm.PackageInfo;
|
import android.graphics.Bitmap;
|
import android.graphics.BitmapFactory;
|
import android.graphics.Color;
|
import android.graphics.Outline;
|
import android.net.Uri;
|
import android.os.Build;
|
import android.os.Bundle;
|
import android.os.Environment;
|
import android.os.Handler;
|
import android.support.v4.app.Fragment;
|
import android.support.v4.app.FragmentManager;
|
import android.support.v4.content.FileProvider;
|
import android.text.TextUtils;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.view.ViewOutlineProvider;
|
import android.widget.Button;
|
import android.widget.ImageView;
|
import android.widget.TextView;
|
|
import com.basic.security.base.BaseApplication;
|
import com.basic.security.base.BaseFragment;
|
import com.basic.security.manager.LogManager;
|
import com.basic.security.manager.RecognizeManager;
|
import com.basic.security.utils.Constants;
|
import com.basic.security.utils.FastDFSUtil;
|
import com.basic.security.utils.FileUtil;
|
import com.basic.security.utils.RUtils;
|
import com.basic.security.utils.ResolutionAdaptation;
|
import com.basic.security.utils.SystemUtils;
|
import com.basic.security.utils.ToastUtil;
|
import com.basic.security.utils.WeatherData;
|
import com.basic.security.widget.ConfirmDialog;
|
import com.google.gson.Gson;
|
|
import org.androidannotations.annotations.AfterViews;
|
import org.androidannotations.annotations.Click;
|
import org.androidannotations.annotations.EFragment;
|
import org.androidannotations.annotations.UiThread;
|
import org.androidannotations.annotations.ViewById;
|
|
import java.io.File;
|
import java.io.InputStream;
|
import java.util.List;
|
|
import interfaces.heweather.com.interfacesmodule.bean.Lang;
|
import interfaces.heweather.com.interfacesmodule.bean.Unit;
|
import interfaces.heweather.com.interfacesmodule.view.HeWeather;
|
|
import static com.basic.security.utils.Constants.isNewIDCardReader;
|
|
@EFragment
|
public class HomeFragment extends BaseFragment {
|
@ViewById
|
public ImageView weather_image_view;
|
@ViewById
|
TextView temp, address, wind, wind_class;
|
@ViewById
|
ImageView weather_icon;
|
Handler mHandler = new Handler();
|
@ViewById
|
Button test1, test2, test3;
|
private boolean isFirst = true;
|
private int number = 0;
|
Runnable runnable = new Runnable() {
|
public void run() {
|
LogManager.saveWeather("{\"now\":{\"cloud\":\"0\",\"cond_code\":\"100\",\"cond_txt\":\"晴\",\"fl\":\"-5\",\"hum\":\"27\",\"pcpn\":\"0.0\",\"pres\":\"1037\",\"tmp\":\"-1\",\"vis\":\"16\",\"wind_deg\":\"65\",\"wind_dir\":\"东北风\",\"wind_sc\":\"2\",\"wind_spd\":\"11\"},\"basic\":{\"admin_area\":\"北京\",\"cid\":\"CN101010300\",\"cnty\":\"中国\",\"lat\":\"39.92148972\",\"location\":\"朝阳\",\"lon\":\"116.48641205\",\"parent_city\":\"北京\",\"tz\":\"+8.00\"},\"status\":\"ok\",\"update\":{\"loc\":\"2019-11-25 09:12\",\"utc\":\"2019-11-25 01:12\"}}");
|
String jsonStr = LogManager.findWeather();
|
// System1.out.println("HomeFragment.run jsonStr" + jsonStr);
|
if (!TextUtils.isEmpty(jsonStr)) {
|
Gson gson = new Gson();
|
LogManager.saveWeather(jsonStr);
|
// System1.out.println("HomeFragment.onSuccess " + jsonStr);
|
WeatherData data = gson.fromJson(jsonStr, WeatherData.class);
|
Bitmap bitmap = null;
|
try {
|
InputStream in;
|
in = mainActivity().getAssets().open("weather_icon/" + data.now.cond_code + ".png");
|
bitmap = BitmapFactory.decodeStream(in);
|
in.close();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
SetWeatherData(data, bitmap);
|
mHandler.postDelayed(runnable, 12 * 60 * 60 * 1000);
|
return;
|
}
|
// System1.out.println("HomeFragment.run 1 ");
|
HeWeather.getWeatherNow(mainActivity(), "CN101010300", Lang.CHINESE_SIMPLIFIED, Unit.METRIC,
|
new HeWeather.OnResultWeatherNowBeanListener() {
|
public void onError(Throwable e) {
|
System1.out.println("HomeFragment.onError " + e.getMessage());
|
number += 1;
|
if (number < 5) {
|
// mHandler.postDelayed(runnable, 5000);
|
} else {
|
}
|
mHandler.postDelayed(runnable, 12 * 60 * 60 * 1000);
|
}
|
|
public void onSuccess(List dataObject) {
|
Gson gson = new Gson();
|
String jsonStr = gson.toJson(dataObject.get(0));
|
LogManager.saveWeather(jsonStr);
|
// System1.out.println("HomeFragment.onSuccess " + jsonStr);
|
//jsonStr {"now":{"cloud":"0","cond_code":"100","cond_txt":"晴","fl":"-5","hum":"27","pcpn":"0.0","pres":"1037","tmp":"-1","vis":"16","wind_deg":"65","wind_dir":"东北风","wind_sc":"2","wind_spd":"11"},"basic":{"admin_area":"北京","cid":"CN101010300","cnty":"中国","lat":"39.92148972","location":"朝阳","lon":"116.48641205","parent_city":"北京","tz":"+8.00"},"status":"ok","update":{"loc":"2019-11-25 09:12","utc":"2019-11-25 01:12"}}
|
WeatherData data = gson.fromJson(jsonStr, WeatherData.class);
|
Bitmap bitmap = null;
|
try {
|
InputStream in;
|
in = mainActivity().getAssets().open("weather_icon/" + data.now.cond_code + ".png");
|
bitmap = BitmapFactory.decodeStream(in);
|
in.close();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
SetWeatherData(data, bitmap);
|
mHandler.postDelayed(runnable, 12 * 60 * 60 * 1000);
|
}
|
});
|
}
|
};
|
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
return inflater.inflate(ResolutionAdaptation.fragment_home(), container, false);
|
}
|
|
public void show() {
|
super.show();
|
RecognizeManager.restartWaitFace();
|
if (isFirst) {
|
isFirst = false;
|
checkCardService();
|
}
|
// 解决如果菜单栏显示,长时间不操作返回首页,菜单栏显示的问题
|
Fragment fragment_menu = mainActivity().fragment_menu;
|
if (fragment_menu.isVisible()) {
|
FragmentManager fm = getFragmentManager();
|
fm.beginTransaction()
|
.hide(fragment_menu)
|
.commitAllowingStateLoss();
|
}
|
}
|
|
public void hide() {
|
super.hide();
|
}
|
|
@AfterViews
|
public void afterViews() {
|
weather_image_view.setOutlineProvider(new ViewOutlineProvider() {
|
public void getOutline(View view, Outline outline) {
|
outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), getActivity().getResources().getDimension(com.basic.security.utils.RUtils.R_dimen_corner_radius));
|
}
|
});
|
weather_image_view.setClipToOutline(true);
|
mHandler.postDelayed(runnable, 5000);
|
}
|
|
@UiThread
|
public void SetWeatherData(WeatherData data, Bitmap bitmap) {
|
try {
|
temp.setTextColor(Color.parseColor("#feb739"));
|
temp.setText(data.now.tmp + "°C");
|
address.setText("地点:" + data.basic.admin_area + data.basic.location);
|
wind.setText("风向:" + data.now.wind_dir);
|
wind_class.setText("风力:" + data.now.wind_sc + "级");
|
weather_icon.setImageBitmap(bitmap);
|
if ("100".equals(data.now.cond_code)) { // 晴天
|
weather_image_view.setImageResource(com.basic.security.utils.RUtils.R_drawable_sunny);
|
} else if (data.now.cond_code.startsWith("1")) {// 多云
|
weather_image_view.setImageResource(com.basic.security.utils.RUtils.R_drawable_cloudy);
|
} else if (data.now.cond_code.startsWith("2")) { // 有风
|
weather_image_view.setImageResource(com.basic.security.utils.RUtils.R_drawable_wind);
|
} else if (data.now.cond_code.startsWith("3")) { // 雨
|
weather_image_view.setImageResource(com.basic.security.utils.RUtils.R_drawable_rainy);
|
} else if (data.now.cond_code.startsWith("4")) { // 雪
|
weather_image_view.setImageResource(com.basic.security.utils.RUtils.R_drawable_snow);
|
} else if (data.now.cond_code.startsWith("5")) { // 雾和霾
|
weather_image_view.setImageResource(com.basic.security.utils.RUtils.R_drawable_smoggy);
|
} else { // 默认图片
|
weather_image_view.setImageResource(com.basic.security.utils.RUtils.R_drawable_sunny);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
try {
|
// System1.out.println("HomeFragment.SetWeatherData");
|
// mainActivity().secondaryDisplay.temp.setTextColor(Color.parseColor("#feb739"));
|
// mainActivity().secondaryDisplay.temp.setText(data.now.tmp + "°C");
|
// mainActivity().secondaryDisplay.address.setText("地点:" + data.basic.admin_area + data.basic.location);
|
// mainActivity().secondaryDisplay.wind.setText("风向:" + data.now.wind_dir);
|
// mainActivity().secondaryDisplay.wind_class.setText("风力:" + data.now.wind_sc + "级");
|
// mainActivity().secondaryDisplay.weather_icon.setImageBitmap(bitmap);
|
// if ("100".equals(data.now.cond_code)) { // 晴天
|
// mainActivity().secondaryDisplay.weather_image_view.setImageResource(com.basic.security.utils.RUtils.R_drawable_sunny);
|
// } else if (data.now.cond_code.startsWith("1")) {// 多云
|
// mainActivity().secondaryDisplay.weather_image_view.setImageResource(com.basic.security.utils.RUtils.R_drawable_cloudy);
|
// } else if (data.now.cond_code.startsWith("2")) { // 有风
|
// mainActivity().secondaryDisplay.weather_image_view.setImageResource(com.basic.security.utils.RUtils.R_drawable_wind);
|
// } else if (data.now.cond_code.startsWith("3")) { // 雨
|
// mainActivity().secondaryDisplay.weather_image_view.setImageResource(com.basic.security.utils.RUtils.R_drawable_rainy);
|
// } else if (data.now.cond_code.startsWith("4")) { // 雪
|
// mainActivity().secondaryDisplay.weather_image_view.setImageResource(com.basic.security.utils.RUtils.R_drawable_snow);
|
// } else if (data.now.cond_code.startsWith("5")) { // 雾和霾
|
// mainActivity().secondaryDisplay.weather_image_view.setImageResource(com.basic.security.utils.RUtils.R_drawable_smoggy);
|
// } else { // 默认图片
|
// mainActivity().secondaryDisplay.weather_image_view.setImageResource(com.basic.security.utils.RUtils.R_drawable_sunny);
|
// }
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
public void check() {
|
BaseApplication.getApplication().executorService.execute(() -> {
|
FastDFSUtil.testUpload("/dsf/dsf/cdfgg", "jpg");
|
});
|
}
|
|
@Click
|
void test2() {
|
check();
|
}
|
|
@Click
|
void test3() {
|
|
}
|
|
public void checkCardService() {
|
if (!Constants.indoorOutdoorInOne) {
|
if (Constants.needIdCardModule) {
|
boolean hasService;
|
if (!isNewIDCardReader) {
|
hasService = SystemUtils.checkHaveApp(mainActivity(), "com.basic.project.idcardservice");
|
if (!hasService) {
|
showInstallDialog("IDCardReader.apk", "尚未安装身份证模块,是否安装");
|
} else {
|
List<PackageInfo> listPackageInfo = mainActivity().getPackageManager().getInstalledPackages(0);
|
for (int i = 0; i < listPackageInfo.size(); i++) {
|
if (listPackageInfo.get(i).packageName.equalsIgnoreCase("com.basic.project.idcardservice")) {
|
if (listPackageInfo.get(i).versionCode < 2) {
|
showInstallDialog("IDCardReader.apk", "身份证模块有更新可用,是否安装");
|
} else {
|
break;
|
}
|
}
|
}
|
}
|
} else {
|
hasService = SystemUtils.checkHaveApp(mainActivity(), "com.alfeye.readcardserver");
|
if (!hasService) {
|
showInstallDialog("AlfeyeReadCardServer.apk", "尚未安装身份证模块,是否安装");
|
}
|
}
|
}
|
}
|
}
|
|
private void showInstallDialog(String fileName, String title) {
|
final ConfirmDialog confirmDialog = new ConfirmDialog(mainActivity(), title, "安装", "取消");
|
confirmDialog.show();
|
confirmDialog.setClickListener(new ConfirmDialog.ClickListenerInterface() {
|
public void doConfirm() {
|
confirmDialog.dismiss();
|
if (FileUtil.copyApkFromAssets(mainActivity(), fileName, Environment.getExternalStorageDirectory().getAbsolutePath())) {
|
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + fileName);
|
if (file.exists()) {
|
try {
|
Intent intent = new Intent(Intent.ACTION_VIEW);
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
Uri contentUri = null;
|
try {
|
contentUri = FileProvider.getUriForFile(mainActivity(), RUtils.applicationID + ".fileProvider", file);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
|
} else {
|
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
intent.setDataAndType(Uri.parse(file.getAbsolutePath()), "application/vnd.android.package-archive");
|
}
|
startActivity(intent);
|
} catch (Exception e) {
|
e.printStackTrace();
|
ToastUtil.show("安装失败" + e.getMessage());
|
}
|
} else {
|
ToastUtil.show("文件出错");
|
}
|
} else {
|
ToastUtil.show("安装失败");
|
}
|
}
|
|
public void doCancel() {
|
confirmDialog.dismiss();
|
}
|
});
|
}
|
}
|