package com.basic.security.fragment;
|
|
import android.content.Intent;
|
import android.content.pm.PackageInfo;
|
import android.graphics.BitmapFactory;
|
import android.graphics.Color;
|
import android.graphics.Outline;
|
import android.net.Uri;
|
import android.os.Build;
|
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.util.Log;
|
import android.view.View;
|
import android.view.ViewOutlineProvider;
|
import android.widget.Button;
|
import android.widget.ImageView;
|
import android.widget.TextView;
|
|
import com.basic.security.BuildConfig;
|
import com.basic.security.R;
|
import com.basic.security.base.BaseApplication;
|
import com.basic.security.base.BaseFragment;
|
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.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(R.layout.fragment_home)
|
public class HomeFragment extends BaseFragment {
|
|
@ViewById
|
public ImageView weather_image_view;
|
|
@ViewById
|
TextView temp, address, wind, wind_class;
|
|
@ViewById
|
ImageView weather_icon;
|
@ViewById
|
Button test1, test2, test3;
|
Handler mHandler = new Handler();
|
private boolean isFirst = true;
|
private int number = 0;
|
Runnable runnable = new Runnable() {
|
@Override
|
public void run() {
|
try {
|
HeWeather.getWeatherNow(mainActivity(), "CN101010300", Lang.CHINESE_SIMPLIFIED, Unit.METRIC,
|
new HeWeather.OnResultWeatherNowBeanListener() {
|
@Override
|
public void onError(Throwable e) {
|
// ToastUtil.show(e.getMessage());
|
Log.e("getWeatherNow", e.getMessage() + number);
|
number += 1;
|
if (number < 5) {
|
// System.out.println("HomeFragment.onError 1");
|
// mHandler.postDelayed(runnable, 60 * 60 * 5000);
|
} else {
|
System.out.println("HomeFragment.onError 2");
|
mHandler.postDelayed(runnable, 6*60 * 60 * 1000);
|
}
|
}
|
|
@Override
|
public void onSuccess(List dataObject) {
|
System.out.println("HomeFragment.onSuccess 3");
|
Gson gson = new Gson();
|
// Log.e("successWeather", gson.toJson(dataObject.get(0)));
|
WeatherData data = gson.fromJson(gson.toJson(dataObject.get(0)), WeatherData.class);
|
SetWeatherData(data);
|
mHandler.postDelayed(runnable, 6*60 * 60 * 1000);
|
}
|
});
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
}
|
};
|
|
@Override
|
public void 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() {
|
|
}
|
|
@AfterViews
|
public void afterViews() {
|
weather_image_view.setOutlineProvider(new ViewOutlineProvider() {
|
@Override
|
public void getOutline(View view, Outline outline) {
|
outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), getActivity().getResources().getDimension(R.dimen.corner_radius));
|
}
|
});
|
weather_image_view.setClipToOutline(true);
|
mHandler.postDelayed(runnable, 5000);
|
temp.setVisibility(View.GONE);
|
}
|
|
@UiThread
|
public void SetWeatherData(WeatherData data) {
|
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 + "级");
|
|
InputStream in = mainActivity().getAssets().open("weather_icon/" + data.now.cond_code + ".png");
|
weather_icon.setImageBitmap(BitmapFactory.decodeStream(in));
|
in.close();
|
if ("100".equals(data.now.cond_code)) { // 晴天
|
weather_image_view.setImageResource(R.drawable.sunny);
|
} else if (data.now.cond_code.startsWith("1")) {// 多云
|
weather_image_view.setImageResource(R.drawable.cloudy);
|
} else if (data.now.cond_code.startsWith("2")) { // 有风
|
weather_image_view.setImageResource(R.drawable.wind);
|
} else if (data.now.cond_code.startsWith("3")) { // 雨
|
weather_image_view.setImageResource(R.drawable.rainy);
|
} else if (data.now.cond_code.startsWith("4")) { // 雪
|
weather_image_view.setImageResource(R.drawable.snow);
|
} else if (data.now.cond_code.startsWith("5")) { // 雾和霾
|
weather_image_view.setImageResource(R.drawable.smoggy);
|
} else { // 默认图片
|
weather_image_view.setImageResource(R.drawable.sunny);
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
// @Click
|
// void test1() {
|
// TestSubscribe.getTestDoGet(new VisitRecordTO(), new OnSuccessAndFaultSub(new OnSuccessAndFaultListener() {
|
// @Override
|
// public void onSuccess(String result) {
|
// Log.e("networktag", result);
|
// }
|
//
|
// @Override
|
// public void onFault(String errorMsg) {
|
// Log.e("networktag", errorMsg);
|
// }
|
// }));
|
// }
|
|
public void check() {
|
BaseApplication.getApplication().executorService.execute(() -> {
|
FastDFSUtil.testUpload("/dsf/dsf/cdfgg", "jpg");
|
});
|
}
|
|
@Click
|
void test2() {
|
check();
|
}
|
|
@Click
|
void test3() {
|
// Expression expression = Expression.property("table").equalTo(Expression.string("base_setting"));
|
//// Expression expression = Expression.property("table").equalTo(Expression.string("user"));
|
// List<ModelAdapter> list = BaseSettingManager.findBaseSettingList(expression);
|
//
|
// for (int i = 1; i < list.size(); i++) {
|
// BaseSettingManager.deleteBaseSetting(list.get(i));
|
// }
|
|
}
|
|
public void checkCardService() {
|
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() {
|
@Override
|
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(), BuildConfig.APPLICATION_ID + ".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("安装失败");
|
}
|
}
|
|
@Override
|
public void doCancel() {
|
confirmDialog.dismiss();
|
}
|
});
|
|
}
|
|
}
|