aa_chart_core/build.gradle
@@ -1,6 +1,7 @@ apply plugin: 'com.android.library' android { namespace 'com.github.AAChartModel.AAChartCore' compileSdkVersion 33 defaultConfig { app/build.gradle
@@ -25,13 +25,14 @@ keyPassword '85521566' } } namespace 'com.hdl.photovoltaic' compileSdk 35 defaultConfig { applicationId "com.hdl.photovoltaic" minSdk 23 targetSdk 35 versionCode 23 versionName "2.0.0"//版本规则1.3是产品功能迭代用的,最后一位0是我们修复bug用的 versionName "2.0.1"//版本规则1.3是产品功能迭代用的,最后一位0是我们修复bug用的 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled true manifestPlaceholders = mfph @@ -63,10 +64,10 @@ ] } // 保证其他的lib没有被preDex dexOptions { preDexLibraries = false } // // 保证其他的lib没有被preDex // dexOptions { // preDexLibraries = false // } repositories { flatDir { dirs 'libs' @@ -85,6 +86,11 @@ // abortOnError false // } packagingOptions { jniLibs { useLegacyPackaging true } } /** * 打包自动命名 @@ -110,6 +116,7 @@ buildFeatures { viewBinding true aidl true buildConfig true } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 @@ -154,7 +161,7 @@ //二维码库 implementation project(path: ':third-zxing') //Link本地库(在线依赖网络库) implementation 'com.hdl.android:pmsdk:1.0.18' implementation 'com.hdl.android:pmsdk:1.0.22'//22 // implementation 'com.hdl.android:debugsdk:1.0.71' implementation project(path: ':sdk') implementation 'androidx.activity:activity:1.2.3' @@ -185,13 +192,13 @@ //********UniSDK必须添加的依赖 start******** implementation "androidx.recyclerview:recyclerview:1.0.0" implementation 'com.alibaba:fastjson:1.2.66'//必须集成,fastjson功能需要 implementation 'com.facebook.fresco:fresco:2.5.0'//必须集成,图片加载需要 implementation 'com.facebook.fresco:animated-gif:2.5.0'//必须集成,图片加载需要 implementation 'com.facebook.fresco:webpsupport:2.5.0' implementation 'com.facebook.fresco:animated-webp:2.5.0' implementation 'com.github.bumptech.glide:glide:4.9.0'//必须集成,图片加载需要 implementation 'com.facebook.fresco:fresco:3.6.0'//必须集成,图片加载需要 implementation 'com.facebook.fresco:animated-gif:3.6.0'//必须集成,图片加载需要 implementation 'com.facebook.fresco:webpsupport:3.6.0' implementation 'com.facebook.fresco:animated-webp:3.6.0' implementation 'com.github.bumptech.glide:glide:5.0.5'//必须集成,图片加载需要 implementation 'com.android.support:multidex:1.0.3' implementation 'androidx.webkit:webkit:1.3.0'//3.6.15版本之后 必须集成,用来支持暗黑模式 implementation 'androidx.webkit:webkit:1.6.1'//3.6.15版本之后 必须集成,用来支持暗黑模式 //********UniSDK必须添加的依赖 end******** //NanoHTTPD搭建服务器 implementation 'org.nanohttpd:nanohttpd:2.3.1' @@ -216,9 +223,10 @@ implementation 'com.huawei.agconnect:agconnect-core:1.9.1.301' //友盟 implementation 'com.umeng.umsdk:common:9.5.6'// 必选 implementation 'com.umeng.umsdk:asms:1.6.3'// 必选 implementation 'com.umeng.umsdk:apm:1.7.0' // 错误分析 implementation 'com.umeng.umsdk:common:9.6.8'// 必选 implementation 'com.umeng.umsdk:asms:1.8.0'// 必选 // implementation 'com.umeng.umsdk:apm:1.9.2' // 错误分析,目前不支持Android 15的16KB功能适配要求。 //引入FCM(原生谷歌) implementation 'com.google.firebase:firebase-messaging:23.2.1' @@ -228,7 +236,6 @@ implementation 'me.leolin:ShortcutBadger:1.1.22@aar' // 阿里云推送核心库 implementation 'com.aliyun.ams:alicloud-android-push:3.9.3' //辅助通道 app/libs/android-gif-drawable-1.2.28.aarBinary files differ
app/libs/android-gif-drawable-1.2.29.aarBinary files differ
app/libs/breakpad-build-release.aarBinary files differ
app/libs/uniMPSDK-V2-release.aarBinary files differ
app/libs/uniapp-v8-release.aarBinary files differ
app/src/main/AndroidManifest.xml
@@ -100,7 +100,7 @@ android:label="@string/app_name" android:persistent="true" android:requestLegacyExternalStorage="true" android:supportsRtl="false" android:supportsRtl="true" android:theme="@style/Theme.PhotovoltaicDebug" tools:replace="android:supportsRtl"> <!-- 厂商通道专用Activity(透明中转页),创建一个透明的Activity来处理厂商通道点击 --> app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -84,6 +84,10 @@ public class HDLApp extends Application { /** * 添加标志位控制首次加载逻辑 */ public boolean isFirstLoad = true; final String TAG = HDLApp.class.getName(); //控制打印 Debug模式打印 private Boolean isLogEnabled = true; @@ -109,20 +113,15 @@ @Override public void onCreate() { super.onCreate(); // Log.d("Application==onCreate", "onCreate"); // // 获取当前进程的PID // String processMessage = "进程Uid:" + Process.myUid() + "进程ID:" + Process.myPid() + " 进程名:" + RuningAcitvityUtil.getAppName(getBaseContext()); Log.d("Application==onCreate", "onCreate"); // Log.d(TAG, processMessage); // Log.d("Application==onCreate", processMessage); // if (RuningAcitvityUtil.getAppName(getBaseContext()).contains(":")) { // //非原生进程,用初始化后面的 // return; // } mHDLApp = this; SharedPreUtils.init(this); getAppLanguage(); //预创建脚本json文件夹 HdlFileLogic.getInstance().createHdlDeviceModelLocalJsonDirectory(); init(); @@ -181,6 +180,11 @@ return; } isInitThirdSDK = true; SharedPreUtils.init(this); getAppLanguage(); //预创建脚本json文件夹 HdlFileLogic.getInstance().createHdlDeviceModelLocalJsonDirectory(); UserConfigManage.getInstance().setTouristModeJumpLogic(UserConfigManage.getInstance().isTourist_mode()); // //5.初始化Bugly // CrashReport.initCrashReport(this, Constant.BUGLY_APP_ID, true); //6.初始化DCUniMPSDK @@ -303,6 +307,8 @@ HDLLinkPMUser.getInstance().setOnReloginListener(new IOnReloginListener() { @Override public void onReLogin(int type) { // UserConfigManage.getInstance().setTourist_mode(false); // UserConfigManage.getInstance().Save(); if (type == LogoutType.ServerSwitchingLogout.getValue()) { new Handler().postDelayed(new Runnable() { @Override app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java
@@ -109,13 +109,14 @@ private String userImageUrl = "/static/image/user-default-head.png"; /// <summary> /// 注册极光ID,谷歌FCM的令牌 /// </summary> /** * 注册极光ID,谷歌FCM的令牌 */ private String pushToken; /// <summary> /// 添加令牌到云端成功时返回的 /// </summary> /** * 添加令牌到云端成功时返回的 */ private String pushId; /** @@ -123,6 +124,50 @@ */ private boolean noNetworkFlag = false; /** * 是否是游客模式(true=游客模式,false=正常模式) */ private boolean tourist_mode = false; /** * 是否是游客模式 * @return (true=游客模式,false=正常模式) */ public boolean isTourist_mode() { return tourist_mode; } /** * 是否是游客模式 * @return (true=游客模式,false=正常模式) */ public void setTourist_mode(boolean tourist_mode) { this.tourist_mode = tourist_mode; } /** * 用来游客模式冷启动强制跳到登录界面标记 * true=游客模式,冷启动强制跳转登录界面,false:按正常流程跑 */ private boolean isTouristModeJumpLogic = false; /** * 用来游客模式冷启动强制跳到登录界面标记 * @return true=游客模式,冷启动强制跳转登录界面,false:按正常流程跑 */ public boolean isTouristModeJumpLogic() { return isTouristModeJumpLogic; } /** * 用来游客模式冷启动强制跳到登录界面标记 * @return true=游客模式,冷启动强制跳转登录界面,false:按正常流程跑 */ public void setTouristModeJumpLogic(boolean touristModeJumpLogic) { isTouristModeJumpLogic = touristModeJumpLogic; } public boolean isAutomaticSkipNoNetworkFlag() { return automaticSkipNoNetworkFlag; } app/src/main/java/com/hdl/photovoltaic/other/HdlPushLogic.java
@@ -59,6 +59,10 @@ * @param cloudCallBeak - */ public void pushAdd(CloudCallBeak<String> cloudCallBeak) { //游客模式不需要消息推送,因为手动杀死应用时,自动退出游客模式 if (UserConfigManage.getInstance().isTourist_mode()) { return; } String requestUrl = HttpApi.POST_push_add; JsonObject json = new JsonObject(); json.addProperty("deviceName", Build.MODEL);//设备名称 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -72,6 +72,7 @@ import com.hdl.photovoltaic.uni.HDLUniMPSDKManager; import com.hdl.photovoltaic.utils.NetworkUtils; import com.hdl.photovoltaic.utils.PermissionUtils; import com.hdl.photovoltaic.utils.SharedPreUtils; import com.hdl.photovoltaic.utils.WifiUtils; import com.hdl.sdk.link.common.exception.HDLLinkException; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; @@ -3088,6 +3089,7 @@ // data.put("appSecret", AppConfigManage.getAppSecret()); // } data.put("appLanguage", UserConfigManage.getInstance().getCurrentAppLanguage()); data.put("tourist_mode", UserConfigManage.getInstance().isTourist_mode()); uniCallBackBaseBean.setData(data); return getJSONObject(uniCallBackBaseBean); } catch (Exception e) { app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java
@@ -171,6 +171,10 @@ // String pws = "123456"; //测试用 viewBinding.homeLoginAccountEt.setText(UserConfigManage.getInstance().getAccount()); if (UserConfigManage.getInstance().isTourist_mode()) { //游客模式不记录账号 viewBinding.homeLoginAccountEt.setText(""); } // viewBinding.homeLoginPasswordEt.setText(pws); checkClearIconShowOrNot(viewBinding.homeLoginAccountEt.getText().toString()); isLoginTextViewEnabled(); @@ -213,6 +217,18 @@ viewBinding.homeLoginLanguageTv.setText(itemData.getTitle()); } }); } }); //游客模式 viewBinding.homeLoginTouristTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { UserConfigManage.getInstance().setTourist_mode(true); UserConfigManage.getInstance().Save(); HDLUniMPSDKManager.isExistsActivity = false; //游客模式登录 loginAccount("Sales@xenterrasolar.com", "PLMOKNIJ"); } }); @@ -286,6 +302,8 @@ getAcceiptPolicyDialog(); return; } UserConfigManage.getInstance().setTourist_mode(false); UserConfigManage.getInstance().Save(); //登录 loginAccount(account, password); @@ -686,6 +704,8 @@ confirmationCancelDialog.dismiss(); String account = viewBinding.homeLoginAccountEt.getText().toString().replace(" ", ""); String password = viewBinding.homeLoginPasswordEt.getText().toString().replace(" ", ""); UserConfigManage.getInstance().setTourist_mode(false); UserConfigManage.getInstance().Save(); loginAccount(account, password); } }); app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java
@@ -94,8 +94,9 @@ if (!UserConfigManage.getInstance().isNoNetworkFlag()) { //初始化服务器域名(用户注册所在服务器域名地址) AppConfigManage.setUserRegionUrl(HDLLinkPMUser.getInstance().getUserRegionUrl()); boolean isTourist = UserConfigManage.getInstance().isTouristModeJumpLogic(); //判断AccessToken是否null if (!TextUtils.isEmpty(HDLLinkPMUser.getInstance().getAccessToken())) { if (!TextUtils.isEmpty(HDLLinkPMUser.getInstance().getAccessToken()) && !isTourist) { if (UserConfigManage.getInstance().isBAccount()) { //安装商跳转界面 Intent intent = new Intent(); app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java
@@ -15,6 +15,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.enums.DebugStatus; import com.hdl.photovoltaic.enums.DeliverStatus; import com.hdl.photovoltaic.enums.PowerStationStatus; @@ -128,6 +129,9 @@ } }); if (UserConfigManage.getInstance().isTourist_mode()) { holder.home_del_ll.setVisibility(View.GONE); } } @Override app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
@@ -33,11 +33,13 @@ import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.databinding.FragmentHomePageBinding; import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch; import com.hdl.photovoltaic.enums.LogoutType; import com.hdl.photovoltaic.enums.PowerStationStatus; import com.hdl.photovoltaic.enums.TimeType; import com.hdl.photovoltaic.enums.UnitType; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.listener.OnCallBeak; import com.hdl.photovoltaic.other.HdlAccountLogic; import com.hdl.photovoltaic.other.HdlCommonLogic; import com.hdl.photovoltaic.other.HdlDialogLogic; import com.hdl.photovoltaic.other.HdlLogLogic; @@ -45,8 +47,6 @@ import com.hdl.photovoltaic.other.HdlResidenceLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.other.HdlUniLogic; import com.hdl.photovoltaic.ui.StartActivity; import com.hdl.photovoltaic.ui.adapter.LanguageAdapter; import com.hdl.photovoltaic.ui.bean.DataOverBean; import com.hdl.photovoltaic.ui.bean.SocialContributionBean; import com.hdl.photovoltaic.ui.bean.StatisticsBean; @@ -56,6 +56,7 @@ import com.hdl.photovoltaic.utils.AppManagerUtils; import com.hdl.photovoltaic.utils.GPSManagerUtils; import com.hdl.photovoltaic.utils.PermissionUtils; import com.hdl.photovoltaic.utils.SharedPreUtils; import com.hdl.photovoltaic.utils.TimeUtils; import com.hdl.photovoltaic.widget.AddPowerStationDialog; import com.hdl.photovoltaic.widget.ConfirmationCancelDialog; @@ -130,6 +131,12 @@ } private void initEvent() { viewBinding.exitTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { HdlAccountLogic.getInstance().logout(LogoutType.NormalLogout); } }); //电站添加 //点击进入新配置入网界面 viewBinding.homePageStationAddIv.setOnClickListener(new View.OnClickListener() { @@ -470,7 +477,13 @@ } private void initView() { if (UserConfigManage.getInstance().isTourist_mode()) { viewBinding.homePageStationAddIv.setVisibility(View.GONE); viewBinding.exitTv.setVisibility(View.VISIBLE); } else { viewBinding.homePageStationAddIv.setVisibility(View.VISIBLE); viewBinding.exitTv.setVisibility(View.GONE); } String dataStr = TimeUtils.getDateTimestamp(TimeUtils.getCurrentTimestamp(), TimeUtils.getTimeDateFormat(timeType)); viewBinding.yearMonthDayTv.setText(dataStr); app/src/main/java/com/hdl/photovoltaic/ui/me/AsRegardsActivity.java
@@ -1,23 +1,14 @@ package com.hdl.photovoltaic.ui.me; import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.view.View; import androidx.annotation.RequiresApi; import androidx.core.app.NotificationCompat; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.linkpm.sdk.user.bean.NewVersionBean; import com.hdl.photovoltaic.R; @@ -29,16 +20,12 @@ import com.hdl.photovoltaic.other.HdlAppUpdateLogic; import com.hdl.photovoltaic.other.HdlCommonLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.ui.BPowerStationActivity; import com.hdl.photovoltaic.ui.CPowerStationActivity; import com.hdl.photovoltaic.ui.StartActivity; import com.hdl.photovoltaic.utils.BadgeUtils; import com.hdl.photovoltaic.widget.FlashingBoxDialog; import com.hdl.photovoltaic.widget.apkwgtupload.ApkDownLoadService; import com.hdl.photovoltaic.widget.ConfirmationCancelDialog; import com.hdl.photovoltaic.widget.UpdateConfirmationCancelDialog; import java.util.Map; /** * 关于界面(app更新) @@ -210,60 +197,4 @@ }, this, ShowErrorMode.YES); } private void showCustomNotification(String title, String message, Map<String, String> data) { NotificationManager notificationManager = (NotificationManager) _mActivity.getSystemService(Context.NOTIFICATION_SERVICE); // 创建通知渠道(Android 8.0+) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { createNotificationChannel(notificationManager); } NotificationCompat.Builder builder = new NotificationCompat.Builder(_mActivity, "fcm_channel") .setSmallIcon(R.drawable.notification_logo) .setContentTitle(title) .setContentText(message) .setAutoCancel(true) .setNumber(5) .setWhen(System.currentTimeMillis()); // 设置点击意图 Intent intent = createNotificationIntent(data); PendingIntent pendingIntent = PendingIntent.getActivity( _mActivity, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); builder.setContentIntent(pendingIntent); // 显示通知 notificationManager.notify((int) System.currentTimeMillis(), builder.build()); } private Intent createNotificationIntent(Map<String, String> data) { Intent intent = new Intent(_mActivity, StartActivity.class); intent.putExtra("from_fcm", true); intent.putExtra("pushData", JSON.toJSON(data).toString()); // if (data != null) { // for (Map.Entry<String, String> entry : data.entrySet()) { // intent.putExtra(entry.getKey(), entry.getValue()); // } // } // intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); return intent; } @RequiresApi(api = Build.VERSION_CODES.O) private void createNotificationChannel(NotificationManager notificationManager) { NotificationChannel channel = new NotificationChannel( "fcm_channel", "FCM 消息", NotificationManager.IMPORTANCE_HIGH ); channel.setDescription("Firebase Cloud Messaging 通知"); // 启用角标 channel.setShowBadge(true); notificationManager.createNotificationChannel(channel); BadgeUtils.setBadgeCount(_mActivity, 7); } } app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java
@@ -17,6 +17,7 @@ import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.databinding.FragmentMeBinding; import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch; import com.hdl.photovoltaic.enums.LogoutType; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.other.HdlAccountLogic; import com.hdl.photovoltaic.other.HdlLogLogic; @@ -169,10 +170,19 @@ */ private void initEvent() { viewBinding.exitTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { HdlAccountLogic.getInstance().logout(LogoutType.NormalLogout); } }); viewBinding.fragmentMeIconParentCl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (UserConfigManage.getInstance().isTourist_mode()) { return; } if (UserConfigManage.getInstance().isBAccount()) { Intent intent = new Intent(); intent.setClass(_mActivity, BPersonalDataActivity.class); @@ -238,6 +248,11 @@ * 初始化界面 */ private void initView() { if (UserConfigManage.getInstance().isTourist_mode()) { viewBinding.exitTv.setVisibility(View.VISIBLE); } else { viewBinding.exitTv.setVisibility(View.GONE); } //设备调试 viewBinding.fragmentMeLineDeviceDebugIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.device_debug); viewBinding.fragmentMeLineDeviceDebugIl.fragmentMeLineTitleIv.setText(R.string.device_debugging); @@ -266,7 +281,11 @@ setMemberAccount(UserConfigManage.getInstance().getAccount()); // setMemberHeadIcon(UserConfigManage.getInstance().getUserImageUrl()); if (UserConfigManage.getInstance().isTourist_mode()) { viewBinding.fragmentMeUserNameNextIv.setVisibility(View.GONE); } else { viewBinding.fragmentMeUserNameNextIv.setVisibility(View.VISIBLE); } } public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { @@ -415,7 +434,6 @@ } }); } } app/src/main/java/com/hdl/photovoltaic/ui/me/SetActivity.java
@@ -153,6 +153,15 @@ viewBinding.setNotificationSettingsIl.lineV.setVisibility(View.GONE); } if (UserConfigManage.getInstance().isTourist_mode()) { viewBinding.outTv.setVisibility(View.GONE); viewBinding.setAccountSecurityIl.parentCl.setVisibility(View.GONE); viewBinding.setAccountSecurityIl.lineV.setVisibility(View.GONE); viewBinding.setNotificationSettingsIl.parentCl.setVisibility(View.GONE); viewBinding.setNotificationSettingsIl.lineV.setVisibility(View.GONE); viewBinding.setContextSwitchIl.parentCl.setVisibility(View.GONE); viewBinding.setNotificationSettingsIl.lineV.setVisibility(View.GONE); } } @Override app/src/main/java/com/hdl/photovoltaic/ui/me/languageSelectionActivity.java
@@ -20,6 +20,8 @@ import com.hdl.photovoltaic.other.HdlPushLogic; import com.hdl.photovoltaic.other.HdlResidenceLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.ui.BPowerStationActivity; import com.hdl.photovoltaic.ui.CPowerStationActivity; import com.hdl.photovoltaic.ui.StartActivity; import com.hdl.photovoltaic.ui.adapter.LanguageAdapter; import com.hdl.photovoltaic.uni.HDLUniMPSDKManager; @@ -135,15 +137,27 @@ @Override public void run() { hideLoading(); UserConfigManage.getInstance().setTouristModeJumpLogic(false); UserConfigManage.getInstance().setCurrentAppLanguage(itemData.getLanguage()); UserConfigManage.getInstance().Save(); //配置接口请求语言 HDLLinkPMSdk.setLanguage(UserConfigManage.getInstance().getCurrentAppLanguage()); AppManagerUtils.getAppManager().finishAllActivity(); // if (UserConfigManage.getInstance().isTourist_mode()) { // Intent intent = new Intent(); // intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); // if (UserConfigManage.getInstance().isBAccount()) { // intent.setClass(HDLApp.getInstance(), BPowerStationActivity.class); // } else { // intent.setClass(HDLApp.getInstance(), CPowerStationActivity.class); // } // startActivity(intent); // } else { Intent intent = new Intent(); intent.setClass(HDLApp.getInstance(), StartActivity.class); startActivity(intent); // } HdlPushLogic.getInstance().pushAdd(new CloudCallBeak<String>() { @Override public void onSuccess(String pushId) { app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
@@ -32,6 +32,7 @@ import com.hdl.photovoltaic.enums.DebugType; import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch; import com.hdl.photovoltaic.enums.Languages; import com.hdl.photovoltaic.enums.LogoutType; import com.hdl.photovoltaic.enums.LowerTagType; import com.hdl.photovoltaic.enums.PowerStationStatus; import com.hdl.photovoltaic.enums.ProjectOperation; @@ -41,6 +42,7 @@ import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.listener.LinkCallBack; import com.hdl.photovoltaic.listener.OnCallBeak; import com.hdl.photovoltaic.other.HdlAccountLogic; import com.hdl.photovoltaic.other.HdlCommonLogic; import com.hdl.photovoltaic.other.HdlDeviceLogic; import com.hdl.photovoltaic.other.HdlDialogLogic; @@ -139,7 +141,12 @@ } private void initEvent() { viewBinding.exitTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { HdlAccountLogic.getInstance().logout(LogoutType.NormalLogout); } }); //电站标签 viewBinding.powerStationLabel.setOnClickListener(new View.OnClickListener() { @Override @@ -574,6 +581,13 @@ private void initView() { if (UserConfigManage.getInstance().isTourist_mode()) { viewBinding.addIv.setVisibility(View.GONE); viewBinding.exitTv.setVisibility(View.VISIBLE); } else { viewBinding.addIv.setVisibility(View.VISIBLE); viewBinding.exitTv.setVisibility(View.GONE); } viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE); viewBinding.deviceLabelParent.setVisibility(View.GONE); @@ -604,7 +618,11 @@ viewBinding.powerStationLabel.setTextAppearance(R.style.Text18Style); viewBinding.deviceLabel.setTextAppearance(R.style.Text14Style); // viewBinding.editIv.setVisibility(View.VISIBLE);//编辑图标隐藏 if (UserConfigManage.getInstance().isTourist_mode()) { viewBinding.addIv.setVisibility(View.GONE);//添加图标隐藏 } else { viewBinding.addIv.setVisibility(View.VISIBLE);//添加图标隐藏 } viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);//电站标签【父容器】显示 viewBinding.deviceLabelParent.setVisibility(View.GONE);//设备标签【父容器】隐藏 if (viewBinding.deviceNullDataIc.getRoot().getVisibility() == View.VISIBLE) { @@ -614,7 +632,11 @@ viewBinding.deviceLabel.setTextAppearance(R.style.Text18Style); viewBinding.powerStationLabel.setTextAppearance(R.style.Text14Style); // viewBinding.editIv.setVisibility(View.GONE);//编辑图标隐藏 if (UserConfigManage.getInstance().isTourist_mode()) { viewBinding.addIv.setVisibility(View.GONE);//添加图标隐藏 } else { viewBinding.addIv.setVisibility(View.GONE);//添加图标隐藏 } viewBinding.powerStationLabelParent.setVisibility(View.GONE);//电站标签【父容器】隐藏 viewBinding.deviceLabelParent.setVisibility(View.VISIBLE);//设备标签【父容器】显示 if (viewBinding.homeNullDataIc.getRoot().getVisibility() == View.VISIBLE) { app/src/main/java/com/hdl/photovoltaic/uni/MyForegroundService.java
@@ -1,18 +1,22 @@ package com.hdl.photovoltaic.uni; import android.app.ActivityManager; import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.Service; import android.content.Context; import android.content.Intent; import android.os.Build; import android.os.IBinder; import android.util.Log; import androidx.annotation.Nullable; import androidx.core.app.NotificationCompat; import com.hdl.photovoltaic.R; import java.util.List; public class MyForegroundService extends Service { @@ -29,21 +33,17 @@ isRunning = true; } // @Override // public void onTaskRemoved(Intent rootIntent) { // super.onTaskRemoved(rootIntent); // isRunning = false; /// / // 停止前台状态,移除通知 /// / stopForeground(true); // true表示移除通知 /// /// // 停止服务 /// /// stopSelf(); // // 1. 先移除前台状态(可选,但建议) // stopForeground(true); // // // 2. 停止服务 // stopSelf(); // } @Override public void onTaskRemoved(Intent rootIntent) { super.onTaskRemoved(rootIntent); // 当应用从最近任务中移除时调用 stopForeground(true); stopSelf(); killAppProcess(this); // // 3. 结束进程 // android.os.Process.killProcess(android.os.Process.myPid()); // System.exit(0); } @Override public int onStartCommand(Intent intent, int flags, int startId) { // 创建通知 @@ -88,10 +88,41 @@ public void onDestroy() { super.onDestroy(); isRunning = false; // 清理资源 stopForeground(true); } public static boolean isServiceRunning() { return isRunning; } /** * 关掉app所有进程 * * @param context 上下文 */ private void killAppProcess(Context context) { // AppManagerUtils.getAppManager().finishAllActivity(); // Log.d("===6666666",""); try { android.app.ActivityManager manager = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> processInfos = manager.getRunningAppProcesses(); // 先杀掉相关进程,最后再杀掉主进程 for (android.app.ActivityManager.RunningAppProcessInfo runningAppProcessInfo : processInfos) { if ((runningAppProcessInfo.uid == android.os.Process.myUid()) && (runningAppProcessInfo.pid != android.os.Process.myPid())) { try { android.os.Process.killProcess(runningAppProcessInfo.pid); } catch (Exception e) { e.printStackTrace(); } } } android.os.Process.killProcess(android.os.Process.myPid()); } catch (Exception e) { e.printStackTrace(); } System.exit(0); } } app/src/main/res/layout/activity_home_login.xml
@@ -56,7 +56,17 @@ android:layout_marginStart="@dimen/dp_4" android:src="@drawable/language_pull_down" /> </LinearLayout> <TextView android:id="@+id/home_login_tourist_tv" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" android:layout_marginEnd="@dimen/dp_16" android:layout_marginTop="@dimen/dp_60" android:text="@string/tourist_mode" android:textColor="@color/text_38C494" android:textSize="@dimen/text_14" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent"/> <!-- <TextView--> <!-- android:id="@+id/home_login_language_tv"--> <!-- android:layout_width="wrap_content"--> app/src/main/res/layout/fragment_home_page.xml
@@ -35,6 +35,18 @@ android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:src="@drawable/add" /> <TextView android:id="@+id/exit_tv" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" android:text="@string/exit" android:textColor="@color/text_38C494" android:textSize="@dimen/text_14" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:visibility="gone" /> </RelativeLayout> <com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout app/src/main/res/layout/fragment_house_list.xml
@@ -50,7 +50,17 @@ android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:src="@drawable/add" /> <TextView android:id="@+id/exit_tv" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" android:text="@string/exit" android:textColor="@color/text_38C494" android:textSize="@dimen/text_14" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:visibility="gone" /> </RelativeLayout> <!--电站标签--> app/src/main/res/layout/fragment_me.xml
@@ -34,12 +34,22 @@ android:layout_centerInParent="true" android:text="@string/me" android:textColor="@color/text_FFACACAC" android:textSize="@dimen/text_18" /> <TextView android:id="@+id/exit_tv" android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" android:text="@string/exit" android:textColor="@color/text_38C494" android:textSize="@dimen/text_14" android:layout_centerInParent="true" android:layout_alignParentEnd="true" /> </RelativeLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/fragment_me_icon_parent_cl" android:layout_width="match_parent" app/src/main/res/values-ar/strings.xml
@@ -374,4 +374,6 @@ <string name="re_commissioning_power_station">تم إعادة تشغيل محطة الطاقة الجديدة من طراز APP</string> <string name="notification_settings">إعدادات الإشعارات</string> <string name="host_process_service_channel">ممر خدمة عملية المضيف</string> <string name="tourist_mode">وضع السياح</string> <string name="exit">الانسحاب</string> </resources> app/src/main/res/values-en/strings.xml
@@ -376,4 +376,7 @@ <string name="re_commissioning_power_station">The Xenterra app initiates the re-commissioning of the power station</string> <string name="notification_settings">Notification settings</string> <string name="host_process_service_channel">Host process service channel</string> <string name="tourist_mode">Tourist mode</string> <string name="exit">Exit</string> </resources> app/src/main/res/values-zh/strings.xml
@@ -372,4 +372,6 @@ <string name="re_commissioning_power_station">新特锐能app发起电站重新调试</string> <string name="notification_settings">通知设置</string> <string name="host_process_service_channel">宿主进程服务通道</string> <string name="tourist_mode">游客模式</string> <string name="exit">退出</string> </resources> app/src/main/res/values/strings.xml
@@ -376,4 +376,6 @@ <string name="re_commissioning_power_station">The Xenterra app initiates the re-commissioning of the power station</string> <string name="notification_settings">Notification settings</string> <string name="host_process_service_channel">Host process service channel</string> <string name="tourist_mode">Tourist mode</string> <string name="exit">Exit</string> </resources> build.gradle
@@ -3,7 +3,7 @@ buildscript { ext { agp_version = '4.1.3' agp_version = '8.7.3' } repositories { google() @@ -23,7 +23,7 @@ // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files //增加AGC插件配置,以便能同步“agconnect-services.json”文件中的信息.(华为极光推送) classpath 'com.huawei.agconnect:agcp:1.6.1.300' classpath 'com.huawei.agconnect:agcp:1.9.1.300' classpath 'com.google.gms:google-services:4.3.15' // Google Services 插件 } } countrypicker/build.gradle
@@ -1,6 +1,7 @@ apply plugin: 'com.android.library' android { namespace 'com.sahooz.library.countrypicker' compileSdkVersion 33 defaultConfig { @@ -26,7 +27,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('androidx.test.espresso:espresso-core:3.1.0', { androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', { exclude group: 'com.android.support', module: 'support-annotations' }) implementation 'androidx.appcompat:appcompat:1.2.0' gradle.properties
@@ -21,4 +21,4 @@ android.nonTransitiveRClass=true # 可以将v4,v7库转成Android X android.enableJetifier=true android.bundle.enableUncompressedNativeLibs=false #android.bundle.enableUncompressedNativeLibs=false gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@ #Wed Mar 19 11:08:39 CST 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists pickerview/build.gradle
@@ -4,6 +4,7 @@ android { namespace 'com.bigkoo.pickerview' compileSdkVersion 33 defaultConfig { sdk/build.gradle
@@ -3,6 +3,7 @@ } android { namespace 'com.hdl.sdk.link' compileSdkVersion 33 defaultConfig { @@ -26,7 +27,9 @@ sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } buildFeatures { buildConfig = true } /** * 打包自动命名 */ @@ -63,7 +66,7 @@ publishing { publications { plugin(MavenPublication) { from components.release from components.findByName('release') groupId 'com.hdl.android' version "$android.defaultConfig.versionName" artifactId = 'debugsdk' third-zxing/build.gradle
@@ -2,6 +2,7 @@ android { namespace 'com.zxing' compileSdkVersion 33 buildToolsVersion "29.0.1" wheelview/build.gradle
@@ -4,6 +4,7 @@ android { namespace 'com.contrarywind.view' compileSdkVersion 33 defaultConfig {