Compare commits

..

12 Commits

Author SHA1 Message Date
jia 2d9bbf6fa5 这个master分支好像有问题 2025-05-25 22:22:29 +08:00
jia 892c2f68f0 合并 2025-05-25 22:16:49 +08:00
Lihongda fbcc8ad36c 去掉bugly库,使用jdk_1.8 2024-02-21 17:28:54 +08:00
Lihongda 11eb1c7858 版本管理增加gradle.pro 2024-02-14 16:32:10 +08:00
Lihongda 3828a2cc20 版本管理移除idea文件夹 2024-02-14 15:55:46 +08:00
Lihongda a89f1d68da 增加项目运行必读文件 2024-02-14 15:54:52 +08:00
Lihongda 0541a93301 更新版本日志 2024-02-14 15:37:17 +08:00
Lihongda 19107568eb 去掉local,增加阿里云镜像 2024-02-14 15:27:00 +08:00
Lihongda 9fd895dbb2 绑定wifi和连接热点增加userId 2024-01-15 19:30:03 +08:00
Lihongda 239fb06ed8 增加版本日志 2024-01-06 19:40:55 +08:00
Lihongda c0d5b628f9 下载逻辑,网络请求兼容android12+ 2024-01-06 19:39:31 +08:00
Lihongda e53e0496d6 下载逻辑,网络请求兼容android12 2024-01-06 18:45:54 +08:00
54 changed files with 725 additions and 1281 deletions

View File

@ -25,6 +25,7 @@ android.nonTransitiveRClass=true
android.enableJetifier=true android.enableJetifier=true
android.useAndroidX=true android.useAndroidX=true
android.useDeprecatedNdk=true android.useDeprecatedNdk=true
versionCode=111
versionName=4.12.11
versionCode=104
versionName=4.12.04

View File

@ -25,7 +25,7 @@ android {
config { config {
keyAlias 'android.keystore' keyAlias 'android.keystore'
keyPassword 'ifish7' keyPassword 'ifish7'
storeFile file('ifish7.keystore') storeFile file('../ifish7.keystore')
storePassword 'ifish7' storePassword 'ifish7'
} }
} }
@ -43,7 +43,7 @@ android {
versionName project.versionName versionName project.versionName
multiDexEnabled true multiDexEnabled true
ndk { ndk {
abiFilters "armeabi", "arm64-v8a" abiFilters "arm64-v8a"
} }
manifestPlaceholders = [ manifestPlaceholders = [
@ -153,7 +153,7 @@ dependencies {
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'//2.0.4 implementation 'androidx.constraintlayout:constraintlayout:2.1.4'//2.0.4
implementation 'com.tencent:mmkv:2.0.0' implementation 'com.tencent:mmkv:2.0.0'
implementation("com.github.bumptech.glide:okhttp3-integration:4.11.0" ) implementation("com.github.bumptech.glide:okhttp3-integration:4.11.0" )
implementation 'com.github.Jasonchenlijian:FastBle:2.4.0' // implementation 'com.github.Jasonchenlijian:FastBle:2.4.0'
implementation 'io.github.lucksiege:pictureselector:v3.11.2' implementation 'io.github.lucksiege:pictureselector:v3.11.2'
// () // ()

View File

@ -11,6 +11,9 @@
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- // jiablue-->
<!-- <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />-->
<!-- <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />-->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
@ -19,7 +22,6 @@
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" /> <uses-feature android:name="android.hardware.camera.autofocus" />
@ -35,14 +37,14 @@
<!-- 蓝牙权限需求 --> <!-- 蓝牙权限需求 -->
<!-- // jiaxblue--> <!-- // jiablue-->
<uses-permission android:name="android.permission.BLUETOOTH" /> <!-- <uses-permission android:name="android.permission.BLUETOOTH" />-->
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <!-- 安卓12新增的蓝牙权限 --> <!-- <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> &lt;!&ndash; 安卓12新增的蓝牙权限 &ndash;&gt;-->
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" /> <!-- <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />-->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <!-- <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />-->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> <!-- 定位权限, 蓝牙搜索需要 --> <!-- <uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> &lt;!&ndash; 定位权限, 蓝牙搜索需要 &ndash;&gt;-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />-->
<!-- 使用相机 --> <!-- 使用相机 -->
<!-- <!--
<uses-feature <uses-feature
@ -105,7 +107,7 @@
android:usesCleartextTraffic="true" android:usesCleartextTraffic="true"
tools:replace="android:icon,android:theme,android:allowBackup"> tools:replace="android:icon,android:theme,android:allowBackup">
<!-- 推送服务 jjia-xpush--> <!-- 推送服务 jjia-push-->
<service <service
android:name="com.ifish.push.IPushService" android:name="com.ifish.push.IPushService"
android:exported="false" android:exported="false"

View File

@ -47,14 +47,14 @@ public class BindTwoDeviceActivity extends BaseActivity {
initTitle("选择设备"); initTitle("选择设备");
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){
// jiablue // jiablue
perlist = new String[]{ // perlist = new String[]{
android.Manifest.permission.BLUETOOTH_SCAN, // android.Manifest.permission.BLUETOOTH_SCAN,
android.Manifest.permission.BLUETOOTH_ADVERTISE, // android.Manifest.permission.BLUETOOTH_ADVERTISE,
android.Manifest.permission.BLUETOOTH_CONNECT, // android.Manifest.permission.BLUETOOTH_CONNECT,
android.Manifest.permission.ACCESS_FINE_LOCATION, // android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.ACCESS_COARSE_LOCATION, // android.Manifest.permission.ACCESS_COARSE_LOCATION,
android.Manifest.permission.BLUETOOTH // android.Manifest.permission.BLUETOOTH
}; // };
} }
initView();//初始化控件 initView();//初始化控件
} }

View File

@ -7,7 +7,6 @@
*/ */
package com.ifish.activity; package com.ifish.activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder; import android.app.AlertDialog.Builder;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
@ -20,7 +19,6 @@ import android.net.wifi.ScanResult;
import android.os.Bundle; import android.os.Bundle;
import android.os.CountDownTimer; import android.os.CountDownTimer;
import android.os.Handler; import android.os.Handler;
import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -45,7 +43,6 @@ import com.ifish.utils.HttpManager;
import com.ifish.utils.SPUtil; import com.ifish.utils.SPUtil;
import com.ifish.utils.ToastUtil; import com.ifish.utils.ToastUtil;
import com.ifish.utils.WifiAdmin; import com.ifish.utils.WifiAdmin;
import com.ifish.utils.WifiUtil;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;

View File

@ -24,8 +24,8 @@ import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemClickListener;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
//jjia-xpush //jjia-push
import com.clj.fastble.BleManager; //import com.clj.fastble.BleManager;
import com.ifish.adapter.GridViewCameraBaseAdapter; import com.ifish.adapter.GridViewCameraBaseAdapter;
import com.ifish.adapter.GridViewDeviceBaseAdapter; import com.ifish.adapter.GridViewDeviceBaseAdapter;
import com.ifish.basebean.BaseBean; import com.ifish.basebean.BaseBean;
@ -370,8 +370,8 @@ public class DeviceCameraListActivity extends BaseActivity {
@Override @Override
public void success(BaseBean<Device> baseBean) { public void success(BaseBean<Device> baseBean) {
result = baseBean.result; result = baseBean.result;
//jjia-xpush //jjia-push
BleManager.getInstance().disconnectAllDevice(); // BleManager.getInstance().disconnectAllDevice();
} }
@Override @Override

View File

@ -241,7 +241,7 @@ public class HotSpotConnentDeviceActivity extends BaseActivity {
public void toDevice() { public void toDevice() {
AppRoute.newToStart(HotSpotConnentDeviceActivity.this,deviceObj,true); AppRoute.newToStart(HotSpotConnentDeviceActivity.this,deviceObj,true);
// ToastUtil.show(HotSpotConnentDeviceActivity.this, "绑定设备成功"); ToastUtil.show(HotSpotConnentDeviceActivity.this, "绑定设备成功");
EventBean eventBean =new EventBean(EventBean.LINK_FINISH,0); EventBean eventBean =new EventBean(EventBean.LINK_FINISH,0);
EventBus.getDefault().post(eventBean); EventBus.getDefault().post(eventBean);
finish(); finish();
@ -417,7 +417,7 @@ public class HotSpotConnentDeviceActivity extends BaseActivity {
Commons.IS_CAMERA = false; Commons.IS_CAMERA = false;
sp.putBoolean(LoginSPKey.IS_CAMERA, Commons.IS_CAMERA); sp.putBoolean(LoginSPKey.IS_CAMERA, Commons.IS_CAMERA);
AppRoute.newToStart(HotSpotConnentDeviceActivity.this,deviceObj,true); AppRoute.newToStart(HotSpotConnentDeviceActivity.this,deviceObj,true);
// ToastUtil.show(HotSpotConnentDeviceActivity.this, "绑定设备成功"); ToastUtil.show(HotSpotConnentDeviceActivity.this, "绑定设备成功");
EventBean eventBean =new EventBean(EventBean.LINK_FINISH,0); EventBean eventBean =new EventBean(EventBean.LINK_FINISH,0);
EventBus.getDefault().post(eventBean); EventBus.getDefault().post(eventBean);
AnimationUtil.startAnimation(HotSpotConnentDeviceActivity.this); AnimationUtil.startAnimation(HotSpotConnentDeviceActivity.this);
@ -456,13 +456,13 @@ public class HotSpotConnentDeviceActivity extends BaseActivity {
Commons.DevicePosition = Commons.DEVICE.size() - 1; Commons.DevicePosition = Commons.DEVICE.size() - 1;
} catch (Exception e) { } catch (Exception e) {
} }
// ToastUtil.show(HotSpotConnentDeviceActivity.this, "设备序号" + Commons.DevicePosition + "---" + Commons.DEVICE.size()); ToastUtil.show(HotSpotConnentDeviceActivity.this, "设备序号" + Commons.DevicePosition + "---" + Commons.DEVICE.size());
Commons.IS_EventBus = true; Commons.IS_EventBus = true;
Commons.HAVE_DEVICE = true;//改变判断是否绑定的变量 Commons.HAVE_DEVICE = true;//改变判断是否绑定的变量
Commons.IS_CAMERA = false; Commons.IS_CAMERA = false;
sp.putBoolean(LoginSPKey.IS_CAMERA, Commons.IS_CAMERA); sp.putBoolean(LoginSPKey.IS_CAMERA, Commons.IS_CAMERA);
AppRoute.newToStart(HotSpotConnentDeviceActivity.this,deviceObj,true); AppRoute.newToStart(HotSpotConnentDeviceActivity.this,deviceObj,true);
// ToastUtil.show(HotSpotConnentDeviceActivity.this, "绑定设备成功"); ToastUtil.show(HotSpotConnentDeviceActivity.this, "绑定设备成功");
EventBean eventBean =new EventBean(EventBean.LINK_FINISH,0); EventBean eventBean =new EventBean(EventBean.LINK_FINISH,0);
EventBus.getDefault().post(eventBean); EventBus.getDefault().post(eventBean);
AnimationUtil.startAnimation(HotSpotConnentDeviceActivity.this); AnimationUtil.startAnimation(HotSpotConnentDeviceActivity.this);

View File

@ -583,7 +583,7 @@ public class HotSpotConnentPetDeviceActivity extends BaseActivity {
Commons.DevicePosition = Commons.DEVICE.size() - 1; Commons.DevicePosition = Commons.DEVICE.size() - 1;
} catch (Exception e) { } catch (Exception e) {
} }
// ToastUtil.show(HotSpotConnentPetDeviceActivity.this, "设备序号" + Commons.DevicePosition + "---" + Commons.DEVICE.size()); ToastUtil.show(HotSpotConnentPetDeviceActivity.this, "设备序号" + Commons.DevicePosition + "---" + Commons.DEVICE.size());
Commons.IS_EventBus = true; Commons.IS_EventBus = true;
Commons.HAVE_DEVICE = true;//改变判断是否绑定的变量 Commons.HAVE_DEVICE = true;//改变判断是否绑定的变量
Commons.IS_CAMERA = false; Commons.IS_CAMERA = false;

View File

@ -40,6 +40,7 @@ public class HotSpotConnentSetWIFIActivity extends BaseActivity {
// doPostBindDevice(); // doPostBindDevice();
isjump = true; isjump = true;
Intent i = new Intent(); Intent i = new Intent();
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i = new Intent(Settings.ACTION_WIFI_SETTINGS); i = new Intent(Settings.ACTION_WIFI_SETTINGS);
startActivity(i); startActivity(i);
} }

View File

@ -2,7 +2,6 @@ package com.ifish.activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.media.AudioManager; import android.media.AudioManager;
@ -32,7 +31,6 @@ import androidx.annotation.NonNull;
import com.alibaba.sdk.android.httpdns.HttpDns; import com.alibaba.sdk.android.httpdns.HttpDns;
import com.alibaba.sdk.android.httpdns.HttpDnsService; import com.alibaba.sdk.android.httpdns.HttpDnsService;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.ifish.activity.newbind.NewBindDeviceActivity;
import com.ifish.basebean.AdInfos; import com.ifish.basebean.AdInfos;
import com.ifish.basebean.BaseBean; import com.ifish.basebean.BaseBean;
import com.ifish.basebean.Device; import com.ifish.basebean.Device;
@ -45,7 +43,6 @@ import com.ifish.geewe.DeviceCamera;
import com.ifish.permission.PermissionHelper; import com.ifish.permission.PermissionHelper;
import com.ifish.utils.ActivityManager; import com.ifish.utils.ActivityManager;
import com.ifish.utils.AnimationUtil; import com.ifish.utils.AnimationUtil;
import com.ifish.utils.AppUtil;
import com.ifish.utils.Commons; import com.ifish.utils.Commons;
import com.ifish.utils.Commons.LoginSPKey; import com.ifish.utils.Commons.LoginSPKey;
import com.ifish.utils.Commons.NetWork; import com.ifish.utils.Commons.NetWork;
@ -56,13 +53,11 @@ import com.ifish.utils.HttpManager;
import com.ifish.utils.L; import com.ifish.utils.L;
import com.ifish.utils.SPUtil; import com.ifish.utils.SPUtil;
import com.ifish.utils.ToastUtil; import com.ifish.utils.ToastUtil;
import com.ifish.view.IosAlertDialog;
import com.ifish.view.SuperTextView; import com.ifish.view.SuperTextView;
import com.igexin.sdk.PushManager; import com.igexin.sdk.PushManager;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
import com.tencent.mm.opensdk.openapi.IWXAPI; import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.WXAPIFactory; import com.tencent.mm.opensdk.openapi.WXAPIFactory;
import com.xiaomi.mipush.sdk.MiPushClient;
import java.net.URL; import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
@ -116,7 +111,7 @@ public class LoadingActivity extends BaseActivityNotAnim {
private PermissionHelper permissionHelper; private PermissionHelper permissionHelper;
private static String firstShowPrivacy = "firstShowPrivacy"; private static String firstShowPrivacy = "firstShowPrivacy";
String[] permission;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -127,82 +122,16 @@ public class LoadingActivity extends BaseActivityNotAnim {
if (savedInstanceState != null) { if (savedInstanceState != null) {
setIntent(new Intent()); // 从堆栈恢复不再重复解析之前的intent setIntent(new Intent()); // 从堆栈恢复不再重复解析之前的intent
} }
permission = AppUtil.getBluePermissionList();
permissionHelper = new PermissionHelper(this, permission, 250);
// //
Boolean showPrivacy = SPUtil.getInstance(getApplicationContext()).getBoolean(firstShowPrivacy, false); Boolean showPrivacy = SPUtil.getInstance(getApplicationContext()).getBoolean(firstShowPrivacy, false);
Boolean aBoolean = ConfigUtil.getInstance(getApplicationContext()).getBoolean(LoginSPKey.IS_FirstOpen, false); Boolean aBoolean = ConfigUtil.getInstance(getApplicationContext()).getBoolean(LoginSPKey.IS_FirstOpen, false);
if(!aBoolean && !showPrivacy){ if(!aBoolean && !showPrivacy){
startPrivacyTextDialog(); startPrivacyTextDialog();
}else{ }else{
// ();
initapp(); initapp();
} }
} }
private void getPermission() {
permissionHelper.request(new PermissionHelper.PermissionCallback() {
@Override
public void onPermissionGranted() {
initapp();
}
@Override
public void onIndividualPermissionGranted(String[] grantedPermission) {
initapp();
// AlertDialog.Builder dialog = new AlertDialog.Builder(LoadingActivity.this);
// dialog.setCancelable(false);
// dialog.setMessage("蓝牙联网请先同意app获取蓝牙相关权限x");
// dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
// @Override
// public void onClick(
// DialogInterface dialog,
// int which) {
//
// }
// });
// dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which) {
// }
// });
// dialog.show();
}
@Override
public void onPermissionDenied() {
initapp();
}
@Override
public void onPermissionDeniedBySystem() {
// IosAlertDialog dialog = new IosAlertDialog(LoadingActivity.this).builder();
// dialog.setCancelable(false);
// dialog.setTitle("权限申请理由");
// dialog.setMessage("蓝牙联网,请到应用信息页面-权限管理-打开蓝牙权限");
// dialog.setNegativeButton("取消", view -> {
// initapp();
// });
// dialog.setPositiveButton("去开启", view ->
// {
// AppUtil.toAuthority(LoadingActivity.this);
// });
// dialog.show();
initapp();
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (permissionHelper != null) {
permissionHelper.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
private void analysisBaseUrlError(){ private void analysisBaseUrlError(){
showProgressDialog(); showProgressDialog();
@ -379,16 +308,11 @@ public class LoadingActivity extends BaseActivityNotAnim {
private void initapp() { private void initapp() {
// jjia-xpush // jjia-push
// IPushService // IPushService
// IIntentService // IIntentService
PushManager.getInstance().preInit(this); PushManager.getInstance().preInit(this);
PushManager.getInstance().initialize(this); PushManager.getInstance().initialize(this);
MiPushClient.setAlias(this,"aaa","aaa" );
L.i("jjia------push init-as-"+MiPushClient.getAllAlias(this));
L.i("jjia------push init-getRegId-"+MiPushClient.getRegId(this));
L.i("jjia------push init-getRegId-"+PushManager.getInstance().getClientid(this));
if (BuildConfig.DEBUG){ if (BuildConfig.DEBUG){
PushManager.getInstance().setDebugLogger(this, s -> L.i("jjia--------"+s)); PushManager.getInstance().setDebugLogger(this, s -> L.i("jjia--------"+s));
} }
@ -975,9 +899,9 @@ public class LoadingActivity extends BaseActivityNotAnim {
public void onClick(View v) { public void onClick(View v) {
alertDialog.cancel(); alertDialog.cancel();
SPUtil.getInstance(getApplicationContext()).putBoolean(firstShowPrivacy,true); SPUtil.getInstance(getApplicationContext()).putBoolean(firstShowPrivacy,true);
// getPermission();
// pushInit(); // pushInit();
initapp(); initapp();
// getPermission();
} }
}); });
} }

View File

@ -78,7 +78,6 @@ public class LoginActivity extends BaseActivity {
initTitleView(); initTitleView();
initView(); initView();
initListener(); initListener();
SPUtil.getInstance(this).putBoolean("xfirst",false);
} }
private void initView() { private void initView() {
@ -295,7 +294,7 @@ public class LoginActivity extends BaseActivity {
switch (msg.what) { switch (msg.what) {
case NetWork.Success: case NetWork.Success:
saveInfo(); saveInfo();
// ToastUtil.show(getApplicationContext(), "登录成功"); ToastUtil.show(getApplicationContext(), "登录成功");
dismissProgressDialog(); dismissProgressDialog();
startActivity(MainTabActivity.class); startActivity(MainTabActivity.class);
finish(); finish();

View File

@ -4,26 +4,20 @@ import static com.ifish.activity.MainTabActivity.map;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
import android.os.CountDownTimer; import android.os.CountDownTimer;
import android.os.Handler; import android.os.Handler;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.Window; import android.view.Window;
import android.widget.Button; import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.clj.fastble.data.BleScanState;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import com.ifish.basebean.BaseBean; import com.ifish.basebean.BaseBean;
@ -49,9 +43,7 @@ import com.ifish.tcp.FishFeedType;
import com.ifish.tcp.TcpReceiveThread; import com.ifish.tcp.TcpReceiveThread;
import com.ifish.tcp.TcpSendThread; import com.ifish.tcp.TcpSendThread;
import com.ifish.utils.AnimationUtil; import com.ifish.utils.AnimationUtil;
import com.ifish.utils.AppUtil;
import com.ifish.utils.Commons; import com.ifish.utils.Commons;
import com.ifish.utils.DialogUtil;
import com.ifish.utils.HttpListener; import com.ifish.utils.HttpListener;
import com.ifish.utils.HttpManager; import com.ifish.utils.HttpManager;
import com.ifish.utils.L; import com.ifish.utils.L;
@ -108,9 +100,6 @@ public class MainSix_4F_ControlActivity extends BaseGradeActivity implements Swi
private Device deviceBean; private Device deviceBean;
private boolean isBind = false;
private boolean isShowHint = true;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -128,28 +117,9 @@ public class MainSix_4F_ControlActivity extends BaseGradeActivity implements Swi
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
isBind = getIntent().getBooleanExtra(BaseGradeActivity.BINDDEVICE,false);
L.i("jjia------------"+isBind);
if (isBind){
DialogUtil.Companion.showLoadingDialog(this,true,"设备正在联网中,请耐心等待");
startDownTimer();
}
// showHint();
}
private void showHint(){
isShowHint = false;
Toast toast = new Toast(this);
toast.setDuration(Toast.LENGTH_LONG);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.hint_toast, null);
toast.setView(view);
toast.setGravity(Gravity.CENTER,0,120);
toast.show();
} }
public void onEventMainThread(EventBean eventBean){ public void onEventMainThread(EventBean eventBean){
if (eventBean!=null && EventBean.CHANGE_DEVICE_NAME.equals(eventBean.name)){ if (eventBean!=null && EventBean.CHANGE_DEVICE_NAME.equals(eventBean.name)){
setTitle(eventBean.value); setTitle(eventBean.value);
@ -176,9 +146,7 @@ public class MainSix_4F_ControlActivity extends BaseGradeActivity implements Swi
protected void onDestroy() { protected void onDestroy() {
isToast = false; isToast = false;
EventBus.getDefault().unregister(this); EventBus.getDefault().unregister(this);
DialogUtil.Companion.setLoadingDialogDismiss(this);
closeSoket(); closeSoket();
closeDownTimer();
stopAllTimer(); stopAllTimer();
super.onDestroy(); super.onDestroy();
} }
@ -421,7 +389,7 @@ public class MainSix_4F_ControlActivity extends BaseGradeActivity implements Swi
tv_wendu.setText(""); tv_wendu.setText("");
sw.setRefreshing(false); sw.setRefreshing(false);
if (isToast) { if (isToast) {
// ToastUtil.showSpecial(MainSix_4F_ControlActivity.this, Commons.Text.Repost); ToastUtil.showSpecial(MainSix_4F_ControlActivity.this, Commons.Text.Repost);
} }
} }
}; };
@ -470,7 +438,7 @@ public class MainSix_4F_ControlActivity extends BaseGradeActivity implements Swi
resetIVFlag(); resetIVFlag();
isWaterDialog = false; isWaterDialog = false;
dismissProgressDialog(); dismissProgressDialog();
// ToastUtil.showSpecial(MainSix_4F_ControlActivity.this, Commons.Text.Repost); ToastUtil.showSpecial(MainSix_4F_ControlActivity.this, Commons.Text.Repost);
} }
}; };
} }
@ -611,16 +579,9 @@ public class MainSix_4F_ControlActivity extends BaseGradeActivity implements Swi
//接受6控查询返回的指令 //接受6控查询返回的指令
public void onEventMainThread(BackInfoModelSix_4F event) { public void onEventMainThread(BackInfoModelSix_4F event) {
closeDownTimer();
L.i("jjia---------c------1"+event.toString()); L.i("jjia---------c------1"+event.toString());
hidegif(); hidegif();
dismissProgressDialog(); dismissProgressDialog();
if (isBind){
DialogUtil.Companion.setLoadingDialogDismiss(this);
if (isShowHint){
showHint();
}
}
dismissProgressDialogCancelble(); dismissProgressDialogCancelble();
tv_offline.setVisibility(View.GONE); tv_offline.setVisibility(View.GONE);
backInfoModelSix_4F = event; backInfoModelSix_4F = event;
@ -1357,33 +1318,4 @@ public class MainSix_4F_ControlActivity extends BaseGradeActivity implements Swi
}); });
dialog.show(); dialog.show();
} }
CountDownTimer countDownTimer;
int dowmCount = 0;
private void startDownTimer(){
closeDownTimer();
countDownTimer = new CountDownTimer(40000,1000) {
@Override
public void onTick(long l) {
DialogUtil.Companion.setProgress(dowmCount);
dowmCount++;
}
@Override
public void onFinish() {
DialogUtil.Companion.setError();
}
};
countDownTimer.start();
}
private void closeDownTimer(){
if (countDownTimer!=null){
countDownTimer.cancel();
countDownTimer = null;
}
}
} }

View File

@ -721,19 +721,19 @@ public class MainTabActivity extends BaseFragmentActivity {
} }
public void onEventMainThread(EventBean event) { public void onEventMainThread(EventBean event) {
// if (event!=null){ if (event!=null){
// switch (event.index) { switch (event.index) {
// case -1: case -1:
// startDownTimer(); startDownTimer();
// break; break;
// case 1: case 1:
// closeDownTimer(); closeDownTimer();
// break; break;
// default: default:
//
// break; break;
// } }
// } }
} }
CountDownTimer countDownTimer; CountDownTimer countDownTimer;

View File

@ -7,7 +7,11 @@
*/ */
package com.ifish.activity; package com.ifish.activity;
import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
import android.app.Fragment;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.Bitmap; import android.graphics.Bitmap;
@ -21,6 +25,7 @@ import android.provider.MediaStore;
import android.provider.Settings; import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window; import android.view.Window;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
@ -37,6 +42,7 @@ import com.ifish.basebean.LoadHeadImage;
import com.ifish.basebean.User; import com.ifish.basebean.User;
import com.ifish.baseclass.BaseActivity; import com.ifish.baseclass.BaseActivity;
import com.ifish.baseclass.UriForFile; import com.ifish.baseclass.UriForFile;
import com.ifish.fragment.DeviceFragment;
import com.ifish.permission.PermissionHelper; import com.ifish.permission.PermissionHelper;
import com.ifish.utils.AnimationUtil; import com.ifish.utils.AnimationUtil;
import com.ifish.utils.AppUtil; import com.ifish.utils.AppUtil;
@ -625,17 +631,6 @@ public class MineActivity extends BaseActivity {
@Override @Override
public void onIndividualPermissionGranted(String[] grantedPermission) { public void onIndividualPermissionGranted(String[] grantedPermission) {
//<<<<<<< HEAD
// AlertDialog.Builder dialog = new AlertDialog.Builder(MineActivity.this);
// dialog.setCancelable(false);
// dialog.setMessage("设置头像请先同意app获取存储和相机权限");
// dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
// @Override
// public void onClick(
// DialogInterface dialog,
// int which) {
//=======
//>>>>>>> feature-online
} }
@ -698,6 +693,7 @@ public class MineActivity extends BaseActivity {
IosAlertDialog openDialog; IosAlertDialog openDialog;
private void showPermissionHint(){ private void showPermissionHint(){
openDialog = new IosAlertDialog(MineActivity.this).builder(); openDialog = new IosAlertDialog(MineActivity.this).builder();
openDialog.setCancelable(true); openDialog.setCancelable(true);
openDialog.setTitle("申请权限目的说明"); openDialog.setTitle("申请权限目的说明");
@ -705,15 +701,10 @@ public class MineActivity extends BaseActivity {
openDialog.setPositiveButtonx("继续", new View.OnClickListener() { openDialog.setPositiveButtonx("继续", new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
if (permissionHelper.checkSelfPermission(permission)) {
gallery();
}else{
getPermission(); getPermission();
} }
}
}); });
openDialog.setNegativeButton("取消", new View.OnClickListener() { openDialog.setNegativeButton("取消", new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {

View File

@ -34,14 +34,12 @@ import com.ifish.baseclass.UriForFile;
import com.ifish.permission.PermissionHelper; import com.ifish.permission.PermissionHelper;
import com.ifish.utils.ActivityManager; import com.ifish.utils.ActivityManager;
import com.ifish.utils.AnimationUtil; import com.ifish.utils.AnimationUtil;
import com.ifish.utils.AppUtil;
import com.ifish.utils.Commons; import com.ifish.utils.Commons;
import com.ifish.utils.HttpListener; import com.ifish.utils.HttpListener;
import com.ifish.utils.HttpManager; import com.ifish.utils.HttpManager;
import com.ifish.utils.L; import com.ifish.utils.L;
import com.ifish.utils.SPUtil; import com.ifish.utils.SPUtil;
import com.ifish.utils.ToastUtil; import com.ifish.utils.ToastUtil;
import com.igexin.sdk.PushManager;
import com.lidroid.xutils.HttpUtils; import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException; import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo; import com.lidroid.xutils.http.ResponseInfo;
@ -129,8 +127,6 @@ public class MySettingActivity extends BaseActivity {
findViewById(R.id.rl_devicereset).setOnClickListener(this); findViewById(R.id.rl_devicereset).setOnClickListener(this);
findViewById(R.id.rl_bindphone).setOnClickListener(this); findViewById(R.id.rl_bindphone).setOnClickListener(this);
findViewById(R.id.tv_exit).setOnClickListener(view -> exitAccount()); findViewById(R.id.tv_exit).setOnClickListener(view -> exitAccount());
TextView textView = findViewById(R.id.cid);
textView.setText(PushManager.getInstance().getClientid(this));
} }
private void exitAccount(){ private void exitAccount(){
@ -257,12 +253,7 @@ public class MySettingActivity extends BaseActivity {
private void checkVersion() { private void checkVersion() {
versionCode = versionCode.toUpperCase(); versionCode = versionCode.toUpperCase();
if (versionCode.equals(HttpManager.getVersionName(MySettingActivity.this))) {
int code = AppUtil.getVersionValue(versionCode);
int appCode = AppUtil.getVersionValue(HttpManager.getVersionName(MySettingActivity.this));
L.i("jia---------servercode--"+code);
L.i("jia---------appCode--"+appCode);
if (appCode>= code) {
ToastUtil.show(MySettingActivity.this, "您使用的是最新版本"); ToastUtil.show(MySettingActivity.this, "您使用的是最新版本");
} else { } else {
updateDialog(); updateDialog();

View File

@ -226,7 +226,7 @@ public class NoNetwork extends BaseSingleActivity {
Intent intent = new Intent(); Intent intent = new Intent();
switch (msg.what) { switch (msg.what) {
case NetWork.Success: case NetWork.Success:
// ToastUtil.show(getApplicationContext(), "登录成功"); ToastUtil.show(getApplicationContext(), "登录成功");
String stringExtra = getIntent().getStringExtra("jpush"); String stringExtra = getIntent().getStringExtra("jpush");
if (!TextUtils.isEmpty(stringExtra)) { if (!TextUtils.isEmpty(stringExtra)) {
intent.putExtra("jpush", stringExtra); intent.putExtra("jpush", stringExtra);

View File

@ -93,7 +93,6 @@ public class RegisteredActivity extends BaseActivityNotAnim {
initView(); initView();
init(); init();
initListener(); initListener();
SPUtil.getInstance(this).putBoolean("xfirst",false);
} }
private void test() { private void test() {

View File

@ -532,7 +532,7 @@ public class AirKissUtil {
Commons.HAVE_DEVICE = true;//改变判断是否绑定的变量 Commons.HAVE_DEVICE = true;//改变判断是否绑定的变量
Commons.IS_CAMERA = false; Commons.IS_CAMERA = false;
sp.putBoolean(Commons.LoginSPKey.IS_CAMERA, Commons.IS_CAMERA); sp.putBoolean(Commons.LoginSPKey.IS_CAMERA, Commons.IS_CAMERA);
// ToastUtil.show(curActivity, "绑定设备成功"); ToastUtil.show(curActivity, "绑定设备成功");
AppRoute.newToStart(curActivity,deviceObj,true); AppRoute.newToStart(curActivity,deviceObj,true);
curActivity.finish(); curActivity.finish();
L.i("===================绑定设备成功=" + device_mac); L.i("===================绑定设备成功=" + device_mac);
@ -599,7 +599,7 @@ public class AirKissUtil {
Commons.HAVE_DEVICE = true;//改变判断是否绑定的变量 Commons.HAVE_DEVICE = true;//改变判断是否绑定的变量
Commons.IS_CAMERA = false; Commons.IS_CAMERA = false;
sp.putBoolean(Commons.LoginSPKey.IS_CAMERA, Commons.IS_CAMERA); sp.putBoolean(Commons.LoginSPKey.IS_CAMERA, Commons.IS_CAMERA);
// ToastUtil.show(curActivity, "绑定设备成功"); ToastUtil.show(curActivity, "绑定设备成功");
AppRoute.newToStart(curActivity,deviceObj,true); AppRoute.newToStart(curActivity,deviceObj,true);
curActivity.finish(); curActivity.finish();

View File

@ -148,8 +148,8 @@ public class BottomChoiceDialog extends DialogFragment implements View.OnClickLi
lineAirKiss.setVisibility(View.VISIBLE); lineAirKiss.setVisibility(View.VISIBLE);
lineAP.setVisibility(View.VISIBLE); lineAP.setVisibility(View.VISIBLE);
lineSmartConfig.setVisibility(View.GONE); lineSmartConfig.setVisibility(View.GONE);
// jiaxblue 暂时隐藏 // jiablue 暂时隐藏
// lineBle.setVisibility(View.GONE); lineBle.setVisibility(View.GONE);
switch (curConnectType) { switch (curConnectType) {
case SmartConfig: case SmartConfig:
// 处理SmartConfig逻辑 // 处理SmartConfig逻辑

View File

@ -28,17 +28,16 @@ import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.RequiresPermission;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
//jjia-xpush //jjia-push
import com.clj.fastble.BleManager; //import com.clj.fastble.BleManager;
import com.clj.fastble.callback.BleGattCallback; //import com.clj.fastble.callback.BleGattCallback;
import com.clj.fastble.callback.BleMtuChangedCallback; //import com.clj.fastble.callback.BleMtuChangedCallback;
import com.clj.fastble.callback.BleNotifyCallback; //import com.clj.fastble.callback.BleNotifyCallback;
import com.clj.fastble.callback.BleScanCallback; //import com.clj.fastble.callback.BleScanCallback;
import com.clj.fastble.callback.BleWriteCallback; //import com.clj.fastble.callback.BleWriteCallback;
import com.clj.fastble.data.BleDevice; //import com.clj.fastble.data.BleDevice;
import com.clj.fastble.exception.BleException; //import com.clj.fastble.exception.BleException;
import com.ifish.activity.BindCameraActivity; import com.ifish.activity.BindCameraActivity;
import com.ifish.activity.BindTankActivity; import com.ifish.activity.BindTankActivity;
import com.ifish.activity.BindTankPetActivity; import com.ifish.activity.BindTankPetActivity;
@ -59,7 +58,6 @@ import com.ifish.activity.MainThree1CControlActivity;
import com.ifish.activity.MainThreeControlActivity; import com.ifish.activity.MainThreeControlActivity;
import com.ifish.activity.MainTwoControlActivity; import com.ifish.activity.MainTwoControlActivity;
import com.ifish.activity.MainZeroControlActivity; import com.ifish.activity.MainZeroControlActivity;
import com.ifish.activity.MineActivity;
import com.ifish.activity.R; import com.ifish.activity.R;
import com.ifish.activity.WebViewActivity; import com.ifish.activity.WebViewActivity;
import com.ifish.basebean.BaseBean; import com.ifish.basebean.BaseBean;
@ -67,7 +65,6 @@ import com.ifish.basebean.ConnectMessageEvent;
import com.ifish.basebean.Device; import com.ifish.basebean.Device;
import com.ifish.basebean.EventBean; import com.ifish.basebean.EventBean;
import com.ifish.baseclass.BaseGradeActivity; import com.ifish.baseclass.BaseGradeActivity;
import com.ifish.permission.PermissionHelper;
import com.ifish.tcp.BackFunctionCode7_11; import com.ifish.tcp.BackFunctionCode7_11;
import com.ifish.tcp.ModelCodec; import com.ifish.tcp.ModelCodec;
import com.ifish.tcp.OrderDeviceConnectModel; import com.ifish.tcp.OrderDeviceConnectModel;
@ -76,7 +73,6 @@ import com.ifish.tcp.ResetDeviceModel;
import com.ifish.utils.ActivityManager; import com.ifish.utils.ActivityManager;
import com.ifish.utils.AnimationUtil; import com.ifish.utils.AnimationUtil;
import com.ifish.utils.AppRoute; import com.ifish.utils.AppRoute;
import com.ifish.utils.AppUtil;
import com.ifish.utils.BlueToothUtil; import com.ifish.utils.BlueToothUtil;
import com.ifish.utils.ByteUtil; import com.ifish.utils.ByteUtil;
import com.ifish.utils.ClickUtil; import com.ifish.utils.ClickUtil;
@ -87,7 +83,6 @@ import com.ifish.utils.L;
import com.ifish.utils.SPUtil; import com.ifish.utils.SPUtil;
import com.ifish.utils.ToastUtil; import com.ifish.utils.ToastUtil;
import com.ifish.utils.WifiAdmin; import com.ifish.utils.WifiAdmin;
import com.ifish.view.IosAlertDialog;
import com.lidroid.xutils.util.LogUtils; import com.lidroid.xutils.util.LogUtils;
import java.io.BufferedReader; import java.io.BufferedReader;
@ -135,15 +130,12 @@ public class NewBindDeviceActivity extends AppCompatActivity {
private Dialog waterTempDialog; private Dialog waterTempDialog;
String type = null; String type = null;
private Activity activity; private Activity activity;
private PermissionHelper permissionHelper;
String[] permission;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_bind_device_choice); setContentView(R.layout.activity_new_bind_device_choice);
activity = this; activity = this;
permission = AppUtil.getBluePermissionList();
permissionHelper = new PermissionHelper(this, permission, 250);
ActivityManager.getInstance().addActivity(this); ActivityManager.getInstance().addActivity(this);
sp=SPUtil.getInstance(this); sp=SPUtil.getInstance(this);
@ -159,8 +151,8 @@ public class NewBindDeviceActivity extends AppCompatActivity {
devicetype = getIntent().getStringExtra("devicetype"); devicetype = getIntent().getStringExtra("devicetype");
L.i("jjia----------------devicetype="+devicetype); L.i("jjia----------------devicetype="+devicetype);
airKissUtil.init(this,devicetype); airKissUtil.init(this,devicetype);
//jjia-xpush //jjia-push
BleManager.getInstance().disconnectAllDevice(); // BleManager.getInstance().disconnectAllDevice();
if ("bluetooth".equals(type)){ if ("bluetooth".equals(type)){
curConnectType = BlueTooth; curConnectType = BlueTooth;
}else { }else {
@ -171,8 +163,8 @@ public class NewBindDeviceActivity extends AppCompatActivity {
switchUIConnectType(curConnectType); switchUIConnectType(curConnectType);
if ("bluetooth".equals(type)){ // 主动去联网 if ("bluetooth".equals(type)){ // 主动去联网
//jjia-xpush //jjia-push
currentDevice = getIntent().getParcelableExtra("device"); // currentDevice = getIntent().getParcelableExtra("device");
} }
EventBus.getDefault().register(this); EventBus.getDefault().register(this);
@ -327,10 +319,6 @@ public class NewBindDeviceActivity extends AppCompatActivity {
public void onClick(View v) { public void onClick(View v) {
Intent i = new Intent(); Intent i = new Intent();
i.setClass(NewBindDeviceActivity.this, WebViewActivity.class); i.setClass(NewBindDeviceActivity.this, WebViewActivity.class);
if (curConnectType ==ConnectType.BlueTooth){
i.putExtra(WebViewActivity.URL, HttpManager.BlueConnectVideoUrl);
i.putExtra(WebViewActivity.WEBVIEWTITLE, HttpManager.BlueConnectVideoTitle);
}else
if (curConnectType == ConnectType.AirKiss){ if (curConnectType == ConnectType.AirKiss){
i.putExtra(WebViewActivity.URL, HttpManager.AirKissConnectVideoUrl); i.putExtra(WebViewActivity.URL, HttpManager.AirKissConnectVideoUrl);
i.putExtra(WebViewActivity.WEBVIEWTITLE, HttpManager.AirKissConnectVideoTitle); i.putExtra(WebViewActivity.WEBVIEWTITLE, HttpManager.AirKissConnectVideoTitle);
@ -360,15 +348,15 @@ public class NewBindDeviceActivity extends AppCompatActivity {
*/ */
private void changeView(boolean blue){ private void changeView(boolean blue){
// if (blue){ if (blue){
// tvTips2.setVisibility(View.GONE); tvTips2.setVisibility(View.GONE);
// tvTips3.setVisibility(View.GONE); tvTips3.setVisibility(View.GONE);
//
//
// }else { }else {
// tvTips2.setVisibility(View.VISIBLE); tvTips2.setVisibility(View.VISIBLE);
// tvTips3.setVisibility(View.VISIBLE); tvTips3.setVisibility(View.VISIBLE);
// } }
} }
public void switchUIConnectType(ConnectType connectType) { public void switchUIConnectType(ConnectType connectType) {
resetLayout(); resetLayout();
@ -381,7 +369,7 @@ public class NewBindDeviceActivity extends AppCompatActivity {
tvConnectVideo.setVisibility(View.INVISIBLE); tvConnectVideo.setVisibility(View.INVISIBLE);
tvTips.setText("1、插座仅支持2.4G的WiFi网络不支持5G及双频合一的网络需在路由器设置中分开"); tvTips.setText("1、插座仅支持2.4G的WiFi网络不支持5G及双频合一的网络需在路由器设置中分开");
tvTips2.setText("2、先长按插座复位键3秒松手后红灯绿灯同时闪烁以后再点确定按钮。"); tvTips2.setText("2、先长按插座复位键3秒松手后红灯绿灯同时闪烁以后再点确定按钮。");
tvTips3.setText("3、如多次尝试快捷联网都不成功,可切换其他联网方式,每次重新连接时插座需断一次电然后重新复位连接。"); tvTips3.setText("3、如多次尝试一键联网都不成功,可切换其他联网方式,每次重新连接时插座需断一次电然后重新复位连接。");
changeView(false); changeView(false);
break; break;
case BlueTooth: case BlueTooth:
@ -389,10 +377,10 @@ public class NewBindDeviceActivity extends AppCompatActivity {
// 处理SmartConfig逻辑 // 处理SmartConfig逻辑
tvConnectType.setText("蓝牙联网"); tvConnectType.setText("蓝牙联网");
tvClickButton.setText("确定"); tvClickButton.setText("确定");
// tvConnectVideo.setVisibility(View.INVISIBLE); tvConnectVideo.setVisibility(View.INVISIBLE);
tvTips.setText("1、插座不支持5G的WiFi网络。"); tvTips.setText("1、插座仅支持2.4G的WiFi网络不支持5G及双频合一的网络需在路由器设置中分开");
tvTips2.setText("2、先长按插座复位键3秒松手后红灯绿灯同时闪烁,再点确定按钮。"); tvTips2.setText("2、先长按插座复位键3秒松手后红灯绿灯同时闪烁以后,再点确定按钮。");
tvTips3.setText("3、如多次尝试蓝牙联网都不成功可切换成AP联网方式,每次重新连接时插座需断一次电然后重新复位连接。"); tvTips3.setText("3、如多次尝试一键联网都不成功,可切换其他联网方式,每次重新连接时插座需断一次电然后重新复位连接。");
changeView(true); changeView(true);
break; break;
case APConnect: case APConnect:
@ -409,7 +397,7 @@ public class NewBindDeviceActivity extends AppCompatActivity {
tvClickButton.setText("确定"); tvClickButton.setText("确定");
tvTips.setText("1、插座仅支持2.4G的WiFi网络不支持5G及双频合一的网络需在路由器设置中分开"); tvTips.setText("1、插座仅支持2.4G的WiFi网络不支持5G及双频合一的网络需在路由器设置中分开");
tvTips2.setText("2、先长按插座复位键3秒松手后红灯绿灯同时闪烁以后再点确定按钮。"); tvTips2.setText("2、先长按插座复位键3秒松手后红灯绿灯同时闪烁以后再点确定按钮。");
tvTips3.setText("3、如多次尝试一键联网都不成功可切换其他联网方式每次重新连接时插座需断一次电然后重新复位连接。"); tvTips3.setText("3、如多次尝试一键联网都不成功可切换其他联网方式每次重新连接时插座需断一次电然后重新复位连接。");
// 处理AirKiss逻辑 // 处理AirKiss逻辑
changeView(false); changeView(false);
break; break;
@ -482,13 +470,42 @@ public class NewBindDeviceActivity extends AppCompatActivity {
break; break;
case BlueTooth: case BlueTooth:
if (permissionHelper.checkSelfPermission(permission)) {
blueClick();
} else {
showPermissionHint();
}
//jjia-push
// boolean support = BleManager.getInstance().isSupportBle();
// if (!support){
// ToastUtil.show(NewBindDeviceActivity.this,"当前设备不支持低功耗蓝牙");
// } else {
// boolean enable = BleManager.getInstance().isBlueEnable();
// if (enable){
// if (TextUtils.isEmpty(type)){
// blueScan();
// }else {
// showDialog("开始连接蓝牙设备");
// connectBle();
// }
// }else {
// AlertDialog.Builder dialog = new AlertDialog.Builder(NewBindDeviceActivity.this, AlertDialog.THEME_HOLO_LIGHT);
// dialog.setCancelable(false);
// dialog.setMessage("蓝牙没有打开,现在去申请打开蓝牙,请允许后,再点击'确定'连接");
// dialog.setPositiveButton("去申请", new DialogInterface.OnClickListener() {
// @Override
// public void onClick(
// DialogInterface dialog,
// int which) {
// BlueToothUtil.openBlueTooth(NewBindDeviceActivity.this);
// }
// });
// dialog.setNegativeButton("拒绝", new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which) {
// finish();
// }
// });
// dialog.show();
// }
// }
break; break;
case APConnect: case APConnect:
@ -498,167 +515,49 @@ public class NewBindDeviceActivity extends AppCompatActivity {
case AirKiss: case AirKiss:
// 处理AirKiss逻辑 // 处理AirKiss逻辑
L.i("jjia----------------bssid="+bssid); L.i("jjia----------------bssid="+bssid);
// ToastUtil.show(NewBindDeviceActivity.this, "开始AirKiss联网..."); ToastUtil.show(NewBindDeviceActivity.this, "开始AirKiss联网...");
airKissUtil.connectDeviceByAirKiss(this, ssid, bssid, pwd); airKissUtil.connectDeviceByAirKiss(this, ssid, bssid, pwd);
break; break;
} }
} }
//jjia-push
private void showPermissionHint(){ // private void blueScan(){
IosAlertDialog dialog = new IosAlertDialog(this).builder(); // BleManager.getInstance().scan(new BleScanCallback() {
dialog.setCancelable(false); // @Override
dialog.setTitle("权限申请理由"); // public void onScanFinished(List<BleDevice> scanResultList) {
dialog.setMessage("蓝牙联网需要app获取手机的蓝牙扫描权限才能进行蓝牙扫描是否允许申请蓝牙扫描相关权限"); //
dialog.setNegativeButton("拒绝", view -> { // if (currentDevice!=null){
// connectBle();
}); // }else {
dialog.setPositiveButton("申请", view -> // ToastUtil.show(NewBindDeviceActivity.this,"扫描结束,没有搜索到可用设备");
{ // dismissDialog();
getPermission(); // }
}); // }
dialog.show(); //
} // @Override
// public void onScanStarted(boolean success) {
private void getPermission() { //// ToastUtil.show(NewBindDeviceActivity.this,"开始扫描");
permissionHelper.request(new PermissionHelper.PermissionCallback() { // showDialog("正在搜索附近设备,请确保设备处于配网状态");
@Override // }
public void onPermissionGranted() { //
blueClick(); // @SuppressLint("MissingPermission")
} // @Override
// public void onScanning(BleDevice bleDevice) {
@Override // if (bleDevice!=null && bleDevice.getDevice()!=null){
public void onIndividualPermissionGranted(String[] grantedPermission) { // BluetoothDevice bean = bleDevice.getDevice();
AlertDialog.Builder dialog = new AlertDialog.Builder(NewBindDeviceActivity.this); // if (!TextUtils.isEmpty(bean.getName()) && bean.getName().startsWith("ifish")){
dialog.setCancelable(false); // currentDevice = bleDevice;
dialog.setMessage("蓝牙联网请先同意app获取蓝牙相关权限"); //// tvname.setText(bean.getName()+bean.getAddress());
dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() { // BleManager.getInstance().cancelScan();
@Override // }
public void onClick( // L.i(bean.getName()+"jjia---------"+bean.getAddress());
DialogInterface dialog, // }
int which) { // }
// });
} // }
});
dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.show();
}
@Override
public void onPermissionDenied() {
AlertDialog.Builder dialog = new AlertDialog.Builder(NewBindDeviceActivity.this);
dialog.setCancelable(false);
dialog.setMessage("蓝牙联网请先同意app获取蓝牙相关权限");
dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
getPermission();
}
});
dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.show();
}
@Override
public void onPermissionDeniedBySystem() {
AlertDialog.Builder dialog = new AlertDialog.Builder(NewBindDeviceActivity.this);
dialog.setCancelable(false);
dialog.setTitle("温馨提示");
dialog.setMessage("蓝牙联网,请到应用信息页面-权限管理-打开蓝牙权限");
dialog.setPositiveButton("去开启", (dialog1, which) -> {
AppUtil.toAuthority(NewBindDeviceActivity.this);
});
dialog.setNegativeButton("取消", (dialog12, which) -> {
});
dialog.show();
}
});
}
private void blueClick(){
//jjia-xpush
boolean support = BleManager.getInstance().isSupportBle();
if (!support){
ToastUtil.show(NewBindDeviceActivity.this,"当前设备不支持低功耗蓝牙");
} else {
boolean enable = BleManager.getInstance().isBlueEnable();
if (enable){
if (TextUtils.isEmpty(type)){
blueScan();
}else {
showDialog("开始连接蓝牙设备");
connectBle();
}
}else {
AlertDialog.Builder dialog = new AlertDialog.Builder(NewBindDeviceActivity.this, AlertDialog.THEME_HOLO_LIGHT);
dialog.setCancelable(false);
dialog.setMessage("蓝牙没有打开,现在去申请打开蓝牙,请允许后,再点击'确定'连接");
dialog.setPositiveButton("去申请", new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
BlueToothUtil.openBlueTooth(NewBindDeviceActivity.this);
}
});
dialog.setNegativeButton("拒绝", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
dialog.show();
}
}
}
//jjia-xpush
private void blueScan(){
BleManager.getInstance().scan(new BleScanCallback() {
@Override
public void onScanFinished(List<BleDevice> scanResultList) {
if (currentDevice!=null){
connectBle();
}else {
ToastUtil.show(NewBindDeviceActivity.this,"扫描结束,没有搜索到可用设备");
dismissDialog();
}
}
@Override
public void onScanStarted(boolean success) {
// ToastUtil.show(NewBindDeviceActivity.this,"开始扫描");
showDialog("正在搜索附近设备,请确保设备处于配网状态");
}
@SuppressLint("MissingPermission")
@Override
public void onScanning(BleDevice bleDevice) {
if (bleDevice!=null && bleDevice.getDevice()!=null){
BluetoothDevice bean = bleDevice.getDevice();
if (!TextUtils.isEmpty(bean.getName()) && bean.getName().startsWith("ifish")){
currentDevice = bleDevice;
// tvname.setText(bean.getName()+bean.getAddress());
BleManager.getInstance().cancelScan();
}
L.i(bean.getName()+"jjia---------"+bean.getAddress());
}
}
});
}
private boolean isJump = false; private boolean isJump = false;
//jjia-xpush //jjia-push
BleDevice currentDevice; // BleDevice currentDevice;
/** /**
* 1.跳转设置页面连接ifish-xxx的wifi连接成功后返回 * 1.跳转设置页面连接ifish-xxx的wifi连接成功后返回
*/ */
@ -737,153 +636,142 @@ public class NewBindDeviceActivity extends AppCompatActivity {
} }
} }
} }
//jjia-xpush //jjia-push
private String device_mac; private String device_mac;
private void openNotify(){ // private void openNotify(){
BleManager.getInstance().notify(currentDevice, SERVICE_UUID, WRITE_UUID, new BleNotifyCallback() { // BleManager.getInstance().notify(currentDevice, SERVICE_UUID, WRITE_UUID, new BleNotifyCallback() {
@Override // @Override
public void onNotifySuccess() { // public void onNotifySuccess() {
sendBleData(); // sendBleData();
} // }
//
@Override // @Override
public void onNotifyFailure(BleException exception) { // public void onNotifyFailure(BleException exception) {
// dismissProgressDialogCancelble(); //// dismissProgressDialogCancelble();
dismissDialog(); // dismissDialog();
} // }
//
@Override // @Override
public void onCharacteristicChanged(byte[] data) { // public void onCharacteristicChanged(byte[] data) {
//
if (data!=null && data.length>0){ // if (data!=null && data.length>0){
int check_code = data[1]; // int check_code = data[1];
int length = data[14]; // int length = data[14];
byte[] dataByte = new byte[length]; // byte[] dataByte = new byte[length];
for (int i = 0; i < dataByte.length; i++) { // for (int i = 0; i < dataByte.length; i++) {
dataByte[i] = data[i]; // dataByte[i] = data[i];
} // }
//
Object object = ModelCodec.deCode(dataByte,Commons.IoBuffer); // Object object = ModelCodec.deCode(dataByte,Commons.IoBuffer);
if (object!=null && object instanceof BackFunctionCode7_11){ // if (object!=null && object instanceof BackFunctionCode7_11){
BackFunctionCode7_11 model = (BackFunctionCode7_11) object; // BackFunctionCode7_11 model = (BackFunctionCode7_11) object;
String status = ByteUtil.toHex(model.getStatus()); // String status = ByteUtil.toHex(model.getStatus());
device_mac = ByteUtil.bytesToHexString(model.getSrc()); // device_mac = ByteUtil.bytesToHexString(model.getSrc());
//
//
dismissDialog(); // dismissDialog();
if (!TextUtils.isEmpty(device_mac)){ // if (!TextUtils.isEmpty(device_mac)){
showDialog("正在绑定设备..."); // showDialog("正在绑定设备...");
connectDevice.cancel(); // connectDevice.cancel();
connectDevice.start(); // connectDevice.start();
} // }
// checkoutMac(device_mac); //// checkoutMac(device_mac);
} // }
L.i("jjia-------check_code-"+check_code); // L.i("jjia-------check_code-"+check_code);
L.i("jjia-------length-"+length); // L.i("jjia-------length-"+length);
L.i("jjia-------device_mac-"+device_mac); // L.i("jjia-------device_mac-"+device_mac);
} // }
} // }
}); // });
} // }
int devicePosition = 0; int devicePosition = 0;
//jjia-xpush //jjia-push
private void sendBleData(){ // private void sendBleData(){
//
String ssid = tvWifiName.getText().toString(); // String ssid = tvWifiName.getText().toString();
String pwd = tvWifiPwd.getText().toString(); // String pwd = tvWifiPwd.getText().toString();
//
OrderDeviceConnectModel model = OrderModel.OrderDeviceConnectModel(ssid, pwd,true);//设置正式环境域名 // OrderDeviceConnectModel model = OrderModel.OrderDeviceConnectModel(ssid, pwd,true);//设置正式环境域名
byte[] data = ModelCodec.enCode(model, Commons.IoBuffer); // byte[] data = ModelCodec.enCode(model, Commons.IoBuffer);
BleManager.getInstance().write(currentDevice, SERVICE_UUID, WRITE_UUID, data,false, new BleWriteCallback() { // BleManager.getInstance().write(currentDevice, SERVICE_UUID, WRITE_UUID, data,false, new BleWriteCallback() {
@Override // @Override
public void onWriteSuccess(int current, int total, byte[] justWrite) { // public void onWriteSuccess(int current, int total, byte[] justWrite) {
//
L.i("jjia-------------ssid 发送ok"); // L.i("jjia-------------ssid 发送");
} // }
//
@Override // @Override
public void onWriteFailure(BleException exception) { // public void onWriteFailure(BleException exception) {
L.i("jjia-------------发送-失败"+exception.toString()); //
} // }
}); // });
} // }
//jjia-xpush //jjia-push
private void toReset(){ // private void toReset(){
ResetDeviceModel model = OrderModel.resetDevice();//设置正式环境域名 // ResetDeviceModel model = OrderModel.resetDevice();//设置正式环境域名
byte[] data = ModelCodec.enCode(model,Commons.IoBuffer); // byte[] data = ModelCodec.enCode(model);
// data = new byte[1]; //// data = new byte[1];
//
// QueryTempeSettingModel xx = OrderModel.OrderQueryTempeSettingModel(device_mac); //// QueryTempeSettingModel xx = OrderModel.OrderQueryTempeSettingModel(device_mac);
// byte[] data = ModelCodec.enCode(xx); //// byte[] data = ModelCodec.enCode(xx);
BleManager.getInstance().write(currentDevice, SERVICE_UUID, WRITE_UUID, data,false, new BleWriteCallback() { // BleManager.getInstance().write(currentDevice, SERVICE_UUID, WRITE_UUID, data,false, new BleWriteCallback() {
@Override // @Override
public void onWriteSuccess(int current, int total, byte[] justWrite) { // public void onWriteSuccess(int current, int total, byte[] justWrite) {
L.i("jjia-------------重启 发送 成功-"); // L.i("jjia-------------重启 发送 成功-");
} // }
//
@Override // @Override
public void onWriteFailure(BleException exception) { // public void onWriteFailure(BleException exception) {
L.i("jjia-------------重启 发送 失败"+exception.toString()); // L.i("jjia-------------重启 发送 失败"+exception.toString());
} // }
}); // });
} // }
public static final String SERVICE_UUID = "000000ff-0000-1000-8000-00805f9b34fb"; //蓝牙通讯服务 public static final String SERVICE_UUID = "000000ff-0000-1000-8000-00805f9b34fb"; //蓝牙通讯服务
public static final String READ_UUID = "0000ff01-0000-1000-8000-00805f9b34fb"; //读特征 public static final String READ_UUID = "0000ff01-0000-1000-8000-00805f9b34fb"; //读特征
public static final String WRITE_UUID = "0000ff01-0000-1000-8000-00805f9b34fb"; //写特征 public static final String WRITE_UUID = "0000ff01-0000-1000-8000-00805f9b34fb"; //写特征
// 全局gatt //jjia-push
private BluetoothGatt mGatt; // private void connectBle(){
//jjia-xpush // BleManager.getInstance().connect(currentDevice, new BleGattCallback() {
private void connectBle(){ // @Override
BleManager.getInstance().connect(currentDevice, new BleGattCallback() { // public void onStartConnect() {
@RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT) // showDialog("开始连接蓝牙设备");
@Override // }
public void onStartConnect() { //
// @Override
if (mGatt!=null){ // public void onConnectFail(BleDevice bleDevice, BleException exception) {
mGatt.disconnect(); // ToastUtil.show(NewBindDeviceActivity.this,"连接蓝牙设备失败,请重试");
mGatt.close(); // dismissDialog();
mGatt = null; // }
} //
showDialog("开始连接蓝牙设备"); // @Override
} // public void onConnectSuccess(BleDevice bleDevice, BluetoothGatt gatt, int status) {
//// ToastUtil.show(NewBindDeviceActivity.this,"蓝牙连接成功");
@Override //// setMessage("蓝牙连接成功");
public void onConnectFail(BleDevice bleDevice, BleException exception) { // BleManager.getInstance().setMtu(bleDevice, 512, new BleMtuChangedCallback() {
ToastUtil.show(NewBindDeviceActivity.this,"连接蓝牙设备失败,请重试"); // @Override
dismissDialog(); // public void onSetMTUFailure(BleException exception) {
} // L.i("jjia-------MTU--"+exception.toString());
// dismissDialog();
@Override // }
public void onConnectSuccess(BleDevice bleDevice, BluetoothGatt gatt, int status) { //
// ToastUtil.show(NewBindDeviceActivity.this,"蓝牙连接成功"); // @Override
// setMessage("蓝牙连接成功"); // public void onMtuChanged(int mtu) {
// L.i("jjia-------MTU--"+mtu);
mGatt = gatt; // openNotify();
BleManager.getInstance().setMtu(bleDevice, 512, new BleMtuChangedCallback() { // }
@Override // });
public void onSetMTUFailure(BleException exception) { // }
L.i("jjia-------MTU--"+exception.toString()); //
dismissDialog(); // @Override
} // public void onDisConnected(boolean isActiveDisConnected, BleDevice device, BluetoothGatt gatt, int status) {
//// ToastUtil.show(NewBindDeviceActivity.this,"连接断开了");
@Override // }
public void onMtuChanged(int mtu) { // });
L.i("jjia-------MTU--"+mtu); // }
openNotify();
}
});
}
@Override
public void onDisConnected(boolean isActiveDisConnected, BleDevice device, BluetoothGatt gatt, int status) {
// ToastUtil.show(NewBindDeviceActivity.this,"连接断开了");
}
});
}
private Activity act; private Activity act;
private ConnectDevice connectDevice; private ConnectDevice connectDevice;
private boolean isContinue = true; private boolean isContinue = true;
@ -903,8 +791,8 @@ public class NewBindDeviceActivity extends AppCompatActivity {
@Override @Override
public int compareTo(Boolean available) { public int compareTo(Boolean available) {
if (available) { if (available) {
//jjia-xpush //jjia-push
toReset(); // toReset();
isContinue = false; isContinue = false;
connectDevice.cancel(); connectDevice.cancel();
L.i("jjia-----------调用绑定接口---"); L.i("jjia-----------调用绑定接口---");
@ -1108,7 +996,7 @@ public class NewBindDeviceActivity extends AppCompatActivity {
} }
// ToastUtil.show(NewBindDeviceActivity.this, "设备序号" + Commons.DevicePosition + "---" + Commons.DEVICE.size()); ToastUtil.show(NewBindDeviceActivity.this, "设备序号" + Commons.DevicePosition + "---" + Commons.DEVICE.size());
if (deviceObj!=null){ if (deviceObj!=null){
@ -1148,7 +1036,7 @@ public class NewBindDeviceActivity extends AppCompatActivity {
private void toIntent(Device device){ private void toIntent(Device device){
dismissDialog(); dismissDialog();
// ToastUtil.show(NewBindDeviceActivity.this, "绑定设备成功"); ToastUtil.show(NewBindDeviceActivity.this, "绑定设备成功");
AppRoute.newToStart(NewBindDeviceActivity.this,device,true); AppRoute.newToStart(NewBindDeviceActivity.this,device,true);
EventBus.getDefault().post(new ConnectMessageEvent(1, "test")); EventBus.getDefault().post(new ConnectMessageEvent(1, "test"));
finish(); finish();
@ -1200,7 +1088,7 @@ public class NewBindDeviceActivity extends AppCompatActivity {
Commons.HAVE_DEVICE = true;//改变判断是否绑定的变量 Commons.HAVE_DEVICE = true;//改变判断是否绑定的变量
Commons.IS_CAMERA = false; Commons.IS_CAMERA = false;
sp.putBoolean(Commons.LoginSPKey.IS_CAMERA, Commons.IS_CAMERA); sp.putBoolean(Commons.LoginSPKey.IS_CAMERA, Commons.IS_CAMERA);
// ToastUtil.show(NewBindDeviceActivity.this, "绑定设备成功"); ToastUtil.show(NewBindDeviceActivity.this, "绑定设备成功");
AppRoute.newToStart(NewBindDeviceActivity.this,deviceObj,true); AppRoute.newToStart(NewBindDeviceActivity.this,deviceObj,true);
finish(); finish();
L.i("===================绑定设备成功=" + device_mac); L.i("===================绑定设备成功=" + device_mac);
@ -1257,23 +1145,23 @@ public class NewBindDeviceActivity extends AppCompatActivity {
// myProgressDialogCancelble = null; // myProgressDialogCancelble = null;
// } // }
// } // }
//jjia-xpush //jjia-push
List<BleDevice> deviceList; // List<BleDevice> deviceList;
@SuppressLint("MissingPermission") @SuppressLint("MissingPermission")
private void findConencted(){ private void findConencted(){
//jjia-xpush //jjia-push
deviceList = BleManager.getInstance().getAllConnectedDevice(); // deviceList = BleManager.getInstance().getAllConnectedDevice();
if (deviceList!=null && deviceList.size()>0){ // if (deviceList!=null && deviceList.size()>0){
for (BleDevice item:deviceList){ // for (BleDevice item:deviceList){
if (item!=null){ // if (item!=null){
L.i("jjia-----------"+item.getDevice().getName()); // L.i("jjia-----------"+item.getDevice().getName());
} // }
} // }
//
}else { // }else {
L.i("jjia--------没有连接的蓝牙---"); // L.i("jjia--------没有连接的蓝牙---");
} // }
} }
@Override @Override
@ -1283,10 +1171,6 @@ public class NewBindDeviceActivity extends AppCompatActivity {
L.i(requestCode+"jjia--------result-1--"+requestCode); L.i(requestCode+"jjia--------result-1--"+requestCode);
if (101== requestCode && 0==resultCode){ if (101== requestCode && 0==resultCode){
checkNet(); checkNet();
}else if(250==requestCode){
if (permissionHelper.checkSelfPermission(permission)) {
blueClick();
}
} }
} }
private void showDialog(String msg){ private void showDialog(String msg){

View File

@ -10,7 +10,7 @@ public class EventBean {
public String name; public String name;
public String value; public String value;
public int index = 0; public int index = 0;
// jiaxblue // jiablue
// public static String BLUETOOTH_START_SCAN = "start_scan"; // public static String BLUETOOTH_START_SCAN = "start_scan";
public static String BACK_STAGE = "back_stage"; public static String BACK_STAGE = "back_stage";
public static String TAB_INDEX = "tab_index"; public static String TAB_INDEX = "tab_index";

View File

@ -1,6 +1,10 @@
package com.ifish.basebean; package com.ifish.basebean;
import com.ifish.utils.Commons;
import com.lidroid.xutils.util.LogUtils;
import java.io.Serializable; import java.io.Serializable;
import java.util.Arrays;
/** /**
* *
@ -46,6 +50,25 @@ public class User implements Serializable{
public String getUserId() { public String getUserId() {
return userId; return userId;
} }
public byte[] getUserIdBytes(){
String originalUserId = Commons.USER.getUserId();
// 创建一个长度为10的字节数组用于存储补零后的用户ID
byte[] userIdBytes = new byte[10];
// 将原始用户ID的字节数组复制到新的字节数组中
byte[] originalBytes = originalUserId.getBytes();
System.arraycopy(originalBytes, 0, userIdBytes, 0, Math.min(originalBytes.length, userIdBytes.length));
// 如果原始用户ID的长度小于10用零填充剩余的空间
for (int i = originalBytes.length; i < userIdBytes.length; i++) {
userIdBytes[i] = 0;
}
LogUtils.d("LHD 传递userId = "+ Arrays.toString(userIdBytes));
return userIdBytes;
}
public String getToken() { public String getToken() {
return token; return token;
} }

View File

@ -19,16 +19,17 @@ import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.multidex.MultiDexApplication; import androidx.multidex.MultiDexApplication;
import com.clj.fastble.BleManager; //import com.clj.fastble.BleManager;
import com.clj.fastble.scan.BleScanRuleConfig; //import com.clj.fastble.scan.BleScanRuleConfig;
import com.ifish.activity.BuildConfig; import com.ifish.activity.BuildConfig;
import com.ifish.basebean.EventBean; import com.ifish.basebean.EventBean;
import com.ifish.utils.ActivityManager; import com.ifish.utils.ActivityManager;
import com.ifish.utils.ImageDownLoader; import com.ifish.utils.ImageDownLoader;
import com.ifish.utils.L; import com.ifish.utils.L;
import com.ifish.utils.SystemUtil; import com.ifish.utils.SystemUtil;
import com.ifish.utils.ToastUtil;
import com.ifish.utils.TrustAllCerts; import com.ifish.utils.TrustAllCerts;
//import com.igexin.sdk.PushManager;
import com.igexin.sdk.PushManager;
import com.p2p.core.P2PSpecial.P2PSpecial; import com.p2p.core.P2PSpecial.P2PSpecial;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
@ -66,8 +67,8 @@ public class BaseApplication extends MultiDexApplication {
/** /**
* 正式环境 * 正式环境
*/ */
public static String BASE = "https://app.ifish7.cn/";//正式环境 接口访问地址 // public static String BASE = "https://app.ifish7.cn/";//正式环境 接口访问地址
// public static String BASE = "http://139.196.24.156:7080/";//测试环境 接口访问地址 public static String BASE = "http://139.196.24.156:7080/";//测试环境 接口访问地址
public static String BASE_URL = BASE + "api/";// 接口URL public static String BASE_URL = BASE + "api/";// 接口URL
public static final String SERVICE_UUID = "000000ff-0000-1000-8000-00805f9b34fb"; public static final String SERVICE_UUID = "000000ff-0000-1000-8000-00805f9b34fb";
@ -79,19 +80,21 @@ public class BaseApplication extends MultiDexApplication {
P2PSpecial.getInstance().init(app, APPID, APPToken, APPVersion); P2PSpecial.getInstance().init(app, APPID, APPToken, APPVersion);
initLog(); initLog();
initPicasso(); initPicasso();
//jjia-xpush //jjia-push
BleManager.getInstance().init(this); // BleManager.getInstance().init(this);
UUID[] uuids = {UUID.fromString(SERVICE_UUID)}; UUID[] uuids = {UUID.fromString(SERVICE_UUID)};
//jjia-xpush //jjia-push
BleScanRuleConfig scanRuleConfig = new BleScanRuleConfig.Builder() // BleScanRuleConfig scanRuleConfig = new BleScanRuleConfig.Builder()
.setServiceUuids(uuids) // 只扫描指定的服务的设备可选 // .setServiceUuids(uuids) // 只扫描指定的服务的设备可选
// .setDeviceName(true, names) // 只扫描指定广播名的设备可选 //// .setDeviceName(true, names) // 只扫描指定广播名的设备可选
// .setDeviceMac(mac) // 只扫描指定mac的设备可选 //// .setDeviceMac(mac) // 只扫描指定mac的设备可选
// .setAutoConnect(isAutoConnect) // 连接时的autoConnect参数可选默认false //// .setAutoConnect(isAutoConnect) // 连接时的autoConnect参数可选默认false
.setScanTimeOut(30000) // 扫描超时时间30S可选默认10秒小于等于0表示不限制扫描时间 // .setScanTimeOut(30000) // 扫描超时时间30S可选默认10秒小于等于0表示不限制扫描时间
.build(); // .build();
BleManager.getInstance().initScanRule(scanRuleConfig); // BleManager.getInstance().initScanRule(scanRuleConfig);
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
@Override @Override
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle bundle) { public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle bundle) {
@ -148,6 +151,8 @@ public class BaseApplication extends MultiDexApplication {
} }
}); });
} }
/** /**
@ -158,6 +163,7 @@ public class BaseApplication extends MultiDexApplication {
@Override @Override
public void onActivityCreated(Activity activity, Bundle bundle) { public void onActivityCreated(Activity activity, Bundle bundle) {
Log.i("ifish7", "LHD" + "---" + activity.getLocalClassName()); Log.i("ifish7", "LHD" + "---" + activity.getLocalClassName());
} }
@Override @Override

View File

@ -9,8 +9,6 @@ package com.ifish.fragment;
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE; import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
@ -36,7 +34,6 @@ import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.util.Log; import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
@ -54,13 +51,12 @@ import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat; import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
//jjia-xpush //jjia-push
import com.clj.fastble.BleManager; //import com.clj.fastble.BleManager;
import com.clj.fastble.callback.BleScanCallback; //import com.clj.fastble.callback.BleScanCallback;
import com.clj.fastble.data.BleDevice; //import com.clj.fastble.data.BleDevice;
import com.clj.fastble.data.BleScanState; //import com.clj.fastble.data.BleScanState;
import com.ifish.activity.BindTwoDeviceActivity; import com.ifish.activity.BindTwoDeviceActivity;
import com.ifish.activity.BuildConfig; import com.ifish.activity.BuildConfig;
import com.ifish.activity.DeviceInstructionActivity; import com.ifish.activity.DeviceInstructionActivity;
@ -198,10 +194,7 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
public static Activity cam_ctx; public static Activity cam_ctx;
private PermissionHelper permissionHelper; private PermissionHelper permissionHelper;
private String permissionHintFirst = ""; String[] permission;
private String permissionHint = "";
// String[] permission;
String[] permission_blue;
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
@ -223,23 +216,13 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
adInfos(); adInfos();
initInformation(); initInformation();
// permission = new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}; permission = new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION};
permission_blue = AppUtil.getBluePermissionList(); permissionHelper = new PermissionHelper(DeviceFragment.this, permission, 250);
permissionHelper = new PermissionHelper(DeviceFragment.this, permission_blue, 250); // initBooth();
initBooth();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU){
boolean notificationsEnabled = PushManager.getInstance().areNotificationsEnabled(requireActivity()); boolean notificationsEnabled = PushManager.getInstance().areNotificationsEnabled(requireActivity());
if (!notificationsEnabled){ if (!notificationsEnabled){
toOpenNotifications(); toOpenNotifications();
} }
permissionHintFirst = "";
permissionHint = "";
}else {
}
return v; return v;
} }
@ -284,17 +267,19 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
dialog.show(); dialog.show();
} }
private void getPermission(boolean jump) { private void getPermission() {
permissionHelper.request(new PermissionHelper.PermissionCallback() { permissionHelper.request(new PermissionHelper.PermissionCallback() {
@Override @Override
public void onPermissionGranted() { public void onPermissionGranted() {
if (jump){
Intent intent = new Intent(); Intent intent = new Intent();
intent.setClass(getActivity(), BindTwoDeviceActivity.class); intent.setClass(getActivity(), BindTwoDeviceActivity.class);
startActivity(intent); startActivity(intent);
AnimationUtil.startAnimation(getActivity()); AnimationUtil.startAnimation(getActivity());
}
} }
@Override @Override
@ -328,7 +313,7 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
public void onClick( public void onClick(
DialogInterface dialog, DialogInterface dialog,
int which) { int which) {
getPermission(jump); getPermission();
} }
}); });
dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@ -344,7 +329,7 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
AlertDialog.Builder dialog = new AlertDialog.Builder(getContext()); AlertDialog.Builder dialog = new AlertDialog.Builder(getContext());
dialog.setCancelable(false); dialog.setCancelable(false);
dialog.setTitle("温馨提示"); dialog.setTitle("温馨提示");
dialog.setMessage("请到应用信息页面-权限管理-打开位置权限,不然是发现不了附近的wifi或智能插座,将无法进行配网连接您的智能设备"); dialog.setMessage("请到应用信息页面-权限管理-打开位置权限,不然是发现不了附近的wifi,将无法进行配网连接您的智能设备");
dialog.setPositiveButton("去开启", (dialog1, which) -> { dialog.setPositiveButton("去开启", (dialog1, which) -> {
AppUtil.toAuthority(requireActivity()); AppUtil.toAuthority(requireActivity());
}); });
@ -682,15 +667,20 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
} }
}; };
private int getVersionValue(String value){
String valueStr = value.replace("V","").replace("v","").replace(".","");
return Integer.parseInt(TextUtils.isEmpty(valueStr)?"0":valueStr);
}
private void checkVersion() { private void checkVersion() {
versionCode = versionCode.toUpperCase(); versionCode = versionCode.toUpperCase();
spversionCode = sp.getString("versionCode",""); spversionCode = sp.getString("versionCode","");
int versionCodeValue = AppUtil.getVersionValue(versionCode); int versionCodeValue = getVersionValue(versionCode);
int appCodeValue = AppUtil.getVersionValue(HttpManager.getVersionName(requireActivity())); // int spversionCodeValue = getVersionValue(spversionCode);
int appCodeValue = getVersionValue(HttpManager.getVersionName(requireActivity()));
L.i("jjia-------1-"+versionCodeValue); L.i("jjia-------1-"+versionCodeValue);
L.i("jjia-------3-"+appCodeValue); L.i("jjia-------3-"+appCodeValue);
// if (!HttpManager.getVersionName(requireActivity()).equals(versionCode) && !spversionCode.equals(versionCode)) {
if (versionCodeValue > appCodeValue && !spversionCode.equals(versionCode)) { if (versionCodeValue > appCodeValue && !spversionCode.equals(versionCode)) {
if (!MustUpdate.equals(isMustUpdate)) { if (!MustUpdate.equals(isMustUpdate)) {
sp.putString("versionCode",versionCode); sp.putString("versionCode",versionCode);
@ -1143,6 +1133,8 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
//// deviceAdapter.notifyDataSetChanged();
//// cameraAdapter.notifyDataSetChanged();
showDevice = PetDeviceGetDistinguish.getShowDevice(getContext()); showDevice = PetDeviceGetDistinguish.getShowDevice(getContext());
showCamera = PetDeviceGetDistinguish.getFishCameras(Commons.CAMERA); showCamera = PetDeviceGetDistinguish.getFishCameras(Commons.CAMERA);
deviceAdapter = new DeviceFragmentAdapter(getActivity(), showDevice); deviceAdapter = new DeviceFragmentAdapter(getActivity(), showDevice);
@ -1151,70 +1143,10 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
lv_camera.setAdapter(cameraAdapter); lv_camera.setAdapter(cameraAdapter);
setUserInfo(); setUserInfo();
// jiaxblue // jiablue
startDownTimer(); // startDownTimer();
} }
@Override
public void onStart() {
super.onStart();
Activity activityName = ActivityManager.getInstance().lastActivity();
if (activityName!=null && activityName.toString().contains("MainTabActivity")){
}
}
@Override
public void onPause() {
super.onPause();
oonPause();
L.i("jjia-x-----xxx-----2");
}
@Override
public void onStop() {
super.onStop();
Activity activityName = ActivityManager.getInstance().lastActivity();
if (activityName!=null && activityName.toString().contains("MainTabActivity")){
}
}
// jiaxblue
public void onEventMainThread(EventBean eventBean){
if (eventBean!= null){
// if (EventBean.BLUETOOTH_START_SCAN.equals(eventBean.name)){
// L.i("jjia-x-----start-----");
// if (!isShowEd){
// initBooth();
// }
// }else if (EventBean.BLUETOOTH_STOP_SCAN.equals(eventBean.name)){
// L.i("jjia-x-----stop-----");
// if (!isShowIng){
// currentDevice = null;
// }
// if (AppUtil.checkSelfPermission(getContext(),permission_blue)) {
// BleManager.getInstance().cancelScan();
// }
//
// }else
if (EventBean.TAB_INDEX.equals(eventBean.name)){
currentIndex = eventBean.index;
L.i("jjia-x----tab_index--"+eventBean.index);
if (currentIndex == 0){
startDownTimer();
}else {
oonPause();
}
}else if (EventBean.HEADER.equals(eventBean.name)){
Glide.with(getActivity()).load(eventBean.value).into(iv_head);
}
}
}
private void setUserInfo() { private void setUserInfo() {
try { try {
@ -1258,6 +1190,7 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
lv_camera.setAdapter(cameraAdapter); lv_camera.setAdapter(cameraAdapter);
return; return;
} }
// Intent intent = new Intent();
int index = 0; int index = 0;
for (int i1 = 0; i1 < Commons.DEVICE.size(); i1++) { for (int i1 = 0; i1 < Commons.DEVICE.size(); i1++) {
if (showDevice.get(position).getDeviceId().equals(Commons.DEVICE.get(i1).getDeviceId())) { if (showDevice.get(position).getDeviceId().equals(Commons.DEVICE.get(i1).getDeviceId())) {
@ -1270,6 +1203,88 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
sp.putBoolean(LoginSPKey.IS_CAMERA, Commons.IS_CAMERA); sp.putBoolean(LoginSPKey.IS_CAMERA, Commons.IS_CAMERA);
Device clickItem = (Device) lv_device.getItemAtPosition(position); Device clickItem = (Device) lv_device.getItemAtPosition(position);
AppRoute.newToStart(requireActivity(),clickItem,false); AppRoute.newToStart(requireActivity(),clickItem,false);
// try {
// Integer controlAmount = Commons.DEVICE.get(Commons.DevicePosition).getControlAmount();
// Integer timerAmount = Commons.DEVICE.get(Commons.DevicePosition).getTimerAmount();
// String type = Commons.DEVICE.get(Commons.DevicePosition).type;
//
//
// L.i("jjia-------mainclick--type-"+type);
// L.i("jjia-------mainclick--"+Commons.DEVICE.get(Commons.DevicePosition).toString());
// if (Commons.FishKey.On.equals(Commons.DEVICE.get(Commons.DevicePosition).isBlacklist)) {//黑名单
// i.setClass(getActivity(), BlackListActivity.class);
// } else {
// if (Device.TYPE_1C.equals(type)) {
// i.setClass(getActivity(), MainThree1CControlActivity.class);
// } else if (Device.TYPE_AA.equals(type)) {
// i.setClass(getActivity(), MainFiveControlActivity.class);
// } else if (Device.TYPE_BD.equals(type)) {
// i.setClass(getActivity(), MainFiveBDControlActivity.class);
// } else if (Device.TYPE_2A.equals(type)) {
// i.setClass(getActivity(), MainSix_2A_ControlActivity.class);
// } else if (Device.TYPE_2B.equals(type)) {
// i.setClass(getActivity(), MainFour_2B_ControlActivity.class);
// } else if (Device.TYPE_3A.equals(type)) {
// i.setClass(getActivity(), MainHot_3A_ControlActivity.class);
// } else if (Device.TYPE_2F.equals(type)) {
// i.setClass(getActivity(), MainSeven_2F_ControlActivity.class);
// } else if (Device.TYPE_3F.equals(type)) {
// i.setClass(getActivity(), MainFour_3F_ControlActivity.class);
// } else if (Device.TYPE_4F.equals(type) || Device.TYPE_5F.equals(type)) {
// i.setClass(getActivity(), MainSix_4F_ControlActivity.class);
// } else {
// if (controlAmount == null) {//如果控制器返回空 则默认给三控的页面
// i.setClass(getActivity(), MainThreeControlActivity.class);
// } else {
// i.setClass(getActivity(), MainThreeControlActivity.class);
// switch (controlAmount) {
// case 0: {
// i.setClass(getActivity(), MainZeroControlActivity.class);
// break;
// }
// case 2: {
// i.setClass(getActivity(), MainTwoControlActivity.class);
// break;
// }
// case 3: {
// i.setClass(getActivity(), MainThreeControlActivity.class);
// break;
// }
// case 4: {
// if (timerAmount == 6) { // 可丽爱
// i.setClass(getActivity(), MainFiveControlActivity.class);
// } else {//4控
// i.setClass(getActivity(), MainFourControlActivity.class);
// }
// break;
// }
// case 5: {
// if (6 == timerAmount) {//5控六定时器 询多页面
// i.setClass(getActivity(), MainSixControlActivity.class);
// }
// break;
// }
// case 8: {
// i.setClass(getActivity(), MainEightControlActivity.class);
// break;
// }
// default: {
// i.setClass(getActivity(), MainThreeControlActivity.class);
// break;
// }
// }
// }
// }
// }
// } catch (Exception e) {
// ClipboardManager clipboardManager = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
// ClipData mClipData = ClipData.newPlainText("Label", e.getMessage() + getStackTrace(e));
// clipboardManager.setPrimaryClip(mClipData);
// Toast.makeText(getActivity(), "错误日志复制到剪贴板!", Toast.LENGTH_SHORT).show();
// i.setClass(getActivity(), MainThreeControlActivity.class);
// }
// startActivity(i);
// AnimationUtil.startAnimation(getActivity());
} }
}); });
lv_camera.setOnItemClickListener(new AdapterView.OnItemClickListener() { lv_camera.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@ -1583,9 +1598,11 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
AnimationUtil.startAnimation(getActivity()); AnimationUtil.startAnimation(getActivity());
break; break;
case R.id.rl_adddevice: case R.id.rl_adddevice:
// jiaxblue // jiablue
// EventBean eventBean = new EventBean(EventBean.BLUETOOTH_STOP_SCAN); // EventBean eventBean = new EventBean(EventBean.BLUETOOTH_STOP_SCAN);
// EventBus.getDefault().post(eventBean); // EventBus.getDefault().post(eventBean);
addDevice(); addDevice();
@ -1615,7 +1632,7 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
private void addDevice(){ private void addDevice(){
if (ContextCompat.checkSelfPermission(requireActivity(), android.Manifest.permission.ACCESS_FINE_LOCATION) if (ContextCompat.checkSelfPermission(requireActivity(), android.Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED || BuildConfig.show) { != PackageManager.PERMISSION_GRANTED || BuildConfig.show) {
showPermissionHint(true); showPermissionHint();
}else { }else {
Intent intentx = new Intent(); Intent intentx = new Intent();
intentx.setClass(requireActivity(), BindTwoDeviceActivity.class); intentx.setClass(requireActivity(), BindTwoDeviceActivity.class);
@ -1910,54 +1927,42 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
} }
firstResult = firstResult + HttpManager.PAGESIZE; firstResult = firstResult + HttpManager.PAGESIZE;
} }
//jjia-xpush //jjia-push
private void initBooth(){ // private void initBooth(){
if (AppUtil.checkSelfPermission(getContext(),permission_blue)) { // boolean enable = BleManager.getInstance().isBlueEnable();
boolean enable = BleManager.getInstance().isBlueEnable(); // if (enable) {
if (enable) { // BleManager.getInstance().scan(new BleScanCallback() {
L.i("jjjia-----------蓝牙可用-开始扫描--"); // @Override
BleManager.getInstance().scan(new BleScanCallback() { // public void onScanFinished(List<BleDevice> scanResultList) {
@Override // if (currentDevice!=null){ // 扫描结束有设备
public void onScanFinished(List<BleDevice> scanResultList) { // L.i("jjjia-----------scan---");
if (currentDevice!=null){ // 扫描结束有设备 // showDevice();
L.i("jjjia-----------scan- end--"); // }
showDevice(); // }
} //
} // @Override
// public void onScanStarted(boolean success) {
@Override //
public void onScanStarted(boolean success) { // }
L.i("jjjia-----------scan- start--"); //
} // @SuppressLint("MissingPermission")
// @Override
@SuppressLint("MissingPermission") // public void onScanning(BleDevice bleDevice) {
@Override // if (bleDevice!=null && bleDevice.getDevice()!=null){
public void onScanning(BleDevice bleDevice) { // BluetoothDevice bean = bleDevice.getDevice();
L.i("jjjia-----------scan- ing--"); // if (!TextUtils.isEmpty(bean.getName()) && bean.getName().startsWith("ifish")){
if (bleDevice!=null && bleDevice.getDevice()!=null){ // currentDevice = bleDevice;
BluetoothDevice bean = bleDevice.getDevice(); // BleManager.getInstance().cancelScan();
if (!TextUtils.isEmpty(bean.getName()) && bean.getName().startsWith("ifish")){ // }
currentDevice = bleDevice; // L.i(bean.getName()+"jjia------mac---"+bean.getAddress());
BleManager.getInstance().cancelScan(); // }
} // }
L.i(bean.getName()+"jjia------mac---"+bean.getAddress()); // });
} // }
} //
}); // }
}else { //jjia-push
L.i("jjjia-----------蓝牙不可用---"); // BleDevice currentDevice;
}
}else {
boolean first = SPUtil.getInstance(requireContext()).getBoolean("xfirst",false);
if (!first){
showPermissionHint(false);
SPUtil.getInstance(requireContext()).putBoolean("xfirst",true);
}
L.i("jjjia-----------没有扫描权限---");
}
}
//jjia-xpush
BleDevice currentDevice;
public void onEventMainThread(BluetoothDevice event) { public void onEventMainThread(BluetoothDevice event) {
} }
@ -1966,18 +1971,44 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
private boolean isShowEd = false; private boolean isShowEd = false;
private int currentIndex = 0; private int currentIndex = 0;
// jiablue
// public void onEventMainThread(EventBean eventBean){
// if (eventBean!= null){
// if (EventBean.BLUETOOTH_START_SCAN.equals(eventBean.name)){
// if (!isShowEd){
// initBooth();
// }
// }else if (EventBean.BLUETOOTH_STOP_SCAN.equals(eventBean.name)){
// if (!isShowIng){
// currentDevice = null;
// }
// BleManager.getInstance().cancelScan();
// }else
//
// if (EventBean.TAB_INDEX.equals(eventBean.name)){
// currentIndex = eventBean.index;
// L.i("jjia-----tab_index--"+eventBean.index);
// if (currentIndex == 0){
// startDownTimer();
// }else {
// oonPause();
// }
// }else if (EventBean.HEADER.equals(eventBean.name)){
// Glide.with(getActivity()).load(eventBean.value).into(iv_head);
// }
// }
// }
private void showPermissionHint(){
private void showPermissionHint(boolean jump){ IosAlertDialog openDialog = new IosAlertDialog(getContext()).builder();
IosAlertDialog openDialog = new IosAlertDialog(requireContext()).builder();
openDialog.setCancelable(true); openDialog.setCancelable(true);
openDialog.setTitle("重要提示"); openDialog.setTitle("申请权限目的说明");
openDialog.setMessage(!jump?"APP首次绑定设备需要访问位置权限和蓝牙使用权限在稍后弹出的权限使用对话框中请点击确定并打开手机蓝牙。":"添加设备需要先获取位置信息才能获取附近wifi信息或智能设备进行配网连接您的设备是否允许申请位置权限和蓝牙权限"); openDialog.setMessage("添加设备需要先获取位置信息才能获取附近wifi信息,进行配网连接您的设备,是否允许申请位置权限?");
openDialog.setPositiveButton("确定", new View.OnClickListener() { openDialog.setPositiveButton("继续", new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
getPermission(jump); getPermission();
} }
}); });
openDialog.setNegativeButton("取消", new View.OnClickListener() { openDialog.setNegativeButton("取消", new View.OnClickListener() {
@ -1986,78 +2017,69 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
} }
}); });
openDialog.show(); openDialog.show();
} }
IosAlertDialog alertDialog;
public void showDevice(){ public void showDevice(){
// 检测页面 // 检测页面
if (!isShowIng){ if (!isShowIng){
isShowIng = true; isShowIng = true;
isShowEd = true; isShowEd = true;
AlertDialog.Builder dialog = new AlertDialog.Builder(requireContext(), AlertDialog.THEME_HOLO_LIGHT);
alertDialog = new IosAlertDialog(requireContext(), Gravity.BOTTOM).builder(); dialog.setCancelable(true);
alertDialog.showBottom(true); dialog.setTitle("提示");
alertDialog.setTextColor(R.color.danghao_color); dialog.setMessage("发现一个新设备是否去添加");
alertDialog.setCancelable(false); dialog.setOnDismissListener(dialogInterface -> isShowIng = false);
alertDialog.setTitle("发现设备"); dialog.setNegativeButton("取消", (arg0, arg1) -> {
alertDialog.setMessage("鱼缸智能插座1个"); arg0.dismiss();
alertDialog.setNegativeButton("忽略", new OnClickListener() {
@Override
public void onClick(View view) {
isShowIng = false;
alertDialog.dismiss();
isShowIng = false; isShowIng = false;
startDownTimer(); startDownTimer();
}
}); });
alertDialog.setPositiveButton("添加", new OnClickListener() { dialog.setPositiveButton("确定", (dialog1, which) -> {
@Override dialog1.dismiss();
public void onClick(View view) {
alertDialog.dismiss();
isShowIng = false; isShowIng = false;
closeDownTimer(); closeDownTimer();
Intent intent = new Intent(); Intent intent = new Intent();
intent.setClass(requireActivity(), NewBindDeviceActivity.class); intent.setClass(requireActivity(), NewBindDeviceActivity.class);
intent.putExtra("title", "连接水族箱"); intent.putExtra("title", "连接水族箱");
intent.putExtra("type", "bluetooth"); intent.putExtra("type", "bluetooth");
//jjia-xpush //jjia-push
intent.putExtra("device", currentDevice); // intent.putExtra("device", currentDevice);
startActivity(intent); startActivity(intent);
AnimationUtil.finishAnimation(requireActivity()); AnimationUtil.finishAnimation(requireActivity());
}
}); });
alertDialog.show(); dialog.show();
}
} }
}
int dowmCount = 1; int dowmCount = 1;
CountDownTimer countDownTimer; CountDownTimer countDownTimer;
private void startDownTimer(){ private void startDownTimer(){
closeDownTimer(); closeDownTimer();
if (AppUtil.checkSelfPermission(getContext(),permission_blue)) {
if (!isShowIng && currentIndex == 0){ if (!isShowIng && currentIndex == 0){
dowmCount = 1; dowmCount = 1;
countDownTimer = new CountDownTimer(2000000000,1000) { countDownTimer = new CountDownTimer(2000000000,1000) {
@Override @Override
public void onTick(long l) { public void onTick(long l) {
L.i("jjia-----dowmCount--"+dowmCount); L.i("jjia-----dowmCount--"+dowmCount);
//jjia-xpush //jjia-push
if (dowmCount%6==0){ // if (dowmCount%6==0){
BleScanState scanState = getScanState(); // BleScanState scanState = getScanState();
L.i("jjia-----------timer--"+scanState); // L.i("jjia-----------timer--"+scanState);
if (BleScanState.STATE_IDLE.equals(scanState)){ // if (BleScanState.STATE_IDLE.equals(scanState)){
if (isShowIng){ // if (isShowIng){
L.i("jjia-----已经扫描到设备了,等待反馈-"); // L.i("jjia-----已经扫描到设备了,等待反馈-");
closeDownTimer(); // closeDownTimer();
}else { // }else {
initBooth(); // initBooth();
L.i("jjia-----开始扫描-"); // L.i("jjia-----开始扫描-");
} // }
}else { // }else {
L.i("jjia----timer--上一次的扫描还在继续中-"); // L.i("jjia----timer--上一次的扫描还在继续中-");
} // }
} // }
dowmCount++; dowmCount++;
} }
@ -2071,41 +2093,36 @@ public class DeviceFragment extends BaseV4Fragment implements ObservableScrollVi
}else { }else {
L.i("jjia----timer--已扫描到设备,暂不执行倒计时-"); L.i("jjia----timer--已扫描到设备,暂不执行倒计时-");
} }
}
} }
private void closeDownTimer(){ private void closeDownTimer(){
if (countDownTimer!=null){ if (countDownTimer!=null){
countDownTimer.cancel(); countDownTimer.cancel();
countDownTimer = null; countDownTimer = null;
L.i("jjia-----dowmCount--xxx");
} }
} }
//jjia-xpush //jjia-push
private BleScanState getScanState(){ // private BleScanState getScanState(){
return BleManager.getInstance().getScanSate(); // return BleManager.getInstance().getScanSate();
// }
@Override
public void onPause() {
super.onPause();
oonPause();
} }
private void oonPause(){ private void oonPause(){
if (alertDialog!=null){
L.i("jjia---扫描暂停----------");
alertDialog.dismiss();
alertDialog = null;
}
closeDownTimer(); closeDownTimer();
if (AppUtil.checkSelfPermission(getContext(),permission_blue)) { //jjia-push
//jjia-xpush // BleScanState scanState = getScanState();
BleScanState scanState = getScanState(); // if (BleScanState.STATE_SCANNING.equals(scanState)) {
if (BleScanState.STATE_SCANNING.equals(scanState)) { // BleManager.getInstance().cancelScan();
currentDevice = null; // L.i("jjia---扫描暂停----------");
BleManager.getInstance().cancelScan(); // } else {
L.i("jjia---扫描暂停----------"); //
// }
// L.i("jjia---扫描暂停-"+scanState);
} }
L.i("jjia---扫描暂停-"+scanState);
}
}
} }

View File

@ -34,8 +34,8 @@ import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
//jjia-xpush //jjia-push
import com.clj.fastble.BleManager; //import com.clj.fastble.BleManager;
import com.ifish.activity.AboutActivity; import com.ifish.activity.AboutActivity;
import com.ifish.activity.BindTwoDeviceActivity; import com.ifish.activity.BindTwoDeviceActivity;
import com.ifish.activity.CaptureActivity; import com.ifish.activity.CaptureActivity;

View File

@ -1,58 +0,0 @@
//package com.ifish.push;
//
//import android.content.Context;
//import android.content.Intent;
//import android.util.Log;
//
//import com.ifish.activity.RecentContactsActivity;
//
//import java.util.Map;
//
///**
// * Created by Administrator on 2019/5/22.
// */
//
//public class AlipushReceiver extends MessageReceiver {
// // 消息接收部分的LOG_TAG
// public static final String REC_TAG = "receiver";
//
// @Override
// public void onNotification(Context context, String title, String summary, Map<String, String> extraMap) {
// // TODO 处理推送通知
// Log.e("MyMessageReceiver", "Receive notification, title: " + title + ", summary: " + summary + ", extraMap: " + extraMap);
// }
//
// @Override
// public void onMessage(Context context, CPushMessage cPushMessage) {
// Log.e("MyMessageReceiver", "onMessage, messageId: " + cPushMessage.getMessageId() + ", title: " + cPushMessage.getTitle() + ", content:" + cPushMessage.getContent());
// }
//
// @Override
// public void onNotificationOpened(Context context, String title, String summary, String extraMap) {
// Log.e("MyMessageReceiver", "onNotificationOpened, title: " + title + ", summary: " + summary + ", extraMap:" + extraMap);
// Intent intent = new Intent();
// intent.setClass(context, RecentContactsActivity.class);
// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// context.startActivity(intent);
// }
//
// @Override
// protected void onNotificationClickedWithNoAction(Context context, String title, String summary, String extraMap) {
// Log.e("MyMessageReceiver", "onNotificationClickedWithNoAction, title: " + title + ", summary: " + summary + ", extraMap:" + extraMap);
// Intent intent = new Intent();
// intent.setClass(context, RecentContactsActivity.class);
// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// context.startActivity(intent);
// }
//
// @Override
// protected void onNotificationReceivedInApp(Context context, String title, String summary, Map<String, String> extraMap, int openType, String openActivity, String openUrl) {
// Log.e("MyMessageReceiver", "onNotificationReceivedInApp, title: " + title + ", summary: " + summary + ", extraMap:" + extraMap + ", openType:" + openType + ", openActivity:" + openActivity + ", openUrl:" + openUrl);
// }
//
// @Override
// protected void onNotificationRemoved(Context context, String messageId) {
// Log.e("MyMessageReceiver", "onNotificationRemoved");
// }
//
//}

View File

@ -1,9 +1,10 @@
package com.ifish.tcp; package com.ifish.tcp;
import static com.ifish.utils.Commons.Device;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import com.ifish.basebean.Device;
import com.ifish.utils.ByteUtil; import com.ifish.utils.ByteUtil;
import com.ifish.utils.Commons; import com.ifish.utils.Commons;
@ -13,9 +14,6 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import static com.ifish.utils.Commons.Device;
import static com.ifish.utils.Commons.num;
public class ModelCodec { public class ModelCodec {
/** /**
* 把对象转成字节数 * 把对象转成字节数
@ -274,6 +272,8 @@ public class ModelCodec {
buffer.put(model.getWifiSSID()); buffer.put(model.getWifiSSID());
//wifi密码 //wifi密码
buffer.put(model.getWifiPWD()); buffer.put(model.getWifiPWD());
//用户id
buffer.put(Commons.USER.getUserIdBytes());
//crc16校验码 //crc16校验码
buffer.put(model.getCrc16_code()); buffer.put(model.getCrc16_code());
//tcp连接域名 //tcp连接域名
@ -292,6 +292,8 @@ public class ModelCodec {
buffer.put(model.getSsid_name()); buffer.put(model.getSsid_name());
//wifi密码 //wifi密码
buffer.put(model.getSsid_password()); buffer.put(model.getSsid_password());
//用户id
buffer.put(Commons.USER.getUserIdBytes());
//crc16校验码 //crc16校验码
buffer.put(model.getCrc16_code()); buffer.put(model.getCrc16_code());
//tcp连接域名 //tcp连接域名
@ -449,7 +451,7 @@ public class ModelCodec {
} else if (Check_code == 25) { } else if (Check_code == 25) {
return decodexuanduo_get(buf); return decodexuanduo_get(buf);
} }
//switch语句 //todo switch语句
switch (length) { switch (length) {
//长度为20,绑定wifi的反馈 //长度为20,绑定wifi的反馈
case 20: { case 20: {

View File

@ -103,7 +103,6 @@ public class TcpReceiveThread implements Runnable {
} }
} else if(obj instanceof BackInfoModelSix_4F_FeedFish){ //一键喂鱼查询 } else if(obj instanceof BackInfoModelSix_4F_FeedFish){ //一键喂鱼查询
BackInfoModelSix_4F_FeedFish model = (BackInfoModelSix_4F_FeedFish) obj; BackInfoModelSix_4F_FeedFish model = (BackInfoModelSix_4F_FeedFish) obj;
L.i("jjia---------------------BackInfoModelSix_4F_FeedFish-----");
if (Commons.IS_EventBus) {//判断tcp连接返回的mac地址是否与自己本地相同 不同则不做处理 if (Commons.IS_EventBus) {//判断tcp连接返回的mac地址是否与自己本地相同 不同则不做处理
try { try {
if (ByteUtil.bytesToHexString(model.getSrc()).equals(Commons.DEVICE.get(MainTabActivity.sp.getInt(LoginSPKey.Position, 0)).getMacAddress())) { if (ByteUtil.bytesToHexString(model.getSrc()).equals(Commons.DEVICE.get(MainTabActivity.sp.getInt(LoginSPKey.Position, 0)).getMacAddress())) {

View File

@ -6,7 +6,6 @@ import android.bluetooth.BluetoothManager;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.text.TextUtils; import android.text.TextUtils;
@ -14,9 +13,7 @@ import android.util.Log;
import android.widget.ImageView; import android.widget.ImageView;
import androidx.activity.ComponentActivity; import androidx.activity.ComponentActivity;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import com.ifish.activity.R; import com.ifish.activity.R;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
@ -261,14 +258,7 @@ public class AppUtil {
return false; return false;
} }
} }
public static boolean checkSelfPermission(Context context ,String[] permissions) {
for (String permission : permissions) {
if (ContextCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
return true;
}
public static String [] getImagePermissionList(){ public static String [] getImagePermissionList(){
List<String> perList = new ArrayList<>(); List<String> perList = new ArrayList<>();
@ -292,31 +282,6 @@ public class AppUtil {
return permissions; return permissions;
} }
public static String [] getBluePermissionList(){
List<String> perList = new ArrayList<>();
perList.add(android.Manifest.permission.BLUETOOTH);
perList.add(android.Manifest.permission.ACCESS_FINE_LOCATION);
perList.add(android.Manifest.permission.ACCESS_COARSE_LOCATION);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){
perList.add(android.Manifest.permission.BLUETOOTH_SCAN);
perList.add(android.Manifest.permission.BLUETOOTH_ADVERTISE);
perList.add(android.Manifest.permission.BLUETOOTH_CONNECT);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
perList.add(android.Manifest.permission.POST_NOTIFICATIONS);
}
int size = perList.size();
String [] permissions = new String[size];
for (int i = 0;i<size;i++){
permissions[i] = perList.get(i);
}
return permissions;
}
public static void setHeader(Activity activity,ImageView header,String weixin){ public static void setHeader(Activity activity,ImageView header,String weixin){
String userImg = Commons.USER.getUserImg(); String userImg = Commons.USER.getUserImg();
if (!TextUtils.isEmpty(userImg)){ if (!TextUtils.isEmpty(userImg)){
@ -329,9 +294,4 @@ public class AppUtil {
} }
public static int getVersionValue(String value){
String valueStr = value.replace("V","").replace("v","").replace(".","");
return Integer.parseInt(TextUtils.isEmpty(valueStr)?"0":valueStr);
}
} }

View File

@ -1,12 +1,13 @@
package com.ifish.utils package com.ifish.utils
import android.app.Activity import android.app.Activity
import com.ifish.baseclass.BaseActivity
/** /**
* Created by achang on 2018/10/6. * Created by achang on 2018/10/6.
*/ */
class DialogUtil{ class DialogUtil1 {
companion object { companion object {
var mLoadingDialog: LoadingDialog? = null var mLoadingDialog: LoadingDialog? = null
var showDialog:Boolean=false var showDialog:Boolean=false
@ -29,23 +30,16 @@ class DialogUtil{
return mLoadingDialog!! return mLoadingDialog!!
} }
fun setProgress(value: Int){
mLoadingDialog?.setProgress(value)
}
fun setError(){
mLoadingDialog?.setError()
}
fun setLoadingDialogDismiss(activity: Activity?) { fun setLoadingDialogDismiss(activity: Activity?) {
mLoadingDialog?.apply { mLoadingDialog?.apply {
if (this.isShowing ) { if (this.isShowing ) {
activity?.apply { activity?.apply {
if (!this.isFinishing) if (!this.isFinishing)
mLoadingDialog!!.dismiss() mLoadingDialog!!.dismiss()
}
}
}
mLoadingDialog = null mLoadingDialog = null
}
}
}
// LogUtil.logD("setLoadingDialogDismiss===========") // LogUtil.logD("setLoadingDialogDismiss===========")
} }
} }

View File

@ -126,9 +126,6 @@ public class HttpManager {
public static final String APConnectVideoTitle = "AP联网"; public static final String APConnectVideoTitle = "AP联网";
public static String APConnectVideoUrl = "https://www.ifish7.com/download/s2.mp4"; //安卓版本的 AP联网视频 public static String APConnectVideoUrl = "https://www.ifish7.com/download/s2.mp4"; //安卓版本的 AP联网视频
public static final String BlueConnectVideoTitle = "蓝牙联网";
public static String BlueConnectVideoUrl = "https://www.ifish7.com/download/bluetooth_device.mp4"; //安卓版本的蓝牙联网视频
private String user_URL = "user/"; private String user_URL = "user/";
private String users_URL = "users/"; private String users_URL = "users/";
public static String Room_URL = "room/"; public static String Room_URL = "room/";

View File

@ -2,62 +2,36 @@ package com.ifish.utils
import android.app.Activity import android.app.Activity
import android.app.Dialog import android.app.Dialog
import android.graphics.drawable.AnimationDrawable import android.text.TextUtils
import android.os.Build
import android.view.View import android.view.View
import android.view.ViewGroup import android.widget.LinearLayout
import android.widget.ImageView
import android.widget.ProgressBar
import android.widget.TextView import android.widget.TextView
import androidx.cardview.widget.CardView
import com.ifish.activity.R import com.ifish.activity.R
import com.ifish.utils.Commons.Text
/**
* @创建者 肖天长
* @创建时间 2018/7/6 0006 11:59
* @描述 ${TODO}
* @更新者 $Author$
* @更新时间 2018/7/6 0006$
* @更新描述 ${TODO}
*/
class LoadingDialog(context: Activity,hint:String?) : Dialog(context, R.style.BaseDialogStyle) {
class LoadingDialog(context: Activity,hint:String?) : Dialog(context, R.style.fullDialog) {
var progress: ProgressBar
var ivCancel: ImageView? = null
var image: AnimationDrawable? = null
var cardview: CardView? = null
var tvCancel: TextView? = null
init { init {
val inflate = View.inflate(context, R.layout.dialog_loading, null) val inflate = View.inflate(context, R.layout.dialog_loading, null)
val mParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)
setCancelable(false) setContentView(inflate, mParams)
setContentView(inflate)
var icon =findViewById<ImageView>(R.id.iconx)
image = icon.drawable as AnimationDrawable
image?.start()
progress =findViewById<ProgressBar>(R.id.dg_pb_loading)
cardview =findViewById<CardView>(R.id.cardview)
ivCancel =findViewById<ImageView>(R.id.iv_cancel)
tvCancel =findViewById<TextView>(R.id.tv_cancel)
var view =findViewById<TextView>(R.id.tv_hint) var view =findViewById<TextView>(R.id.tv_hint)
tvCancel?.setOnClickListener {
dismiss()
}
view.text = hint view.text = hint
if (TextUtils.isEmpty(hint)){
window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); }
window!!.setDimAmount(0f) //去除阴影遮罩效果
setCanceledOnTouchOutside(false) setCanceledOnTouchOutside(false)
// setCancelable(false)
} }
fun setProgress(value: Int){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
progress?.setProgress(value,true)
}
}
fun setError(){
cardview?.visibility = View.GONE
ivCancel?.visibility = View.VISIBLE
tvCancel?.visibility = View.VISIBLE
image?.stop()
}
} }

View File

@ -14,9 +14,6 @@ import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.core.content.ContextCompat;
import com.ifish.activity.R; import com.ifish.activity.R;
/** /**
@ -33,7 +30,6 @@ public class IosAlertDialog {
private Button btn_neg; private Button btn_neg;
private Button btn_pos; private Button btn_pos;
private ImageView img_line; private ImageView img_line;
private View bottom;
private Display display; private Display display;
private boolean showTitle = false; private boolean showTitle = false;
private boolean showMsg = false; private boolean showMsg = false;
@ -41,7 +37,7 @@ public class IosAlertDialog {
private boolean showNegBtn = false; private boolean showNegBtn = false;
private boolean isMiddleShowEclipse = false; //setMsg时 文本内容超过最多5行后省略号是否居中显示默认不居中 private boolean isMiddleShowEclipse = false; //setMsg时 文本内容超过最多5行后省略号是否居中显示默认不居中
private int maxLines = 5; private int maxLines = 5;
int gravity = Gravity.CENTER;
public IosAlertDialog(Context context) { public IosAlertDialog(Context context) {
this.context = context; this.context = context;
WindowManager windowManager = (WindowManager) context WindowManager windowManager = (WindowManager) context
@ -49,27 +45,6 @@ public class IosAlertDialog {
display = windowManager.getDefaultDisplay(); display = windowManager.getDefaultDisplay();
} }
public void showBottom(boolean show) {
if (bottom!=null){
if (show){
bottom.setVisibility(View.VISIBLE);
}else {
bottom.setVisibility(View.GONE);
}
}
}
public IosAlertDialog(Context context, int gravity) {
this.context = context;
WindowManager windowManager = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
display = windowManager.getDefaultDisplay();
this.gravity = gravity;
}
public IosAlertDialog builder() { public IosAlertDialog builder() {
// 获取Dialog布局 // 获取Dialog布局
View view = LayoutInflater.from(context).inflate( View view = LayoutInflater.from(context).inflate(
@ -77,7 +52,6 @@ public class IosAlertDialog {
// 获取自定义Dialog布局中的控件 // 获取自定义Dialog布局中的控件
lLayout_bg = view.findViewById(R.id.lLayout_bg); lLayout_bg = view.findViewById(R.id.lLayout_bg);
txt_title = view.findViewById(R.id.txt_title); txt_title = view.findViewById(R.id.txt_title);
bottom = view.findViewById(R.id.bottom);
txt_title.setVisibility(View.GONE); txt_title.setVisibility(View.GONE);
txt_msg = view.findViewById(R.id.txt_msg); txt_msg = view.findViewById(R.id.txt_msg);
txt_msg.setVisibility(View.GONE); txt_msg.setVisibility(View.GONE);
@ -90,18 +64,14 @@ public class IosAlertDialog {
// 定义Dialog布局和参数 // 定义Dialog布局和参数
dialog = new Dialog(context, R.style.AlertDialogStyle); dialog = new Dialog(context, R.style.AlertDialogStyle);
dialog.getWindow().setGravity(gravity); dialog.getWindow().setGravity(Gravity.CENTER);
dialog.setContentView(view); dialog.setContentView(view);
// 调整dialog背景大小 // 调整dialog背景大小
lLayout_bg.setLayoutParams(new FrameLayout.LayoutParams((int) (display lLayout_bg.setLayoutParams(new FrameLayout.LayoutParams((int) (display
.getWidth() * 0.9), LinearLayout.LayoutParams.MATCH_PARENT)); .getWidth() * 0.7), LinearLayout.LayoutParams.MATCH_PARENT));
return this; return this;
} }
public void setTextColor(int color){
txt_msg.setTextColor(ContextCompat.getColor(context,color));
}
public IosAlertDialog setTitle(String title) { public IosAlertDialog setTitle(String title) {
showTitle = true; showTitle = true;
if ("".equals(title)) { if ("".equals(title)) {
@ -113,10 +83,6 @@ public class IosAlertDialog {
} }
public void setTextStart(){
txt_msg.setTextAlignment(View.TEXT_ALIGNMENT_TEXT_START);
}
public IosAlertDialog setMessage(String msg) { public IosAlertDialog setMessage(String msg) {
showMsg = true; showMsg = true;
if(!isMiddleShowEclipse){ if(!isMiddleShowEclipse){

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/bluetooth_one" android:duration="500"/>
<item android:drawable="@drawable/bluetooth_two" android:duration="500"/>
<item android:drawable="@drawable/bluetooth_three" android:duration="500"/>
<item android:drawable="@drawable/bluetooth_four" android:duration="500"/>
</animation-list>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 设置背景色 -->
<item android:id="@android:id/background">
<shape>
<corners android:radius="2dp"></corners>
<solid android:color="#1A999999"></solid>
</shape>
</item>
<!-- 设置进度条颜色 -->
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="2dp"></corners>
<solid android:color="@color/cyan"></solid>
</shape>
</clip>
</item>
</layer-list>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" <animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/loading_icon" android:drawable="@drawable/dialog_loading"
android:pivotX="50%" android:pivotX="50%"
android:pivotY="50%" /> android:pivotY="50%" />

View File

@ -2,5 +2,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android" <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"> android:shape="rectangle">
<corners android:radius="12dp"/> <corners android:radius="12dp"/>
<solid android:color="#88000000" /> <solid android:color="#AA000000" />
</shape> </shape>

View File

@ -36,7 +36,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="right" android:layout_gravity="right"
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:text="联网视频教程" android:text="联网视频"
android:textColor="#E60012" android:textColor="#E60012"
android:textSize="15sp" /> android:textSize="15sp" />
@ -184,16 +184,6 @@
android:text="3、如多次尝试一键联网都不成功可切换其他联网方式每次重新联接时插座需断一次电然后重新复位联接。" android:text="3、如多次尝试一键联网都不成功可切换其他联网方式每次重新联接时插座需断一次电然后重新复位联接。"
android:textColor="#999999" /> android:textColor="#999999" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="20dp"
android:layout_marginRight="15dp"
android:lineSpacingExtra="5dp"
android:textColor="@color/black"
android:text="提示:由于新版APP升级产品包装盒内的说明书可能与新版APP联网方式不同请以APP界面提示内容为准也可查看右上角视频教程。" />
<TextView <TextView
android:id="@+id/tv_other_connect" android:id="@+id/tv_other_connect"
android:layout_width="wrap_content" android:layout_width="wrap_content"

View File

@ -1,84 +1,38 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="150dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="#1A000000"
android:layout_gravity="center"> android:layout_gravity="center">
<androidx.cardview.widget.CardView
android:id="@+id/cardview"
android:layout_width="match_parent"
android:layout_marginHorizontal="40dp"
android:layout_centerInParent="true"
app:cardCornerRadius="20dp"
android:elevation="0dp"
app:cardElevation="0dp"
android:layout_height="wrap_content">
<LinearLayout <LinearLayout
android:background="@drawable/shape_white_radius15"
android:gravity="center" android:gravity="center"
android:layout_centerInParent="true" android:layout_gravity="center"
android:background="@color/white"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/iconx"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_marginTop="50dp" android:minWidth="150dp"
android:src="@drawable/bluetooth_connect" android:layout_marginStart="50dp"
android:layout_height="wrap_content"/> android:layout_marginEnd="50dp"
android:orientation="vertical"
android:layout_height="150dp">
<ProgressBar <ProgressBar
android:id="@+id/dg_pb_loading" android:id="@+id/dg_pb_loading"
android:layout_width="match_parent" android:layout_width="38dp"
android:layout_height="4dp" android:layout_height="38dp"
android:max="40"
android:progress="20"
android:progressDrawable="@drawable/progress_drawable"
android:layout_margin="20dp"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:indeterminateBehavior="repeat" android:indeterminateBehavior="repeat"
/> android:indeterminateDrawable="@drawable/shape_loading_anim"
android:indeterminateOnly="true" />
<TextView <TextView
android:id="@+id/tv_hint" android:id="@+id/tv_hint"
android:layout_marginTop="10dp"
android:layout_marginStart="12dp" android:layout_marginStart="12dp"
android:layout_marginBottom="60dp"
android:layout_marginEnd="12dp" android:layout_marginEnd="12dp"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:gravity="center" android:gravity="center"
android:text="设备正在联网中,请耐心等待" android:text="正在加载中..."
android:textSize="14sp" android:textSize="16sp"
android:textColor="@color/black" android:textColor="@color/white"
android:layout_height="wrap_content"/> android:layout_height="wrap_content"/>
</LinearLayout> </LinearLayout>
</androidx.cardview.widget.CardView> </LinearLayout>
<ImageView
android:id="@+id/iv_cancel"
android:layout_width="match_parent"
android:layout_centerInParent="true"
android:src="@drawable/bluetooth_five"
android:scaleType="fitCenter"
android:visibility="gone"
android:layout_marginHorizontal="40dp"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/tv_cancel"
android:layout_width="100dp"
android:visibility="gone"
android:layout_centerHorizontal="true"
android:layout_alignBottom="@id/iv_cancel"
android:layout_marginBottom="50dp"
android:layout_height="50dp"/>
</RelativeLayout>

View File

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/wv_wv"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_centerInParent="true"
android:text="恭喜您,联网成功了"
android:textSize="26sp"
android:textStyle="bold"
android:textColor="@color/danghao_color"
/>
</RelativeLayout>

View File

@ -1,11 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/lLayout_bg" android:id="@+id/lLayout_bg"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/ios_dialog_bg" android:background="@drawable/ios_dialog_bg"
@ -29,15 +24,15 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="15dp" android:layout_marginLeft="15dp"
android:layout_marginRight="15dp" android:layout_marginRight="15dp"
android:layout_marginTop="28dp" android:layout_marginTop="8dp"
android:gravity="center" android:gravity="center"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="16sp" /> android:textSize="14sp" />
<ImageView <ImageView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0.5dp" android:layout_height="0.5dp"
android:layout_marginTop="40dp" android:layout_marginTop="10dp"
android:background="#c6c6c6" /> android:background="#c6c6c6" />
<LinearLayout <LinearLayout
@ -48,24 +43,24 @@
<Button <Button
android:id="@+id/btn_neg" android:id="@+id/btn_neg"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="50dp" android:layout_height="43dp"
android:layout_weight="1" android:layout_weight="1"
android:textAllCaps="false" android:textAllCaps="false"
android:background="@drawable/ios_dialog_left_bg" android:background="@drawable/ios_dialog_left_bg"
android:gravity="center" android:gravity="center"
android:textColor="#999999" android:textColor="#037BFF"
android:textSize="16sp" /> android:textSize="16sp" />
<ImageView <ImageView
android:id="@+id/img_line" android:id="@+id/img_line"
android:layout_width="0.5dp" android:layout_width="0.5dp"
android:layout_height="50dp" android:layout_height="43dp"
android:background="#c6c6c6" /> android:background="#c6c6c6" />
<Button <Button
android:id="@+id/btn_pos" android:id="@+id/btn_pos"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="50dp" android:layout_height="43dp"
android:layout_weight="1" android:layout_weight="1"
android:textAllCaps="false" android:textAllCaps="false"
android:background="@drawable/ios_dialog_right_bg" android:background="@drawable/ios_dialog_right_bg"
@ -75,10 +70,4 @@
/> />
</LinearLayout> </LinearLayout>
</LinearLayout>
<View
android:id="@+id/bottom"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="30dp"/>
</LinearLayout> </LinearLayout>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="250dp"
android:layout_height="250dp"
android:background="@color/white"
>
<TextView
android:id="@+id/one"
android:layout_width="wrap_content"
android:layout_centerInParent="true"
android:text="设备正在联网中,请耐心等待....."
android:layout_height="wrap_content"/>
<ProgressBar
android:layout_above="@id/one"
android:layout_width="wrap_content"
android:layout_centerHorizontal="true"
android:layout_height="wrap_content"/>
</RelativeLayout>

View File

@ -302,13 +302,5 @@
android:gravity="center" android:gravity="center"
android:background="@drawable/minefragment_bg_select"/> android:background="@drawable/minefragment_bg_select"/>
<TextView
android:id="@+id/cid"
android:layout_width="match_parent"
android:gravity="center"
android:layout_margin="20dp"
android:textIsSelectable="true"
android:layout_height="wrap_content"/>
</LinearLayout> </LinearLayout>

View File

@ -167,6 +167,7 @@
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/bt_submit" android:layout_below="@id/bt_submit"
android:layout_marginBottom="30dp"
android:layout_marginLeft="@dimen/new_login_bg_width" android:layout_marginLeft="@dimen/new_login_bg_width"
android:layout_marginRight="@dimen/new_login_bg_width" android:layout_marginRight="@dimen/new_login_bg_width"
android:layout_marginTop="12dp"> android:layout_marginTop="12dp">
@ -202,16 +203,6 @@
android:textSize="13dp" /> android:textSize="13dp" />
</RelativeLayout> </RelativeLayout>
<TextView
android:layout_width="match_parent"
android:layout_marginHorizontal="28dp"
android:layout_marginBottom="20dp"
android:layout_marginTop="10dp"
android:lineSpacingMultiplier="1.1"
android:textColor="@color/red"
android:text="注如不能接收到短信验证码可以使用默认密码登录登录名为未注册过的手机号码密码为ifish+手机号后4位"
android:layout_height="wrap_content"/>
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout

View File

@ -301,26 +301,4 @@
<!--<item name="android:windowSoftInputMode">stateHidden</item>--> <!--<item name="android:windowSoftInputMode">stateHidden</item>-->
<!-- Dialog 全屏显示 --> <!-- Dialog 全屏显示 -->
</style> </style>
<!--全屏dialog-->
<style name="fullDialog" parent="@android:style/Theme.Holo.Dialog">
<item name="android:windowFullscreen">true</item>
<!-- 是否有边框 -->
<item name="android:windowFrame">@null</item>
<!--是否在悬浮Activity之上 -->
<item name="android:windowIsFloating">true</item>
<!--标题 -->
<item name="android:windowNoTitle">true</item>
<!--阴影 -->
<item name="android:windowIsTranslucent">true</item>
<!--透明背景-->
<item name="android:background">@android:color/transparent</item>
<!--窗口背景透明-->
<item name="android:windowBackground">@android:color/transparent</item>
<!--弹窗背景是否变暗-->
<item name="android:backgroundDimEnabled">false</item>
</style>
</resources> </resources>

View File

@ -15,5 +15,9 @@
10.友盟分享初始化逻辑变更,初始化分为预先初始化和正式初始化 10.友盟分享初始化逻辑变更,初始化分为预先初始化和正式初始化
11.下载功能适配android12+解决高版本安卓手机无法更新APK的问题 11.下载功能适配android12+解决高版本安卓手机无法更新APK的问题
<<<<<<< HEAD
12.增加阿里云镜像版本控制移除local.pro
=======
12.增加阿里云镜像版本控制移除local.pro 12.增加阿里云镜像版本控制移除local.pro
13.增加airkiss注意在发送前AirKissEncoder只能实例化一次确保发送的随机数和接受的时候用来比较的随机数要保持一致 13.增加airkiss注意在发送前AirKissEncoder只能实例化一次确保发送的随机数和接受的时候用来比较的随机数要保持一致
>>>>>>> release

11
项目运行必读 Normal file
View File

@ -0,0 +1,11 @@
1.注意下面的几个版本要对上
classpath 'com.android.tools.build:gradle:4.2.2'
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
2.在gitlab上添加自己的ssh
注意android studio - settings -Version Control - git -- 一定要勾选上use credential helper !!! 不然是无法push代码到gitlab的
3.android studio 版本不要太新,使用 2021.2.1 patch 2即可