From 0d21994291dd7123b43b73882a57e80b0eb2b94c Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sat, 22 Mar 2025 03:06:40 +0800 Subject: [PATCH 001/110] =?UTF-8?q?=E7=BC=96=E8=AF=91=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=B2=BE=E7=AE=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- powerbell/build.gradle | 5 ----- 1 file changed, 5 deletions(-) diff --git a/powerbell/build.gradle b/powerbell/build.gradle index 80fddb2..c1481e4 100644 --- a/powerbell/build.gradle +++ b/powerbell/build.gradle @@ -41,11 +41,6 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_11 - targetCompatibility JavaVersion.VERSION_11 - } } dependencies { From 508c8b0b976cfa67ba1e9ea40c798e9dc8ff0943 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sat, 22 Mar 2025 05:53:58 +0800 Subject: [PATCH 002/110] =?UTF-8?q?=E9=80=82=E9=85=8D=E5=B0=8F=E7=B1=B315?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=E9=80=9A=E7=9F=A5=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- powerbell/build.properties | 4 +- powerbell/src/main/AndroidManifest.xml | 27 +++- .../studio/powerbell/MainActivity.java | 10 +- .../receivers/GlobalApplicationReceiver.java | 4 +- .../services/ControlCenterService.java | 65 ++++++-- .../powerbell/utils/AppConfigUtils.java | 2 +- .../powerbell/utils/NotificationHelper.java | 150 ++++++++++++++++++ ...tionUtils.java => NotificationUtils2.java} | 59 +++++-- .../main/res/layout/custom_notification.xml | 11 ++ .../layout/custom_notification_expanded.xml | 17 ++ 10 files changed, 308 insertions(+), 41 deletions(-) create mode 100644 powerbell/src/main/java/cc/winboll/studio/powerbell/utils/NotificationHelper.java rename powerbell/src/main/java/cc/winboll/studio/powerbell/utils/{NotificationUtils.java => NotificationUtils2.java} (83%) create mode 100644 powerbell/src/main/res/layout/custom_notification.xml create mode 100644 powerbell/src/main/res/layout/custom_notification_expanded.xml diff --git a/powerbell/build.properties b/powerbell/build.properties index 005367c..cb30cf7 100644 --- a/powerbell/build.properties +++ b/powerbell/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Thu Jan 02 11:13:45 HKT 2025 +#Fri Mar 21 21:51:15 GMT 2025 stageCount=6 libraryProject= baseVersion=4.0 publishVersion=4.0.5 -buildCount=0 +buildCount=13 baseBetaVersion=4.0.6 diff --git a/powerbell/src/main/AndroidManifest.xml b/powerbell/src/main/AndroidManifest.xml index b7d17be..6c9175e 100644 --- a/powerbell/src/main/AndroidManifest.xml +++ b/powerbell/src/main/AndroidManifest.xml @@ -2,10 +2,9 @@ - - - - + + + @@ -22,6 +21,23 @@ + + + + + + + + + + + + + + + + + + android:launchMode="singleTask" + android:exported="true"> diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java index c2a5eb6..e8c75fd 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java @@ -17,7 +17,7 @@ import cc.winboll.studio.powerbell.activities.AboutActivity; import cc.winboll.studio.powerbell.activities.BackgroundPictureActivity; import cc.winboll.studio.powerbell.activities.ClearRecordActivity; import cc.winboll.studio.powerbell.fragments.MainViewFragment; -import cc.winboll.studio.powerbell.utils.NotificationUtils; +import cc.winboll.studio.powerbell.utils.NotificationHelper; import cc.winboll.studio.shared.log.LogUtils; import cc.winboll.studio.shared.log.LogView; @@ -64,8 +64,10 @@ public class MainActivity extends Activity { } showFragment(mMainViewFragment); - NotificationUtils notificationUtils = new NotificationUtils(this); - notificationUtils.createNotificationChannel(); +// NotificationHelper notificationUtils = new NotificationHelper(this); +// notificationUtils.createNotificationChannels(); + + } void showFragment(Fragment fragment) { @@ -113,7 +115,7 @@ public class MainActivity extends Activity { protected void onResume() { super.onResume(); // 回到窗口自动取消提醒消息 - NotificationUtils.cancelRemindNotification(this); + //NotificationHelper.cancelRemindNotification(this); reloadBackground(); } diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/GlobalApplicationReceiver.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/GlobalApplicationReceiver.java index 3d7dde3..4eb3ffe 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/GlobalApplicationReceiver.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/GlobalApplicationReceiver.java @@ -8,7 +8,7 @@ import cc.winboll.studio.powerbell.GlobalApplication; import cc.winboll.studio.powerbell.fragments.MainViewFragment; import cc.winboll.studio.powerbell.utils.AppConfigUtils; import cc.winboll.studio.powerbell.utils.BatteryUtils; -import cc.winboll.studio.powerbell.utils.NotificationUtils; +import cc.winboll.studio.powerbell.utils.NotificationHelper; public class GlobalApplicationReceiver extends BroadcastReceiver { @@ -45,7 +45,7 @@ public class GlobalApplicationReceiver extends BroadcastReceiver { // 新电池状态标志某一个有变化就更新显示信息 if (_mIsCharging != isCharging || _mnTheQuantityOfElectricityOld != nTheQuantityOfElectricity) { // 电池状态改变先取消旧的提醒消息 - NotificationUtils.cancelRemindNotification(context); + //NotificationHelper.cancelRemindNotification(context); GlobalApplication.getAppCacheUtils(context).addChangingTime(nTheQuantityOfElectricity); MainViewFragment.sendMsgCurrentValueBattery(nTheQuantityOfElectricity); diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/services/ControlCenterService.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/services/ControlCenterService.java index 20cc497..2d1b7aa 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/services/ControlCenterService.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/services/ControlCenterService.java @@ -8,14 +8,17 @@ package cc.winboll.studio.powerbell.services; * Android Service之onStartCommand方法研究 * https://blog.csdn.net/cyp331203/article/details/38920491 */ -import cc.winboll.studio.powerbell.R; +import android.app.Notification; import android.app.Service; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.os.IBinder; +import android.widget.RemoteViews; import cc.winboll.studio.powerbell.GlobalApplication; +import cc.winboll.studio.powerbell.MainActivity; +import cc.winboll.studio.powerbell.R; import cc.winboll.studio.powerbell.beans.AppConfigBean; import cc.winboll.studio.powerbell.beans.NotificationMessage; import cc.winboll.studio.powerbell.handlers.ControlCenterServiceHandler; @@ -24,11 +27,12 @@ import cc.winboll.studio.powerbell.services.AssistantService; import cc.winboll.studio.powerbell.threads.RemindThread; import cc.winboll.studio.powerbell.utils.AppCacheUtils; import cc.winboll.studio.powerbell.utils.AppConfigUtils; -import cc.winboll.studio.powerbell.utils.NotificationUtils; +import cc.winboll.studio.powerbell.utils.NotificationHelper; import cc.winboll.studio.powerbell.utils.ServiceUtils; import cc.winboll.studio.powerbell.utils.StringUtils; import cc.winboll.studio.shared.log.LogUtils; import com.hjq.toast.ToastUtils; +import android.graphics.Color; public class ControlCenterService extends Service { @@ -43,7 +47,8 @@ public class ControlCenterService extends Service { AppConfigUtils mAppConfigUtils; AppCacheUtils mAppCacheUtils; // 前台服务通知工具 - NotificationUtils mNotificationUtils; + NotificationHelper mNotificationHelper; + Notification notification; RemindThread mRemindThread; ControlCenterServiceHandler mControlCenterServiceHandler; MyServiceConnection mMyServiceConnection; @@ -66,7 +71,9 @@ public class ControlCenterService extends Service { isServiceRunning = false; mAppConfigUtils = GlobalApplication.getAppConfigUtils(this); mAppCacheUtils = GlobalApplication.getAppCacheUtils(this); - mNotificationUtils = new NotificationUtils(ControlCenterService.this); + mNotificationHelper = new NotificationHelper(ControlCenterService.this); + + if (mMyServiceConnection == null) { mMyServiceConnection = new MyServiceConnection(); } @@ -92,10 +99,16 @@ public class ControlCenterService extends Service { // 唤醒守护进程 wakeupAndBindAssistant(); // 显示前台通知栏 - NotificationMessage notificationMessage=createNotificationMessage(); - //Toast.makeText(getApplication(), "", Toast.LENGTH_SHORT).show(); - mNotificationUtils.createForegroundNotification(this, notificationMessage); - mNotificationUtils.createRemindNotification(this, notificationMessage); + // 在Service中 + NotificationHelper helper = new NotificationHelper(this); + Intent intent = new Intent(this, MainActivity.class); + notification = helper.showForegroundNotification(intent, getString(R.string.app_name), "Service Running, Click to open app"); + startForeground(NotificationHelper.FOREGROUND_NOTIFICATION_ID, notification); + +// NotificationMessage notificationMessage=createNotificationMessage(); +// //Toast.makeText(getApplication(), "", Toast.LENGTH_SHORT).show(); +// mNotificationUtils.createForegroundNotification(this, notificationMessage); +// mNotificationUtils.createRemindNotification(this, notificationMessage); if (mControlCenterServiceReceiver == null) { // 注册广播接收器 @@ -126,19 +139,19 @@ public class ControlCenterService extends Service { // 更新前台通知 // public void updateServiceNotification() { - mNotificationUtils.updateForegroundNotification(ControlCenterService.this, createNotificationMessage()); + //mNotificationUtils.updateForegroundNotification(ControlCenterService.this, createNotificationMessage()); } // 更新前台通知 // public void updateServiceNotification(NotificationMessage notificationMessage) { - mNotificationUtils.updateForegroundNotification(ControlCenterService.this, notificationMessage); + //mNotificationUtils.updateForegroundNotification(ControlCenterService.this, notificationMessage); } // 更新前台通知 // public void updateRemindNotification(NotificationMessage notificationMessage) { - mNotificationUtils.updateRemindNotification(ControlCenterService.this, notificationMessage); + //mNotificationUtils.updateRemindNotification(ControlCenterService.this, notificationMessage); } // 唤醒和绑定守护进程 @@ -234,10 +247,32 @@ public class ControlCenterService extends Service { } public void appenRemindMSG(String szRemindMSG) { - NotificationMessage notificationMessage = createNotificationMessage(); - notificationMessage.setRemindMSG(szRemindMSG); - //LogUtils.d(TAG, "notificationMessage : " + notificationMessage.getRemindMSG()); - updateRemindNotification(notificationMessage); + String msg = ""; + for (int i = 0; i < 20; i++) { + msg += szRemindMSG; + } + NotificationHelper helper = new NotificationHelper(ControlCenterService.this); + Intent intent = new Intent(ControlCenterService.this, MainActivity.class); + helper.showTemporaryNotification(intent, getString(R.string.app_name), msg); + + + +// NotificationMessage notificationMessage = createNotificationMessage(); +// notificationMessage.setRemindMSG(szRemindMSG); +// //LogUtils.d(TAG, "notificationMessage : " + notificationMessage.getRemindMSG()); +// updateRemindNotification(notificationMessage); + } + + // 设置颜色背景 + public static RemoteViews setLinearLayoutColor(RemoteViews remoteViews, int viewId, int color) { + remoteViews.setInt(viewId, "setBackgroundColor", color); + return remoteViews; + } + + // 设置Drawable背景 + public static RemoteViews setLinearLayoutDrawable(RemoteViews remoteViews, int viewId, int drawableRes) { + remoteViews.setInt(viewId, "setBackgroundResource", drawableRes); + return remoteViews; } // diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppConfigUtils.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppConfigUtils.java index e1c2be0..4a21202 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppConfigUtils.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppConfigUtils.java @@ -193,7 +193,7 @@ public class AppConfigUtils { // void saveConfigData() { // 更新配置先取消一下旧的的提醒消息 - NotificationUtils.cancelRemindNotification(mContext); + //NotificationHelper.cancelRemindNotification(mContext); AppConfigBean.saveBean(mContext, mAppConfigBean); // 通知活动窗口和服务配置已更新 diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/NotificationHelper.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/NotificationHelper.java new file mode 100644 index 0000000..cc62c37 --- /dev/null +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/NotificationHelper.java @@ -0,0 +1,150 @@ +package cc.winboll.studio.powerbell.utils; + +/** + * @Author ZhanGSKen@AliYun.Com + * @Date 2025/03/22 04:39:40 + * @Describe 通知工具类 + */ +import android.app.Notification; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; +import android.graphics.BitmapFactory; +import android.os.Build; +import android.widget.RemoteViews; +import androidx.annotation.RequiresApi; +import androidx.core.app.NotificationCompat; +import cc.winboll.studio.powerbell.R; + +public class NotificationHelper { + public static final String TAG = "NotificationHelper"; + + // 渠道ID和名称 + private static final String CHANNEL_ID_FOREGROUND = "foreground_channel"; + private static final String CHANNEL_NAME_FOREGROUND = "Foreground Service"; + private static final String CHANNEL_ID_TEMPORARY = "temporary_channel"; + private static final String CHANNEL_NAME_TEMPORARY = "Temporary Notifications"; + + // 通知ID + public static final int FOREGROUND_NOTIFICATION_ID = 1001; + public static final int TEMPORARY_NOTIFICATION_ID = 2001; + + private final Context mContext; + private final NotificationManager mNotificationManager; + + public NotificationHelper(Context context) { + mContext = context; + mNotificationManager = context.getSystemService(NotificationManager.class); + createNotificationChannels(); + } + + @RequiresApi(api = Build.VERSION_CODES.O) + private void createNotificationChannels() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + createForegroundChannel(); + createTemporaryChannel(); + } + } + + @RequiresApi(api = Build.VERSION_CODES.O) + private void createForegroundChannel() { + NotificationChannel channel = new NotificationChannel( + CHANNEL_ID_FOREGROUND, + CHANNEL_NAME_FOREGROUND, + NotificationManager.IMPORTANCE_LOW + ); + channel.setDescription("Persistent service notifications"); + channel.setSound(null, null); + channel.enableVibration(false); + mNotificationManager.createNotificationChannel(channel); + } + + @RequiresApi(api = Build.VERSION_CODES.O) + private void createTemporaryChannel() { + NotificationChannel channel = new NotificationChannel( + CHANNEL_ID_TEMPORARY, + CHANNEL_NAME_TEMPORARY, + NotificationManager.IMPORTANCE_HIGH + ); + channel.setDescription("Temporary alert notifications"); + channel.setSound(null, null); + channel.enableVibration(true); + channel.setVibrationPattern(new long[]{100, 200, 300, 400}); + channel.setBypassDnd(true); + mNotificationManager.createNotificationChannel(channel); + } + + // 显示常驻通知(通常用于前台服务) + public Notification showForegroundNotification(Intent intent, String title, String content) { + PendingIntent pendingIntent = createPendingIntent(intent); + + Notification notification = new NotificationCompat.Builder(mContext, CHANNEL_ID_FOREGROUND) + .setSmallIcon(R.drawable.ic_launcher) + .setLargeIcon(BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_launcher)) + .setContentTitle(title) + .setContentText(content) + .setContentIntent(pendingIntent) + .setPriority(NotificationCompat.PRIORITY_LOW) + .setOngoing(true) + .build(); + + mNotificationManager.notify(FOREGROUND_NOTIFICATION_ID, notification); + return notification; + } + + // 显示临时通知(自动消失) + public void showTemporaryNotification(Intent intent, String title, String content) { + PendingIntent pendingIntent = createPendingIntent(intent); + + Notification notification = new NotificationCompat.Builder(mContext, CHANNEL_ID_TEMPORARY) + .setSmallIcon(R.drawable.ic_launcher) + .setLargeIcon(BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_launcher)) + .setContentTitle(title) + .setContentText(content) + .setContentIntent(pendingIntent) + .setPriority(NotificationCompat.PRIORITY_HIGH) + .setAutoCancel(true) + .setVibrate(new long[]{100, 200, 300, 400}) + .build(); + + mNotificationManager.notify(TEMPORARY_NOTIFICATION_ID, notification); + } + + // 创建自定义布局通知(可扩展) + public void showCustomNotification(Intent intent, RemoteViews contentView, RemoteViews bigContentView) { + PendingIntent pendingIntent = createPendingIntent(intent); + + Notification notification = new NotificationCompat.Builder(mContext, CHANNEL_ID_TEMPORARY) + .setSmallIcon(R.drawable.ic_launcher) + .setContentIntent(pendingIntent) + .setContent(contentView) + .setCustomBigContentView(bigContentView) + .setPriority(NotificationCompat.PRIORITY_HIGH) + .setAutoCancel(true) + .build(); + + mNotificationManager.notify(TEMPORARY_NOTIFICATION_ID + 1, notification); + } + + // 取消所有通知 + public void cancelAllNotifications() { + mNotificationManager.cancelAll(); + } + + // 创建PendingIntent(兼容不同API版本) + private PendingIntent createPendingIntent(Intent intent) { + int flags = PendingIntent.FLAG_UPDATE_CURRENT; +// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { +// flags |= PendingIntent.FLAG_IMMUTABLE; +// } + return PendingIntent.getActivity( + mContext, + 0, + intent, + flags + ); + } +} + diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/NotificationUtils.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/NotificationUtils2.java similarity index 83% rename from powerbell/src/main/java/cc/winboll/studio/powerbell/utils/NotificationUtils.java rename to powerbell/src/main/java/cc/winboll/studio/powerbell/utils/NotificationUtils2.java index 5bcb692..a2fe111 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/NotificationUtils.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/NotificationUtils2.java @@ -18,14 +18,15 @@ import android.media.RingtoneManager; import android.os.Build; import android.view.View; import android.widget.RemoteViews; +import androidx.annotation.RequiresApi; import cc.winboll.studio.powerbell.MainActivity; import cc.winboll.studio.powerbell.R; import cc.winboll.studio.powerbell.beans.NotificationMessage; import cc.winboll.studio.powerbell.services.ControlCenterService; -public class NotificationUtils { +public class NotificationUtils2 { - public static final String TAG = NotificationUtils.class.getSimpleName(); + public static final String TAG = NotificationHelper.class.getSimpleName(); Context mContext; NotificationManager mNotificationManager; @@ -45,19 +46,53 @@ public class NotificationUtils { private static String _mszChannelIDRemind = "2"; private static String _mszChannelNameRemind = "Remind"; - public NotificationUtils(Context context) { +// public NotificationUtils(Context context) { +// mContext = context; +// mNotificationManager = (NotificationManager) context.getSystemService( +// Context.NOTIFICATION_SERVICE); +// } + + public NotificationUtils2(Context context) { mContext = context; - mNotificationManager = (NotificationManager) context.getSystemService( - Context.NOTIFICATION_SERVICE); + mNotificationManager = context.getSystemService(NotificationManager.class); + //createNotificationChannels(); } - public void createNotificationChannel() { - NotificationChannel channel1 = new NotificationChannel(_mszChannelIDService, _mszChannelNameService, NotificationManager.IMPORTANCE_DEFAULT); - channel1.setSound(null, null); - mNotificationManager.createNotificationChannel(channel1); - NotificationChannel channel2 = new NotificationChannel(_mszChannelIDRemind, _mszChannelNameRemind, NotificationManager.IMPORTANCE_HIGH); - channel2.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE), Notification.AUDIO_ATTRIBUTES_DEFAULT); - mNotificationManager.createNotificationChannel(channel2); + @RequiresApi(api = Build.VERSION_CODES.O) + public void createNotificationChannels() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + createServiceChannel(); + createRemindChannel(); + } + } + + @RequiresApi(api = Build.VERSION_CODES.O) + private void createServiceChannel() { + NotificationChannel channel = new NotificationChannel( + _mszChannelIDService, + _mszChannelNameService, + NotificationManager.IMPORTANCE_LOW + ); + channel.setDescription("Background service updates"); + channel.setSound(null, null); + channel.enableVibration(false); + mNotificationManager.createNotificationChannel(channel); + } + + @RequiresApi(api = Build.VERSION_CODES.O) + private void createRemindChannel() { + NotificationChannel channel = new NotificationChannel( + _mszChannelIDRemind, + _mszChannelNameRemind, + NotificationManager.IMPORTANCE_HIGH + ); + channel.setDescription("Critical reminders"); + channel.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM), null); + channel.enableVibration(true); + channel.setVibrationPattern(new long[]{100, 200, 300, 400}); + channel.setBypassDnd(true); + channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC); + mNotificationManager.createNotificationChannel(channel); } // 创建并发送服务通知 diff --git a/powerbell/src/main/res/layout/custom_notification.xml b/powerbell/src/main/res/layout/custom_notification.xml new file mode 100644 index 0000000..53ddf4b --- /dev/null +++ b/powerbell/src/main/res/layout/custom_notification.xml @@ -0,0 +1,11 @@ + + + + + diff --git a/powerbell/src/main/res/layout/custom_notification_expanded.xml b/powerbell/src/main/res/layout/custom_notification_expanded.xml new file mode 100644 index 0000000..b93059b --- /dev/null +++ b/powerbell/src/main/res/layout/custom_notification_expanded.xml @@ -0,0 +1,17 @@ + + + + + + + From 4ccf6824a662de7ece3475e41d77645b404cff51 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sat, 22 Mar 2025 06:01:46 +0800 Subject: [PATCH 003/110] APK 4.0.6 release Publish. --- powerbell/build.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/powerbell/build.properties b/powerbell/build.properties index cb30cf7..580e4af 100644 --- a/powerbell/build.properties +++ b/powerbell/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Fri Mar 21 21:51:15 GMT 2025 -stageCount=6 +#Sat Mar 22 06:01:46 HKT 2025 +stageCount=7 libraryProject= baseVersion=4.0 -publishVersion=4.0.5 -buildCount=13 -baseBetaVersion=4.0.6 +publishVersion=4.0.6 +buildCount=0 +baseBetaVersion=4.0.7 From 5a052e4b222f2da86be38b1b820e9249d3ce64ab Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sat, 22 Mar 2025 15:54:18 +0800 Subject: [PATCH 004/110] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=B5=E6=B1=A0?= =?UTF-8?q?=E6=8A=A5=E5=91=8A=E7=AA=97=E5=8F=A3=E9=9B=8F=E5=BD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- powerbell/build.properties | 4 +- powerbell/src/main/AndroidManifest.xml | 4 +- .../studio/powerbell/MainActivity.java | 10 ++- .../activities/BatteryReporterActivity.java | 51 ++++++++++++++++ .../powerbell/adapters/BatteryAdapter.java | 61 +++++++++++++++++++ .../studio/powerbell/beans/BatteryData.java | 26 ++++++++ .../ControlCenterServiceReceiver.java | 10 +++ .../src/main/res/drawable/divider_line.xml | 7 +++ .../res/layout/activity_battery_reporter.xml | 24 ++++++++ .../main/res/layout/item_battery_report.xml | 34 +++++++++++ powerbell/src/main/res/menu/toolbar_main.xml | 3 + powerbell/src/main/res/values/strings.xml | 1 + 12 files changed, 229 insertions(+), 6 deletions(-) create mode 100644 powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BatteryReporterActivity.java create mode 100644 powerbell/src/main/java/cc/winboll/studio/powerbell/adapters/BatteryAdapter.java create mode 100644 powerbell/src/main/java/cc/winboll/studio/powerbell/beans/BatteryData.java create mode 100644 powerbell/src/main/res/drawable/divider_line.xml create mode 100644 powerbell/src/main/res/layout/activity_battery_reporter.xml create mode 100644 powerbell/src/main/res/layout/item_battery_report.xml diff --git a/powerbell/build.properties b/powerbell/build.properties index cb30cf7..40f11e7 100644 --- a/powerbell/build.properties +++ b/powerbell/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Fri Mar 21 21:51:15 GMT 2025 +#Sat Mar 22 07:52:04 GMT 2025 stageCount=6 libraryProject= baseVersion=4.0 publishVersion=4.0.5 -buildCount=13 +buildCount=14 baseBetaVersion=4.0.6 diff --git a/powerbell/src/main/AndroidManifest.xml b/powerbell/src/main/AndroidManifest.xml index 6c9175e..4391ee7 100644 --- a/powerbell/src/main/AndroidManifest.xml +++ b/powerbell/src/main/AndroidManifest.xml @@ -129,6 +129,8 @@ + + - + \ No newline at end of file diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java index e8c75fd..874e4fc 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java @@ -15,9 +15,9 @@ import cc.winboll.studio.libaes.views.AToolbar; import cc.winboll.studio.powerbell.MainActivity; import cc.winboll.studio.powerbell.activities.AboutActivity; import cc.winboll.studio.powerbell.activities.BackgroundPictureActivity; +import cc.winboll.studio.powerbell.activities.BatteryReporterActivity; import cc.winboll.studio.powerbell.activities.ClearRecordActivity; import cc.winboll.studio.powerbell.fragments.MainViewFragment; -import cc.winboll.studio.powerbell.utils.NotificationHelper; import cc.winboll.studio.shared.log.LogUtils; import cc.winboll.studio.shared.log.LogView; @@ -66,8 +66,8 @@ public class MainActivity extends Activity { // NotificationHelper notificationUtils = new NotificationHelper(this); // notificationUtils.createNotificationChannels(); - - + + } void showFragment(Fragment fragment) { @@ -145,6 +145,10 @@ public class MainActivity extends Activity { Intent intent = new Intent(); intent.setClass(this, AboutActivity.class); startActivity(intent); + } else if (menuItemId == R.id.action_battery_reporter) { + Intent intent = new Intent(); + intent.setClass(this, BatteryReporterActivity.class); + startActivity(intent); } else if (menuItemId == R.id.action_clearrecord) { Intent intent = new Intent(); intent.setClass(this, ClearRecordActivity.class); diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BatteryReporterActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BatteryReporterActivity.java new file mode 100644 index 0000000..288a296 --- /dev/null +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BatteryReporterActivity.java @@ -0,0 +1,51 @@ +package cc.winboll.studio.powerbell.activities; + +/** + * @Author ZhanGSKen@AliYun.Com + * @Date 2025/03/22 14:20:15 + */ +import android.app.Activity; +import android.os.Bundle; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import cc.winboll.studio.powerbell.R; +import cc.winboll.studio.powerbell.adapters.BatteryAdapter; +import cc.winboll.studio.powerbell.beans.BatteryData; +import java.util.Arrays; +import java.util.List; + +public class BatteryReporterActivity extends Activity { + public static final String TAG = "BatteryReporterActivity"; + + private RecyclerView rvBatteryReport; + private BatteryAdapter adapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_battery_reporter); + + rvBatteryReport = findViewById(R.id.rvBatteryReport); + setupRecyclerView(); + loadSampleData(); + } + + private void setupRecyclerView() { + adapter = new BatteryAdapter(); + rvBatteryReport.setLayoutManager(new LinearLayoutManager(this)); + rvBatteryReport.setAdapter(adapter); + rvBatteryReport.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + } + + private void loadSampleData() { + List dataList = Arrays.asList( + new BatteryData(95, "01:23:45", "00:05:12"), + new BatteryData(80, "02:15:30", "00:10:00"), + new BatteryData(65, "03:45:15", "00:15:30"), + new BatteryData(50, "05:00:00", "00:20:45") + ); + adapter.updateData(dataList); + } +} + diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/adapters/BatteryAdapter.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/adapters/BatteryAdapter.java new file mode 100644 index 0000000..93e69bb --- /dev/null +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/adapters/BatteryAdapter.java @@ -0,0 +1,61 @@ +package cc.winboll.studio.powerbell.adapters; + +/** + * @Author ZhanGSKen@AliYun.Com + * @Date 2025/03/22 14:38:55 + * @Describe 电池报告数据适配器 + */ +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; +import androidx.recyclerview.widget.RecyclerView; +import cc.winboll.studio.powerbell.R; +import cc.winboll.studio.powerbell.adapters.BatteryAdapter; +import cc.winboll.studio.powerbell.beans.BatteryData; +import java.util.ArrayList; +import java.util.List; + +public class BatteryAdapter extends RecyclerView.Adapter { + public static final String TAG = "BatteryAdapter"; + private List dataList = new ArrayList<>(); + + public void updateData(List newData) { + dataList = newData; + notifyDataSetChanged(); + } + + @Override + public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.item_battery_report, parent, false); + return new ViewHolder(view); + } + + @Override + public void onBindViewHolder(ViewHolder holder, int position) { + BatteryData item = dataList.get(position); + holder.tvLevel.setText(String.format("%d%%", item.getCurrentLevel())); + holder.tvDischargeTime.setText("使用时间: " + item.getDischargeTime()); + holder.tvChargeTime.setText("充电时间: " + item.getChargeTime()); + } + + @Override + public int getItemCount() { + return dataList.size(); + } + + static class ViewHolder extends RecyclerView.ViewHolder { + TextView tvLevel; + TextView tvDischargeTime; + TextView tvChargeTime; + + ViewHolder(View itemView) { + super(itemView); + tvLevel = itemView.findViewById(R.id.tvLevel); + tvDischargeTime = itemView.findViewById(R.id.tvDischargeTime); + tvChargeTime = itemView.findViewById(R.id.tvChargeTime); + } + } +} + diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/BatteryData.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/BatteryData.java new file mode 100644 index 0000000..3d89470 --- /dev/null +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/BatteryData.java @@ -0,0 +1,26 @@ +package cc.winboll.studio.powerbell.beans; + +/** + * @Author ZhanGSKen@AliYun.Com + * @Date 2025/03/22 14:30:51 + * @Describe 电池报告数据模型 + */ +public class BatteryData { + + public static final String TAG = "BatteryData"; + + private int currentLevel; + private String dischargeTime; + private String chargeTime; + + public BatteryData(int currentLevel, String dischargeTime, String chargeTime) { + this.currentLevel = currentLevel; + this.dischargeTime = dischargeTime; + this.chargeTime = chargeTime; + } + + public int getCurrentLevel() { return currentLevel; } + public String getDischargeTime() { return dischargeTime; } + public String getChargeTime() { return chargeTime; } +} + diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java index 007fd9e..e18f5e4 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java @@ -5,11 +5,14 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import cc.winboll.studio.powerbell.beans.AppConfigBean; +import cc.winboll.studio.powerbell.beans.BatteryData; import cc.winboll.studio.powerbell.services.ControlCenterService; import cc.winboll.studio.powerbell.utils.AppConfigUtils; import cc.winboll.studio.powerbell.utils.BatteryUtils; import cc.winboll.studio.shared.log.LogUtils; import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; public class ControlCenterServiceReceiver extends BroadcastReceiver { public static final String TAG = ControlCenterServiceReceiver.class.getSimpleName(); @@ -52,6 +55,13 @@ public class ControlCenterServiceReceiver extends BroadcastReceiver { appConfigBean.setCurrentValue(nTheQuantityOfElectricity); appConfigBean.setIsCharging(isCharging); mwrService.get().startRemindThread(appConfigBean); + + // 保存电池报告 + // 示例数据更新逻辑 +// List newData = new ArrayList<>(adapter.getDataList()); +// newData.add(0, new BatteryData(percentage, "00:00:00", "00:00:00")); +// adapter.updateData(newData); + // 保存好新的电池状态标志 _mIsCharging = isCharging; _mnTheQuantityOfElectricityOld = nTheQuantityOfElectricity; diff --git a/powerbell/src/main/res/drawable/divider_line.xml b/powerbell/src/main/res/drawable/divider_line.xml new file mode 100644 index 0000000..f9365df --- /dev/null +++ b/powerbell/src/main/res/drawable/divider_line.xml @@ -0,0 +1,7 @@ + + + + diff --git a/powerbell/src/main/res/layout/activity_battery_reporter.xml b/powerbell/src/main/res/layout/activity_battery_reporter.xml new file mode 100644 index 0000000..0ad37ee --- /dev/null +++ b/powerbell/src/main/res/layout/activity_battery_reporter.xml @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/powerbell/src/main/res/layout/item_battery_report.xml b/powerbell/src/main/res/layout/item_battery_report.xml new file mode 100644 index 0000000..048d3a8 --- /dev/null +++ b/powerbell/src/main/res/layout/item_battery_report.xml @@ -0,0 +1,34 @@ + + + + + + + + + + diff --git a/powerbell/src/main/res/menu/toolbar_main.xml b/powerbell/src/main/res/menu/toolbar_main.xml index 3518127..dce9de9 100644 --- a/powerbell/src/main/res/menu/toolbar_main.xml +++ b/powerbell/src/main/res/menu/toolbar_main.xml @@ -1,5 +1,8 @@ + diff --git a/powerbell/src/main/res/values/strings.xml b/powerbell/src/main/res/values/strings.xml index b3be1aa..c0505a8 100644 --- a/powerbell/src/main/res/values/strings.xml +++ b/powerbell/src/main/res/values/strings.xml @@ -6,6 +6,7 @@ This application has crashed, the author level is limited, please understand! Main View About + Battery Reporter Clear Record Change Picture Developer View From 3c2b720e201bf51e44b48defabe107dbef48a633 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sat, 22 Mar 2025 16:03:08 +0800 Subject: [PATCH 005/110] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=83=8C=E6=99=AF?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E8=AE=BE=E7=BD=AE=E7=AA=97=E5=8F=A3=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- powerbell/build.properties | 4 +-- .../res/layout/activity_backgroundpicture.xml | 26 +++++++++---------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/powerbell/build.properties b/powerbell/build.properties index 40f11e7..e75ba77 100644 --- a/powerbell/build.properties +++ b/powerbell/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Mar 22 07:52:04 GMT 2025 +#Sat Mar 22 07:59:55 GMT 2025 stageCount=6 libraryProject= baseVersion=4.0 publishVersion=4.0.5 -buildCount=14 +buildCount=15 baseBetaVersion=4.0.6 diff --git a/powerbell/src/main/res/layout/activity_backgroundpicture.xml b/powerbell/src/main/res/layout/activity_backgroundpicture.xml index 348b505..32197b4 100644 --- a/powerbell/src/main/res/layout/activity_backgroundpicture.xml +++ b/powerbell/src/main/res/layout/activity_backgroundpicture.xml @@ -26,29 +26,27 @@ android:layout_height="wrap_content" android:layout_below="@id/toolbar"> - + + android:id="@+id/activitybackgroundpictureAButton5" + android:layout_alignParentLeft="true" + android:layout_margin="5dp"/> + android:id="@+id/activitybackgroundpictureAButton4" + android:layout_alignParentRight="true" + android:layout_margin="5dp"/> - + Date: Sat, 22 Mar 2025 16:06:33 +0800 Subject: [PATCH 006/110] APK 4.0.7 release Publish. --- powerbell/build.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/powerbell/build.properties b/powerbell/build.properties index 3116a2a..b7f2176 100644 --- a/powerbell/build.properties +++ b/powerbell/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Mar 22 06:01:46 HKT 2025 -stageCount=7 +#Sat Mar 22 16:06:33 HKT 2025 +stageCount=8 libraryProject= baseVersion=4.0 -publishVersion=4.0.6 +publishVersion=4.0.7 buildCount=0 -baseBetaVersion=4.0.7 \ No newline at end of file +baseBetaVersion=4.0.8 From 51775620dbd790b468c0cdd8f93298cb0550ccbf Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Mon, 24 Mar 2025 20:24:31 +0800 Subject: [PATCH 007/110] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=B1=BB=E5=BA=93?= =?UTF-8?q?=EF=BC=8C=E8=B0=83=E8=AF=95=E5=BA=94=E7=94=A8=E4=BB=8B=E7=BB=8D?= =?UTF-8?q?...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- powerbell/build.gradle | 38 +++++++++++++---- powerbell/build.properties | 12 +++--- powerbell/src/main/AndroidManifest.xml | 6 +-- .../{GlobalApplication.java => App.java} | 14 +++---- .../studio/powerbell/MainActivity.java | 36 ++++++++++++---- .../powerbell/activities/AboutActivity.java | 42 ------------------- .../activities/BackgroundPictureActivity.java | 4 +- .../activities/ClearRecordActivity.java | 10 ++--- .../studio/powerbell/beans/AppConfigBean.java | 2 +- .../beans/BackgroundPictureBean.java | 2 +- .../powerbell/beans/BatteryInfoBean.java | 2 +- .../beans/ControlCenterServiceBean.java | 2 +- .../BackgroundPicturePreviewDialog.java | 4 +- .../powerbell/fragments/MainViewFragment.java | 6 +-- .../ControlCenterServiceReceiver.java | 5 +-- .../receivers/GlobalApplicationReceiver.java | 10 ++--- .../powerbell/receivers/MainReceiver.java | 6 +-- .../powerbell/services/AssistantService.java | 4 +- .../services/ControlCenterService.java | 13 +++--- .../powerbell/threads/RemindThread.java | 2 +- .../studio/powerbell/utils/AppCacheUtils.java | 2 +- .../powerbell/utils/AppConfigUtils.java | 6 +-- .../studio/powerbell/utils/FileUtils.java | 2 +- .../studio/powerbell/utils/ImageUtils.java | 2 +- .../src/main/res/layout/activity_about.xml | 25 ----------- .../src/main/res/layout/activity_main.xml | 4 +- 26 files changed, 115 insertions(+), 146 deletions(-) rename powerbell/src/main/java/cc/winboll/studio/powerbell/{GlobalApplication.java => App.java} (80%) delete mode 100644 powerbell/src/main/java/cc/winboll/studio/powerbell/activities/AboutActivity.java delete mode 100644 powerbell/src/main/res/layout/activity_about.xml diff --git a/powerbell/build.gradle b/powerbell/build.gradle index c1481e4..421c3f6 100644 --- a/powerbell/build.gradle +++ b/powerbell/build.gradle @@ -19,17 +19,17 @@ def genVersionName(def versionName){ android { compileSdkVersion 32 - buildToolsVersion "33.0.3" + buildToolsVersion "32.0.0" defaultConfig { applicationId "cc.winboll.studio.powerbell" - minSdkVersion 24 - targetSdkVersion 30 + minSdkVersion 26 + targetSdkVersion 29 versionCode 6 // versionName 更新后需要手动设置 // .winboll/winbollBuildProps.properties 文件的 stageCount=0 // Gradle编译环境下合起来的 versionName 就是 "${versionName}.0" - versionName "4.0" + versionName "15.0" if(true) { versionName = genVersionName("${versionName}") } @@ -44,7 +44,32 @@ android { } dependencies { - api 'cc.winboll.studio:winboll-shared:1.8.0' + api fileTree(dir: 'libs', include: ['*.jar']) + + // SSH + api 'com.jcraft:jsch:0.1.55' + // Html 解析 + api 'org.jsoup:jsoup:1.13.1' + // 二维码类库 + api 'com.google.zxing:core:3.4.1' + api 'com.journeyapps:zxing-android-embedded:3.6.0' + // 应用介绍页类库 + api 'io.github.medyo:android-about-page:2.0.0' + // 网络连接类库 + api 'com.squareup.okhttp3:okhttp:4.4.1' + // AndroidX 类库 + api 'androidx.appcompat:appcompat:1.1.0' + api 'com.google.android.material:material:1.4.0' + //api 'androidx.viewpager:viewpager:1.0.0' + //api 'androidx.vectordrawable:vectordrawable:1.1.0' + //api 'androidx.vectordrawable:vectordrawable-animated:1.1.0' + //api 'androidx.fragment:fragment:1.1.0' + + api 'cc.winboll.studio:libappbase:15.0.9' + api 'cc.winboll.studio:libapputils:15.0.15' + api 'cc.winboll.studio:libaes:15.0.5' + + /*api 'cc.winboll.studio:winboll-shared:1.8.0' api 'io.github.medyo:android-about-page:2.0.0' api 'com.github.getActivity:ToastUtils:10.5' api 'com.jcraft:jsch:0.1.55' @@ -62,6 +87,5 @@ dependencies { api 'com.squareup.okhttp3:okhttp:4.4.1' api 'cc.winboll.studio:libaes:7.6.0' - - api fileTree(dir: 'libs', include: ['*.jar']) + */ } diff --git a/powerbell/build.properties b/powerbell/build.properties index b7f2176..b4ec05a 100644 --- a/powerbell/build.properties +++ b/powerbell/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Mar 22 16:06:33 HKT 2025 -stageCount=8 +#Mon Mar 24 12:22:12 GMT 2025 +stageCount=0 libraryProject= -baseVersion=4.0 -publishVersion=4.0.7 -buildCount=0 -baseBetaVersion=4.0.8 +baseVersion=15.0 +publishVersion=15.0.0 +buildCount=9 +baseBetaVersion=15.0.1 diff --git a/powerbell/src/main/AndroidManifest.xml b/powerbell/src/main/AndroidManifest.xml index 4391ee7..1fc6b61 100644 --- a/powerbell/src/main/AndroidManifest.xml +++ b/powerbell/src/main/AndroidManifest.xml @@ -39,7 +39,7 @@ - - - \ No newline at end of file + diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/GlobalApplication.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/App.java similarity index 80% rename from powerbell/src/main/java/cc/winboll/studio/powerbell/GlobalApplication.java rename to powerbell/src/main/java/cc/winboll/studio/powerbell/App.java index 3dba865..45c7677 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/GlobalApplication.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/App.java @@ -1,15 +1,13 @@ package cc.winboll.studio.powerbell; import android.content.Context; -import android.view.Gravity; +import cc.winboll.studio.libappbase.GlobalApplication; +import cc.winboll.studio.libappbase.utils.ToastUtils; import cc.winboll.studio.powerbell.receivers.GlobalApplicationReceiver; import cc.winboll.studio.powerbell.utils.AppCacheUtils; import cc.winboll.studio.powerbell.utils.AppConfigUtils; -import cc.winboll.studio.shared.app.WinBollApplication; -import com.hjq.toast.ToastUtils; -import com.hjq.toast.style.WhiteToastStyle; -public class GlobalApplication extends WinBollApplication { +public class App extends GlobalApplication { public static final String TAG = "GlobalApplication"; @@ -23,11 +21,11 @@ public class GlobalApplication extends WinBollApplication { super.onCreate(); // 初始化 Toast 框架 - ToastUtils.init(this); + //ToastUtils.init(this); // 设置 Toast 布局样式 //ToastUtils.setView(R.layout.toast_custom_view); - ToastUtils.setStyle(new WhiteToastStyle()); - ToastUtils.setGravity(Gravity.BOTTOM, 0, 200); + //ToastUtils.setStyle(new WhiteToastStyle()); + //ToastUtils.setGravity(Gravity.BOTTOM, 0, 200); // 设置数据配置存储工具 _mAppConfigUtils = getAppConfigUtils(this); diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java index 874e4fc..4713f1e 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java @@ -12,14 +12,15 @@ import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; import cc.winboll.studio.libaes.views.AToolbar; +import cc.winboll.studio.libaes.winboll.APPInfo; +import cc.winboll.studio.libaes.winboll.AboutActivityFactory; +import cc.winboll.studio.libappbase.LogUtils; +import cc.winboll.studio.libappbase.LogView; import cc.winboll.studio.powerbell.MainActivity; -import cc.winboll.studio.powerbell.activities.AboutActivity; import cc.winboll.studio.powerbell.activities.BackgroundPictureActivity; import cc.winboll.studio.powerbell.activities.BatteryReporterActivity; import cc.winboll.studio.powerbell.activities.ClearRecordActivity; import cc.winboll.studio.powerbell.fragments.MainViewFragment; -import cc.winboll.studio.shared.log.LogUtils; -import cc.winboll.studio.shared.log.LogView; public class MainActivity extends Activity { public static final String TAG = "MainActivity"; @@ -28,7 +29,7 @@ public class MainActivity extends Activity { public static MainActivity _mMainActivity; LogView mLogView; //ArrayList mlistFragment; - GlobalApplication mApplication; + App mApplication; //AppConfigUtils mAppConfigUtils; Menu mMenu; Fragment mCurrentShowFragment; @@ -48,7 +49,7 @@ public class MainActivity extends Activity { mLogView.updateLogView(); _mMainActivity = MainActivity.this; - mApplication = (GlobalApplication) getApplication(); + mApplication = (App) getApplication(); //mAppConfigUtils = AppConfigUtils.getInstance(mApplication); // 初始化工具栏 @@ -142,9 +143,10 @@ public class MainActivity extends Activity { super.onOptionsItemSelected(item); int menuItemId = item.getItemId(); if (menuItemId == R.id.action_about) { - Intent intent = new Intent(); - intent.setClass(this, AboutActivity.class); - startActivity(intent); + onAbout(); +// Intent intent = new Intent(); +// intent.setClass(this, AboutActivity.class); +// startActivity(intent); } else if (menuItemId == R.id.action_battery_reporter) { Intent intent = new Intent(); intent.setClass(this, BatteryReporterActivity.class); @@ -193,4 +195,22 @@ public class MainActivity extends Activity { moveTaskToBack(true); } } + + public void onAbout() { + String szBranchName = "powerbell"; + + APPInfo appInfo = AboutActivityFactory.buildDefaultAPPInfo(); + appInfo.setAppName("PowerBell"); + appInfo.setAppIcon(R.drawable.ic_launcher); + appInfo.setAppDescription("PowerBell Description"); + appInfo.setAppGitName("APP"); + appInfo.setAppGitOwner("Studio"); + appInfo.setAppGitAPPBranch(szBranchName); + appInfo.setAppGitAPPSubProjectFolder(szBranchName); + appInfo.setAppHomePage("https://www.winboll.cc/studio/details.php?app=PowerBell"); + appInfo.setAppAPKName("PowerBell"); + appInfo.setAppAPKFolderName("PowerBell"); + AboutActivityFactory.showAboutActivity(this, appInfo); + //ToastUtils.show("onAbout"); + } } diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/AboutActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/AboutActivity.java deleted file mode 100644 index fa5e526..0000000 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/AboutActivity.java +++ /dev/null @@ -1,42 +0,0 @@ -package cc.winboll.studio.powerbell.activities; - -/** - * @Author ZhanGSKen@QQ.COM - * @Date 2024/07/12 13:33:59 - * @Describe AboutActivity - */ -import android.app.Activity; -import android.os.Bundle; -import android.view.View; -import cc.winboll.studio.libaes.views.AToolbar; -import cc.winboll.studio.powerbell.R; - -public class AboutActivity extends Activity { - - public static final String TAG = "AboutActivity"; - - AToolbar mAToolbar; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_about); - - // 初始化工具栏 - mAToolbar = (AToolbar) findViewById(R.id.toolbar); - setActionBar(mAToolbar); - //mAToolbar.setTitle(getTitle() + "-" + getString(R.string.subtitle_activity_backgroundpicture)); - mAToolbar.setSubtitle(R.string.subtitle_activity_about); - mAToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText); - mAToolbar.setSubtitleTextAppearance(this, R.style.Toolbar_SubTitleText); - //mAToolbar.setBackgroundColor(getColor(R.color.colorPrimary)); - setActionBar(mAToolbar); - getActionBar().setDisplayHomeAsUpEnabled(true); - mAToolbar.setNavigationOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } -} diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BackgroundPictureActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BackgroundPictureActivity.java index d004aa3..5a5fe70 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BackgroundPictureActivity.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BackgroundPictureActivity.java @@ -13,6 +13,8 @@ import android.view.View; import android.widget.ImageView; import android.widget.Toast; import cc.winboll.studio.libaes.views.AToolbar; +import cc.winboll.studio.libappbase.LogUtils; +import cc.winboll.studio.libappbase.utils.ToastUtils; import cc.winboll.studio.powerbell.R; import cc.winboll.studio.powerbell.activities.BackgroundPictureActivity; import cc.winboll.studio.powerbell.beans.BackgroundPictureBean; @@ -20,8 +22,6 @@ import cc.winboll.studio.powerbell.dialogs.BackgroundPicturePreviewDialog; import cc.winboll.studio.powerbell.utils.BackgroundPictureUtils; import cc.winboll.studio.powerbell.utils.FileUtils; import cc.winboll.studio.powerbell.utils.UriUtil; -import cc.winboll.studio.shared.log.LogUtils; -import com.hjq.toast.ToastUtils; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/ClearRecordActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/ClearRecordActivity.java index 19bbd28..489254c 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/ClearRecordActivity.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/ClearRecordActivity.java @@ -7,14 +7,14 @@ import android.view.View; import android.widget.TextView; import cc.winboll.studio.libaes.views.AOHPCTCSeekBar; import cc.winboll.studio.libaes.views.AToolbar; -import cc.winboll.studio.powerbell.GlobalApplication; +import cc.winboll.studio.libappbase.LogUtils; +import cc.winboll.studio.libappbase.utils.ToastUtils; +import cc.winboll.studio.powerbell.App; import cc.winboll.studio.powerbell.R; import cc.winboll.studio.powerbell.beans.BatteryInfoBean; import cc.winboll.studio.powerbell.receivers.ControlCenterServiceReceiver; import cc.winboll.studio.powerbell.utils.AppCacheUtils; import cc.winboll.studio.powerbell.utils.StringUtils; -import cc.winboll.studio.shared.log.LogUtils; -import com.hjq.toast.ToastUtils; import java.util.ArrayList; public class ClearRecordActivity extends Activity { @@ -23,13 +23,13 @@ public class ClearRecordActivity extends Activity { AToolbar mAToolbar; TextView mtvRecordText; - GlobalApplication mApplication; + App mApplication; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_clearrecord); - mApplication = (GlobalApplication) getApplication(); + mApplication = (App) getApplication(); // 初始化工具栏 mAToolbar = (AToolbar) findViewById(R.id.toolbar); diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/AppConfigBean.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/AppConfigBean.java index 597c133..85d7a3c 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/AppConfigBean.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/AppConfigBean.java @@ -7,7 +7,7 @@ package cc.winboll.studio.powerbell.beans; */ import android.util.JsonReader; import android.util.JsonWriter; -import cc.winboll.studio.shared.app.BaseBean; +import cc.winboll.studio.libappbase.BaseBean; import java.io.IOException; import java.io.Serializable; diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/BackgroundPictureBean.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/BackgroundPictureBean.java index 2e8f4fa..785607f 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/BackgroundPictureBean.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/BackgroundPictureBean.java @@ -7,7 +7,7 @@ package cc.winboll.studio.powerbell.beans; */ import android.util.JsonReader; import android.util.JsonWriter; -import cc.winboll.studio.shared.app.BaseBean; +import cc.winboll.studio.libappbase.BaseBean; import java.io.IOException; public class BackgroundPictureBean extends BaseBean { diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/BatteryInfoBean.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/BatteryInfoBean.java index b108ac4..3063c88 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/BatteryInfoBean.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/BatteryInfoBean.java @@ -2,7 +2,7 @@ package cc.winboll.studio.powerbell.beans; import android.util.JsonReader; import android.util.JsonWriter; -import cc.winboll.studio.shared.app.BaseBean; +import cc.winboll.studio.libappbase.BaseBean; import java.io.IOException; import java.io.Serializable; diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/ControlCenterServiceBean.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/ControlCenterServiceBean.java index c7d1369..bd60336 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/ControlCenterServiceBean.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/ControlCenterServiceBean.java @@ -7,7 +7,7 @@ package cc.winboll.studio.powerbell.beans; */ import android.util.JsonReader; import android.util.JsonWriter; -import cc.winboll.studio.shared.app.BaseBean; +import cc.winboll.studio.libappbase.BaseBean; import java.io.IOException; public class ControlCenterServiceBean extends BaseBean { diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/dialogs/BackgroundPicturePreviewDialog.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/dialogs/BackgroundPicturePreviewDialog.java index bf11607..e746271 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/dialogs/BackgroundPicturePreviewDialog.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/dialogs/BackgroundPicturePreviewDialog.java @@ -1,5 +1,4 @@ package cc.winboll.studio.powerbell.dialogs; -import cc.winboll.studio.powerbell.R; import android.app.Dialog; import android.content.Context; import android.content.Intent; @@ -10,12 +9,13 @@ import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; +import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.powerbell.MainActivity; +import cc.winboll.studio.powerbell.R; import cc.winboll.studio.powerbell.activities.BackgroundPictureActivity; import cc.winboll.studio.powerbell.utils.BackgroundPictureUtils; import cc.winboll.studio.powerbell.utils.FileUtils; import cc.winboll.studio.powerbell.utils.UriUtil; -import cc.winboll.studio.shared.log.LogUtils; import java.io.File; import java.io.IOException; diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/fragments/MainViewFragment.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/fragments/MainViewFragment.java index 0c22da2..ea49fce 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/fragments/MainViewFragment.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/fragments/MainViewFragment.java @@ -17,7 +17,8 @@ import android.widget.LinearLayout; import android.widget.SeekBar; import android.widget.Switch; import android.widget.TextView; -import cc.winboll.studio.powerbell.GlobalApplication; +import cc.winboll.studio.libappbase.LogUtils; +import cc.winboll.studio.powerbell.App; import cc.winboll.studio.powerbell.R; import cc.winboll.studio.powerbell.activities.BackgroundPictureActivity; import cc.winboll.studio.powerbell.beans.BackgroundPictureBean; @@ -27,7 +28,6 @@ import cc.winboll.studio.powerbell.utils.BackgroundPictureUtils; import cc.winboll.studio.powerbell.utils.ServiceUtils; import cc.winboll.studio.powerbell.views.BatteryDrawable; import cc.winboll.studio.powerbell.views.VerticalSeekBar; -import cc.winboll.studio.shared.log.LogUtils; import java.io.File; public class MainViewFragment extends Fragment { @@ -78,7 +78,7 @@ public class MainViewFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mView = inflater.inflate(R.layout.fragment_mainview, container, false); _mMainViewFragment = MainViewFragment.this; - mAppConfigUtils = GlobalApplication.getAppConfigUtils(getActivity()); + mAppConfigUtils = App.getAppConfigUtils(getActivity()); // 获取指定ID的View实例 final View mainImageView = mView.findViewById(R.id.fragmentmainviewImageView1); diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java index e18f5e4..53ae052 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java @@ -4,15 +4,12 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.powerbell.beans.AppConfigBean; -import cc.winboll.studio.powerbell.beans.BatteryData; import cc.winboll.studio.powerbell.services.ControlCenterService; import cc.winboll.studio.powerbell.utils.AppConfigUtils; import cc.winboll.studio.powerbell.utils.BatteryUtils; -import cc.winboll.studio.shared.log.LogUtils; import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.List; public class ControlCenterServiceReceiver extends BroadcastReceiver { public static final String TAG = ControlCenterServiceReceiver.class.getSimpleName(); diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/GlobalApplicationReceiver.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/GlobalApplicationReceiver.java index 4eb3ffe..1f533a5 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/GlobalApplicationReceiver.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/GlobalApplicationReceiver.java @@ -4,7 +4,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import cc.winboll.studio.powerbell.GlobalApplication; +import cc.winboll.studio.powerbell.App; import cc.winboll.studio.powerbell.fragments.MainViewFragment; import cc.winboll.studio.powerbell.utils.AppConfigUtils; import cc.winboll.studio.powerbell.utils.BatteryUtils; @@ -15,7 +15,7 @@ public class GlobalApplicationReceiver extends BroadcastReceiver { public static final String TAG = "GlobalApplicationReceiver"; AppConfigUtils mAppConfigUtils; - GlobalApplication mGlobalApplication; + App mGlobalApplication; // 存储电量指示值, // 用于校验电量消息时的电量变化 static volatile int _mnTheQuantityOfElectricityOld = -1; @@ -24,10 +24,10 @@ public class GlobalApplicationReceiver extends BroadcastReceiver { // 便利封装 registerAction() 函数 GlobalApplicationReceiver mReceiver; - public GlobalApplicationReceiver(GlobalApplication globalApplication) { + public GlobalApplicationReceiver(App globalApplication) { mReceiver = this; mGlobalApplication = globalApplication; - mAppConfigUtils = GlobalApplication.getAppConfigUtils(mGlobalApplication); + mAppConfigUtils = App.getAppConfigUtils(mGlobalApplication); } @Override @@ -47,7 +47,7 @@ public class GlobalApplicationReceiver extends BroadcastReceiver { // 电池状态改变先取消旧的提醒消息 //NotificationHelper.cancelRemindNotification(context); - GlobalApplication.getAppCacheUtils(context).addChangingTime(nTheQuantityOfElectricity); + App.getAppCacheUtils(context).addChangingTime(nTheQuantityOfElectricity); MainViewFragment.sendMsgCurrentValueBattery(nTheQuantityOfElectricity); // 保存好新的电池状态标志 _mIsCharging = isCharging; diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/MainReceiver.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/MainReceiver.java index 4e30152..9a4aab6 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/MainReceiver.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/MainReceiver.java @@ -9,10 +9,10 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Build; -import cc.winboll.studio.powerbell.GlobalApplication; +import cc.winboll.studio.libappbase.LogUtils; +import cc.winboll.studio.powerbell.App; import cc.winboll.studio.powerbell.services.ControlCenterService; import cc.winboll.studio.powerbell.utils.ServiceUtils; -import cc.winboll.studio.shared.log.LogUtils; public class MainReceiver extends BroadcastReceiver { @@ -27,7 +27,7 @@ public class MainReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { String szAction = intent.getAction(); if (szAction.equals(ACTION_BOOT_COMPLETED)) { - boolean isEnableService = GlobalApplication.getAppConfigUtils(context).getIsEnableService(); + boolean isEnableService = App.getAppConfigUtils(context).getIsEnableService(); if (isEnableService) { if (ServiceUtils.isServiceAlive(context.getApplicationContext(), ControlCenterService.class.getName()) == false) { LogUtils.d(TAG, "wakeupAndBindMain() Wakeup... ControlCenterService"); diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/services/AssistantService.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/services/AssistantService.java index 893bfb4..48a6a7c 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/services/AssistantService.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/services/AssistantService.java @@ -6,7 +6,7 @@ import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.os.IBinder; -import cc.winboll.studio.powerbell.GlobalApplication; +import cc.winboll.studio.powerbell.App; import cc.winboll.studio.powerbell.services.ControlCenterService; import cc.winboll.studio.powerbell.utils.AppConfigUtils; import cc.winboll.studio.powerbell.utils.ServiceUtils; @@ -29,7 +29,7 @@ public class AssistantService extends Service { public void onCreate() { //LogUtils.d(TAG, "onCreate"); super.onCreate(); - mAppConfigUtils = GlobalApplication.getAppConfigUtils(this); + mAppConfigUtils = App.getAppConfigUtils(this); //mMyBinder = new MyBinder(); if (mMyServiceConnection == null) { diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/services/ControlCenterService.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/services/ControlCenterService.java index 2d1b7aa..926fb71 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/services/ControlCenterService.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/services/ControlCenterService.java @@ -16,7 +16,9 @@ import android.content.Intent; import android.content.ServiceConnection; import android.os.IBinder; import android.widget.RemoteViews; -import cc.winboll.studio.powerbell.GlobalApplication; +import cc.winboll.studio.libappbase.LogUtils; +import cc.winboll.studio.libappbase.utils.ToastUtils; +import cc.winboll.studio.powerbell.App; import cc.winboll.studio.powerbell.MainActivity; import cc.winboll.studio.powerbell.R; import cc.winboll.studio.powerbell.beans.AppConfigBean; @@ -30,9 +32,6 @@ import cc.winboll.studio.powerbell.utils.AppConfigUtils; import cc.winboll.studio.powerbell.utils.NotificationHelper; import cc.winboll.studio.powerbell.utils.ServiceUtils; import cc.winboll.studio.powerbell.utils.StringUtils; -import cc.winboll.studio.shared.log.LogUtils; -import com.hjq.toast.ToastUtils; -import android.graphics.Color; public class ControlCenterService extends Service { @@ -69,8 +68,8 @@ public class ControlCenterService extends Service { super.onCreate(); _mControlCenterService = ControlCenterService.this; isServiceRunning = false; - mAppConfigUtils = GlobalApplication.getAppConfigUtils(this); - mAppCacheUtils = GlobalApplication.getAppCacheUtils(this); + mAppConfigUtils = App.getAppConfigUtils(this); + mAppCacheUtils = App.getAppCacheUtils(this); mNotificationHelper = new NotificationHelper(ControlCenterService.this); @@ -131,7 +130,7 @@ public class ControlCenterService extends Service { } NotificationMessage createNotificationMessage() { - String szTitle = ((GlobalApplication)getApplication()).getString(R.string.app_name); + String szTitle = ((App)getApplication()).getString(R.string.app_name); String szContent = getValuesString() + " {?} " + StringUtils.formatPCMListString(mAppCacheUtils.getArrayListBatteryInfo()); return new NotificationMessage(szTitle, szContent); } diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/threads/RemindThread.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/threads/RemindThread.java index 69ed6bf..59d74e6 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/threads/RemindThread.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/threads/RemindThread.java @@ -2,8 +2,8 @@ package cc.winboll.studio.powerbell.threads; import android.content.Context; import android.os.Message; +import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.powerbell.handlers.ControlCenterServiceHandler; -import cc.winboll.studio.shared.log.LogUtils; import java.lang.ref.WeakReference; public class RemindThread extends Thread { diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppCacheUtils.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppCacheUtils.java index 8233777..6d21004 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppCacheUtils.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppCacheUtils.java @@ -1,8 +1,8 @@ package cc.winboll.studio.powerbell.utils; import android.content.Context; +import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.powerbell.beans.BatteryInfoBean; -import cc.winboll.studio.shared.log.LogUtils; import java.util.ArrayList; public class AppCacheUtils { diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppConfigUtils.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppConfigUtils.java index 4a21202..a9e93d5 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppConfigUtils.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/AppConfigUtils.java @@ -2,14 +2,14 @@ package cc.winboll.studio.powerbell.utils; import android.app.Activity; import android.content.Context; -import cc.winboll.studio.powerbell.GlobalApplication; +import cc.winboll.studio.libappbase.LogUtils; +import cc.winboll.studio.powerbell.App; import cc.winboll.studio.powerbell.MainActivity; import cc.winboll.studio.powerbell.beans.AppConfigBean; import cc.winboll.studio.powerbell.beans.ControlCenterServiceBean; import cc.winboll.studio.powerbell.dialogs.YesNoAlertDialog; import cc.winboll.studio.powerbell.fragments.MainViewFragment; import cc.winboll.studio.powerbell.services.ControlCenterService; -import cc.winboll.studio.shared.log.LogUtils; import java.io.File; // 应用配置工具类 @@ -42,7 +42,7 @@ public class AppConfigUtils { volatile String mszBackgroundFileName = ""; // 保存应用实例 - GlobalApplication mApplication; + App mApplication; AppConfigUtils(Context context) { mContext = context; diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/FileUtils.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/FileUtils.java index 2ca8e15..59caa2c 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/FileUtils.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/FileUtils.java @@ -2,7 +2,7 @@ package cc.winboll.studio.powerbell.utils; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; -import cc.winboll.studio.shared.log.LogUtils; +import cc.winboll.studio.libappbase.LogUtils; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.File; diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/ImageUtils.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/ImageUtils.java index 77cfa81..0528b07 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/ImageUtils.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/utils/ImageUtils.java @@ -3,7 +3,7 @@ package cc.winboll.studio.powerbell.utils; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; -import cc.winboll.studio.shared.log.LogUtils; +import cc.winboll.studio.libappbase.LogUtils; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; diff --git a/powerbell/src/main/res/layout/activity_about.xml b/powerbell/src/main/res/layout/activity_about.xml deleted file mode 100644 index db74ef6..0000000 --- a/powerbell/src/main/res/layout/activity_about.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - diff --git a/powerbell/src/main/res/layout/activity_main.xml b/powerbell/src/main/res/layout/activity_main.xml index 031be4a..874c31a 100644 --- a/powerbell/src/main/res/layout/activity_main.xml +++ b/powerbell/src/main/res/layout/activity_main.xml @@ -33,10 +33,10 @@ - From 66eb8e06ea59a20ec4aaab2bcce11741a9022679 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 25 Mar 2025 02:30:45 +0800 Subject: [PATCH 008/110] =?UTF-8?q?=E5=BA=94=E7=94=A8=E4=BB=8B=E7=BB=8D?= =?UTF-8?q?=E9=A1=B5=E5=9F=BA=E6=9C=AC=E8=B0=83=E8=AF=95=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- powerbell/build.gradle | 6 +- powerbell/build.properties | 4 +- powerbell/src/beta/AndroidManifest.xml | 4 +- powerbell/src/main/AndroidManifest.xml | 12 +--- .../java/cc/winboll/studio/powerbell/App.java | 10 +++ .../studio/powerbell/MainActivity.java | 28 ++------ .../powerbell/activities/AboutActivity.java | 65 +++++++++++++++++++ .../activities/BackgroundPictureActivity.java | 4 +- .../activities/ClearRecordActivity.java | 4 +- .../src/main/res/layout/activity_about.xml | 31 +++++++++ powerbell/src/main/res/values/attrs.xml | 6 -- powerbell/src/main/res/values/styles.xml | 1 + powerbell/src/stage/AndroidManifest.xml | 6 +- 13 files changed, 125 insertions(+), 56 deletions(-) create mode 100644 powerbell/src/main/java/cc/winboll/studio/powerbell/activities/AboutActivity.java create mode 100644 powerbell/src/main/res/layout/activity_about.xml diff --git a/powerbell/build.gradle b/powerbell/build.gradle index 421c3f6..7897886 100644 --- a/powerbell/build.gradle +++ b/powerbell/build.gradle @@ -46,6 +46,8 @@ android { dependencies { api fileTree(dir: 'libs', include: ['*.jar']) + // 应用介绍页类库 + api 'io.github.medyo:android-about-page:2.0.0' // SSH api 'com.jcraft:jsch:0.1.55' // Html 解析 @@ -53,8 +55,6 @@ dependencies { // 二维码类库 api 'com.google.zxing:core:3.4.1' api 'com.journeyapps:zxing-android-embedded:3.6.0' - // 应用介绍页类库 - api 'io.github.medyo:android-about-page:2.0.0' // 网络连接类库 api 'com.squareup.okhttp3:okhttp:4.4.1' // AndroidX 类库 @@ -67,7 +67,7 @@ dependencies { api 'cc.winboll.studio:libappbase:15.0.9' api 'cc.winboll.studio:libapputils:15.0.15' - api 'cc.winboll.studio:libaes:15.0.5' + api 'cc.winboll.studio:libaes:15.0.7' /*api 'cc.winboll.studio:winboll-shared:1.8.0' api 'io.github.medyo:android-about-page:2.0.0' diff --git a/powerbell/build.properties b/powerbell/build.properties index b4ec05a..cb84fb0 100644 --- a/powerbell/build.properties +++ b/powerbell/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Mar 24 12:22:12 GMT 2025 +#Mon Mar 24 18:29:48 GMT 2025 stageCount=0 libraryProject= baseVersion=15.0 publishVersion=15.0.0 -buildCount=9 +buildCount=39 baseBetaVersion=15.0.1 diff --git a/powerbell/src/beta/AndroidManifest.xml b/powerbell/src/beta/AndroidManifest.xml index a2a877c..7ca0b75 100644 --- a/powerbell/src/beta/AndroidManifest.xml +++ b/powerbell/src/beta/AndroidManifest.xml @@ -6,20 +6,18 @@ tools:replace="android:icon" android:icon="@drawable/ic_launcher_beta"> - + diff --git a/powerbell/src/main/AndroidManifest.xml b/powerbell/src/main/AndroidManifest.xml index 1fc6b61..93ad2bc 100644 --- a/powerbell/src/main/AndroidManifest.xml +++ b/powerbell/src/main/AndroidManifest.xml @@ -28,16 +28,6 @@ - - - - - - - - - - + + diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/App.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/App.java index 45c7677..a41290c 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/App.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/App.java @@ -6,6 +6,7 @@ import cc.winboll.studio.libappbase.utils.ToastUtils; import cc.winboll.studio.powerbell.receivers.GlobalApplicationReceiver; import cc.winboll.studio.powerbell.utils.AppCacheUtils; import cc.winboll.studio.powerbell.utils.AppConfigUtils; +import cc.winboll.studio.libapputils.bean.DebugBean; public class App extends GlobalApplication { @@ -19,6 +20,15 @@ public class App extends GlobalApplication { @Override public void onCreate() { super.onCreate(); + // 设置应用调试标志 + DebugBean debugBean = DebugBean.loadBean(this, DebugBean.class); + if (debugBean == null) { + //ToastUtils.show("debugBean == null"); + setIsDebuging(this, false); + } else { + //ToastUtils.show("saveDebugStatus(" + String.valueOf(debugBean.isDebuging()) + ")"); + setIsDebuging(this, debugBean.isDebuging()); + } // 初始化 Toast 框架 //ToastUtils.init(this); diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java index 4713f1e..3e7527b 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java @@ -12,11 +12,10 @@ import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; import cc.winboll.studio.libaes.views.AToolbar; -import cc.winboll.studio.libaes.winboll.APPInfo; -import cc.winboll.studio.libaes.winboll.AboutActivityFactory; import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.LogView; import cc.winboll.studio.powerbell.MainActivity; +import cc.winboll.studio.powerbell.activities.AboutActivity; import cc.winboll.studio.powerbell.activities.BackgroundPictureActivity; import cc.winboll.studio.powerbell.activities.BatteryReporterActivity; import cc.winboll.studio.powerbell.activities.ClearRecordActivity; @@ -55,6 +54,7 @@ public class MainActivity extends Activity { // 初始化工具栏 mAToolbar = (AToolbar) findViewById(R.id.toolbar); setActionBar(mAToolbar); + //mAToolbar.setSubtitle("Main"); mAToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText); if (mMainViewFragment == null) { @@ -143,10 +143,8 @@ public class MainActivity extends Activity { super.onOptionsItemSelected(item); int menuItemId = item.getItemId(); if (menuItemId == R.id.action_about) { - onAbout(); -// Intent intent = new Intent(); -// intent.setClass(this, AboutActivity.class); -// startActivity(intent); + Intent intent = new Intent(this, AboutActivity.class); + startActivity(intent); } else if (menuItemId == R.id.action_battery_reporter) { Intent intent = new Intent(); intent.setClass(this, BatteryReporterActivity.class); @@ -195,22 +193,4 @@ public class MainActivity extends Activity { moveTaskToBack(true); } } - - public void onAbout() { - String szBranchName = "powerbell"; - - APPInfo appInfo = AboutActivityFactory.buildDefaultAPPInfo(); - appInfo.setAppName("PowerBell"); - appInfo.setAppIcon(R.drawable.ic_launcher); - appInfo.setAppDescription("PowerBell Description"); - appInfo.setAppGitName("APP"); - appInfo.setAppGitOwner("Studio"); - appInfo.setAppGitAPPBranch(szBranchName); - appInfo.setAppGitAPPSubProjectFolder(szBranchName); - appInfo.setAppHomePage("https://www.winboll.cc/studio/details.php?app=PowerBell"); - appInfo.setAppAPKName("PowerBell"); - appInfo.setAppAPKFolderName("PowerBell"); - AboutActivityFactory.showAboutActivity(this, appInfo); - //ToastUtils.show("onAbout"); - } } diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/AboutActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/AboutActivity.java new file mode 100644 index 0000000..26edb7c --- /dev/null +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/AboutActivity.java @@ -0,0 +1,65 @@ +package cc.winboll.studio.powerbell.activities; + +/** + * @Author ZhanGSKen@AliYun.Com + * @Date 2025/03/25 01:16:32 + * @Describe 应用介绍窗口 + */ +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import cc.winboll.studio.libaes.views.AToolbar; +import cc.winboll.studio.libaes.winboll.APPInfo; +import cc.winboll.studio.libaes.winboll.AboutView; +import cc.winboll.studio.powerbell.R; + +public class AboutActivity extends Activity { + + Context mContext; + + public static final String TAG = "AboutActivity"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_about); + mContext = this; + + // 初始化工具栏 + AToolbar mAToolbar = (AToolbar) findViewById(R.id.toolbar); + setActionBar(mAToolbar); + mAToolbar.setSubtitle(getString(R.string.text_about)); + //mAToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText); + getActionBar().setDisplayHomeAsUpEnabled(true); + + AboutView aboutView = CreateAboutView(); + // 在 Activity 的 onCreate 或其他生命周期方法中调用 + LinearLayout llRoot = findViewById(R.id.root_ll); + //layout.setOrientation(LinearLayout.VERTICAL); + // 创建布局参数(宽度和高度) + ViewGroup.LayoutParams params = new ViewGroup.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.MATCH_PARENT + ); + llRoot.addView(aboutView, params); + + } + + public AboutView CreateAboutView() { + String szBranchName = "powerbell"; + APPInfo appInfo = new APPInfo(); + appInfo.setAppName(getString(R.string.app_name)); + appInfo.setAppIcon(R.drawable.ic_launcher); + appInfo.setAppDescription(getString(R.string.app_description)); + appInfo.setAppGitName("APP"); + appInfo.setAppGitOwner("Studio"); + appInfo.setAppGitAPPBranch(szBranchName); + appInfo.setAppGitAPPSubProjectFolder(szBranchName); + appInfo.setAppHomePage("https://www.winboll.cc/studio/details.php?app=PowerBell"); + appInfo.setAppAPKName("PowerBell"); + appInfo.setAppAPKFolderName("PowerBell"); + return new AboutView(mContext, appInfo); + } +} diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BackgroundPictureActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BackgroundPictureActivity.java index 5a5fe70..aceea9f 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BackgroundPictureActivity.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BackgroundPictureActivity.java @@ -84,8 +84,8 @@ implements BackgroundPicturePreviewDialog.IOnRecivedPictureListener { setActionBar(mAToolbar); //mAToolbar.setTitle(getTitle() + "-" + getString(R.string.subtitle_activity_backgroundpicture)); mAToolbar.setSubtitle(R.string.subtitle_activity_backgroundpicture); - mAToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText); - mAToolbar.setSubtitleTextAppearance(this, R.style.Toolbar_SubTitleText); + //mAToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText); + //mAToolbar.setSubtitleTextAppearance(this, R.style.Toolbar_SubTitleText); //mAToolbar.setBackgroundColor(getColor(R.color.colorPrimary)); setActionBar(mAToolbar); getActionBar().setDisplayHomeAsUpEnabled(true); diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/ClearRecordActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/ClearRecordActivity.java index 489254c..0ce0f16 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/ClearRecordActivity.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/ClearRecordActivity.java @@ -36,8 +36,8 @@ public class ClearRecordActivity extends Activity { setActionBar(mAToolbar); //mAToolbar.setTitle(getTitle() + " - " + getString(R.string.subtitle_activity_clearrecord)); mAToolbar.setSubtitle(R.string.subtitle_activity_clearrecord); - mAToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText); - mAToolbar.setSubtitleTextAppearance(this, R.style.Toolbar_SubTitleText); + //mAToolbar.setTitleTextAppearance(this, R.style.Toolbar_TitleText); + //mAToolbar.setSubtitleTextAppearance(this, R.style.Toolbar_SubTitleText); //mAToolbar.setBackgroundColor(getColor(R.color.colorPrimary)); setActionBar(mAToolbar); getActionBar().setDisplayHomeAsUpEnabled(true); diff --git a/powerbell/src/main/res/layout/activity_about.xml b/powerbell/src/main/res/layout/activity_about.xml new file mode 100644 index 0000000..2a679e4 --- /dev/null +++ b/powerbell/src/main/res/layout/activity_about.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + diff --git a/powerbell/src/main/res/values/attrs.xml b/powerbell/src/main/res/values/attrs.xml index f0b8edb..045e125 100644 --- a/powerbell/src/main/res/values/attrs.xml +++ b/powerbell/src/main/res/values/attrs.xml @@ -1,9 +1,3 @@ - - - - - - diff --git a/powerbell/src/main/res/values/styles.xml b/powerbell/src/main/res/values/styles.xml index e3ee98a..9683860 100644 --- a/powerbell/src/main/res/values/styles.xml +++ b/powerbell/src/main/res/values/styles.xml @@ -12,6 +12,7 @@ - + + + diff --git a/winboll/src/main/res/xml/widget_provider_info_sos.xml b/winboll/src/main/res/xml/widget_provider_info_sos.xml new file mode 100644 index 0000000..e03bd34 --- /dev/null +++ b/winboll/src/main/res/xml/widget_provider_info_sos.xml @@ -0,0 +1,7 @@ + + + diff --git a/winboll/src/stage/AndroidManifest.xml b/winboll/src/stage/AndroidManifest.xml new file mode 100644 index 0000000..ee78d9f --- /dev/null +++ b/winboll/src/stage/AndroidManifest.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/winboll/src/stage/res/values/strings.xml b/winboll/src/stage/res/values/strings.xml new file mode 100644 index 0000000..ace0c41 --- /dev/null +++ b/winboll/src/stage/res/values/strings.xml @@ -0,0 +1,6 @@ + + + + + + From 6cc04f8e6f9c0fb1590abd1cb7d153bd8e268985 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sat, 26 Apr 2025 17:52:58 +0800 Subject: [PATCH 027/110] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E8=AF=B4=E6=98=8E?= =?UTF-8?q?=E4=B9=A6=E6=A0=87=E9=A2=98=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 207e65c..a7dd34d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# ☁ ☁ ☁ WinBoll APP ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ -# ☁ ☁ 这是 WinBoll 系列 APP 汇总项目。☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ -# ☁ ☁ ☁ WinBoll 网站地址 https://www.winboll.cc/studio/app/ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ +# ☁ ☁ ☁ WinBoLL APP ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ +# ☁ ☁ WinBoLL Studio Android 应用开源项目。☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ +# ☁ ☁ ☁ WinBoLL 网站地址 https://www.winboll.cc/ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ## WinBoll 提问 同样是 /sdcard 目录,在开发 Android 应用时, From c11102d729ca0b3383663e3bd2b3e0b3a2463932 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sat, 26 Apr 2025 19:16:10 +0800 Subject: [PATCH 028/110] =?UTF-8?q?=E5=BC=80=E5=8F=91=E8=80=85=E8=81=94?= =?UTF-8?q?=E7=B3=BB=E9=82=AE=E7=AE=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .winboll/winboll_lib_build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.winboll/winboll_lib_build.gradle b/.winboll/winboll_lib_build.gradle index 0f19949..d167ec1 100644 --- a/.winboll/winboll_lib_build.gradle +++ b/.winboll/winboll_lib_build.gradle @@ -14,7 +14,7 @@ def DefaultGroupId = 'cc.winboll.studio' // 类库所有者groupId def DefaultVersion = getDefaultVersion() // 版本号 def DeveloperId='zhangsken' // 开发者账号 def DeveloperName='ZhanGSKen' // 开发者名称 -def DeveloperEMail='ZhanGSKen@QQ.COM' // 开发者邮箱地址 +def DeveloperEMail='zhangsken@188.com' // 开发者邮箱地址 def LicenseName='The Apache Software License, Version 2.0' def LicenseUrl='http://www.apache.org/licenses/LICENSE-2.0.txt' From 37d5d1efe097c394b4dfd4812d49d8f24ff5de97 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sat, 26 Apr 2025 20:29:31 +0800 Subject: [PATCH 029/110] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=A7=98=E9=92=A5?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=B9=E5=BC=8F=EF=BC=8C=E6=9B=B4=E6=96=B0?= =?UTF-8?q?APK=E6=96=87=E4=BB=B6=E8=BE=93=E5=87=BA=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=EF=BC=8C=E6=9B=B4=E6=96=B0=E8=AF=B4=E6=98=8E=E4=B9=A6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .winboll/winboll_app_build.gradle | 18 +++++++++--------- README.md | 7 ++++++- appbase/build.properties | 4 ++-- build.gradle | 3 ++- current.keystore-demo | 4 ++++ libappbase/build.properties | 4 ++-- 6 files changed, 25 insertions(+), 15 deletions(-) create mode 100644 current.keystore-demo diff --git a/.winboll/winboll_app_build.gradle b/.winboll/winboll_app_build.gradle index eacc876..d47aad4 100644 --- a/.winboll/winboll_app_build.gradle +++ b/.winboll/winboll_app_build.gradle @@ -75,9 +75,9 @@ android { def outputFileName=project.rootDir.name + "_${versionName}.apk" // 创建 WinBoll Studio 发布接口文件夹 - File fWinBollStudioDir = file("/sdcard/WinBollStudio/APKs"); - if(!fWinBollStudioDir.exists()) { - //fWinBollStudioDir.mkdirs(); + File fWinBoLLStudioDir = file("/sdcard/WinBoLLStudio/APKs"); + if(!fWinBoLLStudioDir.exists()) { + //fWinBoLLStudioDir.mkdirs(); // 如果没有发布接口文件就不用进行APK发布和源码管理操作 // 当前编译环境不是 WinBoll 主机, 以下将忽略APK发布和源码管理操作。 println 'The current compilation environment is not in WinBoll host, and the following APK publishing and source management operations will be ignore.' @@ -94,12 +94,12 @@ android { // 如果正在调试,就拷贝到 WinBoll 备份管理文件夹 // if(variant.flavorName == "beta"&&variant.buildType.name == "debug"){ - //File outBuildBckDir = new File(fWinBollStudioDir, "/${rootProject.name}/${variant.buildType.name}") - File outBuildBckDir = new File(fWinBollStudioDir, "/" + project.rootDir.name + "/${variant.buildType.name}") + //File outBuildBckDir = new File(fWinBoLLStudioDir, "/${rootProject.name}/${variant.buildType.name}") + File outBuildBckDir = new File(fWinBoLLStudioDir, "/" + project.rootDir.name + "/${variant.buildType.name}") // 创建目标路径目录 if(!outBuildBckDir.exists()) { outBuildBckDir.mkdirs(); - println "Output Folder Created.(WinBollStudio) : " + outBuildBckDir.getAbsolutePath() + println "Output Folder Created.(WinBoLLStudio) : " + outBuildBckDir.getAbsolutePath() } if(outBuildBckDir.exists()) { copy{ @@ -108,7 +108,7 @@ android { rename { String fileName -> "${outputFileName}" } - println "Output APK (WinBollStudio): " + outBuildBckDir.getAbsolutePath() + "/${outputFileName}" + println "Output APK (WinBoLLStudio): " + outBuildBckDir.getAbsolutePath() + "/${outputFileName}" } // 检查编译标志位配置 assert (winbollBuildProps['buildCount'] != null) @@ -151,8 +151,8 @@ android { String szCommonTagAPKName = project.rootDir.name + "_" + szShortVersionName + ".apk" println "CommonTagAPKName is : " + szCommonTagAPKName - //File outTagDir = new File(fWinBollStudioDir, "/${rootProject.name}/tag/") - File outTagDir = new File(fWinBollStudioDir, "/" + project.rootDir.name + "/tag/") + //File outTagDir = new File(fWinBoLLStudioDir, "/${rootProject.name}/tag/") + File outTagDir = new File(fWinBoLLStudioDir, "/" + project.rootDir.name + "/tag/") // 创建目标路径目录 if(!outTagDir.exists()) { outTagDir.mkdirs(); diff --git a/README.md b/README.md index 207e65c..7cff5f9 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,12 @@ ### ☁ 云游四方 ☁ ### ### ☁ 呔! ☁ WinBoll-APP 应用需求规划 -☁ WinBoll-APP 提供手机目录 /sdcard/WinBollStudio/Sources 的 WinBoll 项目源码管理功能。 +☁ 如要使用 WinBoLL Android 项目的 Gradle 编译功能,则需要设置以下两个文件夹。 +☁ 1. 则需要建立数据存储目录 /sdcard/WinBoLLStudio/APKs。 + WinBoLL 项目源码编译出来的安装包会拷贝一份到 /sdcard/WinBoLLStudio/APKs 目录下。 +☁ 2. 则需要建立数据存储目录 /sdcard/AppProjects。 + WinBoLL 项目源码编译出来的安装包会拷贝一份并命名 "app.apk" 的安装文件为到 /sdcard/AppProjects 目录下。 + ### ☁ 吁! ☁ WinBoll-APP 共享计划前景 ☁ WinBoll-APP 将会实现 https://winboll.cc/api 访问功能。 diff --git a/appbase/build.properties b/appbase/build.properties index 04487f9..6bc1b93 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Apr 12 15:06:52 HKT 2025 +#Sat Apr 26 12:27:57 GMT 2025 stageCount=6 libraryProject=libappbase baseVersion=15.2 publishVersion=15.2.5 -buildCount=0 +buildCount=4 baseBetaVersion=15.2.6 diff --git a/build.gradle b/build.gradle index 255a3e4..435aa9e 100644 --- a/build.gradle +++ b/build.gradle @@ -65,7 +65,8 @@ allprojects { bashCommitAppPublishBuildFlagInfoFilePath = ".winboll/bashCommitAppPublishBuildFlagInfo.sh" winbollFilePath = "winboll.properties" - keyPropsFilePath = "winboll-x/current.keystore" + //keyPropsFilePath = "winboll-x/current.keystore" + keyPropsFilePath = "current.keystore" // 定义 lint 输出文件 lintXmlReportFilePath = "build/reports/lint-results.xml" lintHTMLReportFilePath = "build/reports/lint-results.html" diff --git a/current.keystore-demo b/current.keystore-demo new file mode 100644 index 0000000..2152608 --- /dev/null +++ b/current.keystore-demo @@ -0,0 +1,4 @@ +keyAlias=WinBoLL.CC +keyPassword=androiddebugkey +storeFile=../WinBoLL.CC.jks +storePassword=androiddebugkey diff --git a/libappbase/build.properties b/libappbase/build.properties index 04487f9..6bc1b93 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Apr 12 15:06:52 HKT 2025 +#Sat Apr 26 12:27:57 GMT 2025 stageCount=6 libraryProject=libappbase baseVersion=15.2 publishVersion=15.2.5 -buildCount=0 +buildCount=4 baseBetaVersion=15.2.6 From 4c1fece9f08417a8ab9b36dea9b59a5b1f317022 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 09:59:15 +0800 Subject: [PATCH 030/110] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=A7=98=E9=92=A5?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.properties | 4 ++-- build.gradle | 2 +- current.keystore-demo | 4 ++++ libappbase/build.properties | 4 ++-- 4 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 current.keystore-demo diff --git a/appbase/build.properties b/appbase/build.properties index 04487f9..3b1ebb7 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Apr 12 15:06:52 HKT 2025 +#Sun Apr 27 01:58:12 GMT 2025 stageCount=6 libraryProject=libappbase baseVersion=15.2 publishVersion=15.2.5 -buildCount=0 +buildCount=4 baseBetaVersion=15.2.6 diff --git a/build.gradle b/build.gradle index 16e116d..968d25c 100644 --- a/build.gradle +++ b/build.gradle @@ -56,7 +56,7 @@ allprojects { bashCommitAppPublishBuildFlagInfoFilePath = ".winboll/bashCommitAppPublishBuildFlagInfo.sh" winbollFilePath = "winboll.properties" - keyPropsFilePath = "winboll-x/current.keystore" + keyPropsFilePath = "current.keystore" // 定义 lint 输出文件 lintXmlReportFilePath = "build/reports/lint-results.xml" lintHTMLReportFilePath = "build/reports/lint-results.html" diff --git a/current.keystore-demo b/current.keystore-demo new file mode 100644 index 0000000..2152608 --- /dev/null +++ b/current.keystore-demo @@ -0,0 +1,4 @@ +keyAlias=WinBoLL.CC +keyPassword=androiddebugkey +storeFile=../WinBoLL.CC.jks +storePassword=androiddebugkey diff --git a/libappbase/build.properties b/libappbase/build.properties index 04487f9..3b1ebb7 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Apr 12 15:06:52 HKT 2025 +#Sun Apr 27 01:58:12 GMT 2025 stageCount=6 libraryProject=libappbase baseVersion=15.2 publishVersion=15.2.5 -buildCount=0 +buildCount=4 baseBetaVersion=15.2.6 From 33952a90de93a57580a6a451c71d3749f920d8c6 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 10:02:38 +0800 Subject: [PATCH 031/110] APK 15.2.6 release Publish. --- appbase/build.properties | 10 +++++----- libappbase/build.properties | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index 3b1ebb7..457f18f 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 01:58:12 GMT 2025 -stageCount=6 +#Sun Apr 27 10:02:38 HKT 2025 +stageCount=7 libraryProject=libappbase baseVersion=15.2 -publishVersion=15.2.5 -buildCount=4 -baseBetaVersion=15.2.6 +publishVersion=15.2.6 +buildCount=0 +baseBetaVersion=15.2.7 diff --git a/libappbase/build.properties b/libappbase/build.properties index 3b1ebb7..457f18f 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 01:58:12 GMT 2025 -stageCount=6 +#Sun Apr 27 10:02:38 HKT 2025 +stageCount=7 libraryProject=libappbase baseVersion=15.2 -publishVersion=15.2.5 -buildCount=4 -baseBetaVersion=15.2.6 +publishVersion=15.2.6 +buildCount=0 +baseBetaVersion=15.2.7 From 94f444d6c72224e67b5e21e0e61496559b01ab50 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 10:05:16 +0800 Subject: [PATCH 032/110] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.gradle | 2 +- appbase/build.properties | 10 +++++----- libappbase/build.properties | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/appbase/build.gradle b/appbase/build.gradle index 727c7be..aa3ffa6 100644 --- a/appbase/build.gradle +++ b/appbase/build.gradle @@ -30,7 +30,7 @@ android { // versionName 更新后需要手动设置 // .winboll/winbollBuildProps.properties 文件的 stageCount=0 // Gradle编译环境下合起来的 versionName 就是 "${versionName}.0" - versionName "15.2" + versionName "15.4" if(true) { versionName = genVersionName("${versionName}") } diff --git a/appbase/build.properties b/appbase/build.properties index 457f18f..615f5e7 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 10:02:38 HKT 2025 +#Sun Apr 27 02:04:45 GMT 2025 stageCount=7 libraryProject=libappbase -baseVersion=15.2 -publishVersion=15.2.6 -buildCount=0 -baseBetaVersion=15.2.7 +baseVersion=15.4 +publishVersion=15.4.0 +buildCount=1 +baseBetaVersion=15.4.1 diff --git a/libappbase/build.properties b/libappbase/build.properties index 457f18f..615f5e7 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 10:02:38 HKT 2025 +#Sun Apr 27 02:04:45 GMT 2025 stageCount=7 libraryProject=libappbase -baseVersion=15.2 -publishVersion=15.2.6 -buildCount=0 -baseBetaVersion=15.2.7 +baseVersion=15.4 +publishVersion=15.4.0 +buildCount=1 +baseBetaVersion=15.4.1 From 39fe25f34f4386c32c493a03baeb5ea321efb2f0 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 10:05:40 +0800 Subject: [PATCH 033/110] APK 15.4.7 release Publish. --- appbase/build.properties | 10 +++++----- libappbase/build.properties | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index 615f5e7..557857f 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 02:04:45 GMT 2025 -stageCount=7 +#Sun Apr 27 10:05:40 HKT 2025 +stageCount=8 libraryProject=libappbase baseVersion=15.4 -publishVersion=15.4.0 -buildCount=1 -baseBetaVersion=15.4.1 +publishVersion=15.4.7 +buildCount=0 +baseBetaVersion=15.4.8 diff --git a/libappbase/build.properties b/libappbase/build.properties index 615f5e7..557857f 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 02:04:45 GMT 2025 -stageCount=7 +#Sun Apr 27 10:05:40 HKT 2025 +stageCount=8 libraryProject=libappbase baseVersion=15.4 -publishVersion=15.4.0 -buildCount=1 -baseBetaVersion=15.4.1 +publishVersion=15.4.7 +buildCount=0 +baseBetaVersion=15.4.8 From d0e7f1f56ccda44e44fd3ac3717bc2802e821d2f Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 10:06:01 +0800 Subject: [PATCH 034/110] Library Release 15.4.7 --- appbase/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appbase/build.properties b/appbase/build.properties index 557857f..11257d9 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 10:05:40 HKT 2025 +#Sun Apr 27 10:05:57 HKT 2025 stageCount=8 libraryProject=libappbase baseVersion=15.4 From b62cbc043b4c28330da4fca53dba588dffd02114 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 11:02:06 +0800 Subject: [PATCH 035/110] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E7=B1=BB=E5=BA=93?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.properties | 4 ++-- .../winboll/studio/appbase/MainActivity.java | 5 ++--- .../studio/appbase/WinBollActivityBase.java | 3 +-- .../appbase/activities/New2Activity.java | 4 ++-- .../appbase/activities/NewActivity.java | 4 ++-- appbase/src/main/res/layout/activity_main.xml | 2 +- appbase/src/main/res/layout/activity_new.xml | 2 +- appbase/src/main/res/layout/activity_new2.xml | 2 +- libappbase/build.gradle | 21 ------------------- libappbase/build.properties | 4 ++-- .../libappbase/GlobalCrashActivity.java | 11 +++++----- .../libappbase/GlobalCrashReportView.java | 2 +- .../res/layout/view_globalcrashreport.xml | 2 +- .../src/main/res/menu/toolbar_appbase.xml | 12 ++++------- libappbase/src/main/res/values/styles.xml | 2 +- 15 files changed, 26 insertions(+), 54 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index 11257d9..1b10f1e 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 10:05:57 HKT 2025 +#Sun Apr 27 03:00:43 GMT 2025 stageCount=8 libraryProject=libappbase baseVersion=15.4 publishVersion=15.4.7 -buildCount=0 +buildCount=5 baseBetaVersion=15.4.8 diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java b/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java index c99a20d..1534dfa 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java @@ -4,11 +4,11 @@ import android.app.Activity; import android.content.ComponentName; import android.content.Intent; import android.os.Bundle; -import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.CheckBox; +import android.widget.Toolbar; import cc.winboll.studio.appbase.R; import cc.winboll.studio.appbase.activities.NewActivity; import cc.winboll.studio.appbase.services.MainService; @@ -22,7 +22,6 @@ import cc.winboll.studio.libappbase.sos.SOS; import cc.winboll.studio.libappbase.utils.ToastUtils; import cc.winboll.studio.libappbase.widgets.StatusWidget; import cc.winboll.studio.libappbase.winboll.IWinBollActivity; -import cc.winboll.studio.libappbase.dialogs.YesNoAlertDialog; public class MainActivity extends WinBollActivityBase implements IWinBollActivity { @@ -48,7 +47,7 @@ public class MainActivity extends WinBollActivityBase implements IWinBollActivit setContentView(R.layout.activity_main); mToolbar = findViewById(R.id.toolbar); - setSupportActionBar(mToolbar); + setActionBar(mToolbar); CheckBox cbIsDebugMode = findViewById(R.id.activitymainCheckBox1); cbIsDebugMode.setChecked(GlobalApplication.isDebuging()); diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java b/appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java index 54765d8..ba56fb3 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java @@ -8,7 +8,6 @@ package cc.winboll.studio.appbase; import android.app.Activity; import android.os.Bundle; import android.os.PersistableBundle; -import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; import cc.winboll.studio.appbase.App; import cc.winboll.studio.appbase.R; @@ -17,7 +16,7 @@ import cc.winboll.studio.libappbase.dialogs.YesNoAlertDialog; import cc.winboll.studio.libappbase.winboll.IWinBollActivity; import cc.winboll.studio.libappbase.winboll.WinBollActivityManager; -public class WinBollActivityBase extends AppCompatActivity implements IWinBollActivity { +public class WinBollActivityBase extends Activity implements IWinBollActivity { public static final String TAG = "WinBollActivityBase"; diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java b/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java index 37f4422..5ba8702 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java @@ -7,10 +7,10 @@ package cc.winboll.studio.appbase.activities; */ import android.app.Activity; import android.os.Bundle; -import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.widget.Toolbar; import cc.winboll.studio.appbase.R; import cc.winboll.studio.appbase.WinBollActivityBase; import cc.winboll.studio.libappbase.GlobalApplication; @@ -41,7 +41,7 @@ public class New2Activity extends WinBollActivityBase implements IWinBollActivit // mLogView = findViewById(R.id.logview); // mLogView.start(); mToolbar = findViewById(R.id.toolbar); - setSupportActionBar(mToolbar); + setActionBar(mToolbar); } diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java b/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java index 907c3ad..58c3cb0 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java @@ -6,10 +6,10 @@ package cc.winboll.studio.appbase.activities; */ import android.app.Activity; import android.os.Bundle; -import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.widget.Toolbar; import cc.winboll.studio.appbase.R; import cc.winboll.studio.appbase.WinBollActivityBase; import cc.winboll.studio.libappbase.GlobalApplication; @@ -39,7 +39,7 @@ public class NewActivity extends WinBollActivityBase implements IWinBollActivity // mLogView = findViewById(R.id.logview); // mLogView.start(); mToolbar = findViewById(R.id.toolbar); - setSupportActionBar(mToolbar); + setActionBar(mToolbar); } diff --git a/appbase/src/main/res/layout/activity_main.xml b/appbase/src/main/res/layout/activity_main.xml index 193d0cc..17813d2 100644 --- a/appbase/src/main/res/layout/activity_main.xml +++ b/appbase/src/main/res/layout/activity_main.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - diff --git a/appbase/src/main/res/layout/activity_new.xml b/appbase/src/main/res/layout/activity_new.xml index 0917de8..b3dd223 100644 --- a/appbase/src/main/res/layout/activity_new.xml +++ b/appbase/src/main/res/layout/activity_new.xml @@ -6,7 +6,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - diff --git a/appbase/src/main/res/layout/activity_new2.xml b/appbase/src/main/res/layout/activity_new2.xml index 38b5906..697e613 100644 --- a/appbase/src/main/res/layout/activity_new2.xml +++ b/appbase/src/main/res/layout/activity_new2.xml @@ -6,7 +6,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - diff --git a/libappbase/build.gradle b/libappbase/build.gradle index 2071132..160b95c 100644 --- a/libappbase/build.gradle +++ b/libappbase/build.gradle @@ -22,25 +22,4 @@ android { dependencies { api fileTree(dir: 'libs', include: ['*.jar']) - - // Android 类库 - //api 'com.android.support:appcompat-v7:28.0.0' - api('com.android.support:appcompat-v7:28.0.0'){ - //exclude group: "com.android.support", module: "support-vector-drawable" - exclude group: "com.android.support:animated-vector-drawable:28.0.0" - } - // https://mvnrepository.com/artifact/com.android.support/support-compat - //api 'com.android.support:support-compat:28.0.0' // 保留原有依赖(可选) - // https://mvnrepository.com/artifact/com.android.support/support-v4 - api 'com.android.support:support-v4:28.0.0' - // https://mvnrepository.com/artifact/com.android.support/support-media-compat - api 'com.android.support:support-media-compat:28.0.0' - // https://mvnrepository.com/artifact/com.android.support/support-core-utils - api 'com.android.support:support-core-utils:28.0.0' - // https://mvnrepository.com/artifact/com.android.support/support-core-ui - api 'com.android.support:support-core-ui:28.0.0' - // https://mvnrepository.com/artifact/com.android.support/support-fragment - api 'com.android.support:support-fragment:28.0.0' - // https://mvnrepository.com/artifact/com.android.support/recyclerview-v7 - api 'com.android.support:recyclerview-v7:28.0.0' } diff --git a/libappbase/build.properties b/libappbase/build.properties index 557857f..1b10f1e 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 10:05:40 HKT 2025 +#Sun Apr 27 03:00:43 GMT 2025 stageCount=8 libraryProject=libappbase baseVersion=15.4 publishVersion=15.4.7 -buildCount=0 +buildCount=5 baseBetaVersion=15.4.8 diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashActivity.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashActivity.java index dbf8c8a..0509ac9 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashActivity.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashActivity.java @@ -4,20 +4,19 @@ package cc.winboll.studio.libappbase; * @Author ZhanGSKen@AliYun.Com * @Date 2025/02/11 00:14:05 */ +import android.app.Activity; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; -import android.net.Uri; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; import cc.winboll.studio.libappbase.R; -public final class GlobalCrashActivity extends AppCompatActivity implements MenuItem.OnMenuItemClickListener { +public final class GlobalCrashActivity extends Activity implements MenuItem.OnMenuItemClickListener { private static final int MENUITEM_COPY = 0; private static final int MENUITEM_RESTART = 1; @@ -39,10 +38,10 @@ public final class GlobalCrashActivity extends AppCompatActivity implements Menu setContentView(R.layout.activity_globalcrash); mGlobalCrashReportView = findViewById(R.id.activityglobalcrashGlobalCrashReportView1); mGlobalCrashReportView.setReport(mLog); - setSupportActionBar(mGlobalCrashReportView.getToolbar()); + setActionBar(mGlobalCrashReportView.getToolbar()); - getSupportActionBar().setTitle(CrashHandler.TITTLE); - getSupportActionBar().setSubtitle(GlobalApplication.getAppName(getApplicationContext())); + getActionBar().setTitle(CrashHandler.TITTLE); + getActionBar().setSubtitle(GlobalApplication.getAppName(getApplicationContext())); } @Override diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashReportView.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashReportView.java index 533e5da..5ae634f 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashReportView.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashReportView.java @@ -8,7 +8,6 @@ package cc.winboll.studio.libappbase; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Color; -import android.support.v7.widget.Toolbar; import android.text.SpannableString; import android.text.style.ForegroundColorSpan; import android.util.AttributeSet; @@ -16,6 +15,7 @@ import android.view.Menu; import android.view.MenuItem; import android.widget.LinearLayout; import android.widget.TextView; +import android.widget.Toolbar; import cc.winboll.studio.libappbase.R; public class GlobalCrashReportView extends LinearLayout { diff --git a/libappbase/src/main/res/layout/view_globalcrashreport.xml b/libappbase/src/main/res/layout/view_globalcrashreport.xml index cda2c96..65c05a7 100644 --- a/libappbase/src/main/res/layout/view_globalcrashreport.xml +++ b/libappbase/src/main/res/layout/view_globalcrashreport.xml @@ -7,7 +7,7 @@ android:layout_height="match_parent" android:id="@+id/viewglobalcrashreportLinearLayout1"> - diff --git a/libappbase/src/main/res/menu/toolbar_appbase.xml b/libappbase/src/main/res/menu/toolbar_appbase.xml index b6236e8..b339ad2 100644 --- a/libappbase/src/main/res/menu/toolbar_appbase.xml +++ b/libappbase/src/main/res/menu/toolbar_appbase.xml @@ -4,22 +4,18 @@ + android:icon="@drawable/ic_winboll_point"/> + android:icon="@drawable/ic_winboll_logo"/> + android:icon="@drawable/ic_winboll_help"/> + android:icon="@drawable/ic_winboll_log"/> diff --git a/libappbase/src/main/res/values/styles.xml b/libappbase/src/main/res/values/styles.xml index 13f26cd..da69f41 100644 --- a/libappbase/src/main/res/values/styles.xml +++ b/libappbase/src/main/res/values/styles.xml @@ -1,7 +1,7 @@ - From 3f2ec872f88ba8952654f54013035f88b21b548f Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 11:03:35 +0800 Subject: [PATCH 036/110] APK 15.4.8 release Publish. --- appbase/build.properties | 10 +++++----- libappbase/build.properties | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index 1b10f1e..bcc0bae 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 03:00:43 GMT 2025 -stageCount=8 +#Sun Apr 27 11:03:35 HKT 2025 +stageCount=9 libraryProject=libappbase baseVersion=15.4 -publishVersion=15.4.7 -buildCount=5 -baseBetaVersion=15.4.8 +publishVersion=15.4.8 +buildCount=0 +baseBetaVersion=15.4.9 diff --git a/libappbase/build.properties b/libappbase/build.properties index 1b10f1e..bcc0bae 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 03:00:43 GMT 2025 -stageCount=8 +#Sun Apr 27 11:03:35 HKT 2025 +stageCount=9 libraryProject=libappbase baseVersion=15.4 -publishVersion=15.4.7 -buildCount=5 -baseBetaVersion=15.4.8 +publishVersion=15.4.8 +buildCount=0 +baseBetaVersion=15.4.9 From 839bf72eca0bdc0c9cfdaea4b0efe55ab884c513 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 11:03:44 +0800 Subject: [PATCH 037/110] Library Release 15.4.8 --- appbase/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appbase/build.properties b/appbase/build.properties index bcc0bae..5436cc8 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 11:03:35 HKT 2025 +#Sun Apr 27 11:03:41 HKT 2025 stageCount=9 libraryProject=libappbase baseVersion=15.4 From 7abe0967799a5c655d531408e96c25e2e8c2a333 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 11:11:48 +0800 Subject: [PATCH 038/110] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E7=B1=BB=E5=BA=93?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apputils/build.properties | 4 ++-- .../studio/apputils/WinBollActivityBase.java | 3 +-- libapputils/build.gradle | 23 +------------------ libapputils/build.properties | 4 ++-- 4 files changed, 6 insertions(+), 28 deletions(-) diff --git a/apputils/build.properties b/apputils/build.properties index 4fad09f..fbf5fd6 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Mar 29 12:14:55 HKT 2025 +#Sun Apr 27 03:10:03 GMT 2025 stageCount=2 libraryProject=libapputils baseVersion=15.2 publishVersion=15.2.1 -buildCount=0 +buildCount=3 baseBetaVersion=15.2.2 diff --git a/apputils/src/main/java/cc/winboll/studio/apputils/WinBollActivityBase.java b/apputils/src/main/java/cc/winboll/studio/apputils/WinBollActivityBase.java index 1e2e8cf..ff6e426 100644 --- a/apputils/src/main/java/cc/winboll/studio/apputils/WinBollActivityBase.java +++ b/apputils/src/main/java/cc/winboll/studio/apputils/WinBollActivityBase.java @@ -8,12 +8,11 @@ package cc.winboll.studio.apputils; import android.app.Activity; import android.os.Bundle; import android.os.PersistableBundle; -import android.support.v7.app.AppCompatActivity; import cc.winboll.studio.libappbase.GlobalApplication; import cc.winboll.studio.libappbase.winboll.IWinBollActivity; import cc.winboll.studio.libappbase.winboll.WinBollActivityManager; -public class WinBollActivityBase extends AppCompatActivity implements IWinBollActivity { +public class WinBollActivityBase extends Activity implements IWinBollActivity { public static final String TAG = "WinBollActivityBase"; diff --git a/libapputils/build.gradle b/libapputils/build.gradle index 2cfc4fb..733822b 100644 --- a/libapputils/build.gradle +++ b/libapputils/build.gradle @@ -21,28 +21,7 @@ android { dependencies { api fileTree(dir: 'libs', include: ['*.jar']) - // Android 类库 - //api 'com.android.support:appcompat-v7:28.0.0' - api('com.android.support:appcompat-v7:28.0.0'){ - //exclude group: "com.android.support", module: "support-vector-drawable" - exclude group: "com.android.support:animated-vector-drawable:28.0.0" - } - // https://mvnrepository.com/artifact/com.android.support/support-compat - //api 'com.android.support:support-compat:28.0.0' // 保留原有依赖(可选) - // https://mvnrepository.com/artifact/com.android.support/support-v4 - api 'com.android.support:support-v4:28.0.0' - // https://mvnrepository.com/artifact/com.android.support/support-media-compat - api 'com.android.support:support-media-compat:28.0.0' - // https://mvnrepository.com/artifact/com.android.support/support-core-utils - api 'com.android.support:support-core-utils:28.0.0' - // https://mvnrepository.com/artifact/com.android.support/support-core-ui - api 'com.android.support:support-core-ui:28.0.0' - // https://mvnrepository.com/artifact/com.android.support/support-fragment - api 'com.android.support:support-fragment:28.0.0' - // https://mvnrepository.com/artifact/com.android.support/recyclerview-v7 - api 'com.android.support:recyclerview-v7:28.0.0' - - api 'cc.winboll.studio:libappbase:15.2.0' + api 'cc.winboll.studio:libappbase:15.4.8' // 二维码类库 api 'com.google.zxing:core:3.4.1' diff --git a/libapputils/build.properties b/libapputils/build.properties index 231733d..fbf5fd6 100644 --- a/libapputils/build.properties +++ b/libapputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Mar 29 12:14:39 HKT 2025 +#Sun Apr 27 03:10:03 GMT 2025 stageCount=2 libraryProject=libapputils baseVersion=15.2 publishVersion=15.2.1 -buildCount=0 +buildCount=3 baseBetaVersion=15.2.2 From 4737ce92e13e99f719815df3102c47ff4aab7a9d Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 11:14:42 +0800 Subject: [PATCH 039/110] Start New Stage Version. --- apputils/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apputils/build.properties b/apputils/build.properties index 4fad09f..3154be6 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Mar 29 12:14:55 HKT 2025 +#Sun Apr 27 11:14:39 HKT 2025 stageCount=2 libraryProject=libapputils baseVersion=15.2 From e572486b05d68575f7b9fcd5c9bdde228f69bb11 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 11:17:19 +0800 Subject: [PATCH 040/110] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apputils/build.gradle | 2 +- apputils/build.properties | 12 ++++++------ libapputils/build.properties | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/apputils/build.gradle b/apputils/build.gradle index ce30b57..2d076ce 100644 --- a/apputils/build.gradle +++ b/apputils/build.gradle @@ -29,7 +29,7 @@ android { // versionName 更新后需要手动设置 // 项目模块目录的 build.gradle 文件的 stageCount=0 // Gradle编译环境下合起来的 versionName 就是 "${versionName}.0" - versionName "15.2" + versionName "15.3" if(true) { versionName = genVersionName("${versionName}") } diff --git a/apputils/build.properties b/apputils/build.properties index fbf5fd6..b56c26f 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 03:10:03 GMT 2025 -stageCount=2 +#Sun Apr 27 03:16:53 GMT 2025 +stageCount=0 libraryProject=libapputils -baseVersion=15.2 -publishVersion=15.2.1 -buildCount=3 -baseBetaVersion=15.2.2 +baseVersion=15.3 +publishVersion=15.3.0 +buildCount=1 +baseBetaVersion=15.3.1 diff --git a/libapputils/build.properties b/libapputils/build.properties index fbf5fd6..b56c26f 100644 --- a/libapputils/build.properties +++ b/libapputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 03:10:03 GMT 2025 -stageCount=2 +#Sun Apr 27 03:16:53 GMT 2025 +stageCount=0 libraryProject=libapputils -baseVersion=15.2 -publishVersion=15.2.1 -buildCount=3 -baseBetaVersion=15.2.2 +baseVersion=15.3 +publishVersion=15.3.0 +buildCount=1 +baseBetaVersion=15.3.1 From 9eec7060b98607c53f46ab1cd3b7db55a6f72975 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 11:19:49 +0800 Subject: [PATCH 041/110] APK 15.3.0 release Publish. --- apputils/build.properties | 6 +++--- libapputils/build.properties | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apputils/build.properties b/apputils/build.properties index b56c26f..7147bf5 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 03:16:53 GMT 2025 -stageCount=0 +#Sun Apr 27 11:19:49 HKT 2025 +stageCount=1 libraryProject=libapputils baseVersion=15.3 publishVersion=15.3.0 -buildCount=1 +buildCount=0 baseBetaVersion=15.3.1 diff --git a/libapputils/build.properties b/libapputils/build.properties index b56c26f..7147bf5 100644 --- a/libapputils/build.properties +++ b/libapputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 03:16:53 GMT 2025 -stageCount=0 +#Sun Apr 27 11:19:49 HKT 2025 +stageCount=1 libraryProject=libapputils baseVersion=15.3 publishVersion=15.3.0 -buildCount=1 +buildCount=0 baseBetaVersion=15.3.1 From b68d8a58e367161efe6e2ec84f369521adefd34c Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 11:20:08 +0800 Subject: [PATCH 042/110] Library Release 15.3.0 --- apputils/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apputils/build.properties b/apputils/build.properties index 7147bf5..4686765 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 11:19:49 HKT 2025 +#Sun Apr 27 11:20:04 HKT 2025 stageCount=1 libraryProject=libapputils baseVersion=15.3 From 18b078c644fa5f535a4dd7a1d6c3c894cdf947ec Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 13:41:49 +0800 Subject: [PATCH 043/110] =?UTF-8?q?=E4=B8=8EAppCompatActivity=E5=BC=95?= =?UTF-8?q?=E7=94=A8=E4=B8=80=E6=A0=B7=EF=BC=8C=E7=B1=BB=E7=BB=A7=E6=89=BF?= =?UTF-8?q?=E5=B1=82=E6=95=B0=E4=B8=8D=E8=83=BD=E6=98=AF=E4=B8=A4=E5=B1=82?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apputils/build.properties | 4 ++-- libapputils/build.properties | 4 ++-- libapputils/src/main/res/values/styles.xml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apputils/build.properties b/apputils/build.properties index 4686765..0f6fcf5 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 11:20:04 HKT 2025 +#Sun Apr 27 05:39:12 GMT 2025 stageCount=1 libraryProject=libapputils baseVersion=15.3 publishVersion=15.3.0 -buildCount=0 +buildCount=1 baseBetaVersion=15.3.1 diff --git a/libapputils/build.properties b/libapputils/build.properties index 7147bf5..0f6fcf5 100644 --- a/libapputils/build.properties +++ b/libapputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 11:19:49 HKT 2025 +#Sun Apr 27 05:39:12 GMT 2025 stageCount=1 libraryProject=libapputils baseVersion=15.3 publishVersion=15.3.0 -buildCount=0 +buildCount=1 baseBetaVersion=15.3.1 diff --git a/libapputils/src/main/res/values/styles.xml b/libapputils/src/main/res/values/styles.xml index 1267e30..3d01eb2 100644 --- a/libapputils/src/main/res/values/styles.xml +++ b/libapputils/src/main/res/values/styles.xml @@ -1,5 +1,5 @@ - From ef9c0f08aedbc891beb16431edf068901fb3cf48 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 13:42:46 +0800 Subject: [PATCH 044/110] APK 15.3.1 release Publish. --- apputils/build.properties | 10 +++++----- libapputils/build.properties | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/apputils/build.properties b/apputils/build.properties index 0f6fcf5..94aa017 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 05:39:12 GMT 2025 -stageCount=1 +#Sun Apr 27 13:42:46 HKT 2025 +stageCount=2 libraryProject=libapputils baseVersion=15.3 -publishVersion=15.3.0 -buildCount=1 -baseBetaVersion=15.3.1 +publishVersion=15.3.1 +buildCount=0 +baseBetaVersion=15.3.2 diff --git a/libapputils/build.properties b/libapputils/build.properties index 0f6fcf5..94aa017 100644 --- a/libapputils/build.properties +++ b/libapputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 05:39:12 GMT 2025 -stageCount=1 +#Sun Apr 27 13:42:46 HKT 2025 +stageCount=2 libraryProject=libapputils baseVersion=15.3 -publishVersion=15.3.0 -buildCount=1 -baseBetaVersion=15.3.1 +publishVersion=15.3.1 +buildCount=0 +baseBetaVersion=15.3.2 From 559d41e46c8222917038658c5dab5e6e3f5b9765 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 13:42:58 +0800 Subject: [PATCH 045/110] Library Release 15.3.1 --- apputils/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apputils/build.properties b/apputils/build.properties index 94aa017..a1f57a0 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 13:42:46 HKT 2025 +#Sun Apr 27 13:42:52 HKT 2025 stageCount=2 libraryProject=libapputils baseVersion=15.3 From a32b10cdecc066bd372ebe7de7163e483579d682 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 13:48:45 +0800 Subject: [PATCH 046/110] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=B1=BB=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aes/build.properties | 4 +- .../main/java/cc/winboll/studio/aes/App.java | 5 ++- libaes/build.gradle | 6 +-- libaes/build.properties | 4 +- .../winboll/WinBollServiceStatusView.java | 2 +- libaes/src/main/res/layout/view_toast.xml | 38 ------------------- 6 files changed, 11 insertions(+), 48 deletions(-) delete mode 100644 libaes/src/main/res/layout/view_toast.xml diff --git a/aes/build.properties b/aes/build.properties index 6c6ad79..01fc6c9 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Thu Apr 03 11:14:05 HKT 2025 +#Sun Apr 27 05:47:09 GMT 2025 stageCount=7 libraryProject=libaes baseVersion=15.2 publishVersion=15.2.6 -buildCount=0 +buildCount=1 baseBetaVersion=15.2.7 diff --git a/aes/src/main/java/cc/winboll/studio/aes/App.java b/aes/src/main/java/cc/winboll/studio/aes/App.java index 2dc8e06..b656adb 100644 --- a/aes/src/main/java/cc/winboll/studio/aes/App.java +++ b/aes/src/main/java/cc/winboll/studio/aes/App.java @@ -8,6 +8,7 @@ package cc.winboll.studio.aes; import android.view.Gravity; import cc.winboll.studio.libappbase.GlobalApplication; import com.hjq.toast.ToastUtils; +import com.hjq.toast.style.WhiteToastStyle; public class App extends GlobalApplication { @@ -21,8 +22,8 @@ public class App extends GlobalApplication { // 初始化 Toast 框架 ToastUtils.init(this); // 设置 Toast 布局样式 - ToastUtils.setView(R.layout.view_toast); - //ToastUtils.setStyle(new WhiteToastStyle()); + //ToastUtils.setView(R.layout.view_toast); + ToastUtils.setStyle(new WhiteToastStyle()); ToastUtils.setGravity(Gravity.BOTTOM, 0, 200); } diff --git a/libaes/build.gradle b/libaes/build.gradle index 6056965..1b30b3c 100644 --- a/libaes/build.gradle +++ b/libaes/build.gradle @@ -45,12 +45,12 @@ dependencies { api 'com.squareup.okhttp3:okhttp:4.4.1' // AndroidX 类库 api 'androidx.appcompat:appcompat:1.1.0' - api 'com.google.android.material:material:1.4.0' + //api 'com.google.android.material:material:1.4.0' //api 'androidx.viewpager:viewpager:1.0.0' //api 'androidx.vectordrawable:vectordrawable:1.1.0' //api 'androidx.vectordrawable:vectordrawable-animated:1.1.0' //api 'androidx.fragment:fragment:1.1.0' - api 'cc.winboll.studio:libapputils:15.2.2' - api 'cc.winboll.studio:libappbase:15.2.2' + api 'cc.winboll.studio:libapputils:15.3.1' + api 'cc.winboll.studio:libappbase:15.4.8' } diff --git a/libaes/build.properties b/libaes/build.properties index 740a6cf..01fc6c9 100644 --- a/libaes/build.properties +++ b/libaes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Thu Apr 03 11:13:53 HKT 2025 +#Sun Apr 27 05:47:09 GMT 2025 stageCount=7 libraryProject=libaes baseVersion=15.2 publishVersion=15.2.6 -buildCount=0 +buildCount=1 baseBetaVersion=15.2.7 diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollServiceStatusView.java b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollServiceStatusView.java index 694779b..630a3a7 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollServiceStatusView.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollServiceStatusView.java @@ -5,6 +5,7 @@ package cc.winboll.studio.libaes.winboll; * @Date 2025/03/28 17:41:55 * @Describe WinBoll 服务主机连接状态视图 */ +import cc.winboll.studio.libaes.R; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -21,7 +22,6 @@ import android.widget.TextView; import cc.winboll.studio.libaes.winboll.WinBollClientService; import cc.winboll.studio.libappbase.GlobalApplication; import cc.winboll.studio.libappbase.LogUtils; -import cc.winboll.studio.libapputils.R; import cc.winboll.studio.libapputils.utils.PrefUtils; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; diff --git a/libaes/src/main/res/layout/view_toast.xml b/libaes/src/main/res/layout/view_toast.xml deleted file mode 100644 index c4a65fc..0000000 --- a/libaes/src/main/res/layout/view_toast.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - From 58eba26eb50ebbed6c857b634977c975da9e5e31 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 14:00:56 +0800 Subject: [PATCH 047/110] Start New Stage Version. --- appbase/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appbase/build.properties b/appbase/build.properties index 5436cc8..e66a107 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 11:03:41 HKT 2025 +#Sun Apr 27 14:00:56 HKT 2025 stageCount=9 libraryProject=libappbase baseVersion=15.4 From 65aae2146ea82f139cd786c263740a5f3e7a64a6 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 14:03:03 +0800 Subject: [PATCH 048/110] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aes/build.gradle | 2 +- aes/build.properties | 10 +++++----- libaes/build.properties | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/aes/build.gradle b/aes/build.gradle index 13025d9..4237fb7 100644 --- a/aes/build.gradle +++ b/aes/build.gradle @@ -29,7 +29,7 @@ android { // versionName 更新后需要手动设置 // 项目模块目录的 build.gradle 文件的 stageCount=0 // Gradle编译环境下合起来的 versionName 就是 "${versionName}.0" - versionName "15.2" + versionName "15.3" if(true) { versionName = genVersionName("${versionName}") } diff --git a/aes/build.properties b/aes/build.properties index 01fc6c9..a82d39f 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 05:47:09 GMT 2025 -stageCount=7 +#Sun Apr 27 06:02:35 GMT 2025 +stageCount=0 libraryProject=libaes -baseVersion=15.2 -publishVersion=15.2.6 +baseVersion=15.3 +publishVersion=15.3.0 buildCount=1 -baseBetaVersion=15.2.7 +baseBetaVersion=15.3.1 diff --git a/libaes/build.properties b/libaes/build.properties index 01fc6c9..a82d39f 100644 --- a/libaes/build.properties +++ b/libaes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 05:47:09 GMT 2025 -stageCount=7 +#Sun Apr 27 06:02:35 GMT 2025 +stageCount=0 libraryProject=libaes -baseVersion=15.2 -publishVersion=15.2.6 +baseVersion=15.3 +publishVersion=15.3.0 buildCount=1 -baseBetaVersion=15.2.7 +baseBetaVersion=15.3.1 From 37c93658b3d456a536669e4069f90ad77e27feb8 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 14:03:25 +0800 Subject: [PATCH 049/110] Start New Stage Version. --- appbase/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appbase/build.properties b/appbase/build.properties index e66a107..fb32e94 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 14:00:56 HKT 2025 +#Sun Apr 27 14:03:24 HKT 2025 stageCount=9 libraryProject=libappbase baseVersion=15.4 From ad1b6ca3e9a153f268e90eccefee3d32cc2c0630 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 17:26:24 +0800 Subject: [PATCH 050/110] =?UTF-8?q?=E7=BC=96=E8=AF=91=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aes/build.properties | 4 ++-- libaes/build.properties | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/aes/build.properties b/aes/build.properties index a82d39f..f8411ec 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 06:02:35 GMT 2025 +#Sun Apr 27 09:25:35 GMT 2025 stageCount=0 libraryProject=libaes baseVersion=15.3 publishVersion=15.3.0 -buildCount=1 +buildCount=2 baseBetaVersion=15.3.1 diff --git a/libaes/build.properties b/libaes/build.properties index a82d39f..f8411ec 100644 --- a/libaes/build.properties +++ b/libaes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 06:02:35 GMT 2025 +#Sun Apr 27 09:25:35 GMT 2025 stageCount=0 libraryProject=libaes baseVersion=15.3 publishVersion=15.3.0 -buildCount=1 +buildCount=2 baseBetaVersion=15.3.1 From 006cefea2a73e0c4457bbf62ac94a5db837bfaf6 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 17:30:08 +0800 Subject: [PATCH 051/110] Start New Stage Version. --- appbase/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appbase/build.properties b/appbase/build.properties index fb32e94..4cc78ee 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 14:03:24 HKT 2025 +#Sun Apr 27 17:30:07 HKT 2025 stageCount=9 libraryProject=libappbase baseVersion=15.4 From 14a161ab3f2967838f029c5030d7f7cd65f0c084 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 17:35:16 +0800 Subject: [PATCH 052/110] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aes/build.gradle | 2 +- aes/build.properties | 8 ++++---- libaes/build.properties | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/aes/build.gradle b/aes/build.gradle index 4237fb7..02dd11a 100644 --- a/aes/build.gradle +++ b/aes/build.gradle @@ -29,7 +29,7 @@ android { // versionName 更新后需要手动设置 // 项目模块目录的 build.gradle 文件的 stageCount=0 // Gradle编译环境下合起来的 versionName 就是 "${versionName}.0" - versionName "15.3" + versionName "15.4" if(true) { versionName = genVersionName("${versionName}") } diff --git a/aes/build.properties b/aes/build.properties index f8411ec..cfe4658 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 09:25:35 GMT 2025 +#Sun Apr 27 09:34:21 GMT 2025 stageCount=0 libraryProject=libaes -baseVersion=15.3 -publishVersion=15.3.0 -buildCount=2 +baseVersion=15.4 +publishVersion=15.4.0 +buildCount=1 baseBetaVersion=15.3.1 diff --git a/libaes/build.properties b/libaes/build.properties index f8411ec..cfe4658 100644 --- a/libaes/build.properties +++ b/libaes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 09:25:35 GMT 2025 +#Sun Apr 27 09:34:21 GMT 2025 stageCount=0 libraryProject=libaes -baseVersion=15.3 -publishVersion=15.3.0 -buildCount=2 +baseVersion=15.4 +publishVersion=15.4.0 +buildCount=1 baseBetaVersion=15.3.1 From 933abbc261cb8aaa6b88ec191aa95e9a7d559d84 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 17:36:08 +0800 Subject: [PATCH 053/110] Start New Stage Version. --- appbase/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appbase/build.properties b/appbase/build.properties index 4cc78ee..ed16ce0 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 17:30:07 HKT 2025 +#Sun Apr 27 17:36:08 HKT 2025 stageCount=9 libraryProject=libappbase baseVersion=15.4 From d520c9ae063e81bbfa4748e92ff12f6ed15b5249 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 17:36:17 +0800 Subject: [PATCH 054/110] Start New Stage Version. --- appbase/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appbase/build.properties b/appbase/build.properties index ed16ce0..c622dbd 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 17:36:08 HKT 2025 +#Sun Apr 27 17:36:17 HKT 2025 stageCount=9 libraryProject=libappbase baseVersion=15.4 From 191de5c51196c07f4948bf51c0b2581f245b6df7 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 17:39:39 +0800 Subject: [PATCH 055/110] APK 15.4.0 release Publish. --- aes/build.properties | 8 ++++---- libaes/build.properties | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/aes/build.properties b/aes/build.properties index cfe4658..e9307c3 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 09:34:21 GMT 2025 -stageCount=0 +#Sun Apr 27 17:39:39 HKT 2025 +stageCount=1 libraryProject=libaes baseVersion=15.4 publishVersion=15.4.0 -buildCount=1 -baseBetaVersion=15.3.1 +buildCount=0 +baseBetaVersion=15.4.1 diff --git a/libaes/build.properties b/libaes/build.properties index cfe4658..e9307c3 100644 --- a/libaes/build.properties +++ b/libaes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 09:34:21 GMT 2025 -stageCount=0 +#Sun Apr 27 17:39:39 HKT 2025 +stageCount=1 libraryProject=libaes baseVersion=15.4 publishVersion=15.4.0 -buildCount=1 -baseBetaVersion=15.3.1 +buildCount=0 +baseBetaVersion=15.4.1 From 7932e25def2826f3cf7f971416f646c0563978ac Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 17:39:51 +0800 Subject: [PATCH 056/110] APK 15.4.1 release Publish. --- aes/build.properties | 8 ++++---- libaes/build.properties | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/aes/build.properties b/aes/build.properties index e9307c3..ded3dbe 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 17:39:39 HKT 2025 -stageCount=1 +#Sun Apr 27 17:39:51 HKT 2025 +stageCount=2 libraryProject=libaes baseVersion=15.4 -publishVersion=15.4.0 +publishVersion=15.4.1 buildCount=0 -baseBetaVersion=15.4.1 +baseBetaVersion=15.4.2 diff --git a/libaes/build.properties b/libaes/build.properties index e9307c3..ded3dbe 100644 --- a/libaes/build.properties +++ b/libaes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 17:39:39 HKT 2025 -stageCount=1 +#Sun Apr 27 17:39:51 HKT 2025 +stageCount=2 libraryProject=libaes baseVersion=15.4 -publishVersion=15.4.0 +publishVersion=15.4.1 buildCount=0 -baseBetaVersion=15.4.1 +baseBetaVersion=15.4.2 From 2ce07bbcf3b58554720fad35aeffaf94388bbb35 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 17:40:14 +0800 Subject: [PATCH 057/110] Library Release 15.4.1 --- aes/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aes/build.properties b/aes/build.properties index ded3dbe..c761e08 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 17:39:51 HKT 2025 +#Sun Apr 27 17:40:07 HKT 2025 stageCount=2 libraryProject=libaes baseVersion=15.4 From c2794e732275b88e2ee779428a903408ea685932 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 20:28:37 +0800 Subject: [PATCH 058/110] =?UTF-8?q?=E5=9B=9E=E5=A4=8D=E5=85=88=E5=89=8D?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .winboll/winboll_app_build.gradle | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.winboll/winboll_app_build.gradle b/.winboll/winboll_app_build.gradle index d47aad4..eacc876 100644 --- a/.winboll/winboll_app_build.gradle +++ b/.winboll/winboll_app_build.gradle @@ -75,9 +75,9 @@ android { def outputFileName=project.rootDir.name + "_${versionName}.apk" // 创建 WinBoll Studio 发布接口文件夹 - File fWinBoLLStudioDir = file("/sdcard/WinBoLLStudio/APKs"); - if(!fWinBoLLStudioDir.exists()) { - //fWinBoLLStudioDir.mkdirs(); + File fWinBollStudioDir = file("/sdcard/WinBollStudio/APKs"); + if(!fWinBollStudioDir.exists()) { + //fWinBollStudioDir.mkdirs(); // 如果没有发布接口文件就不用进行APK发布和源码管理操作 // 当前编译环境不是 WinBoll 主机, 以下将忽略APK发布和源码管理操作。 println 'The current compilation environment is not in WinBoll host, and the following APK publishing and source management operations will be ignore.' @@ -94,12 +94,12 @@ android { // 如果正在调试,就拷贝到 WinBoll 备份管理文件夹 // if(variant.flavorName == "beta"&&variant.buildType.name == "debug"){ - //File outBuildBckDir = new File(fWinBoLLStudioDir, "/${rootProject.name}/${variant.buildType.name}") - File outBuildBckDir = new File(fWinBoLLStudioDir, "/" + project.rootDir.name + "/${variant.buildType.name}") + //File outBuildBckDir = new File(fWinBollStudioDir, "/${rootProject.name}/${variant.buildType.name}") + File outBuildBckDir = new File(fWinBollStudioDir, "/" + project.rootDir.name + "/${variant.buildType.name}") // 创建目标路径目录 if(!outBuildBckDir.exists()) { outBuildBckDir.mkdirs(); - println "Output Folder Created.(WinBoLLStudio) : " + outBuildBckDir.getAbsolutePath() + println "Output Folder Created.(WinBollStudio) : " + outBuildBckDir.getAbsolutePath() } if(outBuildBckDir.exists()) { copy{ @@ -108,7 +108,7 @@ android { rename { String fileName -> "${outputFileName}" } - println "Output APK (WinBoLLStudio): " + outBuildBckDir.getAbsolutePath() + "/${outputFileName}" + println "Output APK (WinBollStudio): " + outBuildBckDir.getAbsolutePath() + "/${outputFileName}" } // 检查编译标志位配置 assert (winbollBuildProps['buildCount'] != null) @@ -151,8 +151,8 @@ android { String szCommonTagAPKName = project.rootDir.name + "_" + szShortVersionName + ".apk" println "CommonTagAPKName is : " + szCommonTagAPKName - //File outTagDir = new File(fWinBoLLStudioDir, "/${rootProject.name}/tag/") - File outTagDir = new File(fWinBoLLStudioDir, "/" + project.rootDir.name + "/tag/") + //File outTagDir = new File(fWinBollStudioDir, "/${rootProject.name}/tag/") + File outTagDir = new File(fWinBollStudioDir, "/" + project.rootDir.name + "/tag/") // 创建目标路径目录 if(!outTagDir.exists()) { outTagDir.mkdirs(); From d17dd8073db87e0ab7626f605b9072e3eab148a9 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 21:00:31 +0800 Subject: [PATCH 059/110] =?UTF-8?q?=E7=BC=96=E8=AF=91=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.properties | 4 ++-- libappbase/build.properties | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index 6bc1b93..dc9c0a2 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Apr 26 12:27:57 GMT 2025 +#Sun Apr 27 12:59:44 GMT 2025 stageCount=6 libraryProject=libappbase baseVersion=15.2 publishVersion=15.2.5 -buildCount=4 +buildCount=5 baseBetaVersion=15.2.6 diff --git a/libappbase/build.properties b/libappbase/build.properties index 6bc1b93..dc9c0a2 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Apr 26 12:27:57 GMT 2025 +#Sun Apr 27 12:59:44 GMT 2025 stageCount=6 libraryProject=libappbase baseVersion=15.2 publishVersion=15.2.5 -buildCount=4 +buildCount=5 baseBetaVersion=15.2.6 From f4a054663edfe888ead9d3bd7373fd8b49b24996 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 21:02:50 +0800 Subject: [PATCH 060/110] =?UTF-8?q?=E8=AE=BE=E5=AE=9A=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.gradle | 2 +- appbase/build.properties | 10 +++++----- libappbase/build.properties | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/appbase/build.gradle b/appbase/build.gradle index 727c7be..aeb9fac 100644 --- a/appbase/build.gradle +++ b/appbase/build.gradle @@ -30,7 +30,7 @@ android { // versionName 更新后需要手动设置 // .winboll/winbollBuildProps.properties 文件的 stageCount=0 // Gradle编译环境下合起来的 versionName 就是 "${versionName}.0" - versionName "15.2" + versionName "15.5" if(true) { versionName = genVersionName("${versionName}") } diff --git a/appbase/build.properties b/appbase/build.properties index dc9c0a2..94a2416 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 12:59:44 GMT 2025 +#Sun Apr 27 13:02:08 GMT 2025 stageCount=6 libraryProject=libappbase -baseVersion=15.2 -publishVersion=15.2.5 -buildCount=5 -baseBetaVersion=15.2.6 +baseVersion=15.5 +publishVersion=15.5.0 +buildCount=6 +baseBetaVersion=15.5.0 diff --git a/libappbase/build.properties b/libappbase/build.properties index dc9c0a2..94a2416 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 12:59:44 GMT 2025 +#Sun Apr 27 13:02:08 GMT 2025 stageCount=6 libraryProject=libappbase -baseVersion=15.2 -publishVersion=15.2.5 -buildCount=5 -baseBetaVersion=15.2.6 +baseVersion=15.5 +publishVersion=15.5.0 +buildCount=6 +baseBetaVersion=15.5.0 From b918b040687fe4a882a0ef52f428d137950f69e4 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 21:07:46 +0800 Subject: [PATCH 061/110] =?UTF-8?q?=E7=BC=96=E8=AF=91=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apputils/build.properties | 4 ++-- libapputils/build.properties | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apputils/build.properties b/apputils/build.properties index a1f57a0..d17d181 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 13:42:52 HKT 2025 +#Sun Apr 27 13:07:13 GMT 2025 stageCount=2 libraryProject=libapputils baseVersion=15.3 publishVersion=15.3.1 -buildCount=0 +buildCount=2 baseBetaVersion=15.3.2 diff --git a/libapputils/build.properties b/libapputils/build.properties index 94aa017..d17d181 100644 --- a/libapputils/build.properties +++ b/libapputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 13:42:46 HKT 2025 +#Sun Apr 27 13:07:13 GMT 2025 stageCount=2 libraryProject=libapputils baseVersion=15.3 publishVersion=15.3.1 -buildCount=0 +buildCount=2 baseBetaVersion=15.3.2 From b8834627aead158a05210647414f8ed2743cab6c Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Sun, 27 Apr 2025 21:10:23 +0800 Subject: [PATCH 062/110] =?UTF-8?q?=E7=BC=96=E8=AF=91=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aes/build.properties | 4 ++-- libaes/build.properties | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/aes/build.properties b/aes/build.properties index c761e08..45f24d3 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 17:40:07 HKT 2025 +#Sun Apr 27 13:09:32 GMT 2025 stageCount=2 libraryProject=libaes baseVersion=15.4 publishVersion=15.4.1 -buildCount=0 +buildCount=1 baseBetaVersion=15.4.2 diff --git a/libaes/build.properties b/libaes/build.properties index ded3dbe..45f24d3 100644 --- a/libaes/build.properties +++ b/libaes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 17:39:51 HKT 2025 +#Sun Apr 27 13:09:32 GMT 2025 stageCount=2 libraryProject=libaes baseVersion=15.4 publishVersion=15.4.1 -buildCount=0 +buildCount=1 baseBetaVersion=15.4.2 From ed193119f61ba48fcee60b39c5328d416b4ca818 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Mon, 28 Apr 2025 00:36:58 +0800 Subject: [PATCH 063/110] =?UTF-8?q?=E8=AE=BE=E5=AE=9A=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7=EF=BC=88baseBetaVersion=20=E7=89=88=E6=9C=AC=E8=A6=81?= =?UTF-8?q?=E6=AF=94publishVersion=20=E7=89=88=E6=9C=AC=E5=8A=A0=E5=A4=9A?= =?UTF-8?q?=201=20=E4=B8=AA=E7=89=88=E6=9C=AC=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.gradle | 2 +- appbase/build.properties | 12 ++++++------ libappbase/build.properties | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/appbase/build.gradle b/appbase/build.gradle index aeb9fac..4f579a6 100644 --- a/appbase/build.gradle +++ b/appbase/build.gradle @@ -30,7 +30,7 @@ android { // versionName 更新后需要手动设置 // .winboll/winbollBuildProps.properties 文件的 stageCount=0 // Gradle编译环境下合起来的 versionName 就是 "${versionName}.0" - versionName "15.5" + versionName "15.6" if(true) { versionName = genVersionName("${versionName}") } diff --git a/appbase/build.properties b/appbase/build.properties index 94a2416..6acc5fd 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 13:02:08 GMT 2025 -stageCount=6 +#Sun Apr 27 16:35:29 GMT 2025 +stageCount=0 libraryProject=libappbase -baseVersion=15.5 -publishVersion=15.5.0 -buildCount=6 -baseBetaVersion=15.5.0 +baseVersion=15.6 +publishVersion=15.6.0 +buildCount=2 +baseBetaVersion=15.6.1 diff --git a/libappbase/build.properties b/libappbase/build.properties index 94a2416..6acc5fd 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 13:02:08 GMT 2025 -stageCount=6 +#Sun Apr 27 16:35:29 GMT 2025 +stageCount=0 libraryProject=libappbase -baseVersion=15.5 -publishVersion=15.5.0 -buildCount=6 -baseBetaVersion=15.5.0 +baseVersion=15.6 +publishVersion=15.6.0 +buildCount=2 +baseBetaVersion=15.6.1 From ebb0df2a74690d45745921310ce3f68069a7c141 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Mon, 28 Apr 2025 20:05:46 +0800 Subject: [PATCH 064/110] Start New Stage Version. --- appbase/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appbase/build.properties b/appbase/build.properties index 6acc5fd..6936243 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 16:35:29 GMT 2025 +#Mon Apr 28 20:05:44 HKT 2025 stageCount=0 libraryProject=libappbase baseVersion=15.6 From 363fa0c3b3d5566fadcc450c9c3b3880ed9a99c3 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Mon, 28 Apr 2025 20:06:05 +0800 Subject: [PATCH 065/110] Start New Stage Version. --- appbase/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appbase/build.properties b/appbase/build.properties index 6936243..c5b5edf 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 20:05:44 HKT 2025 +#Mon Apr 28 20:06:05 HKT 2025 stageCount=0 libraryProject=libappbase baseVersion=15.6 From a88e1b2d99acdbb1dc77b68bebf97a7df64790b5 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Mon, 28 Apr 2025 20:12:28 +0800 Subject: [PATCH 066/110] git repos fix --- libjc/jcc/libs | 1 - 1 file changed, 1 deletion(-) delete mode 160000 libjc/jcc/libs diff --git a/libjc/jcc/libs b/libjc/jcc/libs deleted file mode 160000 index 645058e..0000000 --- a/libjc/jcc/libs +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 645058e1e350a80eb4bfe33bd252f58f4dbe09c9 From aa101977f0d18f4b791e08b5f606cd870c280847 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Mon, 28 Apr 2025 21:04:17 +0800 Subject: [PATCH 067/110] =?UTF-8?q?=E6=8A=8A=20WinBoll=20=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E6=94=B9=E4=B8=BA=20WinBoLL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .winboll/Readme.txt | 2 +- .winboll/bashCommitLibReleaseBuildFlagInfo.sh | 2 +- .winboll/bashPublishAPKAddTag.sh | 28 ++--- .winboll/bashPublishDebugAPKAddTag.sh | 28 ++--- .winboll/bashPublishLIBAddTag.sh | 4 +- .winboll/winboll_app_build.gradle | 38 +++--- .winboll/winboll_lib_build.gradle | 20 +-- README.md | 114 +++++++++--------- build.gradle | 8 +- winboll.properties-demo | 8 +- 10 files changed, 126 insertions(+), 126 deletions(-) diff --git a/.winboll/Readme.txt b/.winboll/Readme.txt index 56949ff..f618520 100644 --- a/.winboll/Readme.txt +++ b/.winboll/Readme.txt @@ -1,4 +1,4 @@ -## WinBoll 主机编译事项提醒 +## WinBoLL 主机编译事项提醒 ## 类库类型源码发布 # 类库发布使用以下面命令 diff --git a/.winboll/bashCommitLibReleaseBuildFlagInfo.sh b/.winboll/bashCommitLibReleaseBuildFlagInfo.sh index d424a3a..d92f320 100644 --- a/.winboll/bashCommitLibReleaseBuildFlagInfo.sh +++ b/.winboll/bashCommitLibReleaseBuildFlagInfo.sh @@ -37,7 +37,7 @@ fi # 使用grep找到包含"publishVersion="的那一行,然后用awk提取其后的值 PUBLISH_VERSION=$(grep -o "publishVersion=.*" $1/build.properties | awk -F '=' '{print $2}') echo "< $1/build.properties publishVersion : ${PUBLISH_VERSION} >" -## 设新的 WinBoll 标签 +## 设新的 WinBoLL 标签 # 脚本调试时使用 #tag="v7.6.4-test1" # 正式设置标签时使用 diff --git a/.winboll/bashPublishAPKAddTag.sh b/.winboll/bashPublishAPKAddTag.sh index ebdd056..0a51077 100644 --- a/.winboll/bashPublishAPKAddTag.sh +++ b/.winboll/bashPublishAPKAddTag.sh @@ -38,24 +38,24 @@ function askAddWorkflowsTag { fi } -function addWinBollTag { +function addWinBoLLTag { # 就读取脚本 .winboll/winboll_app_build.gradle 生成的 publishVersion。 # 如果文件中有 publishVersion 这一项, # 使用grep找到包含"publishVersion="的那一行,然后用awk提取其后的值 PUBLISH_VERSION=$(grep -o "publishVersion=.*" $1/build.properties | awk -F '=' '{print $2}') echo "< $1/build.properties publishVersion : ${PUBLISH_VERSION} >" - ## 设新的 WinBoll 标签 + ## 设新的 WinBoLL 标签 # 脚本调试时使用 #tag="projectname-v7.6.4-test1" # 正式设置标签时使用 tag=$1"-v"${PUBLISH_VERSION} - echo "< WinBoll Tag To: $tag >"; - # 检查是否已经添加了 WinBoll Tag + echo "< WinBoLL Tag To: $tag >"; + # 检查是否已经添加了 WinBoLL Tag if [ "$(git tag -l ${tag})" == "${tag}" ]; then - echo -e "< WinBoll Tag ${tag} exist! >" - return 1 # WinBoll标签重复 + echo -e "< WinBoLL Tag ${tag} exist! >" + return 1 # WinBoLL标签重复 fi - # 添加WinBoll标签 + # 添加WinBoLL标签 git tag -a ${tag} -F $1/app_update_description.txt return 0 } @@ -119,22 +119,22 @@ if [[ $? -eq 0 ]]; then echo $result # 发布应用 - echo "Publishing WinBoll APK ..." + echo "Publishing WinBoLL APK ..." # 脚本调试时使用 #bash gradlew :$1:assembleBetaDebug # 正式发布 bash gradlew :$1:assembleStageRelease - echo "Publishing WinBoll APK OK." + echo "Publishing WinBoLL APK OK." - # 添加 WinBoll 标签 - result=$(addWinBollTag $1) + # 添加 WinBoLL 标签 + result=$(addWinBoLLTag $1) echo $result if [[ $? -eq 0 ]]; then echo $result - # WinBoll 标签添加成功 + # WinBoLL 标签添加成功 else - echo -e "${0}: addWinBollTag $1\n${result}\nAdd WinBoll tag cancel." - exit 1 # addWinBollTag 异常 + echo -e "${0}: addWinBoLLTag $1\n${result}\nAdd WinBoLL tag cancel." + exit 1 # addWinBoLLTag 异常 fi # 添加 GitHub 工作流标签 diff --git a/.winboll/bashPublishDebugAPKAddTag.sh b/.winboll/bashPublishDebugAPKAddTag.sh index 4c66313..0deb526 100644 --- a/.winboll/bashPublishDebugAPKAddTag.sh +++ b/.winboll/bashPublishDebugAPKAddTag.sh @@ -38,24 +38,24 @@ function askAddWorkflowsTag { fi } -function addWinBollTag { +function addWinBoLLTag { # 就读取脚本 .winboll/winboll_app_build.gradle 生成的 publishVersion。 # 如果文件中有 publishVersion 这一项, # 使用grep找到包含"publishVersion="的那一行,然后用awk提取其后的值 PUBLISH_VERSION=$(grep -o "publishVersion=.*" $1/build.properties | awk -F '=' '{print $2}') echo "< $1/build.properties publishVersion : ${PUBLISH_VERSION} >" - ## 设新的 WinBoll 标签 + ## 设新的 WinBoLL 标签 # 脚本调试时使用 #tag="v7.6.4-test1" # 正式调试版设置标签时使用 tag=$1"-v"${PUBLISH_VERSION}"-debug" - echo "< WinBoll Tag To: $tag >"; - # 检查是否已经添加了 WinBoll Tag + echo "< WinBoLL Tag To: $tag >"; + # 检查是否已经添加了 WinBoLL Tag if [ "$(git tag -l ${tag})" == "${tag}" ]; then - echo -e "< WinBoll Tag ${tag} exist! >" - return 1 # WinBoll标签重复 + echo -e "< WinBoLL Tag ${tag} exist! >" + return 1 # WinBoLL标签重复 fi - # 添加WinBoll标签 + # 添加WinBoLL标签 git tag -a ${tag} -F $1/app_update_description.txt return 0 } @@ -119,22 +119,22 @@ if [[ $? -eq 0 ]]; then echo $result # 发布应用 - echo "Publishing WinBoll Debug APK ..." + echo "Publishing WinBoLL Debug APK ..." # 脚本调试时使用 #bash gradlew :$1:assembleBetaDebug # 正式发布调试版 bash gradlew :$1:assembleStageDebug - echo "Publishing WinBoll Debug APK OK." + echo "Publishing WinBoLL Debug APK OK." - # 添加 WinBoll 标签 - result=$(addWinBollTag $1) + # 添加 WinBoLL 标签 + result=$(addWinBoLLTag $1) echo $result if [[ $? -eq 0 ]]; then echo $result - # WinBoll 标签添加成功 + # WinBoLL 标签添加成功 else - echo -e "${0}: addWinBollTag $1\n${result}\nAdd WinBoll tag cancel." - exit 1 # addWinBollTag 异常 + echo -e "${0}: addWinBoLLTag $1\n${result}\nAdd WinBoLL tag cancel." + exit 1 # addWinBoLLTag 异常 fi # 添加 GitHub 工作流标签 diff --git a/.winboll/bashPublishLIBAddTag.sh b/.winboll/bashPublishLIBAddTag.sh index 035c2b4..7ab6a3a 100644 --- a/.winboll/bashPublishLIBAddTag.sh +++ b/.winboll/bashPublishLIBAddTag.sh @@ -8,7 +8,7 @@ if [ -z "$1" ]; then fi ## 正式发布使用 -git pull && bash gradlew :$1:publishReleasePublicationToWinBollReleaseRepository && bash .winboll/bashCommitLibReleaseBuildFlagInfo.sh $1 +git pull && bash gradlew :$1:publishReleasePublicationToWinBoLLReleaseRepository && bash .winboll/bashCommitLibReleaseBuildFlagInfo.sh $1 ## 调试使用 -#bash gradlew :$1:publishSnapshotWinBollPublicationToWinBollSnapshotRepository && bash .winboll/bashCommitLibReleaseBuildFlagInfo.sh $1 +#bash gradlew :$1:publishSnapshotWinBoLLPublicationToWinBoLLSnapshotRepository && bash .winboll/bashCommitLibReleaseBuildFlagInfo.sh $1 diff --git a/.winboll/winboll_app_build.gradle b/.winboll/winboll_app_build.gradle index eacc876..cea3c1f 100644 --- a/.winboll/winboll_app_build.gradle +++ b/.winboll/winboll_app_build.gradle @@ -1,4 +1,4 @@ -// WinBoll 应用签名配置 +// WinBoLL 应用签名配置 // android { @@ -31,18 +31,18 @@ android { } } - flavorDimensions "WinBollApp" + flavorDimensions "WinBoLLApp" productFlavors { beta { // 检查编译标志位配置 assert (winbollBuildProps['buildCount'] != null) - dimension "WinBollApp" + dimension "WinBoLLApp" applicationIdSuffix ".beta" LocalDateTime localDateTimeNow = LocalDateTime.now(ZoneId.of("Asia/Shanghai")); versionNameSuffix "-beta" + winbollBuildProps['buildCount'] + "_" + localDateTimeNow.format('mmss') } stage { - dimension "WinBollApp" + dimension "WinBoLLApp" } } @@ -61,7 +61,7 @@ android { } // - // WinBoll 应用包输出配置 + // WinBoLL 应用包输出配置 // 1. 配置 Stage Release 版应用包输出 // 2. 配置 Beta Debug 版应用包输出 // @@ -74,13 +74,13 @@ android { //def outputFileName="${rootProject.name}_${versionName}.apk" def outputFileName=project.rootDir.name + "_${versionName}.apk" - // 创建 WinBoll Studio 发布接口文件夹 - File fWinBollStudioDir = file("/sdcard/WinBollStudio/APKs"); - if(!fWinBollStudioDir.exists()) { - //fWinBollStudioDir.mkdirs(); + // 创建 WinBoLL Studio 发布接口文件夹 + File fWinBoLLStudioDir = file("/sdcard/WinBoLLStudio/APKs"); + if(!fWinBoLLStudioDir.exists()) { + //fWinBoLLStudioDir.mkdirs(); // 如果没有发布接口文件就不用进行APK发布和源码管理操作 - // 当前编译环境不是 WinBoll 主机, 以下将忽略APK发布和源码管理操作。 - println 'The current compilation environment is not in WinBoll host, and the following APK publishing and source management operations will be ignore.' + // 当前编译环境不是 WinBoLL 主机, 以下将忽略APK发布和源码管理操作。 + println 'The current compilation environment is not in WinBoLL host, and the following APK publishing and source management operations will be ignore.' } else { /// WINBOLL 主机的 APK 发布和源码管理操作 /// variant.getAssembleProvider().get().doFirst { @@ -91,15 +91,15 @@ android { // variant.getAssembleProvider().get().doLast { variant.outputs.forEach{ file-> - // 如果正在调试,就拷贝到 WinBoll 备份管理文件夹 + // 如果正在调试,就拷贝到 WinBoLL 备份管理文件夹 // if(variant.flavorName == "beta"&&variant.buildType.name == "debug"){ - //File outBuildBckDir = new File(fWinBollStudioDir, "/${rootProject.name}/${variant.buildType.name}") - File outBuildBckDir = new File(fWinBollStudioDir, "/" + project.rootDir.name + "/${variant.buildType.name}") + //File outBuildBckDir = new File(fWinBoLLStudioDir, "/${rootProject.name}/${variant.buildType.name}") + File outBuildBckDir = new File(fWinBoLLStudioDir, "/" + project.rootDir.name + "/${variant.buildType.name}") // 创建目标路径目录 if(!outBuildBckDir.exists()) { outBuildBckDir.mkdirs(); - println "Output Folder Created.(WinBollStudio) : " + outBuildBckDir.getAbsolutePath() + println "Output Folder Created.(WinBoLLStudio) : " + outBuildBckDir.getAbsolutePath() } if(outBuildBckDir.exists()) { copy{ @@ -108,7 +108,7 @@ android { rename { String fileName -> "${outputFileName}" } - println "Output APK (WinBollStudio): " + outBuildBckDir.getAbsolutePath() + "/${outputFileName}" + println "Output APK (WinBoLLStudio): " + outBuildBckDir.getAbsolutePath() + "/${outputFileName}" } // 检查编译标志位配置 assert (winbollBuildProps['buildCount'] != null) @@ -137,7 +137,7 @@ android { } } - // 如果正在发布,就拷贝到 WinBoll 标签管理文件夹 + // 如果正在发布,就拷贝到 WinBoLL 标签管理文件夹 // if((variant.flavorName == "stage"&&variant.buildType.name == "debug") || (variant.flavorName == "stage"&&variant.buildType.name == "release")){ @@ -151,8 +151,8 @@ android { String szCommonTagAPKName = project.rootDir.name + "_" + szShortVersionName + ".apk" println "CommonTagAPKName is : " + szCommonTagAPKName - //File outTagDir = new File(fWinBollStudioDir, "/${rootProject.name}/tag/") - File outTagDir = new File(fWinBollStudioDir, "/" + project.rootDir.name + "/tag/") + //File outTagDir = new File(fWinBoLLStudioDir, "/${rootProject.name}/tag/") + File outTagDir = new File(fWinBoLLStudioDir, "/" + project.rootDir.name + "/tag/") // 创建目标路径目录 if(!outTagDir.exists()) { outTagDir.mkdirs(); diff --git a/.winboll/winboll_lib_build.gradle b/.winboll/winboll_lib_build.gradle index d167ec1..f63aa52 100644 --- a/.winboll/winboll_lib_build.gradle +++ b/.winboll/winboll_lib_build.gradle @@ -1,4 +1,4 @@ -// 本机和 WinBoll Maven 仓库传输配置。 +// 本机和 WinBoLL Maven 仓库传输配置。 // def getDefaultVersion(){ @@ -9,7 +9,7 @@ def getDefaultVersion(){ } def siteUrl = 'https://winboll.cc/?page=studio/details.php&app=${rootProject.name}' // 项目主页 -def gitUrl = 'https://gitea.winboll.cc/WinBoll/${rootProject.name}' // 项目的git地址 +def gitUrl = 'https://gitea.winboll.cc/WinBoLL/${rootProject.name}' // 项目的git地址 def DefaultGroupId = 'cc.winboll.studio' // 类库所有者groupId def DefaultVersion = getDefaultVersion() // 版本号 def DeveloperId='zhangsken' // 开发者账号 @@ -27,10 +27,10 @@ afterEvaluate { properties.load(file("${RootProjectDir}/${winbollFilePath}").newDataInputStream()) def NexusUserName = properties.getProperty("Nexus.name") def NexusPassword = properties.getProperty("Nexus.password") - // WinBoll Release 仓库 + // WinBoLL Release 仓库 maven{ //仓库的名字和地址 - name = "WinBollRelease" + name = "WinBoLLRelease" url="https://nexus.winboll.cc/repository/maven-releases/" // 仓库用户名密码 credentials { @@ -38,10 +38,10 @@ afterEvaluate { password = NexusPassword } } - // WinBoll Snapshot 仓库 + // WinBoLL Snapshot 仓库 maven{ //仓库的名字和地址 - name = "WinBollSnapshot" + name = "WinBoLLSnapshot" url="https://nexus.winboll.cc/repository/maven-snapshots/" // 仓库用户名密码 credentials { @@ -101,9 +101,9 @@ afterEvaluate { } } - // WinBoll Maven Release 仓库传输任务 + // WinBoLL Maven Release 仓库传输任务 // - releaseWinBoll(MavenPublication) { + releaseWinBoLL(MavenPublication) { // 需要使用的变体,假设有free和pay两个变体,可以选择一个 //from components.free @@ -154,9 +154,9 @@ afterEvaluate { } // 创建名为 release 的任务结束 - // WinBoll Maven Snapshot 仓库传输任务 + // WinBoLL Maven Snapshot 仓库传输任务 // - snapshotWinBoll(MavenPublication) { + snapshotWinBoLL(MavenPublication) { // 需要使用的变体,假设有free和pay两个变体,可以选择一个 //from components.free diff --git a/README.md b/README.md index d41a785..b3319e1 100644 --- a/README.md +++ b/README.md @@ -2,22 +2,22 @@ # ☁ ☁ WinBoLL Studio Android 应用开源项目。☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ # ☁ ☁ ☁ WinBoLL 网站地址 https://www.winboll.cc/ ☁ ☁ ☁ ☁ ☁ ☁ ☁ ☁ -## WinBoll 提问 +## WinBoLL 提问 同样是 /sdcard 目录,在开发 Android 应用时, 能否实现手机编译与电脑编译的源码同步。 -☁因而 WinBoll 项目组诞生了。 +☁因而 WinBoLL 项目组诞生了。 -## WinBoll 项目组研发计划 -致力于把 WinBoll-APP 应用在手机端 Android 项目开发。 -也在探索 https://gitea.winboll.cc//APP.git 应用于 WinBoll-APP APK 分发。 -更想进阶 https://github.com//APP.git 应用于 WinBoll-APP Beta APK 分发。 +## WinBoLL 项目组研发计划 +致力于把 WinBoLL-APP 应用在手机端 Android 项目开发。 +也在探索 https://gitea.winboll.cc//APP.git 应用于 WinBoLL-APP APK 分发。 +更想进阶 https://github.com//APP.git 应用于 WinBoLL-APP Beta APK 分发。 -## WinBoll-APP 汗下... +## WinBoLL-APP 汗下... #### ☁应用何置如此呢。且观用户云云。 #### ☁ 正当下 ☁ ### -#### ☁ 且容傻家叙说 ☁ WinBoll-APP 应用场景 -### ☁ WinBoll 设备资源概述 +#### ☁ 且容傻家叙说 ☁ WinBoLL-APP 应用场景 +### ☁ WinBoLL 设备资源概述 #### ☁ 1. Raid Disk. 概述:这是一个矩阵存储类设备。 优点:该设备具有数据容错存储功能, @@ -40,58 +40,58 @@ 设备位于操作系统内部文件系统。 数据持久性与操作系统挂钩。 -#### ☁ 4. WinBoll 用户资源概述。 -1> /home/<用户名> 位于 WinBoll 操作系统目录下。 +#### ☁ 4. WinBoLL 用户资源概述。 +1> /home/<用户名> 位于 WinBoLL 操作系统目录下。 2> /rdisk/<用户名> 挂载用户 Raid Disk. 3> /data/<用户名> 挂载用户 Data Disk. 4> /sdcard/<用户名> 挂载用户 SSD Disk. -#### ☁ 5. WinBoll-APP 用户资源概述。 +#### ☁ 5. WinBoLL-APP 用户资源概述。 1> /sdcard 挂载用户手机 SD 存储/storage/emulated/0 ### ☁ 稍稍歇 ☁ ### -### ☁ 急急停 ☁ WinBoll 应用前置条件 -☁ WinBoll 主机建立 1Panel MySQL 应用。 -☁ WinBoll 主机建立 1Panel Gitea 应用。 -☁ WinBoll 主机设置 WinBoll 应用为非登录状态。 -☁ WinBoll 主机建立 WinBoll 账户与 WinBoll 用户组。 -☁ WinBoll 账户 User ID 为: J。 -☁ WinBoll 用户组 Group ID 为: Studio。 -☁ WinBoll 主机 WinBoll 1Panel Gitea 建立 WinBoll 工作组。 -☁ WinBoll 主机 WinBoll 1Panel Gitea 用户项目 APK 编译输出目录为 /sdcard/WinBollStudio/<用户名>/APKs/ -☁ WinBoll 项目配置文件示例为 "/.winboll/winboll.properties-demo"(WinBoll 项目已设置) -☁ WinBoll 项目配置文件为 "/.winboll/winboll.properties" -☁ WinBoll 项目配置文件设定为源码提交时忽略。(WinBoll 项目已设置) -☁ Gradle 项目配置文件示例为 "/.winboll/local.properties-demo"(WinBoll 项目已设置) -☁ Gradle 项目配置文件为 "/local.properties"(WinBoll 项目已设置) -☁ Gradle 项目配置文件设定为源码提交时忽略。(WinBoll 项目已设置) +### ☁ 急急停 ☁ WinBoLL 应用前置条件 +☁ WinBoLL 主机建立 1Panel MySQL 应用。 +☁ WinBoLL 主机建立 1Panel Gitea 应用。 +☁ WinBoLL 主机设置 WinBoLL 应用为非登录状态。 +☁ WinBoLL 主机建立 WinBoLL 账户与 WinBoLL 用户组。 +☁ WinBoLL 账户 User ID 为: J。 +☁ WinBoLL 用户组 Group ID 为: Studio。 +☁ WinBoLL 主机 WinBoLL 1Panel Gitea 建立 WinBoLL 工作组。 +☁ WinBoLL 主机 WinBoLL 1Panel Gitea 用户项目 APK 编译输出目录为 /sdcard/WinBoLLStudio/<用户名>/APKs/ +☁ WinBoLL 项目配置文件示例为 "/.winboll/winboll.properties-demo"(WinBoLL 项目已设置) +☁ WinBoLL 项目配置文件为 "/.winboll/winboll.properties" +☁ WinBoLL 项目配置文件设定为源码提交时忽略。(WinBoLL 项目已设置) +☁ Gradle 项目配置文件示例为 "/.winboll/local.properties-demo"(WinBoLL 项目已设置) +☁ Gradle 项目配置文件为 "/local.properties"(WinBoLL 项目已设置) +☁ Gradle 项目配置文件设定为源码提交时忽略。(WinBoLL 项目已设置) -### ☁ 登高处 ☁ WinBoll 应用需求规划 -☁ WinBoll 主机建立 WinBoll 客户端用户数据库为 MySQL winbollclient 数据库。 -☁ WinBoll 主机设置 WinBoll 客户端用户信息存储在 winbollclient 数据库中。 +### ☁ 登高处 ☁ WinBoLL 应用需求规划 +☁ WinBoLL 主机建立 WinBoLL 客户端用户数据库为 MySQL winbollclient 数据库。 +☁ WinBoLL 主机设置 WinBoLL 客户端用户信息存储在 winbollclient 数据库中。 ☁ MySQL winbollclient 数据库中 - WinBoll 客户端用户信息设定为: + WinBoLL 客户端用户信息设定为: <用户名, 验证密码, 验证邮箱, 验证手机, 唯一存储令牌Token, 备用验证邮箱>。 -☁ WinBoll 项目源码仓库托管在 WinBoll 1Panel Gitea 目录 /opt/1panel/apps/gitea/gitea/data/git/repositories/studio/app.git中。 -☁ WinBoll 主机提供 WinBoll 1Panel Gitea 应用的 WinBoll 项目源码仓库存取功能。(Gitea 应用已提供) -☁ WinBoll 主机提供 WinBoll Gitea 项目仓库存档功能。(Gitea 应用已提供) -☁ 提供 WinBoll 客户端用户登录功能。(Gitea 应用已提供) +☁ WinBoLL 项目源码仓库托管在 WinBoLL 1Panel Gitea 目录 /opt/1panel/apps/gitea/gitea/data/git/repositories/studio/app.git中。 +☁ WinBoLL 主机提供 WinBoLL 1Panel Gitea 应用的 WinBoLL 项目源码仓库存取功能。(Gitea 应用已提供) +☁ WinBoLL 主机提供 WinBoLL Gitea 项目仓库存档功能。(Gitea 应用已提供) +☁ 提供 WinBoLL 客户端用户登录功能。(Gitea 应用已提供) ### ☁ 看远方 ☁ ### -### ☁ 心忧虑 ☁ WinBoll-APP 应用前置需求 -☁ WinBoll-APP WinBoll 项目根目录设定为手机的 /sdcard/WinBollStudio/Sources 目录。(需要用户手动建立文件夹) -☁ WinBoll-APP 具有手机 /sdcard/WinBoll 目录的存储权限。(需要手机操作系统授权) -☁ WinBoll-APP WinBoll 项目仓库源码存储路径为 /sdcard/WinBollStudio/Sources/APP.git(需要用户手动建立文件夹) -☁ WinBoll-APP 项目 APK 编译输出目录为 /sdcard/WinBollStudio/APKs/ -☁ WinBoll-APP 应用签名验证可定制化。(WinBoll 项目已提供) -☁ WinBoll-APP 与系列衍生 APP 应用共享 cc.winboll.studio 命名空间资源。(WinBoll 项目已提供) -☁ WinBoll-APP 用户客户端信息存储在命名空间为 WinBoll APP MySQLLite 应用的 winbollappclient 数据库中。 -☁ WinBoll-APP MySQLLite 应用的 winbollappclient 数据库中, - WinBoll 用户客户端信息设定为: +### ☁ 心忧虑 ☁ WinBoLL-APP 应用前置需求 +☁ WinBoLL-APP WinBoLL 项目根目录设定为手机的 /sdcard/WinBoLLStudio/Sources 目录。(需要用户手动建立文件夹) +☁ WinBoLL-APP 具有手机 /sdcard/WinBoLL 目录的存储权限。(需要手机操作系统授权) +☁ WinBoLL-APP WinBoLL 项目仓库源码存储路径为 /sdcard/WinBoLLStudio/Sources/APP.git(需要用户手动建立文件夹) +☁ WinBoLL-APP 项目 APK 编译输出目录为 /sdcard/WinBoLLStudio/APKs/ +☁ WinBoLL-APP 应用签名验证可定制化。(WinBoLL 项目已提供) +☁ WinBoLL-APP 与系列衍生 APP 应用共享 cc.winboll.studio 命名空间资源。(WinBoLL 项目已提供) +☁ WinBoLL-APP 用户客户端信息存储在命名空间为 WinBoLL APP MySQLLite 应用的 winbollappclient 数据库中。 +☁ WinBoLL-APP MySQLLite 应用的 winbollappclient 数据库中, + WinBoLL 用户客户端信息设定为: <用户名, 唯一存储令牌Token>。 ### ☁ 云游四方 ☁ ### -### ☁ 呔! ☁ WinBoll-APP 应用需求规划 +### ☁ 呔! ☁ WinBoLL-APP 应用需求规划 ☁ 如要使用 WinBoLL Android 项目的 Gradle 编译功能,则需要设置以下两个文件夹。 ☁ 1. 则需要建立数据存储目录 /sdcard/WinBoLLStudio/APKs。 WinBoLL 项目源码编译出来的安装包会拷贝一份到 /sdcard/WinBoLLStudio/APKs 目录下。 @@ -99,20 +99,20 @@ WinBoLL 项目源码编译出来的安装包会拷贝一份并命名 "app.apk" 的安装文件为到 /sdcard/AppProjects 目录下。 -### ☁ 吁! ☁ WinBoll-APP 共享计划前景 -☁ WinBoll-APP 将会实现 https://winboll.cc/api 访问功能。 -☁ WinBoll-APP 将会实现手机端 Android 应用的开发与管理功能。 +### ☁ 吁! ☁ WinBoLL-APP 共享计划前景 +☁ WinBoLL-APP 将会实现 https://winboll.cc/api 访问功能。 +☁ WinBoLL-APP 将会实现手机端 Android 应用的开发与管理功能。 -## ☁ WinBoll ☁ WinBoll 主机忧虑 -☁ WinBoll 将会提供 gitea.winboll.cc 域名用户注册登录功能。 -☁ WinBoll 将会提供 WinBoll-APP 及其衍生应用的 Gitea 仓库管理服务。 -☁ WinBoll 将会提供 winboll.cc 域名 WinBoll 项目组注册登录功能。 +## ☁ WinBoLL ☁ WinBoLL 主机忧虑 +☁ WinBoLL 将会提供 gitea.winboll.cc 域名用户注册登录功能。 +☁ WinBoLL 将会提供 WinBoLL-APP 及其衍生应用的 Gitea 仓库管理服务。 +☁ WinBoLL 将会提供 winboll.cc 域名 WinBoLL 项目组注册登录功能。 # 本项目要实际运用需要注意以下几个步骤: # 在项目根目录下: ## 1. 项目模块编译环境设置(必须),settings.gradle-demo 要复制为 settings.gradle,并取消相应项目模块的注释。 ## 2. 项目 Android SDK 编译环境设置(可选),local.properties-demo 要复制为 local.properties,并按需要设置 Android SDK 目录。 -## 3. 类库型模块编译环境设置(可选),winboll.properties-demo 要复制为 winboll.properties,并按需要设置 WinBoll Maven 库登录用户信息。 +## 3. 类库型模块编译环境设置(可选),winboll.properties-demo 要复制为 winboll.properties,并按需要设置 WinBoLL Maven 库登录用户信息。 # ☆类库型项目编译方法 @@ -121,12 +121,12 @@ 设置属性 libraryProject=<类库项目模块文件夹名称> ### 再编译测试项目 $ bash .winboll/bashPublishAPKAddTag.sh <应用项目模块文件夹名称> -#### 测试项目编译后,编译器会复制一份 APK 到以下路径:"/sdcard/WinBollStudio/APKs/<项目根目录名称>/tag/" 文件夹。 +#### 测试项目编译后,编译器会复制一份 APK 到以下路径:"/sdcard/WinBoLLStudio/APKs/<项目根目录名称>/tag/" 文件夹。 ### 最后编译类库项目 $ bash .winboll/bashPublishLIBAddTag.sh <类库项目模块文件夹名称> -#### 类库模块编译命令执行后,编译器会发布到 WinBoll Nexus Maven 库:Maven 库地址可以参阅根项目目录配置 build.gradle 文件。 +#### 类库模块编译命令执行后,编译器会发布到 WinBoLL Nexus Maven 库:Maven 库地址可以参阅根项目目录配置 build.gradle 文件。 # ☆应用型项目编译方法 ## 直接调用以下命令编译应用型项目 $ bash .winboll/bashPublishAPKAddTag.sh <应用项目模块文件夹名称> -#### 应用模块编译命令执行后,编译器会复制一份 APK 到以下路径:"/sdcard/WinBollStudio/APKs/<项目根目录名称>/tag/" 文件夹。 +#### 应用模块编译命令执行后,编译器会复制一份 APK 到以下路径:"/sdcard/WinBoLLStudio/APKs/<项目根目录名称>/tag/" 文件夹。 diff --git a/build.gradle b/build.gradle index 968d25c..ab63fe7 100644 --- a/build.gradle +++ b/build.gradle @@ -7,9 +7,9 @@ buildscript { maven { url "file:///sdcard/.m2/repository" } // Nexus Maven 库地址 - // "WinBoll Release" + // "WinBoLL Release" maven { url "https://nexus.winboll.cc/repository/maven-public/" } - // "WinBoll Snapshot" + // "WinBoLL Snapshot" maven { url "https://nexus.winboll.cc/repository/maven-snapshots/" } maven { url 'https://maven.aliyun.com/repository/public/' } @@ -32,9 +32,9 @@ buildscript { allprojects { repositories { // Nexus Maven 库地址 - // "WinBoll Release" + // "WinBoLL Release" maven { url "https://nexus.winboll.cc/repository/maven-public/" } - // "WinBoll Snapshot" + // "WinBoLL Snapshot" maven { url "https://nexus.winboll.cc/repository/maven-snapshots/" } maven { url 'https://maven.aliyun.com/repository/public/' } diff --git a/winboll.properties-demo b/winboll.properties-demo index 0afe5b0..6c3233c 100644 --- a/winboll.properties-demo +++ b/winboll.properties-demo @@ -1,10 +1,10 @@ -## WinBoll Nexus Settings +## WinBoLL Nexus Settings ## These properties is setting for publishing -## library project to WinBoll Nexus Maven Repository. +## library project to WinBoLL Nexus Maven Repository. ## -## WinBoll Nexus UserName +## WinBoLL Nexus UserName #Nexus.name=nexustestuser1 -## WinBoll Nexus Password +## WinBoLL Nexus Password #Nexus.password=nexustestuserpassword From bff0ec4e5771a9debf8168d2421ac81ed000e608 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Mon, 28 Apr 2025 21:07:08 +0800 Subject: [PATCH 068/110] =?UTF-8?q?=E8=AE=BE=E5=AE=9A=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.gradle | 2 +- appbase/build.properties | 10 +++++----- libappbase/build.properties | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/appbase/build.gradle b/appbase/build.gradle index 4f579a6..816b866 100644 --- a/appbase/build.gradle +++ b/appbase/build.gradle @@ -30,7 +30,7 @@ android { // versionName 更新后需要手动设置 // .winboll/winbollBuildProps.properties 文件的 stageCount=0 // Gradle编译环境下合起来的 versionName 就是 "${versionName}.0" - versionName "15.6" + versionName "15.7" if(true) { versionName = genVersionName("${versionName}") } diff --git a/appbase/build.properties b/appbase/build.properties index c5b5edf..4b7cff6 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 20:06:05 HKT 2025 +#Mon Apr 28 13:06:16 GMT 2025 stageCount=0 libraryProject=libappbase -baseVersion=15.6 -publishVersion=15.6.0 -buildCount=2 -baseBetaVersion=15.6.1 +baseVersion=15.7 +publishVersion=15.7.0 +buildCount=1 +baseBetaVersion=15.7.1 diff --git a/libappbase/build.properties b/libappbase/build.properties index 6acc5fd..4b7cff6 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 16:35:29 GMT 2025 +#Mon Apr 28 13:06:16 GMT 2025 stageCount=0 libraryProject=libappbase -baseVersion=15.6 -publishVersion=15.6.0 -buildCount=2 -baseBetaVersion=15.6.1 +baseVersion=15.7 +publishVersion=15.7.0 +buildCount=1 +baseBetaVersion=15.7.1 From 10a8c2c1ed8cb0efc2ef2205147b3b60d6b4475e Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Mon, 28 Apr 2025 21:08:18 +0800 Subject: [PATCH 069/110] Start New Stage Version. --- appbase/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appbase/build.properties b/appbase/build.properties index 4b7cff6..8faed1e 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 13:06:16 GMT 2025 +#Mon Apr 28 21:08:17 HKT 2025 stageCount=0 libraryProject=libappbase baseVersion=15.7 From 6d02c9fc493139407528c018b1931d17bec885e7 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Mon, 28 Apr 2025 21:13:29 +0800 Subject: [PATCH 070/110] APK 15.7.0 release Publish. --- appbase/build.properties | 6 +++--- libappbase/build.properties | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index 8faed1e..46f88a8 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 21:08:17 HKT 2025 -stageCount=0 +#Mon Apr 28 21:13:29 HKT 2025 +stageCount=1 libraryProject=libappbase baseVersion=15.7 publishVersion=15.7.0 -buildCount=1 +buildCount=0 baseBetaVersion=15.7.1 diff --git a/libappbase/build.properties b/libappbase/build.properties index 4b7cff6..46f88a8 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 13:06:16 GMT 2025 -stageCount=0 +#Mon Apr 28 21:13:29 HKT 2025 +stageCount=1 libraryProject=libappbase baseVersion=15.7 publishVersion=15.7.0 -buildCount=1 +buildCount=0 baseBetaVersion=15.7.1 From d13a8a445edbe5dc53c1881344d8847258dad8be Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Mon, 28 Apr 2025 21:13:53 +0800 Subject: [PATCH 071/110] APK 15.7.1 release Publish. --- appbase/build.properties | 8 ++++---- libappbase/build.properties | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index 46f88a8..952af58 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 21:13:29 HKT 2025 -stageCount=1 +#Mon Apr 28 21:13:53 HKT 2025 +stageCount=2 libraryProject=libappbase baseVersion=15.7 -publishVersion=15.7.0 +publishVersion=15.7.1 buildCount=0 -baseBetaVersion=15.7.1 +baseBetaVersion=15.7.2 diff --git a/libappbase/build.properties b/libappbase/build.properties index 46f88a8..952af58 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 21:13:29 HKT 2025 -stageCount=1 +#Mon Apr 28 21:13:53 HKT 2025 +stageCount=2 libraryProject=libappbase baseVersion=15.7 -publishVersion=15.7.0 +publishVersion=15.7.1 buildCount=0 -baseBetaVersion=15.7.1 +baseBetaVersion=15.7.2 From 82af906fed5d74e078405067b83956dd519ded61 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Mon, 28 Apr 2025 21:14:11 +0800 Subject: [PATCH 072/110] APK 15.7.2 release Publish. --- appbase/build.properties | 8 ++++---- libappbase/build.properties | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index 952af58..d4e7070 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 21:13:53 HKT 2025 -stageCount=2 +#Mon Apr 28 21:14:11 HKT 2025 +stageCount=3 libraryProject=libappbase baseVersion=15.7 -publishVersion=15.7.1 +publishVersion=15.7.2 buildCount=0 -baseBetaVersion=15.7.2 +baseBetaVersion=15.7.3 diff --git a/libappbase/build.properties b/libappbase/build.properties index 952af58..d4e7070 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 21:13:53 HKT 2025 -stageCount=2 +#Mon Apr 28 21:14:11 HKT 2025 +stageCount=3 libraryProject=libappbase baseVersion=15.7 -publishVersion=15.7.1 +publishVersion=15.7.2 buildCount=0 -baseBetaVersion=15.7.2 +baseBetaVersion=15.7.3 From 32a0e47c870cc8962e6fe48b3a635fa3e1810134 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Mon, 28 Apr 2025 21:17:52 +0800 Subject: [PATCH 073/110] APK 15.7.3 release Publish. --- appbase/build.properties | 8 ++++---- libappbase/build.properties | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index d4e7070..10f5d95 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 21:14:11 HKT 2025 -stageCount=3 +#Mon Apr 28 21:17:52 HKT 2025 +stageCount=4 libraryProject=libappbase baseVersion=15.7 -publishVersion=15.7.2 +publishVersion=15.7.3 buildCount=0 -baseBetaVersion=15.7.3 +baseBetaVersion=15.7.4 diff --git a/libappbase/build.properties b/libappbase/build.properties index d4e7070..10f5d95 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 21:14:11 HKT 2025 -stageCount=3 +#Mon Apr 28 21:17:52 HKT 2025 +stageCount=4 libraryProject=libappbase baseVersion=15.7 -publishVersion=15.7.2 +publishVersion=15.7.3 buildCount=0 -baseBetaVersion=15.7.3 +baseBetaVersion=15.7.4 From a629941054bc572b859674b8c03b7a503a1cdb57 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Mon, 28 Apr 2025 21:22:06 +0800 Subject: [PATCH 074/110] =?UTF-8?q?=E7=BC=96=E8=AF=91=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apputils/build.properties | 4 ++-- libapputils/build.properties | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apputils/build.properties b/apputils/build.properties index d17d181..b1077f1 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 13:07:13 GMT 2025 +#Mon Apr 28 13:21:22 GMT 2025 stageCount=2 libraryProject=libapputils baseVersion=15.3 publishVersion=15.3.1 -buildCount=2 +buildCount=3 baseBetaVersion=15.3.2 diff --git a/libapputils/build.properties b/libapputils/build.properties index d17d181..b1077f1 100644 --- a/libapputils/build.properties +++ b/libapputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 13:07:13 GMT 2025 +#Mon Apr 28 13:21:22 GMT 2025 stageCount=2 libraryProject=libapputils baseVersion=15.3 publishVersion=15.3.1 -buildCount=2 +buildCount=3 baseBetaVersion=15.3.2 From 99199d445ef59e40ec6d4220330057e92d41ceff Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Mon, 28 Apr 2025 21:34:43 +0800 Subject: [PATCH 075/110] APK 15.3.2 release Publish. --- apputils/build.properties | 10 +++++----- libapputils/build.properties | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/apputils/build.properties b/apputils/build.properties index b1077f1..7e26502 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 13:21:22 GMT 2025 -stageCount=2 +#Mon Apr 28 21:34:43 HKT 2025 +stageCount=3 libraryProject=libapputils baseVersion=15.3 -publishVersion=15.3.1 -buildCount=3 -baseBetaVersion=15.3.2 +publishVersion=15.3.2 +buildCount=0 +baseBetaVersion=15.3.3 diff --git a/libapputils/build.properties b/libapputils/build.properties index b1077f1..7e26502 100644 --- a/libapputils/build.properties +++ b/libapputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 13:21:22 GMT 2025 -stageCount=2 +#Mon Apr 28 21:34:43 HKT 2025 +stageCount=3 libraryProject=libapputils baseVersion=15.3 -publishVersion=15.3.1 -buildCount=3 -baseBetaVersion=15.3.2 +publishVersion=15.3.2 +buildCount=0 +baseBetaVersion=15.3.3 From 33726a306f2cdacf999c7d4bd2c90f36d89342d8 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 00:07:26 +0800 Subject: [PATCH 076/110] =?UTF-8?q?=E7=BC=96=E8=AF=91=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apputils/build.properties | 4 ++-- libapputils/build.properties | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apputils/build.properties b/apputils/build.properties index 7e26502..0f9e170 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 21:34:43 HKT 2025 +#Mon Apr 28 16:04:51 GMT 2025 stageCount=3 libraryProject=libapputils baseVersion=15.3 publishVersion=15.3.2 -buildCount=0 +buildCount=1 baseBetaVersion=15.3.3 diff --git a/libapputils/build.properties b/libapputils/build.properties index 7e26502..0f9e170 100644 --- a/libapputils/build.properties +++ b/libapputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 21:34:43 HKT 2025 +#Mon Apr 28 16:04:51 GMT 2025 stageCount=3 libraryProject=libapputils baseVersion=15.3 publishVersion=15.3.2 -buildCount=0 +buildCount=1 baseBetaVersion=15.3.3 From 4d8675f1f7db9b38f722fa0ada947ac8efdf1ead Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 00:10:58 +0800 Subject: [PATCH 077/110] =?UTF-8?q?=E7=BC=96=E8=AF=91=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aes/build.properties | 4 ++-- libaes/build.properties | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/aes/build.properties b/aes/build.properties index 45f24d3..a2760be 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 13:09:32 GMT 2025 +#Mon Apr 28 16:10:00 GMT 2025 stageCount=2 libraryProject=libaes baseVersion=15.4 publishVersion=15.4.1 -buildCount=1 +buildCount=2 baseBetaVersion=15.4.2 diff --git a/libaes/build.properties b/libaes/build.properties index 45f24d3..a2760be 100644 --- a/libaes/build.properties +++ b/libaes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sun Apr 27 13:09:32 GMT 2025 +#Mon Apr 28 16:10:00 GMT 2025 stageCount=2 libraryProject=libaes baseVersion=15.4 publishVersion=15.4.1 -buildCount=1 +buildCount=2 baseBetaVersion=15.4.2 From 6adc96449b54ff34865e01bd0771d5c93f5a831b Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 00:19:26 +0800 Subject: [PATCH 078/110] Start New Stage Version. --- aes/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aes/build.properties b/aes/build.properties index a2760be..2a89a21 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 16:10:00 GMT 2025 +#Tue Apr 29 00:19:26 HKT 2025 stageCount=2 libraryProject=libaes baseVersion=15.4 From 2005ba6aee4d3395ad838770849c819aa71f90ce Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 00:21:37 +0800 Subject: [PATCH 079/110] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aes/build.gradle | 2 +- aes/build.properties | 12 ++++++------ libaes/build.properties | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/aes/build.gradle b/aes/build.gradle index 02dd11a..10462d5 100644 --- a/aes/build.gradle +++ b/aes/build.gradle @@ -29,7 +29,7 @@ android { // versionName 更新后需要手动设置 // 项目模块目录的 build.gradle 文件的 stageCount=0 // Gradle编译环境下合起来的 versionName 就是 "${versionName}.0" - versionName "15.4" + versionName "15.5" if(true) { versionName = genVersionName("${versionName}") } diff --git a/aes/build.properties b/aes/build.properties index 2a89a21..cec2dcf 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 00:19:26 HKT 2025 -stageCount=2 +#Mon Apr 28 16:21:02 GMT 2025 +stageCount=0 libraryProject=libaes -baseVersion=15.4 -publishVersion=15.4.1 -buildCount=2 -baseBetaVersion=15.4.2 +baseVersion=15.5 +publishVersion=15.5.0 +buildCount=1 +baseBetaVersion=15.5.1 diff --git a/libaes/build.properties b/libaes/build.properties index a2760be..cec2dcf 100644 --- a/libaes/build.properties +++ b/libaes/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 16:10:00 GMT 2025 -stageCount=2 +#Mon Apr 28 16:21:02 GMT 2025 +stageCount=0 libraryProject=libaes -baseVersion=15.4 -publishVersion=15.4.1 -buildCount=2 -baseBetaVersion=15.4.2 +baseVersion=15.5 +publishVersion=15.5.0 +buildCount=1 +baseBetaVersion=15.5.1 From daf10dd7278ad72758b5739a50f02d47b9131c68 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 00:21:59 +0800 Subject: [PATCH 080/110] Start New Stage Version. --- aes/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aes/build.properties b/aes/build.properties index cec2dcf..2a107ef 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 16:21:02 GMT 2025 +#Tue Apr 29 00:21:59 HKT 2025 stageCount=0 libraryProject=libaes baseVersion=15.5 From 204642a5cd06ef40cdc00c2627728a900f32b6b2 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 00:22:19 +0800 Subject: [PATCH 081/110] Start New Stage Version. --- aes/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aes/build.properties b/aes/build.properties index 2a107ef..29429eb 100644 --- a/aes/build.properties +++ b/aes/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 00:21:59 HKT 2025 +#Tue Apr 29 00:22:18 HKT 2025 stageCount=0 libraryProject=libaes baseVersion=15.5 From 50561a2f67ac15fa65fc562550a21840e3768878 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 12:18:32 +0800 Subject: [PATCH 082/110] =?UTF-8?q?=E6=9B=B4=E6=8D=A2Android=E9=80=82?= =?UTF-8?q?=E9=85=8D=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.gradle | 2 +- libappbase/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/appbase/build.gradle b/appbase/build.gradle index 816b866..66b0085 100644 --- a/appbase/build.gradle +++ b/appbase/build.gradle @@ -25,7 +25,7 @@ android { defaultConfig { applicationId "cc.winboll.studio.appbase" minSdkVersion 24 - targetSdkVersion 29 + targetSdkVersion 30 versionCode 1 // versionName 更新后需要手动设置 // .winboll/winbollBuildProps.properties 文件的 stageCount=0 diff --git a/libappbase/build.gradle b/libappbase/build.gradle index 2071132..62dc4d5 100644 --- a/libappbase/build.gradle +++ b/libappbase/build.gradle @@ -10,7 +10,7 @@ android { defaultConfig { minSdkVersion 24 - targetSdkVersion 29 + targetSdkVersion 30 } buildTypes { release { From b5e918b3640c8003a74ad711367cb41e33f820e7 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 12:18:51 +0800 Subject: [PATCH 083/110] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/src/main/AndroidManifest.xml | 2 +- libappbase/src/main/res/drawable/ic_miapp.png | Bin 0 -> 21452 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 libappbase/src/main/res/drawable/ic_miapp.png diff --git a/appbase/src/main/AndroidManifest.xml b/appbase/src/main/AndroidManifest.xml index 3ff9087..e8a8bdb 100644 --- a/appbase/src/main/AndroidManifest.xml +++ b/appbase/src/main/AndroidManifest.xml @@ -5,7 +5,7 @@ AF)NH;?o2#AzON_TgTDAFa(P}1EE zGqV@ZzhIFc$*5_{Ci)U%hX1?eHPfBMh&XD;dbeQ%to z$o71-=l|44@lpQaypFEn{*$@aW-wf{qxQ#YX@qa3tMuoHCe)ix3k{2R1q=)}@zieU zz1@q=p~W#t3>&nR)N10KF3dLDZ0l$fm%d5f^2)oZyYz#a21ecP8Iy~#mY7)n%}AlL zc)^Oc%(hv(oV?MMS4ImjmME#RZg<}M$t?8=bZ>!tl0h2WI+AQYHZ5eh-xos_#p;+s z8ummrt9_HK`hfwNYD@;(QkRNqJ$7LDrIM0*V)-m4|K=AuCBy(->+^u5W^;B`IFXhy!0X#eiF#-f-00pMQ%!4Z^%@{#o7#sv4c7hUv)S>_UiGU-323UkH z=I@U%(8l#Ez=I5M2n+#AiR}8f6EGCy2E2RSAu$6O3P&h)nE%@a2!as#+cWGF2*Lo* zHRJoY3lJDiCr=ot?;vaG5|hu)i$fTW7*#CHWQJvh!o76yUkLwTc_<+IKsoKa!S(hm zccshXZ|zD&_mY6(Dggs39&#?_TY)>@e3thn9Xt1azG3GrjEfYwv=|Q?SI{{B`ZG2< z2yV;>q27U{n=&UNf4Zh!9Sy$CcA4ktGOyT)>FIl6;nl3)y69J7i{6aU_w8O029xES z-b0%urqadP)#x9bCtupxwLEv2M3dy_Yp)7}dlmS>@u1&Z&7f|K=jxozYCvveQ9(AB z9{c3W`b&=_2fw{DHVdaKc@X)-NAICUJ7P`?F(o{@DOC;DZX+1<5prPZ{cxJHX*oL? zG?ftnO6OyaNA^yCN#1HTkkgFgeUK?oLpI!e;JLcW!dw4y3jY0y+1PDozrQu+dCIqn zhO?{KKFv8{c?{2YJqd0Ld3vJxE|Gv;D#QBIe#@ z&$1O&qD@~O{7X!StJs*VIWsKwGh(#7LkXKQRzE3|kW*A5IO>p~Fon@z4{xhvEVBWm zPlIU*oXxDFRXR;i-?&kUbjfpN2Z-W}Ah+4u-yzD73KbsXQX1bLI&dMxa-qfkWyL=A>rXCd8 zPAMU*((Am>g~ii0s1UJm>)Du)>e?`usZlzyrZeCYL}0VZ9@+yJ+WJr%xoj}!8F!Ds zw>^Umaw`HaG*fIYdX^;U29CbQ2OICwn_oq8+%}{#15oF!#mf|?Zn4n7Dq=V&t6eQt z4bOb(Akrv~hTwM98W#cwmu3{s9gry%Sg4aPSjc4Tw)Uu4VOTeplJFwaZ3v>NGox?k zGQaWSdnuy|4X}*gPRsc$_l;KzJ?zgy2?ii_^Kgk_0-c=)uh>299zd0j=NNNw1Khu- zO9)=nidehFKm#9>07G}_#g3BHRc#XjTHrY7d*IfSF|%B(rdhcQHNmK*1#sIY>|-?( zC>x{NaL_{yb$Xl3co1tQK-iKx9+ZZc`|Dhm>VFEsv010~QV+i2M_@{WuzR6|!8GUMU`H1@wdch0Ou&0I&9aGffqk|{1%X-)vBJ%%ZsoC~E~vK+tp%?jQPPAE zh5N>C?Hj$OR+w$Z&~ynQ8#>>~Gr44<9>`^xMc%E$d4fuqk3#r<7Y7_Luk7jbrW zq(jwdQJxsYV(}{h!e}fRfSH|PH(7Y|Js&?( zs?|9(ySo-va-(Gt*`h&OCgNOmilQPsZ>(Mxv>t7c3xaJ z>FbjuRD329Rvd@l=8ll_q-C}z2o6n4-STfiKt|8F5$@)DMTVs2 z2{_RVPU3-ptdEJ^Co*DQQ=Y}^n<_X)1|z6|sTtOhFnvUp5SGSNAN%k);eEn!W!K*p z5gsOb40{4m`V#-o)2d$|AAvZiP{&mZ{vP4*wz(! z`*tKf9`ln=v*u}OEtcYptk&;nvFC36E`|6BKczlI|dV zA(^HSrIJ^dd8PMKY`Vl_et#0}rtG60r6Rl#WV~Cg4I(~ZjCOh_w&LY-kfxp;LVCt1 zdYij6Hf*CWpUJFov^cm%$yZgb^d#{sb!`5m$;|hXw0e`oM7nX?=#J^!!E)PNhx-f? z+ahj_^RmlWn?mxUkY_r^zpQ z?Vje0j+E)udun6oOcM1nH8z-v@PeO{&i2H1FikJU7RC~c#D_6}G(iz*%n68yg%f+< zx5;$=bxz9gl~A*;5W!uc45QR#MtbryzE>|7Z48ej5@!0F{ztt_v6kJz-6)n8c^Rzjzh>N#nbU z#!z0upQ40@0>X>co9If#jY83^mI4E8$>jSF?UAGHJ(r+|m8XB7U%3Kc*+662wZrRa2X?8DKazx*HLvFP`S2w#O8cD}cEo zIbGdbdP5aHn{lVVpCV^_=JxT&;wkIgk^o8(FLWJtea%30DI=S}28V)8B<7)z-WSC$ zU)JLS%X10%B<&vssu*f!^1}oi!jL5n4h54uiq(1+fH9`PrJb2;=f=N~O>=TH-p|KM zbmV!lcLV!k?>b2agi+C< zlfFCxn^9qikKTs0%R!!7zw$K?SA0bJx}@=0skL8m_*Tt?A)+Yqi}Eq{S;NiU_=vvR z*rKYj$&c$Je!HD!ze_XwXNNj0UN7W@Ke5_8T=h6%ec8<~z{08Un8;s~;i<TWPVt=@qtFlriu0jcGO)fuCrE6K}(B@4P4rx3YaAxea=wveW8cvz7AGOFQJuZ|zAt zP^K3&b@dV3y>8OnDtYVXeN~dtu8jAO*7xrZBSg*a@~HtlpWW&?cz=mP8&E(pP!Fv(-Uknl7`E z_J9(Frtpzi9`j9zVYR$i>Yex7nfR0V2iMgDqf;B^I6OX3^oMsf(Dzgrx^)!D{cWN{ zkZMf5ssL7}8nx7{ZUrlGNq}>+O^S!_+W6hME8!b>0oWP$#tY*fGT^4Y0B%~LRrw}0 zgmUFLQX0D))Yxw?ayC`m%5o{#yqU3NxgwkGv*s^66Yw@teRs&r++gQ+kW{YGM7A;q zPGB2*uuGAxTbPyfVz_x>>Y4VOYw@oKd9AN=aFx)?UVCS0M#kH72c13K30G8;vlkoT z;!(VChQ4cCb8^qZh!jkKIQ+pDpr?#8UA-0t*E=jOwu{!I=$)L@d#_SC1gb}saWUnT9kOM)D6h?%$d6gR(%AFU#|=J0i&c#r}+$n zH7nk9beLrKr8(WIHy+;uAA1f)j*ZvB+&eB?b{%e49h(xgnPs9)Q_1CV>eR`9FEGDW z%b_QTvXc`P#oZa1mqwZEZE{*9h56PTVptb=?i|VaHB}!kd*5GbP}f#uWGvH#aDj{B z8CsPI1Hpt%hs_=SYNEkIGN(5t)LTQ#tHr>AOvW8!_^U%YAtXYF(&(ywC|{+I_J2u@)ujjdJ71P6u#P(PE#f(J1%< z%u@llP{p=C1bZEPMSmZ1d(iFe{d`oLgq3PU{>TYEUL`Bb45lP0%eM^IpWPP}quV?5 zW`DKs@F7GH`Wf(7K9MV{L}rkbDR|uzI~HCaLoIFP6spd08dXUhrvD^);-O!qxJz4S zdgxfknfaV}?>z{DWOKaf5Z>-7kxtjDcskGw!?R ze&Gz#dLNs{76wFEk4n-R3K^X$uF^)Dj>}wBomc&V+FQk#r5TlP8InKHjcgH|dyiLLt zkA)A_VdQBbNc!1JFVknx$P-^JQEY4MxA&Pl+G(>yRImEY$@sv{?({4>6eBH)rh+({T8O;sq;puK>EO^#^nfTU>5P0VKke@azusWV&mh_^GS(u zFFu$(=)eK|-8_c(Y{o-ZI}#^W&P}_Q4k>9*Fz-EdKH*fwKqwWR3R8*e+))984}$c0 z$jxQsqlaJ!a$(M&87GlXIXvjjzZ^x0mt50LMT{b}%)4qY7TH?G4$PC<0TESpM!h=N~7h&lN2QTp2#y0aVw|x}cz2 z%E_M^Z({>piDo2Pd(w{mZ9<8l_?M6|Awwpi-HWovHXue)=w~<}$WUIDo9nb*`u^@` zOneXBU;9_mt1!${fyuz`2}nf_h^~MG2oLgx3=aCa4L(R1zTvUfi6yeokGd?MjKcrJ z4@TY9)*Iyz+PO-%v+;jFkYlQM?Zv9jGpB{WPB@$PSqkVpn$EkaY*Lvv(DJJW0w!S8 zf2GL==x<&&XdZbvDbVu=iLG9ul=H9CK1a%~ey-i^>THq>Up1VB$*cy74eMr>4IpHM^7G-^{U^wo8Ze6Z85xRj3i3TS9 zEHe34+S-MW*WLu%>cAQQL9T3w0L-IG(UCK z7Y#ta?Uy*3LZDY+6OG2ZA+{Ifd;}@Q~q^m{EMM^w6AZp|>MlV38Um{wVPU+BU z<>6)W#18}jp~}a@#ayYOCE^>20$y4k=cO5ZlnMetd6*&H(~ZuxhJk*7;!u%H&jLh= zrJeTVN8{U_m^3joF5hC%)!_MC1KKkGeCU=zVj^vfXc{JOHvG-5YQV2khB7-qkSv%M zaTORJKJkC{WNN2_K{A~j=sr80=8T^$=TiTN zMeU^pKSkg$(ic|r5z#Elq?YSOxy{6vb87yHLFKw*Q!>IUuSyp(=YgRpg@I1#=?yAR z1LV~x*@GVS7jtWi4Q%sK(-nZ!wKF3?4_Nz7VXXIX9i+PMvGvD&06_RJjYW znB*w$t8#xfxI+xgLK~Px`~5DLCF4`A<@^$Caf-w+MjaPM9)mEr>#DLl@MHoVXDS|V zg`))cx1Kl;;?J$Z=wsh1`PyLKtiQ8z$jsOGm*r*t>P{c7W=t|E?@#)0?rT)q@#)JC zvLm4$-LvH--+iuJi8W=E5RIVwayv$0W@hYrrYTNGl z`F2AAj!s&n%6+%H27kUu{35<7aufAl@r49<^Jx3Ef&H?#b` zuwPLdtx+~1FVJj%Iy6?*%LMZYYq!t&^Gj#H_^%pE76D5vUr-KM8GAGPX6PFL+5q-5C|vt0I+gndtF5ATneYBGCJ_G~PzxYc$mxMKsy zj83MqD&1K#M_>r^Gsfy{&!Z75fnV6%BSRNjZnnyys=oJv3yr>usHNXELNDB84oN*% zuW{m;k+bLP^nTqlD5V!ffyq4UkH?Kz$2SBTw-tqW*rCTGTj@_H&s&%GO9pzTr_F<` zZX9sDv|8HW#wwLeU+o+{3H{6(3EZGJJkON_MR0fHQE9%ddTNR`9|Jb83OUER2}S+o zYS!|s>#cnoI_SPvOoA*S@d~`DyQr7_IV%aB5gUh71%y33Ki^~MyToW(yq$9-%I_oN z%eUUm_wZcS^;>Qm)kIu@AhHNW#7Hm&$(?bxgUcv%{x9w{d8gI1n1c$M$=1VQ&W$U= zm-ZHg)6QK1aVG-fjjyQKC!uyrbF;3^hm$Wv0xBJPrqYH*4jGF@tG$Jld7^KkwgXRg zW&*azOz+1*1LFW=RurN;-}+`1?KU+h70W96+Xz_X5p9L_wu093Bh*9B#YmzT!43_4 zsOMeG#wDG;OY_x+?W55VbhXms?F4%D^jx$ z69RIr0BV0Bs*C0Ia2?#SV`B+NoSQ3d-+n|-!8v)`hYTz@lR9F)o8BBwlyX*;YWXB( z#8kB;gjC+4Pw7F~r*Mnmk3_c8{Cr+~L$nJ;$pUek(>uGSIY5lMK4?W6S^Y&l{E+ML z{W;24y?11&YOei*`~i8Ry%OD+#{nZ-uTBO>4%RP#5`y#~q8e&h^phAl+@DiE8fi_m zO_5YUi{}r`VB3{8lS)!*)7}NPTQ(l7F3&s~AdDCl?_a?&N zO~x*kJOxa21VHjgqdCe^zVI(6on5WYOdpw*(Mdx!Zwgx)q<@f-2fWW{`5lC-QBIYf zS8eM?R7u>*3gRkL8;TkGc2N-d%<<;qr0tZd#VDe*D+Q{VPtd?@;LN!~N#~+FM6nLy zFLd$S7B}Xb3NrGU4GRnO)t;Oqq44KtC2QX{2$F8{CJu0p73FEa!gg+Chc5az9Ui{2 zQuJrP#`^OYGq~IbIy0TuddErqmv(*ci?H^_S#npE{d%!WZ-Lg+H4If5$d-2)wi2fk z7b0<5>y>y>+EU33(+BL&ylDso>mv%WP{R&adh5JkWf_&pwP&-u`C_5IYaP>8Ubaxm z6Pwi}`BdG{L_CozZeY8fMO%p@)NzZh+T+;7&&mZ_!hvI2nwt2Ta)xsypKk@wJ;xcb zjWgLC*3aFcPM!~VD84j-L+G^_S@qG zfFpjZns-x^0S4^l{P3skk>2#D?iY?#d6b0QV$z0<7uAki3xI|Wf%#=lcJ6N75 zDnnX+`UZbL+f48&WwW{F+l!7PzPu14GT)XzJc5Xp%9EX`?RWrImIZ;~GupApZdU`I~FQho_91vh`=-iFGl*0I;v%babxGJAsM1NGB{xSqs}M}H*! z0XY6_c_2f_MTPb@tzx$I#-Z=xw)RBl68jADY+PoNz?cauZG~Z%VPpKDNuhd}-gf(} zbd#&kuaKuQ<)o~^>|5#Z&^b%r#sL1syNoK#LZiP9O5VzkS+BUOV|qMzrPZ z**I1F!Ldv$|6_mk9g(ZIeEbO+F~o%xPf{dm5)%{aNme-zCv85DQYVQk53h{l(0Wp| zT?bKk)TGc>2*IbQ=n#sJxzeK zmf}4iejYC3URww0IQr9K`dLS^s4a zx0U*4%FWV-h0+i18VAk?tBqaP7puh4lzlR|LxMdj^`a=ect@{dC}oDSw)~v(R7b0| z!|fJ@MYZ=wyI(1H@1#EY;~tZ?fi1rkN#}n5onpXx5gzNs)?Ms15brfJux=kX{@koj zlj5eLgO{zPgZ>TKW5Az@arU0Sy?*yB@k6so@nzil<1Mcim9bXFZtTTt(Yg1TPz-EN5dF5S!%NQt_2~Hp< z<{5?@s+{|6@Wa3`646g>J>0M=>q)tmM=V}bhQE?=ng4L_%?Z5E6!Xixh465+9o`af>+HH0RQz1TcpR zr}N9@7<8>|?_p-X*x^>GRoN{_JEL)smDAO`WSX<*Z|-%fsR9!D$(yQV7KD1>_G|!+ z63IKgMWluP4;R4YTVY2#8N(-4h_@V~Ws#B!Y4GMH{&lwUjDulk$4L|t*H^(3vH=38 z;Z2A-?D`CJnu#a9w^smsP3`*+(pufCRz*Woc6nBWf$aWX9HM#gq=bGOT~o?xI?e|h zT;RPCA7zyCWoJm>dz$l7pWLb`8I+R2nATAF6syjfZ(5 zo?iY!{{-wa&b`uMP3Zd!KM9zPF;>s%6Pcfc@u3mY4KysxtTJ)SbGrG`g%N^W@dAu5 zqA-XKZ=<{~;8_zv9i_4NJLp!*F16pYD9k;AAzwRLkP5ES=2R;Vj>$z@11PWzHX$k@ z#=o!wX9!h5P$S@ej#P^iD-!qTaCE^BMLi)WJE*?5?nF1)Ujm&!M3<0!zukkJ7@pNX zr_G~%L<`|$H8zRH{dK#34UzQ_2%+1K8eIuzvsVM<5-~(0*e`_O+FR-N@Z1`le}0A> zHHKog?>6aicc8%y^f8QkcOeE-l-fyf{3wtZ+*5po@+N?~hAuhkEpF0!-De1YL;)ez<_K&V>X^hWQ`b)QCHiNk zreVd{Q`;rpF>HcV_%58`E@X`LD2mRU9{z;KBmO=J;#@a#B_KSU3qj0a!S!@%j83nB zMgor_bXHyPnnv|#cWPWu|i4)9Nq46@v1@On$w2%1Z;OQ2D3i}D`gsNLj%jABp z3$cdid|p9XP(pCTt`x8)cU}bTgJk@U6(qL|2&xJWV~w;ei+TiI_h$@DpsU520rDbL!S-EU;~uOYI!Xx2_($uuUxZ zjE0P{j0REzHMVcBs-b4a0s?<^TF!A%8A^z_3%-R!eSrmP5DyBr$zm6W#R@%P5{d-C zwbp%F{lQsj4F^s+6OP6fB07~B0dkKmQ&I7kFFOQC-IvcmP!-%9%bU~t_aZ?z=j~pG zAUW{9fW9Qt=`X9DdC>sS$nW`VjrcdtmMRG#ORaNq|Jz{LnQ}TY0rDo{f98RLc3uR4 zB7Z%Dk%z)%Q6K+gJbnL``C4sEV%T4-Z#fg8W)y%(pTX%7WK6TScPgLp^DeN)79Z^c z?<_0zVjvy8YjZ0E{t8CUgF|XBD(??qA!pl01_M3oIP{CXK(^YdHyB$U0u(B-ZT6tT+Fzr5;-XAA+)*QY%qg0wSzdSfqZh`RlG4w#?+rB?B< zFyiX59;o@0|E5&>6R2HdS?G=aO1!csaI&k|1871-21Ou3aj`G&Yb}*X3_E8VnHLnw zFwYOBJs(*5WxqCGnK+RH^p&a=Y*!=2Gr3nfT{3$s0qnJ7-y4kF0MIlq07;Fr%P~DB zTEu(L`stOG%LM-rPlnT9uGRvXF%f(}@!%QknyQ6>F92sxx_ciV_AhtqfjDr^|JToD zcuqJx74~HHSFr?fiCyN|Tx#nWX32kEUdNkQ&k+`zwF|JU-tMz3m{@9pY{3u&aDb0v z;kgjvAK5eb^A-9q>!WfSK!XdbK1>_!PVk81Nn%gvuDF?BJjFmLkObr~-2pHlBdvHV z%Rn-FiS2r-9}#W`V>hGLteh6!VZ2`a%B>hza>B)$N03rnnBp@yuTyAE>>cPAj5vI(12E7Z4%;5+Z}cf*Vx$-emf0qCG5FE@8-R}#IJVI-Yhp!Rs71i#)EP zH~#*UWAQNe;((N!@|QCCV>&^f)Q}K{(iew52W$BQ^&|n`e#iOCWHA7MtKzoOWbHbg zQZ#9X(2^E0ijkNVOiN6+eI9@J30eZ+t-Y%WUOuD?u=XN9aa?xQbg$JfUr(t32tYCv zwAtK#Z_@5%f$pSoguZ@>HSYD_SPk!iN~hK95B_p6Pu|p29;Ef(U>X_2m^ha89}*Q>O0C_$;+H z#%KVN=&6S8*_ZuO65PZiaaDN~@sv?$>x!<{S~QD17WCxzpi>su?&90;)Dil4eJs5w}EQ-_#khv}s~6cfGgL5In+ z4d%7?S$shsS1^ae2)gYaptB=-lIw72pepxWlSfqW47o4i5e?Xy z(lVxgIu^B^7-r74A;G{#$3LpIgRUaxdeb1w`}e5P!_CH{r&1SV%FEf4;toSrG`j+Lp^b z`uavS{6N3oFd=6^iWc>igfw(o$Q^ zjPqNUe6Cg30*mo!##7g;VZMhL*9E~V?zoTD-+!nYuF0Q zeoQ4{e*AHZBqG+$X8vSEgA4x_7#5;1Z;p+6{Hv?>=10D@5;eqo(@}CxEP&o_pBE`*Mo?~+KgGSi_g%1wHw|*iewwHfsjA_} zY~wd=jSlio*xeS>-`8% zt9V-JF^g5TvT%uCxMLS5;7bcJD!T~M=`;@t{%*{Ci# z0*J0T!GaLBOGl4KnBkgDtSNF!9gYP8$SDAon1zADGpvS}+-FD9hOqTEiEqZWrrISb zWr4^Jc+VPIWY1CcN|+aA96sP&CAaOu-|Nrp2t}?fu?ve{ee%e}x{UUczXmWQzPydE zf8Vi-uh0rEZGThkNY1r|396(??z^Bd`YZ%VcbRtpI8d&e%i^q+JrJ9T(UyP2>^YE* zF105@4A_?)KQahDWhO*_=vjR3nCM~R;`jBd&O|1)F#l0{b)wr+jQ}jH-sUg-^b9D*3a!E9(`vEN2T|G)GDPLdQQH~xtr1fN5%oEIShD_@SuH| zWx}Pu^EEyHH^07jY?q)WV$c|4f8S(8fIk7Kvfn}QZt9cNf?t7cQXq&w*_|rEiJ68C z59esGm`!jqG01FqhQ{4_>hhRP&!}hF^5+)IKRN?Ha6jK+T=2XF7rB+xqu4W%MQ>jQ zti-v2mwi{VtH(stjtx>#y9Dn7G>o2)cPRU*A2=P30ycfh70JveXDqatFn zFc*|q53Rok1BnIFsC(+q;LdLyFWxPnawL(3GrWd)i_G@ywT6odBphZEo&W(0dd1}F zKL+-h5;6*W2f}dhK|1WO8*~P^JqxE`00a5^1Q16FJM;bH0)SyZfiRo6mFNNZpC922 z&Oij!86Cs;x9JZw&-~y(7ymd-|H-udrMT~3XA5_40Hl?FT&#D=faB`CWd7H|dIw~j z8T{#0Ab{b(5>JQz(*gx{0u#J1r}W&r}ek?9XZq+Ny(P z-@UE{!Pm=$CE9EN!hxgb*U5mC;bjiws1Mc_qOk}^SSgBine!S2;qtxH|nl0hAip0iTGffQ&W z@r+QB_xIuc@&<_!#p~I2(TAe%!JjZxL<9`;6oD^gr@oe?M0G7V(k74k-KM1}JT?FHVmE)NA`E<(OTHYMcF%f=@d_$z9^kCE`=h)a%|20evEz| z=<_^Qq7+QsGP{`LEH%9ayc(1Y3d{`t9371x^2&0B-r}$DKwFSCSQgE#T~Nj zoQKZ?ru^0E?==s!P%1z{Ce&I2*C4=EF635vd52 zfC40kt>Vlk3Xp}j$qzSFfZkV|T3ei#TJMYrtf%wJt4rth4f7ecN^5!P!z7VbkTLg} zGPK`sm1cG~ld0l?Ybt*Uz&=}X{CYgBHj58(NziCQi%Kw8dj~4%?%52(_#fpVorOJ}D`gagBRfnfp8ke`{Voo8* zyLIK~?aqfKa|tvN*=Zw*AhiyFK~x|Tpj=bbIC|>+)(;36;6T(>SyNmvZ3+2Y&%7y% zS>CKFJu5>=P)gxTfykdBxeq?i(8vAyYX80vp}7xKdsO)bz*p(p^xj4g!#*M2BdClH zNbENSSt|$~0FDxG{ZVT@*z5uO9k7b_?K)Y9nZpjAbZOPGOuMN$_wHHmN%}^K=hr^B zFN?8cAMi7qck#K~dtm)7>C!hkb>_-i_HB%YcwcL&K#;JBoX7;ji?`0BD**=DF(0f& zx@h+Izh|(D zmtlP^nE`=*{y2h$8JAnXkeq_8D1+^@&in!S@%fpZy!07MjScfR*_DY!4hJY+EjwQ= zVp_!)eX*<3AjtZCl~^(v|jX2^6mEq{ghzOhHtJ`5%PGLES}nX=T?pEDo{1u zj~9#?SO2-1z4OYw<1jxkty9gw=yPhcoPg8d$1qC0l@$XGBK5x z+s|_@vHsEdFKNfP@_YwgX`P&swpYe5=43>~$IXJNrE0AJ#?McfUFxlcCj%Ovj-oBr zY5khA?8`#g9qj9*+-+mq`uceBS`=?N-<-cX9f+NeudcOudu6(=N#UKfn&j-hCP|&P zK3ux25nZBxt4_3B!)P*5RZnkf_JYQvX~3cP{yzXU;Pk4XI5ppu2yE1-;KbAfLDhG`weDU3INP%+K@|s= z&{_oFMs6K}*Xw~;kYMDU_soOWX(^jVoPwbaac^7;6hgmSQ>TeDsqsr+%yq1e7gdNT zYA*KIj;R-qM=;a6T@)FJUU73kH}W0-2?WbtLdN{3tbn5C&3W6A>hESTDSUjR>||Ctfki#vhc5po z@RkQ6ZAQC_YupLYe$1gjbj+Tbe)n$(3%d?sLliatHnRXi5pz3P?2W$xFC!4}hLm;T z|J(dT4h)s$8RYz*;2B72zatjZ`9~B$|C_lEn4jzT86E=6grqH!t?=V)R7BFEiE;_C zJX_$)oRE?8B<* zm|KArUY(TcVN3IEG&o&S^*(q3b9)3^sxHne)*qPtW{P}y#!n2w^H6#8VO*uU{7%## zYTyYF)NZ@=TLTkF;SmX#7*6-PXp+@p(n`?tI|xLwb^Tocj_Ozo1ZXn)9bHJlKYW{1pHPL)s1np?ub;LyY!X2b-fMyxeX{uh7GLtn}(lM*Dl(ZP%{7`{*7et)G!LY zjXJtb#S%--3S5mZ{vMjU>t`C1V+Sw9C?1kM#CiD^?g_Qq2uRwwm>b5#?|tl8umX~@ zkdj*#lP~K1J1(>Q`XV?W6GX&L8ptCAz~!DT`Qv}>D0ErAKd1k+X=Ka+VKCn<+y?Bf z^Kc1~ZQeZK)gw0{E0@YhkpQ1@$JyhwnMUP*SRQs*(alW`p-!N#O6wWO4Gg(Q)@i%y zm>b|wzr+N++MgKcdBmN$pEik8bJz4fbsKHS9A2LT`XXxHP1e7QMeNo3)O;u9(p*r2tgZL&}#$9(9~aN;Bh8#Gn?Qkn1JNfp7pSQBf8EDl659*eOW8gO=L z*LU@?BHL$r2{Nk!i89|>{qC*m_+#RGE-tK5T+VcY{)a6fMM-7FcBscIp?zSI( zK-PPdRX6!)9yJE`hCqjH;DqMYK_iMWK8T+?9?xL>_M13O8su= z{jlVgL;tEvL#9u$!&bwi@)KR^YoiNLG=IjIf8h<8M5$E168%#cem-H9s*z*j-BT%` zs!=X$!=YQX=oo#m5mEAkO-b(gC)`t&jArQS!S6eEwx0+`lV;coTsywaCH&bpQ;pC6 zz|k{t(AAUtSl#XQ#LAq4-J;`n%NCz`F$dNMOc;7${vniVKxo(~+R5%X=;Jj}0@IpZ z`0a-ynG!?3+MnznmYMxoIm`*guDxxA!P#bAF`2A@q51mc{I8(_wiEmb#HIrMYiLFQ z?eL0>P2z780$e!KdFY4#;KN@5-C(n@g!?aC4A?^`9Fhzt`D;#JU6*kvCSUz+;xPc$ z6+!j@^4FYRf5sy3eGL8ICKwnB&j}*)AL|P68i)nn8~}0jKh_li3fd>)PZ;FM(65h!x4=*-n29|$r_mg z&asjW;j254H^3G9`8=&jOD6s0xUnAX$%Z(*6$h@gt*6y0SHNKxY)}zn|3OdBBT+li z5BTKUI3Nk6Io`6vkwfRjZx6bJ&KkW2Su|ABUv-Sv2ziTytbDVK(uoBnv#K+x>#_qTtHUDxRM zxz$AM=7nYFYc106Ei+^+%dc4cOL=cK;~KqG--Nun>D~X_n;P_iF5OolWG&O^ZT6=r zC%bm(Ii@p9CV2qYUIzcypR{-Oy_u&z>4&_ioqd1hai&~Ng}rtgC#&tgw*Q{=`~(gb zU_-s33OH<+XJ&FA+PiZl0Rs0eN7Tu)d~K^)pMB*0q!W=E_fMo8`OmrbveD;<@_!3y-q{ zw+i{auelks{q)T=vt_DTi*tWvuehi4yS&z84f25p!nonPtcVH@9Aod$iWyKqrSuve)$8 zaYf*eUdPvN0SoIt3+{aU;+|6SsYGdc0k`shwYL)W?)`?#zMr^Xr1jwAJ^2%N-R;ya zZ+5Plw=c)izW2%QYd>$BUIr4esAn)RC$m32cUXQZaQSa2ONdIFPhwZ);FsoPJ>YSuW#-zS>sQ~`Hh=racCKsE6M5HIh5jGF_Rpha|8s&upe1v^ z`)i$YzN|caZpQhd*SVi={oHOEs}I~BJAd8J_Z<^liZ)5jvRI|`V88eG3$!{>|}Oq0o_R zcEGCcwrKszw#j#Qf4p8|duRULf7%~^01r(A?YwycJe29=nL8Oer%lXWZRe|he{6g9 zpVs)W+7o&Ir~a69e@Q0>b(O=>n<1QOnOvv!MQ=uBMi=jmd-GX4PqU4sQ2?0poW59@ z**iPzW`23`;&b3>OkU3q%r&yBz2+*oCG)}5qc!>^24+oLH$N8RDvv&`eYf-|%cRJt zqsDcyyF5S4__YLhp2o}>FN-%bvDTdy&)Bwa{`J#Sfs-}nSNCuHnf81#Fq4P9c)axH z!R?4M&0O6Qik96kwE%8>nQ(6+aOLDx-OamP5>B&}MP1XAsmfztB76Ezy*_ZC>r6lO z>tWkY?b>zPwD14cb)VO-&gx$C$1W|!Zi8=AdYjyZV441tKYZ4oIlI#T(`E7Rp4*~M zeNDE@$h@JRE0uKfUHFQ18Q%m&%^VYM0`vQ6w`2TH3JI6bU;D}9FEjn(O1(Q5$^GkNmY Date: Tue, 29 Apr 2025 12:19:32 +0800 Subject: [PATCH 084/110] =?UTF-8?q?=E7=BC=96=E8=AF=91=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.properties | 4 ++-- libappbase/build.properties | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index 10f5d95..6fb3f12 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 21:17:52 HKT 2025 +#Tue Apr 29 04:19:08 GMT 2025 stageCount=4 libraryProject=libappbase baseVersion=15.7 publishVersion=15.7.3 -buildCount=0 +buildCount=4 baseBetaVersion=15.7.4 diff --git a/libappbase/build.properties b/libappbase/build.properties index 10f5d95..6fb3f12 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 21:17:52 HKT 2025 +#Tue Apr 29 04:19:08 GMT 2025 stageCount=4 libraryProject=libappbase baseVersion=15.7 publishVersion=15.7.3 -buildCount=0 +buildCount=4 baseBetaVersion=15.7.4 From 2be7e2cbafc95803882d3f105ab7aa530a8201b6 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 12:21:17 +0800 Subject: [PATCH 085/110] =?UTF-8?q?=E7=BC=96=E8=AF=91=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.properties | 4 ++-- libappbase/build.properties | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index 6fb3f12..1d9cc1c 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 04:19:08 GMT 2025 +#Tue Apr 29 04:20:48 GMT 2025 stageCount=4 libraryProject=libappbase baseVersion=15.7 publishVersion=15.7.3 -buildCount=4 +buildCount=5 baseBetaVersion=15.7.4 diff --git a/libappbase/build.properties b/libappbase/build.properties index 6fb3f12..1d9cc1c 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 04:19:08 GMT 2025 +#Tue Apr 29 04:20:48 GMT 2025 stageCount=4 libraryProject=libappbase baseVersion=15.7 publishVersion=15.7.3 -buildCount=4 +buildCount=5 baseBetaVersion=15.7.4 From 5a1f1f2d7340dddceb8ee571fdfd0ef761dd5b44 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 13:04:45 +0800 Subject: [PATCH 086/110] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20WinBoll=20?= =?UTF-8?q?=E4=B8=BA=20WinBoLL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cc/winboll/studio/aes/AboutActivity.java | 8 +- .../cc/winboll/studio/aes/MainActivity.java | 6 +- .../winboll/studio/aes/WinBollActivity.java | 8 +- libaes/src/main/AndroidManifest.xml | 4 +- .../activitys/DrawerFragmentActivity.java | 6 +- .../unittests/SecondaryLibraryActivity.java | 4 +- .../TestASupportToolbarActivity.java | 4 +- .../unittests/TestAToolbarActivity.java | 4 +- .../unittests/TestDrawerFragmentActivity.java | 4 +- .../studio/libaes/utils/AESThemeUtil.java | 10 +-- .../studio/libaes/winboll/AboutView.java | 34 +++---- .../libaes/winboll/AssistantService.java | 20 ++--- .../winboll/EWUIStatusIconDrawable.java | 2 +- .../winboll/IWinBollClientServiceBinder.java | 8 +- .../libaes/winboll/WinBollClientService.java | 86 +++++++++--------- .../winboll/WinBollClientServiceBean.java | 22 ++--- .../studio/libaes/winboll/WinBollMail.java | 6 +- .../WinBollServerConnectionThread.java | 10 +-- .../winboll/WinBollServiceStatusView.java | 88 +++++++++---------- libaes/src/main/res/layout/view_about_dev.xml | 4 +- libaes/src/main/res/layout/view_about_www.xml | 4 +- libaes/src/main/res/values-zh/string.xml | 2 +- libaes/src/main/res/values/strings.xml | 2 +- 23 files changed, 173 insertions(+), 173 deletions(-) diff --git a/aes/src/main/java/cc/winboll/studio/aes/AboutActivity.java b/aes/src/main/java/cc/winboll/studio/aes/AboutActivity.java index bc1ff3b..b30a180 100644 --- a/aes/src/main/java/cc/winboll/studio/aes/AboutActivity.java +++ b/aes/src/main/java/cc/winboll/studio/aes/AboutActivity.java @@ -15,9 +15,9 @@ import androidx.appcompat.widget.Toolbar; import cc.winboll.studio.libaes.winboll.APPInfo; import cc.winboll.studio.libaes.winboll.AboutView; import cc.winboll.studio.libappbase.GlobalApplication; -import cc.winboll.studio.libappbase.winboll.IWinBollActivity; +import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; -public class AboutActivity extends WinBollActivity implements IWinBollActivity { +public class AboutActivity extends WinBoLLActivity implements IWinBoLLActivity { public static final String TAG = "AboutActivity"; @@ -64,13 +64,13 @@ public class AboutActivity extends WinBollActivity implements IWinBollActivity { ); layout.addView(aboutView, params); - GlobalApplication.getWinBollActivityManager().add(this); + GlobalApplication.getWinBoLLActivityManager().add(this); } @Override protected void onDestroy() { super.onDestroy(); - GlobalApplication.getWinBollActivityManager().registeRemove(this); + GlobalApplication.getWinBoLLActivityManager().registeRemove(this); } public AboutView CreateAboutView() { diff --git a/aes/src/main/java/cc/winboll/studio/aes/MainActivity.java b/aes/src/main/java/cc/winboll/studio/aes/MainActivity.java index 7d76e83..73fcd02 100644 --- a/aes/src/main/java/cc/winboll/studio/aes/MainActivity.java +++ b/aes/src/main/java/cc/winboll/studio/aes/MainActivity.java @@ -25,12 +25,12 @@ import cc.winboll.studio.libaes.unittests.TestAToolbarActivity; import cc.winboll.studio.libaes.unittests.TestDrawerFragmentActivity; import cc.winboll.studio.libaes.unittests.TestViewPageFragment; import cc.winboll.studio.libappbase.LogUtils; -import cc.winboll.studio.libappbase.winboll.IWinBollActivity; +import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; import com.a4455jkjh.colorpicker.ColorPickerDialog; import com.hjq.toast.ToastUtils; import java.util.ArrayList; -public class MainActivity extends DrawerFragmentActivity implements IWinBollActivity { +public class MainActivity extends DrawerFragmentActivity implements IWinBoLLActivity { public static final String TAG = "MainActivity"; @@ -123,7 +123,7 @@ public class MainActivity extends DrawerFragmentActivity implements IWinBollActi public boolean onOptionsItemSelected(MenuItem item) { int nItemId = item.getItemId(); // if (item.getItemId() == R.id.item_log) { -// WinBollActivityManager.getInstance(this).startWinBollActivity(getApplicationContext(), LogActivity.class); +// WinBoLLActivityManager.getInstance(this).startWinBoLLActivity(getApplicationContext(), LogActivity.class); // } else if (nItemId == R.id.item_atoast) { Toast.makeText(getApplication(), "item_testatoast", Toast.LENGTH_SHORT).show(); diff --git a/aes/src/main/java/cc/winboll/studio/aes/WinBollActivity.java b/aes/src/main/java/cc/winboll/studio/aes/WinBollActivity.java index a15318d..af25247 100644 --- a/aes/src/main/java/cc/winboll/studio/aes/WinBollActivity.java +++ b/aes/src/main/java/cc/winboll/studio/aes/WinBollActivity.java @@ -5,17 +5,17 @@ import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import cc.winboll.studio.libaes.beans.AESThemeBean; import cc.winboll.studio.libaes.utils.AESThemeUtil; -import cc.winboll.studio.libappbase.winboll.IWinBollActivity; +import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; import android.view.MenuItem; /** * @Author ZhanGSKen@AliYun.Com * @Date 2025/03/30 00:34:02 - * @Describe WinBoll 活动窗口通用基类 + * @Describe WinBoLL 活动窗口通用基类 */ -public class WinBollActivity extends AppCompatActivity implements IWinBollActivity { +public class WinBoLLActivity extends AppCompatActivity implements IWinBoLLActivity { - public static final String TAG = "WinBollActivity"; + public static final String TAG = "WinBoLLActivity"; protected volatile AESThemeBean.ThemeType mThemeType; diff --git a/libaes/src/main/AndroidManifest.xml b/libaes/src/main/AndroidManifest.xml index 33e8010..d8cbd79 100644 --- a/libaes/src/main/AndroidManifest.xml +++ b/libaes/src/main/AndroidManifest.xml @@ -17,13 +17,13 @@ - - diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/activitys/DrawerFragmentActivity.java b/libaes/src/main/java/cc/winboll/studio/libaes/activitys/DrawerFragmentActivity.java index b353823..9698899 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/activitys/DrawerFragmentActivity.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/activitys/DrawerFragmentActivity.java @@ -29,11 +29,11 @@ import cc.winboll.studio.libaes.utils.AESThemeUtil; import cc.winboll.studio.libaes.views.ADrawerMenuListView; import cc.winboll.studio.libappbase.GlobalApplication; import cc.winboll.studio.libappbase.LogUtils; -import cc.winboll.studio.libappbase.winboll.IWinBollActivity; +import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; import com.baoyz.widget.PullRefreshLayout; import java.util.ArrayList; -public abstract class DrawerFragmentActivity extends AppCompatActivity implements IWinBollActivity,AdapterView.OnItemClickListener { +public abstract class DrawerFragmentActivity extends AppCompatActivity implements IWinBoLLActivity,AdapterView.OnItemClickListener { public static final String TAG = "DrawerFragmentActivity"; @@ -177,7 +177,7 @@ public abstract class DrawerFragmentActivity extends AppCompatActivity implement getString(i); } } else if (R.id.item_log == item.getItemId()) { - GlobalApplication.getWinBollActivityManager().startLogActivity(this); + GlobalApplication.getWinBoLLActivityManager().startLogActivity(this); } else if (R.id.item_about == item.getItemId()) { LogUtils.d(TAG, "onAbout"); } else if (android.R.id.home == item.getItemId()) { diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/unittests/SecondaryLibraryActivity.java b/libaes/src/main/java/cc/winboll/studio/libaes/unittests/SecondaryLibraryActivity.java index 42cdef8..664a07d 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/unittests/SecondaryLibraryActivity.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/unittests/SecondaryLibraryActivity.java @@ -7,14 +7,14 @@ import android.view.MenuItem; import android.widget.Toast; import cc.winboll.studio.libaes.R; import cc.winboll.studio.libaes.activitys.DrawerFragmentActivity; -import cc.winboll.studio.libappbase.winboll.IWinBollActivity; +import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; /** * @Author ZhanGSKen@QQ.COM * @Date 2024/06/15 00:58:10 * @Describe 第二级窗口 */ -public class SecondaryLibraryActivity extends DrawerFragmentActivity implements IWinBollActivity { +public class SecondaryLibraryActivity extends DrawerFragmentActivity implements IWinBoLLActivity { public static final String TAG = "SecondaryLibraryActivity"; diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/unittests/TestASupportToolbarActivity.java b/libaes/src/main/java/cc/winboll/studio/libaes/unittests/TestASupportToolbarActivity.java index 1ba071d..5fcfa97 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/unittests/TestASupportToolbarActivity.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/unittests/TestASupportToolbarActivity.java @@ -11,9 +11,9 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import cc.winboll.studio.libaes.R; import cc.winboll.studio.libaes.utils.AESThemeUtil; -import cc.winboll.studio.libappbase.winboll.IWinBollActivity; +import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; -public class TestASupportToolbarActivity extends AppCompatActivity implements IWinBollActivity { +public class TestASupportToolbarActivity extends AppCompatActivity implements IWinBoLLActivity { public static final String TAG = "TestASupportToolbarActivity"; diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/unittests/TestAToolbarActivity.java b/libaes/src/main/java/cc/winboll/studio/libaes/unittests/TestAToolbarActivity.java index 2aa4f4d..02af7f9 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/unittests/TestAToolbarActivity.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/unittests/TestAToolbarActivity.java @@ -10,9 +10,9 @@ import android.os.Bundle; import android.widget.Toolbar; import cc.winboll.studio.libaes.R; import cc.winboll.studio.libaes.utils.AESThemeUtil; -import cc.winboll.studio.libappbase.winboll.IWinBollActivity; +import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; -public class TestAToolbarActivity extends Activity implements IWinBollActivity { +public class TestAToolbarActivity extends Activity implements IWinBoLLActivity { public static final String TAG = "TestAToolbarActivity"; diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/unittests/TestDrawerFragmentActivity.java b/libaes/src/main/java/cc/winboll/studio/libaes/unittests/TestDrawerFragmentActivity.java index 2646e1c..69d59bd 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/unittests/TestDrawerFragmentActivity.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/unittests/TestDrawerFragmentActivity.java @@ -17,10 +17,10 @@ import cc.winboll.studio.libaes.R; import cc.winboll.studio.libaes.activitys.DrawerFragmentActivity; import cc.winboll.studio.libaes.beans.DrawerMenuBean; import cc.winboll.studio.libappbase.LogUtils; -import cc.winboll.studio.libappbase.winboll.IWinBollActivity; +import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; import java.util.ArrayList; -public class TestDrawerFragmentActivity extends DrawerFragmentActivity implements IWinBollActivity { +public class TestDrawerFragmentActivity extends DrawerFragmentActivity implements IWinBoLLActivity { @Override public Activity getActivity() { diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/utils/AESThemeUtil.java b/libaes/src/main/java/cc/winboll/studio/libaes/utils/AESThemeUtil.java index 1ed8022..5caab19 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/utils/AESThemeUtil.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/utils/AESThemeUtil.java @@ -41,7 +41,7 @@ public class AESThemeUtil { activity.setTheme(getThemeTypeID(activity)); } - /*public static void applyWinBollTheme(T activity) { + /*public static void applyWinBoLLTheme(T activity) { activity.setTheme(getThemeTypeID(activity.getApplicationContext())); }*/ @@ -53,7 +53,7 @@ public class AESThemeUtil { activity.setTheme(AESThemeBean.getThemeStyleID(themeType)); } - /*public static void applyWinBollTheme(Activity activity, AESThemeBean.ThemeType themeType) { + /*public static void applyWinBoLLTheme(Activity activity, AESThemeBean.ThemeType themeType) { activity.setTheme(AESThemeBean.getThemeStyleID(themeType)); }*/ @@ -65,7 +65,7 @@ public class AESThemeUtil { activity.getMenuInflater().inflate(R.menu.toolbar_apptheme, menu); } - /*public static void inflateWinBollMenu(T activity, Menu menu) { + /*public static void inflateWinBoLLMenu(T activity, Menu menu) { activity.getMenuInflater().inflate(R.menu.toolbar_apptheme, menu); }*/ @@ -131,7 +131,7 @@ public class AESThemeUtil { return false; } - public static boolean onWinBollThemeItemSelected(T activity, MenuItem item) { + public static boolean onWinBoLLThemeItemSelected(T activity, MenuItem item) { int nThemeStyleID; if (R.id.item_depththeme == item.getItemId()) { nThemeStyleID = AESThemeBean.getThemeStyleID(AESThemeBean.ThemeType.DEPTH); @@ -162,7 +162,7 @@ public class AESThemeUtil { return false; } - public static boolean onWinBollThemeItemSelected(T activity, MenuItem item) { + public static boolean onWinBoLLThemeItemSelected(T activity, MenuItem item) { int nThemeStyleID; if (R.id.item_depththeme == item.getItemId()) { nThemeStyleID = AESThemeBean.getThemeStyleID(AESThemeBean.ThemeType.DEPTH); diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/AboutView.java b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/AboutView.java index 991b8ef..1765310 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/AboutView.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/AboutView.java @@ -3,7 +3,7 @@ package cc.winboll.studio.libaes.winboll; /** * @Author ZhanGSKen@AliYun.Com * @Date 2025/03/24 15:08:52 - * @Describe WinBoll应用介绍视图 + * @Describe WinBoLL应用介绍视图 */ import android.content.Context; import android.content.Intent; @@ -43,7 +43,7 @@ public class AboutView extends LinearLayout { Context mContext; APPInfo mAPPInfo; - WinBollServiceStatusView mWinBollServiceStatusView; + WinBoLLServiceStatusView mWinBoLLServiceStatusView; OnRequestDevUserInfoAutofillListener mOnRequestDevUserInfoAutofillListener; String mszAppName = ""; String mszAppAPKFolderName = ""; @@ -57,7 +57,7 @@ public class AboutView extends LinearLayout { String mszHomePage = ""; String mszGitea = ""; int mnAppIcon = 0; - String mszWinBollServerHost; + String mszWinBoLLServerHost; String mszReleaseAPKName; EditText metDevUserName; EditText metDevUserPassword; @@ -107,7 +107,7 @@ public class AboutView extends LinearLayout { mszAppDescription = mAPPInfo.getAppDescription(); mnAppIcon = mAPPInfo.getAppIcon(); - mszWinBollServerHost = GlobalApplication.isDebuging() ? "https://dev.winboll.cc": "https://www.winboll.cc"; + mszWinBoLLServerHost = GlobalApplication.isDebuging() ? "https://dev.winboll.cc": "https://www.winboll.cc"; try { mszAppVersionName = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0).versionName; @@ -115,7 +115,7 @@ public class AboutView extends LinearLayout { LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); } mszCurrentAppPackageName = mszAppAPKName + "_" + mszAppVersionName + ".apk"; - mszHomePage = mszWinBollServerHost + "/studio/details.php?app=" + mszAppAPKFolderName; + mszHomePage = mszWinBoLLServerHost + "/studio/details.php?app=" + mszAppAPKFolderName; if (mAPPInfo.getAppGitAPPBranch().equals("")) { mszGitea = "https://gitea.winboll.cc/" + mAPPInfo.getAppGitOwner() + "/" + mszAppGitName; } else { @@ -132,9 +132,9 @@ public class AboutView extends LinearLayout { metDevUserName.setText(PrefUtils.getString(mContext, "metDevUserName", "")); metDevUserPassword.setText(PrefUtils.getString(mContext, "metDevUserPassword", "")); //mDevelopHostConnectionStatusView = new DevelopHostConnectionStatusView(context); - mWinBollServiceStatusView = addedView.findViewById(R.id.viewaboutdevWinBollServiceStatusView1); - mWinBollServiceStatusView.setServerHost(mszWinBollServerHost); - mWinBollServiceStatusView.setAuthInfo(metDevUserName.getText().toString(), metDevUserPassword.getText().toString()); + mWinBoLLServiceStatusView = addedView.findViewById(R.id.viewaboutdevWinBoLLServiceStatusView1); + mWinBoLLServiceStatusView.setServerHost(mszWinBoLLServerHost); + mWinBoLLServiceStatusView.setAuthInfo(metDevUserName.getText().toString(), metDevUserPassword.getText().toString()); //llMain.addView(mDevelopHostConnectionStatusView); llMain.addView(createAboutPage()); addView(addedView); @@ -143,9 +143,9 @@ public class AboutView extends LinearLayout { View addedView = inflater.inflate(R.layout.view_about_www, this, false); LinearLayout llMain = addedView.findViewById(R.id.viewaboutwwwLinearLayout1); //mDevelopHostConnectionStatusView = new DevelopHostConnectionStatusView(context); - mWinBollServiceStatusView = addedView.findViewById(R.id.viewaboutwwwWinBollServiceStatusView1); - mWinBollServiceStatusView.setServerHost(mszWinBollServerHost); - mWinBollServiceStatusView.setAuthInfo("", ""); + mWinBoLLServiceStatusView = addedView.findViewById(R.id.viewaboutwwwWinBoLLServiceStatusView1); + mWinBoLLServiceStatusView.setServerHost(mszWinBoLLServerHost); + mWinBoLLServiceStatusView.setAuthInfo("", ""); //llMain.addView(mDevelopHostConnectionStatusView); llMain.addView(createAboutPage()); addView(addedView); @@ -291,7 +291,7 @@ public class AboutView extends LinearLayout { GlobalApplication.setIsDebuging(true); GlobalApplication.saveDebugStatus(); - GlobalApplication.getWinBollActivityManager().finishAll(); + GlobalApplication.getWinBoLLActivityManager().finishAll(); context.startActivity(intent); } } @@ -303,7 +303,7 @@ public class AboutView extends LinearLayout { GlobalApplication.setIsDebuging(false); GlobalApplication.saveDebugStatus(); - GlobalApplication.getWinBollActivityManager().finishAll(); + GlobalApplication.getWinBoLLActivityManager().finishAll(); context.startActivity(intent); } } @@ -323,7 +323,7 @@ public class AboutView extends LinearLayout { new Thread(new Runnable() { @Override public void run() { - String szUrl = mszWinBollServerHost + "/studio/details.php?app=" + mszAppAPKFolderName; + String szUrl = mszWinBoLLServerHost + "/studio/details.php?app=" + mszAppAPKFolderName; // 构建包含认证信息的请求 String credential = ""; if (GlobalApplication.isDebuging()) { @@ -331,8 +331,8 @@ public class AboutView extends LinearLayout { PrefUtils.saveString(mContext, "metDevUserName", metDevUserName.getText().toString()); PrefUtils.saveString(mContext, "metDevUserPassword", metDevUserPassword.getText().toString()); } else { - String username = "WinBoll"; - String password = "WinBollPowerByZhanGSKen"; + String username = "WinBoLL"; + String password = "WinBoLLPowerByZhanGSKen"; credential = Credentials.basic(username, password); } @@ -384,7 +384,7 @@ public class AboutView extends LinearLayout { YesNoAlertDialog.OnDialogResultListener mIsDownlaodUpdateListener = new YesNoAlertDialog.OnDialogResultListener() { @Override public void onYes() { - String szUrl = mszWinBollServerHost + "/studio/download.php?appname=" + mszAppAPKFolderName + "&apkname=" + mszNewestAppPackageName; + String szUrl = mszWinBoLLServerHost + "/studio/download.php?appname=" + mszAppAPKFolderName + "&apkname=" + mszNewestAppPackageName; Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(szUrl)); mContext.startActivity(browserIntent); } diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/AssistantService.java b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/AssistantService.java index 9f1e48a..f2f8028 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/AssistantService.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/AssistantService.java @@ -11,14 +11,14 @@ import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.os.IBinder; -import cc.winboll.studio.libaes.winboll.WinBollClientService; +import cc.winboll.studio.libaes.winboll.WinBoLLClientService; import cc.winboll.studio.libappbase.utils.ServiceUtils; public class AssistantService extends Service { public final static String TAG = "AssistantService"; - WinBollClientServiceBean mWinBollServiceBean; + WinBoLLClientServiceBean mWinBoLLServiceBean; MyServiceConnection mMyServiceConnection; volatile boolean mIsServiceRunning; @@ -30,7 +30,7 @@ public class AssistantService extends Service { @Override public void onCreate() { super.onCreate(); - mWinBollServiceBean = WinBollClientServiceBean.loadWinBollClientServiceBean(this); + mWinBoLLServiceBean = WinBoLLClientServiceBean.loadWinBoLLClientServiceBean(this); if (mMyServiceConnection == null) { mMyServiceConnection = new MyServiceConnection(); } @@ -55,8 +55,8 @@ public class AssistantService extends Service { // 运行服务内容 // void run() { - mWinBollServiceBean = WinBollClientServiceBean.loadWinBollClientServiceBean(this); - if (mWinBollServiceBean.isEnable()) { + mWinBoLLServiceBean = WinBoLLClientServiceBean.loadWinBoLLClientServiceBean(this); + if (mWinBoLLServiceBean.isEnable()) { if (mIsServiceRunning == false) { // 设置运行状态 mIsServiceRunning = true; @@ -70,11 +70,11 @@ public class AssistantService extends Service { // 唤醒和绑定主进程 // void wakeupAndBindMain() { - if (ServiceUtils.isServiceRunning(getApplicationContext(), WinBollClientService.class.getName()) == false) { - startForegroundService(new Intent(AssistantService.this, WinBollClientService.class)); + if (ServiceUtils.isServiceRunning(getApplicationContext(), WinBoLLClientService.class.getName()) == false) { + startForegroundService(new Intent(AssistantService.this, WinBoLLClientService.class)); } - bindService(new Intent(AssistantService.this, WinBollClientService.class), mMyServiceConnection, Context.BIND_IMPORTANT); + bindService(new Intent(AssistantService.this, WinBoLLClientService.class), mMyServiceConnection, Context.BIND_IMPORTANT); } // @@ -87,8 +87,8 @@ public class AssistantService extends Service { @Override public void onServiceDisconnected(ComponentName name) { - mWinBollServiceBean = WinBollClientServiceBean.loadWinBollClientServiceBean(AssistantService.this); - if (mWinBollServiceBean.isEnable()) { + mWinBoLLServiceBean = WinBoLLClientServiceBean.loadWinBoLLClientServiceBean(AssistantService.this); + if (mWinBoLLServiceBean.isEnable()) { wakeupAndBindMain(); } } diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/EWUIStatusIconDrawable.java b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/EWUIStatusIconDrawable.java index 3d66468..33e511e 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/EWUIStatusIconDrawable.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/EWUIStatusIconDrawable.java @@ -3,7 +3,7 @@ package cc.winboll.studio.libaes.winboll; /** * @Author ZhanGSKen@AliYun.Com * @Date 2025/03/28 19:11:27 - * @Describe WinBoll UI 状态图标枚举 + * @Describe WinBoLL UI 状态图标枚举 */ import cc.winboll.studio.libaes.R; diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/IWinBollClientServiceBinder.java b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/IWinBollClientServiceBinder.java index eaf40d5..65087ad 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/IWinBollClientServiceBinder.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/IWinBollClientServiceBinder.java @@ -3,15 +3,15 @@ package cc.winboll.studio.libaes.winboll; /** * @Author ZhanGSKen@AliYun.Com * @Date 2025/03/28 19:08:45 - * @Describe WinBollService 服务 Binder。 + * @Describe WinBoLLService 服务 Binder。 */ import android.graphics.drawable.Drawable; -public interface IWinBollClientServiceBinder { +public interface IWinBoLLClientServiceBinder { - public static final String TAG = "IWinBollClientServiceBinder"; + public static final String TAG = "IWinBoLLClientServiceBinder"; - public WinBollClientService getService(); + public WinBoLLClientService getService(); public Drawable getCurrentStatusIconDrawable(); } diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollClientService.java b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollClientService.java index 756e885..12fcd43 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollClientService.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollClientService.java @@ -3,7 +3,7 @@ package cc.winboll.studio.libaes.winboll; /** * @Author ZhanGSKen@AliYun.Com * @Date 2025/03/28 19:06:54 - * @Describe WinBoll 客户端服务 + * @Describe WinBoLL 客户端服务 */ import android.app.Service; import android.content.ComponentName; @@ -19,28 +19,28 @@ import cc.winboll.studio.libappbase.utils.ServiceUtils; import cc.winboll.studio.libapputils.utils.PrefUtils; import com.hjq.toast.ToastUtils; -public class WinBollClientService extends Service implements IWinBollClientServiceBinder { +public class WinBoLLClientService extends Service implements IWinBoLLClientServiceBinder { - public static final String TAG = "WinBollClientService"; + public static final String TAG = "WinBoLLClientService"; - WinBollClientServiceBean mWinBollClientServiceBean; + WinBoLLClientServiceBean mWinBoLLClientServiceBean; MyServiceConnection mMyServiceConnection; - volatile boolean mIsWinBollClientThreadRunning; + volatile boolean mIsWinBoLLClientThreadRunning; volatile boolean mIsEnableService; - volatile WinBollClientThread mWinBollClientThread; + volatile WinBoLLClientThread mWinBoLLClientThread; - public boolean isWinBollClientThreadRunning() { - return mIsWinBollClientThreadRunning; + public boolean isWinBoLLClientThreadRunning() { + return mIsWinBoLLClientThreadRunning; } @Override - public WinBollClientService getService() { - return WinBollClientService.this; + public WinBoLLClientService getService() { + return WinBoLLClientService.this; } @Override public Drawable getCurrentStatusIconDrawable() { - return mIsWinBollClientThreadRunning ? + return mIsWinBoLLClientThreadRunning ? getDrawable(EWUIStatusIconDrawable.getIconDrawableId(EWUIStatusIconDrawable.NORMAL)) : getDrawable(EWUIStatusIconDrawable.getIconDrawableId(EWUIStatusIconDrawable.NEWS)); } @@ -54,9 +54,9 @@ public class WinBollClientService extends Service implements IWinBollClientServi public void onCreate() { //ToastUtils.show("onCreate"); super.onCreate(); - mWinBollClientThread = null; - mWinBollClientServiceBean = WinBollClientServiceBean.loadWinBollClientServiceBean(this); - mIsEnableService = mWinBollClientServiceBean.isEnable(); + mWinBoLLClientThread = null; + mWinBoLLClientServiceBean = WinBoLLClientServiceBean.loadWinBoLLClientServiceBean(this); + mIsEnableService = mWinBoLLClientServiceBean.isEnable(); if (mMyServiceConnection == null) { mMyServiceConnection = new MyServiceConnection(); @@ -74,23 +74,23 @@ public class WinBollClientService extends Service implements IWinBollClientServi // 返回运行参数持久化存储后,服务状态控制参数 // 无论 Intent 传入如何,服务状态一直以持久化存储后的参数控制, - // PS: 另外当然可以通过 Intent 传入的指标来修改 mWinBollServiceBean, + // PS: 另外当然可以通过 Intent 传入的指标来修改 mWinBoLLServiceBean, // 不过本服务的应用方向会变得繁琐, - // 现阶段只要满足手机端启动与停止本服务,WinBoll 客户端实例运行在手机端就可以了。 + // 现阶段只要满足手机端启动与停止本服务,WinBoLL 客户端实例运行在手机端就可以了。 return mIsEnableService ? Service.START_STICKY: super.onStartCommand(intent, flags, startId); } synchronized void runMainThread() { - if (mWinBollClientThread == null) { + if (mWinBoLLClientThread == null) { //ToastUtils.show("runMainThread()"); - mWinBollClientThread = new WinBollClientThread(); - mWinBollClientThread.start(); + mWinBoLLClientThread = new WinBoLLClientThread(); + mWinBoLLClientThread.start(); } } - void syncWinBollClientThreadStatus() { - mWinBollClientServiceBean = WinBollClientServiceBean.loadWinBollClientServiceBean(this); - mIsEnableService = mWinBollClientServiceBean.isEnable(); + void syncWinBoLLClientThreadStatus() { + mWinBoLLClientServiceBean = WinBoLLClientServiceBean.loadWinBoLLClientServiceBean(this); + mIsEnableService = mWinBoLLClientServiceBean.isEnable(); LogUtils.d(TAG, String.format("mIsEnableService %s", mIsEnableService)); } @@ -99,9 +99,9 @@ public class WinBollClientService extends Service implements IWinBollClientServi // void wakeupAndBindAssistant() { if (ServiceUtils.isServiceRunning(getApplicationContext(), AssistantService.class.getName()) == false) { - startService(new Intent(WinBollClientService.this, AssistantService.class)); + startService(new Intent(WinBoLLClientService.this, AssistantService.class)); //LogUtils.d(TAG, "call wakeupAndBindAssistant() : Binding... AssistantService"); - bindService(new Intent(WinBollClientService.this, AssistantService.class), mMyServiceConnection, Context.BIND_IMPORTANT); + bindService(new Intent(WinBoLLClientService.this, AssistantService.class), mMyServiceConnection, Context.BIND_IMPORTANT); } } @@ -115,8 +115,8 @@ public class WinBollClientService extends Service implements IWinBollClientServi @Override public void onServiceDisconnected(ComponentName name) { - mWinBollClientServiceBean = WinBollClientServiceBean.loadWinBollClientServiceBean(WinBollClientService.this); - if (mWinBollClientServiceBean.isEnable()) { + mWinBoLLClientServiceBean = WinBoLLClientServiceBean.loadWinBoLLClientServiceBean(WinBoLLClientService.this); + if (mWinBoLLClientServiceBean.isEnable()) { // 唤醒守护进程 wakeupAndBindAssistant(); } @@ -134,15 +134,15 @@ public class WinBollClientService extends Service implements IWinBollClientServi super.onStart(intent, startId); } - void setWinBollServiceEnableStatus(boolean isEnable) { - WinBollClientServiceBean bean = WinBollClientServiceBean.loadWinBollClientServiceBean(this); + void setWinBoLLServiceEnableStatus(boolean isEnable) { + WinBoLLClientServiceBean bean = WinBoLLClientServiceBean.loadWinBoLLClientServiceBean(this); bean.setIsEnable(isEnable); - WinBollClientServiceBean.saveWinBollServiceBean(this, bean); + WinBoLLClientServiceBean.saveWinBoLLServiceBean(this, bean); } - boolean getWinBollServiceEnableStatus(Context context) { - mWinBollClientServiceBean = WinBollClientServiceBean.loadWinBollClientServiceBean(context); - return mWinBollClientServiceBean.isEnable(); + boolean getWinBoLLServiceEnableStatus(Context context) { + mWinBoLLClientServiceBean = WinBoLLClientServiceBean.loadWinBoLLClientServiceBean(context); + return mWinBoLLClientServiceBean.isEnable(); } /*public interface OnServiceStatusChangeListener { @@ -153,24 +153,24 @@ public class WinBollClientService extends Service implements IWinBollClientServi mOnServerStatusChangeListener = l; }*/ - class WinBollClientThread extends Thread { + class WinBoLLClientThread extends Thread { @Override public void run() { super.run(); - LogUtils.d(TAG, "run syncWinBollClientThreadStatus"); - syncWinBollClientThreadStatus(); + LogUtils.d(TAG, "run syncWinBoLLClientThreadStatus"); + syncWinBoLLClientThreadStatus(); if (mIsEnableService) { - if (mIsWinBollClientThreadRunning == false) { + if (mIsWinBoLLClientThreadRunning == false) { // 设置运行状态 - mIsWinBollClientThreadRunning = true; - LogUtils.d(TAG, "WinBollClientThread run()"); + mIsWinBoLLClientThreadRunning = true; + LogUtils.d(TAG, "WinBoLLClientThread run()"); // 唤醒守护进程 //wakeupAndBindAssistant(); while (mIsEnableService) { // 显示运行状态 - WinBollServiceStatusView.startConnection(); + WinBoLLServiceStatusView.startConnection(); LogUtils.d(TAG, String.format("while mIsEnableService is %s", mIsEnableService)); try { @@ -178,13 +178,13 @@ public class WinBollClientService extends Service implements IWinBollClientServi } catch (InterruptedException e) { LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); } - syncWinBollClientThreadStatus(); + syncWinBoLLClientThreadStatus(); } // 服务进程退出, 重置进程运行状态 - WinBollServiceStatusView.stopConnection(); - mIsWinBollClientThreadRunning = false; - mWinBollClientThread = null; + WinBoLLServiceStatusView.stopConnection(); + mIsWinBoLLClientThreadRunning = false; + mWinBoLLClientThread = null; } } } diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollClientServiceBean.java b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollClientServiceBean.java index 271f1e0..000b5db 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollClientServiceBean.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollClientServiceBean.java @@ -3,7 +3,7 @@ package cc.winboll.studio.libaes.winboll; /** * @Author ZhanGSKen@AliYun.Com * @Date 2025/03/28 19:05:15 - * @Describe WinBollService 运行参数配置 + * @Describe WinBoLLService 运行参数配置 */ import android.content.Context; import android.util.JsonReader; @@ -11,13 +11,13 @@ import android.util.JsonWriter; import cc.winboll.studio.libappbase.BaseBean; import java.io.IOException; -public class WinBollClientServiceBean extends BaseBean { +public class WinBoLLClientServiceBean extends BaseBean { - public static final String TAG = "WinBollClientServiceBean"; + public static final String TAG = "WinBoLLClientServiceBean"; volatile boolean isEnable; - public WinBollClientServiceBean() { + public WinBoLLClientServiceBean() { isEnable = false; } @@ -31,13 +31,13 @@ public class WinBollClientServiceBean extends BaseBean { @Override public String getName() { - return WinBollClientServiceBean.class.getName(); + return WinBoLLClientServiceBean.class.getName(); } @Override public void writeThisToJsonWriter(JsonWriter jsonWriter) throws IOException { super.writeThisToJsonWriter(jsonWriter); - WinBollClientServiceBean bean = this; + WinBoLLClientServiceBean bean = this; jsonWriter.name("isEnable").value(bean.isEnable()); } @@ -67,12 +67,12 @@ public class WinBollClientServiceBean extends BaseBean { return this; } - public static WinBollClientServiceBean loadWinBollClientServiceBean(Context context) { - WinBollClientServiceBean bean = WinBollClientServiceBean.loadBean(context, WinBollClientServiceBean.class); - return bean == null ? new WinBollClientServiceBean() : bean; + public static WinBoLLClientServiceBean loadWinBoLLClientServiceBean(Context context) { + WinBoLLClientServiceBean bean = WinBoLLClientServiceBean.loadBean(context, WinBoLLClientServiceBean.class); + return bean == null ? new WinBoLLClientServiceBean() : bean; } - public static boolean saveWinBollServiceBean(WinBollClientService service, WinBollClientServiceBean bean) { - return WinBollClientServiceBean.saveBean(service, bean); + public static boolean saveWinBoLLServiceBean(WinBoLLClientService service, WinBoLLClientServiceBean bean) { + return WinBoLLClientServiceBean.saveBean(service, bean); } } diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollMail.java b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollMail.java index 3806106..6f49c90 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollMail.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollMail.java @@ -3,15 +3,15 @@ package cc.winboll.studio.libaes.winboll; /** * @Author ZhanGSKen@AliYun.Com * @Date 2025/03/28 19:13:20 - * @Describe WinBoll 邮件服务 + * @Describe WinBoLL 邮件服务 */ import android.app.Service; import android.content.Intent; import android.os.IBinder; -public class WinBollMail extends Service { +public class WinBoLLMail extends Service { - public static final String TAG = "WinBollMail"; + public static final String TAG = "WinBoLLMail"; @Override public IBinder onBind(Intent intent) { diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollServerConnectionThread.java b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollServerConnectionThread.java index 25ecd21..5e3e833 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollServerConnectionThread.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollServerConnectionThread.java @@ -3,7 +3,7 @@ package cc.winboll.studio.libaes.winboll; /** * @Author ZhanGSKen@AliYun.Com * @Date 2025/03/29 15:57:28 - * @Describe WinBoll 服务器服务情况测试访问进程。 + * @Describe WinBoLL 服务器服务情况测试访问进程。 */ import cc.winboll.studio.libappbase.LogUtils; import java.io.IOException; @@ -20,9 +20,9 @@ interface TextCallback { void onFailure(Exception e); } -public class WinBollServerConnectionThread extends Thread { +public class WinBoLLServerConnectionThread extends Thread { - public static final String TAG = "WinBollClientService"; + public static final String TAG = "WinBoLLClientService"; private final String url; private final String username; @@ -33,12 +33,12 @@ public class WinBollServerConnectionThread extends Thread { private final TextCallback callback; // 新增回调成员变量 // 新增带回调的构造函数 - public WinBollServerConnectionThread(String url, String username, String password, TextCallback callback) { + public WinBoLLServerConnectionThread(String url, String username, String password, TextCallback callback) { this(url, username, password, 10000, 10000, 5, callback); } // 修改原有构造函数,添加回调参数 - public WinBollServerConnectionThread(String url, String username, String password, + public WinBoLLServerConnectionThread(String url, String username, String password, int connectTimeout, int readTimeout, int maxRetries, TextCallback callback) { this.url = url; this.username = username; diff --git a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollServiceStatusView.java b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollServiceStatusView.java index 630a3a7..f91acc9 100644 --- a/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollServiceStatusView.java +++ b/libaes/src/main/java/cc/winboll/studio/libaes/winboll/WinBollServiceStatusView.java @@ -3,7 +3,7 @@ package cc.winboll.studio.libaes.winboll; /** * @Author ZhanGSKen@AliYun.Com * @Date 2025/03/28 17:41:55 - * @Describe WinBoll 服务主机连接状态视图 + * @Describe WinBoLL 服务主机连接状态视图 */ import cc.winboll.studio.libaes.R; import android.content.ComponentName; @@ -19,7 +19,7 @@ import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; -import cc.winboll.studio.libaes.winboll.WinBollClientService; +import cc.winboll.studio.libaes.winboll.WinBoLLClientService; import cc.winboll.studio.libappbase.GlobalApplication; import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libapputils.utils.PrefUtils; @@ -32,23 +32,23 @@ import java.time.format.DateTimeFormatter; //import okhttp3.Response; //import okhttp3.Route; -public class WinBollServiceStatusView extends LinearLayout { +public class WinBoLLServiceStatusView extends LinearLayout { - public static final String TAG = "WinBollServiceStatusView"; + public static final String TAG = "WinBoLLServiceStatusView"; public static final int MSG_CONNECTION_INFO = 0; public static final int MSG_UPDATE_CONNECTION_STATUS = 1; - static WinBollServiceStatusView _WinBollServiceStatusView; + static WinBoLLServiceStatusView _WinBoLLServiceStatusView; Context mContext; //boolean mIsConnected; volatile ConnectionThread mConnectionThread; String mszServerHost; - WinBollClientService mWinBollService; + WinBoLLClientService mWinBoLLService; ImageView mImageView; TextView mTextView; - WinBollServiceViewHandler mWinBollServiceViewHandler; + WinBoLLServiceViewHandler mWinBoLLServiceViewHandler; //WebView mWebView; static volatile ConnectionStatus mConnectionStatus; View.OnClickListener mViewOnClickListener; @@ -66,11 +66,11 @@ public class WinBollServiceStatusView extends LinearLayout { ServiceConnection connection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { - IWinBollClientServiceBinder binder = (IWinBollClientServiceBinder) service; - mWinBollService = binder.getService(); + IWinBoLLClientServiceBinder binder = (IWinBoLLClientServiceBinder) service; + mWinBoLLService = binder.getService(); isBound = true; // 可以在这里调用Service的方法进行通信,比如获取数据 - mImageView.setBackgroundDrawable(mWinBollService.getCurrentStatusIconDrawable()); + mImageView.setBackgroundDrawable(mWinBoLLService.getCurrentStatusIconDrawable()); } @Override @@ -79,25 +79,25 @@ public class WinBollServiceStatusView extends LinearLayout { } }; - public WinBollServiceStatusView(Context context) { + public WinBoLLServiceStatusView(Context context) { super(context); mContext = context; initView(); } - public WinBollServiceStatusView(Context context, AttributeSet attrs) { + public WinBoLLServiceStatusView(Context context, AttributeSet attrs) { super(context, attrs); mContext = context; initView(); } - public WinBollServiceStatusView(Context context, AttributeSet attrs, int defStyleAttr) { + public WinBoLLServiceStatusView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); mContext = context; initView(); } - public WinBollServiceStatusView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + public WinBoLLServiceStatusView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); mContext = context; initView(); @@ -110,13 +110,13 @@ public class WinBollServiceStatusView extends LinearLayout { } void initView() { - _WinBollServiceStatusView = this; + _WinBoLLServiceStatusView = this; mImageView = new ImageView(mContext); setImageViewByConnection(mImageView, false); mConnectionStatus = getConnectionStatus(); //mIsConnected = false; - //mWinBollServerHostConnectionStatus = WinBollServerHostConnectionStatus.DISCONNECTED; + //mWinBoLLServerHostConnectionStatus = WinBoLLServerHostConnectionStatus.DISCONNECTED; //ToastUtils.show("initView()"); mViewOnClickListener = new View.OnClickListener(){ @@ -125,10 +125,10 @@ public class WinBollServiceStatusView extends LinearLayout { LogUtils.d(TAG, "onClick()"); if (mConnectionStatus == ConnectionStatus.CONNECTED) { LogUtils.d(TAG, "Click to stop service."); - WinBollClientServiceBean bean = WinBollClientServiceBean.loadWinBollClientServiceBean(mContext); + WinBoLLClientServiceBean bean = WinBoLLClientServiceBean.loadWinBoLLClientServiceBean(mContext); bean.setIsEnable(false); - WinBollClientServiceBean.saveBean(mContext, bean); - Intent intent = new Intent(mContext, WinBollClientService.class); + WinBoLLClientServiceBean.saveBean(mContext, bean); + Intent intent = new Intent(mContext, WinBoLLClientService.class); mContext.stopService(intent); //stopConnectionThread(); mTextView.setText(""); @@ -136,10 +136,10 @@ public class WinBollServiceStatusView extends LinearLayout { mConnectionStatus = ConnectionStatus.DISCONNECTED; } else if (mConnectionStatus == ConnectionStatus.DISCONNECTED) { LogUtils.d(TAG, "Click to start service."); - WinBollClientServiceBean bean = WinBollClientServiceBean.loadWinBollClientServiceBean(mContext); + WinBoLLClientServiceBean bean = WinBoLLClientServiceBean.loadWinBoLLClientServiceBean(mContext); bean.setIsEnable(true); - WinBollClientServiceBean.saveBean(mContext, bean); - Intent intent = new Intent(mContext, WinBollClientService.class); + WinBoLLClientServiceBean.saveBean(mContext, bean); + Intent intent = new Intent(mContext, WinBoLLClientService.class); mContext.startService(intent); //startConnectionThread(); } @@ -148,7 +148,7 @@ public class WinBollServiceStatusView extends LinearLayout { setOnClickListener(mViewOnClickListener); addView(mImageView); mTextView = new TextView(mContext); - mWinBollServiceViewHandler = new WinBollServiceViewHandler(this); + mWinBoLLServiceViewHandler = new WinBoLLServiceViewHandler(this); addView(mTextView); /*mWebView = new WebView(mContext); mWebView.setWebViewClient(new WebViewClient() { @@ -161,8 +161,8 @@ public class WinBollServiceStatusView extends LinearLayout { addView(mWebView);*/ } - void checkWinBollServerStatusAndUpdateCurrentView() { - LogUtils.d(TAG, "checkWinBollServerStatusAndUpdateCurrentView()"); + void checkWinBoLLServerStatusAndUpdateCurrentView() { + LogUtils.d(TAG, "checkWinBoLLServerStatusAndUpdateCurrentView()"); /*if (getConnectionStatus() == ConnectionStatus.CONNECTED) { mConnectionStatus = ConnectionStatus.CONNECTED; } else { @@ -170,8 +170,8 @@ public class WinBollServiceStatusView extends LinearLayout { }*/ } - public void setServerHost(String szWinBollServerHost) { - mszServerHost = szWinBollServerHost; + public void setServerHost(String szWinBoLLServerHost) { + mszServerHost = szWinBoLLServerHost; } public void setAuthInfo(String username, String password) { @@ -216,8 +216,8 @@ public class WinBollServiceStatusView extends LinearLayout { // 按照指定格式格式化时间并输出 String formattedDateTime = now.format(formatter); String msg = "ClientIP<" + formattedDateTime + ">: " + text; - mWinBollServiceViewHandler.postMessageText(msg); - mWinBollServiceViewHandler.postMessageConnectionStatus(true); + mWinBoLLServiceViewHandler.postMessageText(msg); + mWinBoLLServiceViewHandler.postMessageConnectionStatus(true); } @@ -227,8 +227,8 @@ public class WinBollServiceStatusView extends LinearLayout { LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); // 处理网络请求失败 setImageViewByConnection(mImageView, false); - mWinBollServiceViewHandler.postMessageText(e.getMessage()); - mWinBollServiceViewHandler.postMessageConnectionStatus(false); + mWinBoLLServiceViewHandler.postMessageText(e.getMessage()); + mWinBoLLServiceViewHandler.postMessageConnectionStatus(false); } }; @@ -249,12 +249,12 @@ public class WinBollServiceStatusView extends LinearLayout { username = PrefUtils.getString(mContext, "metDevUserName", ""); password = PrefUtils.getString(mContext, "metDevUserPassword", ""); } else { - username = "WinBoll"; - password = "WinBollPowerByZhanGSKen"; + username = "WinBoLL"; + password = "WinBoLLPowerByZhanGSKen"; } LogUtils.d(TAG, String.format("Connection Start. targetUrl %s", targetUrl)); - WinBollServerConnectionThread thread = new WinBollServerConnectionThread( + WinBoLLServerConnectionThread thread = new WinBoLLServerConnectionThread( targetUrl, username, password, @@ -263,7 +263,7 @@ public class WinBollServiceStatusView extends LinearLayout { thread.start(); } - /*void requestWithBasicAuth(final WinBollServiceViewHandler textViewHandler, String targetUrl, final String username, final String password) { + /*void requestWithBasicAuth(final WinBoLLServiceViewHandler textViewHandler, String targetUrl, final String username, final String password) { // 用户名和密码,替换为实际的认证信息 //String username = "your_username"; //String password = "your_password"; @@ -350,10 +350,10 @@ public class WinBollServiceStatusView extends LinearLayout { }*/ - class WinBollServiceViewHandler extends Handler { - WinBollServiceStatusView mDevelopHostConnectionStatusView; + class WinBoLLServiceViewHandler extends Handler { + WinBoLLServiceStatusView mDevelopHostConnectionStatusView; - public WinBollServiceViewHandler(WinBollServiceStatusView view) { + public WinBoLLServiceViewHandler(WinBoLLServiceStatusView view) { mDevelopHostConnectionStatusView = view; } @@ -384,14 +384,14 @@ public class WinBollServiceStatusView extends LinearLayout { } public static void startConnection() { - if (_WinBollServiceStatusView != null) { - _WinBollServiceStatusView.startConnectionThread(); + if (_WinBoLLServiceStatusView != null) { + _WinBoLLServiceStatusView.startConnectionThread(); } } public static void stopConnection() { - if (_WinBollServiceStatusView != null) { - _WinBollServiceStatusView.stopConnectionThread(); + if (_WinBoLLServiceStatusView != null) { + _WinBoLLServiceStatusView.stopConnectionThread(); } } @@ -448,7 +448,7 @@ public class WinBollServiceStatusView extends LinearLayout { requestCIPWithBasicAuth(); } else if (mConnectionStatus == ConnectionStatus.CONNECTED || mConnectionStatus == ConnectionStatus.DISCONNECTED) { - //ToastUtils.show("mWinBollServerHostConnectionStatus " + mConnectionStatus); + //ToastUtils.show("mWinBoLLServerHostConnectionStatus " + mConnectionStatus); LogUtils.d(TAG, String.format("mConnectionStatus done %s", mConnectionStatus)); } else { LogUtils.d(TAG, String.format("mConnectionStatus unknow %s", mConnectionStatus)); @@ -465,7 +465,7 @@ public class WinBollServiceStatusView extends LinearLayout { } } - /*WinBollService.OnServiceStatusChangeListener mOnServerStatusChangeListener = new WinBollService.OnServiceStatusChangeListener(){ + /*WinBoLLService.OnServiceStatusChangeListener mOnServerStatusChangeListener = new WinBoLLService.OnServiceStatusChangeListener(){ @Override public void onServerStatusChange(boolean isServiceAlive) { } diff --git a/libaes/src/main/res/layout/view_about_dev.xml b/libaes/src/main/res/layout/view_about_dev.xml index 629585f..1443e19 100644 --- a/libaes/src/main/res/layout/view_about_dev.xml +++ b/libaes/src/main/res/layout/view_about_dev.xml @@ -53,10 +53,10 @@ android:layout_height="wrap_content" android:gravity="center_horizontal"> - + android:id="@+id/viewaboutdevWinBoLLServiceStatusView1"/> diff --git a/libaes/src/main/res/layout/view_about_www.xml b/libaes/src/main/res/layout/view_about_www.xml index 6cd4e5c..8cbe538 100644 --- a/libaes/src/main/res/layout/view_about_www.xml +++ b/libaes/src/main/res/layout/view_about_www.xml @@ -12,10 +12,10 @@ android:layout_height="wrap_content" android:gravity="center_horizontal"> - + android:id="@+id/viewaboutwwwWinBoLLServiceStatusView1"/> diff --git a/libaes/src/main/res/values-zh/string.xml b/libaes/src/main/res/values-zh/string.xml index 2f9f8fb..8ea6345 100644 --- a/libaes/src/main/res/values-zh/string.xml +++ b/libaes/src/main/res/values-zh/string.xml @@ -2,7 +2,7 @@ libaes - 云宝APP应用安卓元素类库示例。源码仅供调试参考,请勿直接引用。(WinBoll APP application Android element class library example. The source is just for demo debug test, Do not quote directly.) + 云宝APP应用安卓元素类库示例。源码仅供调试参考,请勿直接引用。(WinBoLL APP application Android element class library example. The source is just for demo debug test, Do not quote directly.) https://winboll.cc/aes 关于 应用主题 diff --git a/libaes/src/main/res/values/strings.xml b/libaes/src/main/res/values/strings.xml index 8cbd248..5f94d4c 100644 --- a/libaes/src/main/res/values/strings.xml +++ b/libaes/src/main/res/values/strings.xml @@ -2,7 +2,7 @@ libaes - 云宝APP应用安卓元素类库示例。源码仅供调试参考,请勿直接引用。(WinBoll APP application Android element class library example. The source is just for demo debug test, Do not quote directly.) + 云宝APP应用安卓元素类库示例。源码仅供调试参考,请勿直接引用。(WinBoLL APP application Android element class library example. The source is just for demo debug test, Do not quote directly.) https://winboll.cc/libaes About AppTheme From f8bb5a78529bd4ba3e825a1dc9d6f69599d7616e Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 13:14:59 +0800 Subject: [PATCH 087/110] APK 15.7.4 release Publish. --- appbase/build.properties | 10 +++++----- libappbase/build.properties | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index 1d9cc1c..c956443 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 04:20:48 GMT 2025 -stageCount=4 +#Tue Apr 29 13:14:59 HKT 2025 +stageCount=5 libraryProject=libappbase baseVersion=15.7 -publishVersion=15.7.3 -buildCount=5 -baseBetaVersion=15.7.4 +publishVersion=15.7.4 +buildCount=0 +baseBetaVersion=15.7.5 diff --git a/libappbase/build.properties b/libappbase/build.properties index 1d9cc1c..c956443 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 04:20:48 GMT 2025 -stageCount=4 +#Tue Apr 29 13:14:59 HKT 2025 +stageCount=5 libraryProject=libappbase baseVersion=15.7 -publishVersion=15.7.3 -buildCount=5 -baseBetaVersion=15.7.4 +publishVersion=15.7.4 +buildCount=0 +baseBetaVersion=15.7.5 From f8e9afddd15f38fc23beb7391051e7ea832a847d Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 13:15:31 +0800 Subject: [PATCH 088/110] Library Release 15.7.4 --- appbase/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appbase/build.properties b/appbase/build.properties index c956443..e7f532c 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 13:14:59 HKT 2025 +#Tue Apr 29 13:15:24 HKT 2025 stageCount=5 libraryProject=libappbase baseVersion=15.7 From 5e8070ae0115ab9f0a4fd83df70a4e63b93cf2c6 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 13:39:36 +0800 Subject: [PATCH 089/110] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=B1=BB=E5=BA=93?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=EF=BC=8C=E6=94=B9=E4=B8=BA=E5=9F=BA=E6=9C=AC?= =?UTF-8?q?Android=20API=E4=BE=9D=E8=B5=96=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.properties | 4 ++-- .../winboll/studio/appbase/MainActivity.java | 5 ++--- .../studio/appbase/WinBollActivityBase.java | 3 +-- .../appbase/activities/New2Activity.java | 4 ++-- .../appbase/activities/NewActivity.java | 4 ++-- appbase/src/main/res/layout/activity_main.xml | 2 +- appbase/src/main/res/layout/activity_new.xml | 2 +- appbase/src/main/res/layout/activity_new2.xml | 2 +- libappbase/build.gradle | 21 ------------------- libappbase/build.properties | 4 ++-- .../libappbase/GlobalCrashActivity.java | 11 +++++----- .../libappbase/GlobalCrashReportView.java | 2 +- .../res/layout/view_globalcrashreport.xml | 2 +- .../src/main/res/menu/toolbar_appbase.xml | 15 +++++-------- libappbase/src/main/res/values/styles.xml | 2 +- 15 files changed, 27 insertions(+), 56 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index e7f532c..afd36e8 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 13:15:24 HKT 2025 +#Tue Apr 29 05:36:55 GMT 2025 stageCount=5 libraryProject=libappbase baseVersion=15.7 publishVersion=15.7.4 -buildCount=0 +buildCount=2 baseBetaVersion=15.7.5 diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java b/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java index c99a20d..1534dfa 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java @@ -4,11 +4,11 @@ import android.app.Activity; import android.content.ComponentName; import android.content.Intent; import android.os.Bundle; -import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.CheckBox; +import android.widget.Toolbar; import cc.winboll.studio.appbase.R; import cc.winboll.studio.appbase.activities.NewActivity; import cc.winboll.studio.appbase.services.MainService; @@ -22,7 +22,6 @@ import cc.winboll.studio.libappbase.sos.SOS; import cc.winboll.studio.libappbase.utils.ToastUtils; import cc.winboll.studio.libappbase.widgets.StatusWidget; import cc.winboll.studio.libappbase.winboll.IWinBollActivity; -import cc.winboll.studio.libappbase.dialogs.YesNoAlertDialog; public class MainActivity extends WinBollActivityBase implements IWinBollActivity { @@ -48,7 +47,7 @@ public class MainActivity extends WinBollActivityBase implements IWinBollActivit setContentView(R.layout.activity_main); mToolbar = findViewById(R.id.toolbar); - setSupportActionBar(mToolbar); + setActionBar(mToolbar); CheckBox cbIsDebugMode = findViewById(R.id.activitymainCheckBox1); cbIsDebugMode.setChecked(GlobalApplication.isDebuging()); diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java b/appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java index 54765d8..ba56fb3 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java @@ -8,7 +8,6 @@ package cc.winboll.studio.appbase; import android.app.Activity; import android.os.Bundle; import android.os.PersistableBundle; -import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; import cc.winboll.studio.appbase.App; import cc.winboll.studio.appbase.R; @@ -17,7 +16,7 @@ import cc.winboll.studio.libappbase.dialogs.YesNoAlertDialog; import cc.winboll.studio.libappbase.winboll.IWinBollActivity; import cc.winboll.studio.libappbase.winboll.WinBollActivityManager; -public class WinBollActivityBase extends AppCompatActivity implements IWinBollActivity { +public class WinBollActivityBase extends Activity implements IWinBollActivity { public static final String TAG = "WinBollActivityBase"; diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java b/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java index 37f4422..5ba8702 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java @@ -7,10 +7,10 @@ package cc.winboll.studio.appbase.activities; */ import android.app.Activity; import android.os.Bundle; -import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.widget.Toolbar; import cc.winboll.studio.appbase.R; import cc.winboll.studio.appbase.WinBollActivityBase; import cc.winboll.studio.libappbase.GlobalApplication; @@ -41,7 +41,7 @@ public class New2Activity extends WinBollActivityBase implements IWinBollActivit // mLogView = findViewById(R.id.logview); // mLogView.start(); mToolbar = findViewById(R.id.toolbar); - setSupportActionBar(mToolbar); + setActionBar(mToolbar); } diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java b/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java index 907c3ad..58c3cb0 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java @@ -6,10 +6,10 @@ package cc.winboll.studio.appbase.activities; */ import android.app.Activity; import android.os.Bundle; -import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.widget.Toolbar; import cc.winboll.studio.appbase.R; import cc.winboll.studio.appbase.WinBollActivityBase; import cc.winboll.studio.libappbase.GlobalApplication; @@ -39,7 +39,7 @@ public class NewActivity extends WinBollActivityBase implements IWinBollActivity // mLogView = findViewById(R.id.logview); // mLogView.start(); mToolbar = findViewById(R.id.toolbar); - setSupportActionBar(mToolbar); + setActionBar(mToolbar); } diff --git a/appbase/src/main/res/layout/activity_main.xml b/appbase/src/main/res/layout/activity_main.xml index 193d0cc..17813d2 100644 --- a/appbase/src/main/res/layout/activity_main.xml +++ b/appbase/src/main/res/layout/activity_main.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - diff --git a/appbase/src/main/res/layout/activity_new.xml b/appbase/src/main/res/layout/activity_new.xml index 0917de8..b3dd223 100644 --- a/appbase/src/main/res/layout/activity_new.xml +++ b/appbase/src/main/res/layout/activity_new.xml @@ -6,7 +6,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - diff --git a/appbase/src/main/res/layout/activity_new2.xml b/appbase/src/main/res/layout/activity_new2.xml index 38b5906..697e613 100644 --- a/appbase/src/main/res/layout/activity_new2.xml +++ b/appbase/src/main/res/layout/activity_new2.xml @@ -6,7 +6,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - diff --git a/libappbase/build.gradle b/libappbase/build.gradle index 62dc4d5..39bd64b 100644 --- a/libappbase/build.gradle +++ b/libappbase/build.gradle @@ -22,25 +22,4 @@ android { dependencies { api fileTree(dir: 'libs', include: ['*.jar']) - - // Android 类库 - //api 'com.android.support:appcompat-v7:28.0.0' - api('com.android.support:appcompat-v7:28.0.0'){ - //exclude group: "com.android.support", module: "support-vector-drawable" - exclude group: "com.android.support:animated-vector-drawable:28.0.0" - } - // https://mvnrepository.com/artifact/com.android.support/support-compat - //api 'com.android.support:support-compat:28.0.0' // 保留原有依赖(可选) - // https://mvnrepository.com/artifact/com.android.support/support-v4 - api 'com.android.support:support-v4:28.0.0' - // https://mvnrepository.com/artifact/com.android.support/support-media-compat - api 'com.android.support:support-media-compat:28.0.0' - // https://mvnrepository.com/artifact/com.android.support/support-core-utils - api 'com.android.support:support-core-utils:28.0.0' - // https://mvnrepository.com/artifact/com.android.support/support-core-ui - api 'com.android.support:support-core-ui:28.0.0' - // https://mvnrepository.com/artifact/com.android.support/support-fragment - api 'com.android.support:support-fragment:28.0.0' - // https://mvnrepository.com/artifact/com.android.support/recyclerview-v7 - api 'com.android.support:recyclerview-v7:28.0.0' } diff --git a/libappbase/build.properties b/libappbase/build.properties index c956443..afd36e8 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 13:14:59 HKT 2025 +#Tue Apr 29 05:36:55 GMT 2025 stageCount=5 libraryProject=libappbase baseVersion=15.7 publishVersion=15.7.4 -buildCount=0 +buildCount=2 baseBetaVersion=15.7.5 diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashActivity.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashActivity.java index dbf8c8a..0509ac9 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashActivity.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashActivity.java @@ -4,20 +4,19 @@ package cc.winboll.studio.libappbase; * @Author ZhanGSKen@AliYun.Com * @Date 2025/02/11 00:14:05 */ +import android.app.Activity; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; -import android.net.Uri; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; import cc.winboll.studio.libappbase.R; -public final class GlobalCrashActivity extends AppCompatActivity implements MenuItem.OnMenuItemClickListener { +public final class GlobalCrashActivity extends Activity implements MenuItem.OnMenuItemClickListener { private static final int MENUITEM_COPY = 0; private static final int MENUITEM_RESTART = 1; @@ -39,10 +38,10 @@ public final class GlobalCrashActivity extends AppCompatActivity implements Menu setContentView(R.layout.activity_globalcrash); mGlobalCrashReportView = findViewById(R.id.activityglobalcrashGlobalCrashReportView1); mGlobalCrashReportView.setReport(mLog); - setSupportActionBar(mGlobalCrashReportView.getToolbar()); + setActionBar(mGlobalCrashReportView.getToolbar()); - getSupportActionBar().setTitle(CrashHandler.TITTLE); - getSupportActionBar().setSubtitle(GlobalApplication.getAppName(getApplicationContext())); + getActionBar().setTitle(CrashHandler.TITTLE); + getActionBar().setSubtitle(GlobalApplication.getAppName(getApplicationContext())); } @Override diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashReportView.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashReportView.java index 533e5da..5ae634f 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashReportView.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalCrashReportView.java @@ -8,7 +8,6 @@ package cc.winboll.studio.libappbase; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Color; -import android.support.v7.widget.Toolbar; import android.text.SpannableString; import android.text.style.ForegroundColorSpan; import android.util.AttributeSet; @@ -16,6 +15,7 @@ import android.view.Menu; import android.view.MenuItem; import android.widget.LinearLayout; import android.widget.TextView; +import android.widget.Toolbar; import cc.winboll.studio.libappbase.R; public class GlobalCrashReportView extends LinearLayout { diff --git a/libappbase/src/main/res/layout/view_globalcrashreport.xml b/libappbase/src/main/res/layout/view_globalcrashreport.xml index cda2c96..65c05a7 100644 --- a/libappbase/src/main/res/layout/view_globalcrashreport.xml +++ b/libappbase/src/main/res/layout/view_globalcrashreport.xml @@ -7,7 +7,7 @@ android:layout_height="match_parent" android:id="@+id/viewglobalcrashreportLinearLayout1"> - diff --git a/libappbase/src/main/res/menu/toolbar_appbase.xml b/libappbase/src/main/res/menu/toolbar_appbase.xml index b6236e8..90e72ef 100644 --- a/libappbase/src/main/res/menu/toolbar_appbase.xml +++ b/libappbase/src/main/res/menu/toolbar_appbase.xml @@ -1,25 +1,20 @@ - + + android:icon="@drawable/ic_winboll_point"/> + android:icon="@drawable/ic_winboll_logo"/> + android:icon="@drawable/ic_winboll_help"/> + android:icon="@drawable/ic_winboll_log"/> diff --git a/libappbase/src/main/res/values/styles.xml b/libappbase/src/main/res/values/styles.xml index 13f26cd..0dd004f 100644 --- a/libappbase/src/main/res/values/styles.xml +++ b/libappbase/src/main/res/values/styles.xml @@ -1,7 +1,7 @@ - From aca23ca72718f58211ccb190b5ab272c44207069 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 13:40:21 +0800 Subject: [PATCH 090/110] APK 15.7.5 release Publish. --- appbase/build.properties | 10 +++++----- libappbase/build.properties | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index afd36e8..cb8845e 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 05:36:55 GMT 2025 -stageCount=5 +#Tue Apr 29 13:40:21 HKT 2025 +stageCount=6 libraryProject=libappbase baseVersion=15.7 -publishVersion=15.7.4 -buildCount=2 -baseBetaVersion=15.7.5 +publishVersion=15.7.5 +buildCount=0 +baseBetaVersion=15.7.6 diff --git a/libappbase/build.properties b/libappbase/build.properties index afd36e8..cb8845e 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 05:36:55 GMT 2025 -stageCount=5 +#Tue Apr 29 13:40:21 HKT 2025 +stageCount=6 libraryProject=libappbase baseVersion=15.7 -publishVersion=15.7.4 -buildCount=2 -baseBetaVersion=15.7.5 +publishVersion=15.7.5 +buildCount=0 +baseBetaVersion=15.7.6 From dab1412bc438e32fd60c9835a3ddc100e4563993 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 13:40:47 +0800 Subject: [PATCH 091/110] Library Release 15.7.5 --- appbase/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appbase/build.properties b/appbase/build.properties index cb8845e..5f70437 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 13:40:21 HKT 2025 +#Tue Apr 29 13:40:44 HKT 2025 stageCount=6 libraryProject=libappbase baseVersion=15.7 From 62fd671f6e1a64a6cfd59e0764fff105c1e1e627 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 13:45:03 +0800 Subject: [PATCH 092/110] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=80=82=E9=85=8DAnd?= =?UTF-8?q?roid=20API=20=E7=BA=A7=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apputils/build.gradle | 2 +- libapputils/build.gradle | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apputils/build.gradle b/apputils/build.gradle index 2d076ce..dfbe547 100644 --- a/apputils/build.gradle +++ b/apputils/build.gradle @@ -24,7 +24,7 @@ android { defaultConfig { applicationId "cc.winboll.studio.apputils" minSdkVersion 26 - targetSdkVersion 29 + targetSdkVersion 30 versionCode 1 // versionName 更新后需要手动设置 // 项目模块目录的 build.gradle 文件的 stageCount=0 diff --git a/libapputils/build.gradle b/libapputils/build.gradle index 733822b..8ede062 100644 --- a/libapputils/build.gradle +++ b/libapputils/build.gradle @@ -9,7 +9,7 @@ android { defaultConfig { minSdkVersion 24 - targetSdkVersion 29 + targetSdkVersion 30 } buildTypes { release { @@ -21,7 +21,7 @@ android { dependencies { api fileTree(dir: 'libs', include: ['*.jar']) - api 'cc.winboll.studio:libappbase:15.4.8' + api 'cc.winboll.studio:libappbase:15.7.4' // 二维码类库 api 'com.google.zxing:core:3.4.1' From 077a5fc616bd089149e21cf381e39df39a6ecea9 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 14:04:40 +0800 Subject: [PATCH 093/110] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apputils/build.properties | 4 ++-- libapputils/build.gradle | 2 +- libapputils/build.properties | 4 ++-- libapputils/src/main/res/values-v21/styles.xml | 4 ++-- libapputils/src/main/res/values/styles.xml | 3 ++- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/apputils/build.properties b/apputils/build.properties index 0f9e170..758f835 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 16:04:51 GMT 2025 +#Tue Apr 29 06:04:15 GMT 2025 stageCount=3 libraryProject=libapputils baseVersion=15.3 publishVersion=15.3.2 -buildCount=1 +buildCount=4 baseBetaVersion=15.3.3 diff --git a/libapputils/build.gradle b/libapputils/build.gradle index 8ede062..2b8a5b6 100644 --- a/libapputils/build.gradle +++ b/libapputils/build.gradle @@ -21,7 +21,7 @@ android { dependencies { api fileTree(dir: 'libs', include: ['*.jar']) - api 'cc.winboll.studio:libappbase:15.7.4' + api 'cc.winboll.studio:libappbase:15.7.5' // 二维码类库 api 'com.google.zxing:core:3.4.1' diff --git a/libapputils/build.properties b/libapputils/build.properties index 0f9e170..758f835 100644 --- a/libapputils/build.properties +++ b/libapputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon Apr 28 16:04:51 GMT 2025 +#Tue Apr 29 06:04:15 GMT 2025 stageCount=3 libraryProject=libapputils baseVersion=15.3 publishVersion=15.3.2 -buildCount=1 +buildCount=4 baseBetaVersion=15.3.3 diff --git a/libapputils/src/main/res/values-v21/styles.xml b/libapputils/src/main/res/values-v21/styles.xml index 0948fdc..a39bdd8 100644 --- a/libapputils/src/main/res/values-v21/styles.xml +++ b/libapputils/src/main/res/values-v21/styles.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + diff --git a/libapputils/src/main/res/values/styles.xml b/libapputils/src/main/res/values/styles.xml index 3d01eb2..a1b888e 100644 --- a/libapputils/src/main/res/values/styles.xml +++ b/libapputils/src/main/res/values/styles.xml @@ -1,5 +1,6 @@ - From ff9f5b42b9169593256bef092de2fd88b37902be Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 14:05:21 +0800 Subject: [PATCH 094/110] =?UTF-8?q?=E6=95=B4=E7=90=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libapputils/src/main/res/values/styles.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/libapputils/src/main/res/values/styles.xml b/libapputils/src/main/res/values/styles.xml index a1b888e..311bb71 100644 --- a/libapputils/src/main/res/values/styles.xml +++ b/libapputils/src/main/res/values/styles.xml @@ -1,6 +1,5 @@ - From 7dc2668d42e99d9c05cd468a70f3b837354e9222 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 14:07:52 +0800 Subject: [PATCH 095/110] APK 15.3.3 release Publish. --- apputils/build.properties | 10 +++++----- libapputils/build.properties | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/apputils/build.properties b/apputils/build.properties index 758f835..b2fd69c 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 06:04:15 GMT 2025 -stageCount=3 +#Tue Apr 29 14:07:52 HKT 2025 +stageCount=4 libraryProject=libapputils baseVersion=15.3 -publishVersion=15.3.2 -buildCount=4 -baseBetaVersion=15.3.3 +publishVersion=15.3.3 +buildCount=0 +baseBetaVersion=15.3.4 diff --git a/libapputils/build.properties b/libapputils/build.properties index 758f835..b2fd69c 100644 --- a/libapputils/build.properties +++ b/libapputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 06:04:15 GMT 2025 -stageCount=3 +#Tue Apr 29 14:07:52 HKT 2025 +stageCount=4 libraryProject=libapputils baseVersion=15.3 -publishVersion=15.3.2 -buildCount=4 -baseBetaVersion=15.3.3 +publishVersion=15.3.3 +buildCount=0 +baseBetaVersion=15.3.4 From 23519f1ec92a2524c8ecd6d172f7861a017ae3ca Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 14:08:14 +0800 Subject: [PATCH 096/110] Library Release 15.3.3 --- apputils/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apputils/build.properties b/apputils/build.properties index b2fd69c..2164f28 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 14:07:52 HKT 2025 +#Tue Apr 29 14:08:11 HKT 2025 stageCount=4 libraryProject=libapputils baseVersion=15.3 From 897875b3685243a1abb716a972a73b3cb30823ae Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 14:39:39 +0800 Subject: [PATCH 097/110] =?UTF-8?q?=E6=8A=8A=20WinBoll=20=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=20WinBoLL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../winboll/studio/appbase/MainActivity.java | 6 +- .../studio/appbase/WinBoLLActivityBase.java | 81 ++++ .../studio/appbase/WinBollActivityBase.java | 20 +- .../appbase/activities/New2Activity.java | 14 +- .../appbase/activities/NewActivity.java | 14 +- .../appbase/models/WinBoLLNewsBean.java | 72 ++++ .../appbase/models/WinBollNewsBean.java | 10 +- .../appbase/receivers/MainReceiver.java | 16 +- .../appbase/services/TestDemoBindService.java | 6 +- .../appbase/services/TestDemoService.java | 2 +- .../studio/appbase/widgets/APPNewsWidget.java | 62 +-- appbase/src/main/res/layout/activity_main.xml | 2 +- appbase/src/main/res/layout/widget_news.xml | 2 +- appbase/src/main/res/values/strings.xml | 2 +- .../studio/libappbase/GlobalApplication.java | 8 +- .../cc/winboll/studio/libappbase/WinBoll.java | 3 - .../cc/winboll/studio/libappbase/sos/SOS.java | 2 +- .../studio/libappbase/sos/WinBoLL.java | 39 ++ .../studio/libappbase/sos/WinBoll.java | 8 +- .../libappbase/winboll/IWinBoLLActivity.java | 18 + .../libappbase/winboll/IWinBollActivity.java | 6 +- .../libappbase/winboll/LogActivity.java | 2 +- .../winboll/WinBoLLActivityManager.java | 356 ++++++++++++++++++ .../winboll/WinBollActivityManager.java | 174 ++++----- 24 files changed, 744 insertions(+), 181 deletions(-) create mode 100644 appbase/src/main/java/cc/winboll/studio/appbase/WinBoLLActivityBase.java create mode 100644 appbase/src/main/java/cc/winboll/studio/appbase/models/WinBoLLNewsBean.java delete mode 100644 libappbase/src/main/java/cc/winboll/studio/libappbase/WinBoll.java create mode 100644 libappbase/src/main/java/cc/winboll/studio/libappbase/sos/WinBoLL.java create mode 100644 libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/IWinBoLLActivity.java create mode 100644 libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/WinBoLLActivityManager.java diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java b/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java index 1534dfa..4001ad4 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/MainActivity.java @@ -21,9 +21,9 @@ import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.sos.SOS; import cc.winboll.studio.libappbase.utils.ToastUtils; import cc.winboll.studio.libappbase.widgets.StatusWidget; -import cc.winboll.studio.libappbase.winboll.IWinBollActivity; +import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; -public class MainActivity extends WinBollActivityBase implements IWinBollActivity { +public class MainActivity extends WinBoLLActivityBase implements IWinBoLLActivity { public static final String TAG = "MainActivity"; @@ -176,7 +176,7 @@ public class MainActivity extends WinBollActivityBase implements IWinBollActivit } public void onTestOpenNewActivity(View view) { - GlobalApplication.getWinBollActivityManager().startWinBollActivity(this, NewActivity.class); + GlobalApplication.getWinBoLLActivityManager().startWinBoLLActivity(this, NewActivity.class); } diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/WinBoLLActivityBase.java b/appbase/src/main/java/cc/winboll/studio/appbase/WinBoLLActivityBase.java new file mode 100644 index 0000000..71b4e40 --- /dev/null +++ b/appbase/src/main/java/cc/winboll/studio/appbase/WinBoLLActivityBase.java @@ -0,0 +1,81 @@ +package cc.winboll.studio.appbase; + +/** + * @Author ZhanGSKen@AliYun.Com + * @Date 2025/03/28 15:34:16 + * @Describe 应用活动窗口基类 + */ +import android.app.Activity; +import android.os.Bundle; +import android.os.PersistableBundle; +import android.view.MenuItem; +import cc.winboll.studio.appbase.App; +import cc.winboll.studio.appbase.R; +import cc.winboll.studio.libappbase.GlobalApplication; +import cc.winboll.studio.libappbase.dialogs.YesNoAlertDialog; +import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; +import cc.winboll.studio.libappbase.winboll.WinBoLLActivityManager; + +public class WinBoLLActivityBase extends Activity implements IWinBoLLActivity { + + public static final String TAG = "WinBoLLActivityBase"; + + @Override + public Activity getActivity() { + return this; + } + + @Override + public String getTag() { + return TAG; + } + + WinBoLLActivityManager getWinBoLLActivityManager() { + return WinBoLLActivityManager.getInstance(GlobalApplication.getInstance()); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + getWinBoLLActivityManager().add(this); + } + + @Override + public void onPostCreate(Bundle savedInstanceState, PersistableBundle persistentState) { + super.onPostCreate(savedInstanceState, persistentState); + } + + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (item.getItemId() == cc.winboll.studio.appbase.R.id.item_log) { + GlobalApplication.getWinBoLLActivityManager().startLogActivity(this); + return true; + } else if(item.getItemId() == cc.winboll.studio.appbase.R.id.item_minimal) { + //moveTaskToBack(true); + exit(); + } + // 在switch语句中处理每个ID,并在处理完后返回true,未处理的情况返回false。 + return super.onOptionsItemSelected(item); + } + + void exit() { + YesNoAlertDialog.show(this, "Exit " + getString(R.string.app_name), "Close all activity and exit?", new YesNoAlertDialog.OnDialogResultListener(){ + + @Override + public void onYes() { + App.getWinBoLLActivityManager().finishAll(); + } + + @Override + public void onNo() { + } + }); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + getWinBoLLActivityManager().registeRemove(this); + } +} diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java b/appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java index ba56fb3..71b4e40 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java @@ -13,12 +13,12 @@ import cc.winboll.studio.appbase.App; import cc.winboll.studio.appbase.R; import cc.winboll.studio.libappbase.GlobalApplication; import cc.winboll.studio.libappbase.dialogs.YesNoAlertDialog; -import cc.winboll.studio.libappbase.winboll.IWinBollActivity; -import cc.winboll.studio.libappbase.winboll.WinBollActivityManager; +import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; +import cc.winboll.studio.libappbase.winboll.WinBoLLActivityManager; -public class WinBollActivityBase extends Activity implements IWinBollActivity { +public class WinBoLLActivityBase extends Activity implements IWinBoLLActivity { - public static final String TAG = "WinBollActivityBase"; + public static final String TAG = "WinBoLLActivityBase"; @Override public Activity getActivity() { @@ -30,14 +30,14 @@ public class WinBollActivityBase extends Activity implements IWinBollActivity { return TAG; } - WinBollActivityManager getWinBollActivityManager() { - return WinBollActivityManager.getInstance(GlobalApplication.getInstance()); + WinBoLLActivityManager getWinBoLLActivityManager() { + return WinBoLLActivityManager.getInstance(GlobalApplication.getInstance()); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - getWinBollActivityManager().add(this); + getWinBoLLActivityManager().add(this); } @Override @@ -49,7 +49,7 @@ public class WinBollActivityBase extends Activity implements IWinBollActivity { @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == cc.winboll.studio.appbase.R.id.item_log) { - GlobalApplication.getWinBollActivityManager().startLogActivity(this); + GlobalApplication.getWinBoLLActivityManager().startLogActivity(this); return true; } else if(item.getItemId() == cc.winboll.studio.appbase.R.id.item_minimal) { //moveTaskToBack(true); @@ -64,7 +64,7 @@ public class WinBollActivityBase extends Activity implements IWinBollActivity { @Override public void onYes() { - App.getWinBollActivityManager().finishAll(); + App.getWinBoLLActivityManager().finishAll(); } @Override @@ -76,6 +76,6 @@ public class WinBollActivityBase extends Activity implements IWinBollActivity { @Override protected void onDestroy() { super.onDestroy(); - getWinBollActivityManager().registeRemove(this); + getWinBoLLActivityManager().registeRemove(this); } } diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java b/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java index 5ba8702..b722a1d 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/activities/New2Activity.java @@ -12,11 +12,11 @@ import android.view.MenuItem; import android.view.View; import android.widget.Toolbar; import cc.winboll.studio.appbase.R; -import cc.winboll.studio.appbase.WinBollActivityBase; +import cc.winboll.studio.appbase.WinBoLLActivityBase; import cc.winboll.studio.libappbase.GlobalApplication; -import cc.winboll.studio.libappbase.winboll.IWinBollActivity; +import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; -public class New2Activity extends WinBollActivityBase implements IWinBollActivity { +public class New2Activity extends WinBoLLActivityBase implements IWinBoLLActivity { public static final String TAG = "New2Activity"; @@ -52,15 +52,15 @@ public class New2Activity extends WinBollActivityBase implements IWinBollActivit } public void onCloseThisActivity(View view) { - GlobalApplication.getWinBollActivityManager().finish(this); + GlobalApplication.getWinBoLLActivityManager().finish(this); } public void onCloseAllActivity(View view) { - GlobalApplication.getWinBollActivityManager().finishAll(); + GlobalApplication.getWinBoLLActivityManager().finishAll(); } public void onNewActivity(View view) { - GlobalApplication.getWinBollActivityManager().startWinBollActivity(this, NewActivity.class); + GlobalApplication.getWinBoLLActivityManager().startWinBoLLActivity(this, NewActivity.class); } @@ -74,7 +74,7 @@ public class New2Activity extends WinBollActivityBase implements IWinBollActivit @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == cc.winboll.studio.appbase.R.id.item_log) { - GlobalApplication.getWinBollActivityManager().startLogActivity(this); + GlobalApplication.getWinBoLLActivityManager().startLogActivity(this); return true; } // 在switch语句中处理每个ID,并在处理完后返回true,未处理的情况返回false。 diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java b/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java index 58c3cb0..d55ff1d 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/activities/NewActivity.java @@ -11,11 +11,11 @@ import android.view.MenuItem; import android.view.View; import android.widget.Toolbar; import cc.winboll.studio.appbase.R; -import cc.winboll.studio.appbase.WinBollActivityBase; +import cc.winboll.studio.appbase.WinBoLLActivityBase; import cc.winboll.studio.libappbase.GlobalApplication; -import cc.winboll.studio.libappbase.winboll.IWinBollActivity; +import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; -public class NewActivity extends WinBollActivityBase implements IWinBollActivity { +public class NewActivity extends WinBoLLActivityBase implements IWinBoLLActivity { public static final String TAG = "NewActivity"; @@ -50,15 +50,15 @@ public class NewActivity extends WinBollActivityBase implements IWinBollActivity } public void onCloseThisActivity(View view) { - GlobalApplication.getWinBollActivityManager().finish(this); + GlobalApplication.getWinBoLLActivityManager().finish(this); } public void onCloseAllActivity(View view) { - GlobalApplication.getWinBollActivityManager().finishAll(); + GlobalApplication.getWinBoLLActivityManager().finishAll(); } public void onNew2Activity(View view) { - GlobalApplication.getWinBollActivityManager().startWinBollActivity(this, New2Activity.class); + GlobalApplication.getWinBoLLActivityManager().startWinBoLLActivity(this, New2Activity.class); } @@ -72,7 +72,7 @@ public class NewActivity extends WinBollActivityBase implements IWinBollActivity @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == cc.winboll.studio.appbase.R.id.item_log) { - GlobalApplication.getWinBollActivityManager().startLogActivity(this); + GlobalApplication.getWinBoLLActivityManager().startLogActivity(this); return true; } // 在switch语句中处理每个ID,并在处理完后返回true,未处理的情况返回false。 diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/models/WinBoLLNewsBean.java b/appbase/src/main/java/cc/winboll/studio/appbase/models/WinBoLLNewsBean.java new file mode 100644 index 0000000..8d70a3a --- /dev/null +++ b/appbase/src/main/java/cc/winboll/studio/appbase/models/WinBoLLNewsBean.java @@ -0,0 +1,72 @@ +package cc.winboll.studio.appbase.models; + +/** + * @Author ZhanGSKen@AliYun.Com + * @Date 2025/02/17 10:05:09 + * @Describe APPSOSReportBean + */ +import android.util.JsonReader; +import android.util.JsonWriter; +import cc.winboll.studio.libappbase.BaseBean; +import java.io.IOException; + +public class WinBoLLNewsBean extends BaseBean { + + public static final String TAG = "WinBoLLNewsBean"; + + protected String message; + + public WinBoLLNewsBean() { + this.message = ""; + } + + public WinBoLLNewsBean(String message) { + this.message = message; + } + + public void setMessage(String message) { + this.message = message; + } + + public String getMessage() { + return message; + } + + @Override + public String getName() { + return WinBoLLNewsBean.class.getName(); + } + + @Override + public void writeThisToJsonWriter(JsonWriter jsonWriter) throws IOException { + super.writeThisToJsonWriter(jsonWriter); + jsonWriter.name("message").value(getMessage()); + + } + + @Override + public boolean initObjectsFromJsonReader(JsonReader jsonReader, String name) throws IOException { + if (super.initObjectsFromJsonReader(jsonReader, name)) { return true; } else { + if (name.equals("message")) { + setMessage(jsonReader.nextString()); + } else { + return false; + } + } + return true; + } + + @Override + public BaseBean readBeanFromJsonReader(JsonReader jsonReader) throws IOException { + jsonReader.beginObject(); + while (jsonReader.hasNext()) { + String name = jsonReader.nextName(); + if (!initObjectsFromJsonReader(jsonReader, name)) { + jsonReader.skipValue(); + } + } + // 结束 JSON 对象 + jsonReader.endObject(); + return this; + } +} diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/models/WinBollNewsBean.java b/appbase/src/main/java/cc/winboll/studio/appbase/models/WinBollNewsBean.java index 66ee6b6..8d70a3a 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/models/WinBollNewsBean.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/models/WinBollNewsBean.java @@ -10,17 +10,17 @@ import android.util.JsonWriter; import cc.winboll.studio.libappbase.BaseBean; import java.io.IOException; -public class WinBollNewsBean extends BaseBean { +public class WinBoLLNewsBean extends BaseBean { - public static final String TAG = "WinBollNewsBean"; + public static final String TAG = "WinBoLLNewsBean"; protected String message; - public WinBollNewsBean() { + public WinBoLLNewsBean() { this.message = ""; } - public WinBollNewsBean(String message) { + public WinBoLLNewsBean(String message) { this.message = message; } @@ -34,7 +34,7 @@ public class WinBollNewsBean extends BaseBean { @Override public String getName() { - return WinBollNewsBean.class.getName(); + return WinBoLLNewsBean.class.getName(); } @Override diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/receivers/MainReceiver.java b/appbase/src/main/java/cc/winboll/studio/appbase/receivers/MainReceiver.java index 498f877..a502f10 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/receivers/MainReceiver.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/receivers/MainReceiver.java @@ -10,7 +10,7 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import cc.winboll.studio.appbase.models.WinBollNewsBean; +import cc.winboll.studio.appbase.models.WinBoLLNewsBean; import cc.winboll.studio.appbase.services.MainService; import cc.winboll.studio.appbase.widgets.APPNewsWidget; import cc.winboll.studio.libappbase.AppUtils; @@ -18,7 +18,7 @@ import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.sos.APPModel; import cc.winboll.studio.libappbase.sos.SOS; import cc.winboll.studio.libappbase.sos.SOSObject; -import cc.winboll.studio.libappbase.sos.WinBoll; +import cc.winboll.studio.libappbase.sos.WinBoLL; import cc.winboll.studio.libappbase.utils.ToastUtils; import java.io.IOException; import java.lang.ref.WeakReference; @@ -42,11 +42,11 @@ public class MainReceiver extends BroadcastReceiver { String szAction = intent.getAction(); if (szAction.equals(ACTION_BOOT_COMPLETED)) { ToastUtils.show("ACTION_BOOT_COMPLETED"); - } else if (szAction.equals(WinBoll.ACTION_BIND)) { + } else if (szAction.equals(WinBoLL.ACTION_BIND)) { LogUtils.d(TAG, "ACTION_BIND"); LogUtils.d(TAG, String.format("context.getPackageName() %s", context.getPackageName())); LogUtils.d(TAG, String.format("intent.getAction() %s", intent.getAction())); - String szAPPModel = intent.getStringExtra(WinBoll.EXTRA_APPMODEL); + String szAPPModel = intent.getStringExtra(WinBoLL.EXTRA_APPMODEL); LogUtils.d(TAG, String.format("szAPPModel %s", szAPPModel)); if (szAPPModel != null && !szAPPModel.equals("")) { try { @@ -80,7 +80,7 @@ public class MainReceiver extends BroadcastReceiver { String appName = AppUtils.getAppNameByPackageName(context, szObjectPackageName); LogUtils.d(TAG, String.format("appName %s", appName)); - WinBollNewsBean appWinBollNewsBean = new WinBollNewsBean(appName); + WinBoLLNewsBean appWinBoLLNewsBean = new WinBoLLNewsBean(appName); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); String currentTime = sdf.format(new Date()); StringBuilder sbLine = new StringBuilder(); @@ -88,9 +88,9 @@ public class MainReceiver extends BroadcastReceiver { sbLine.append(currentTime); sbLine.append("] Power to "); sbLine.append(appName); - appWinBollNewsBean.setMessage(sbLine.toString()); + appWinBoLLNewsBean.setMessage(sbLine.toString()); - APPNewsWidget.addWinBollNewsBean(context, appWinBollNewsBean); + APPNewsWidget.addWinBoLLNewsBean(context, appWinBoLLNewsBean); Intent intentWidget = new Intent(context, APPNewsWidget.class); intentWidget.setAction(APPNewsWidget.ACTION_RELOAD_REPORT); @@ -110,7 +110,7 @@ public class MainReceiver extends BroadcastReceiver { IntentFilter filter=new IntentFilter(); filter.addAction(ACTION_BOOT_COMPLETED); filter.addAction(SOS.ACTION_SOS); - filter.addAction(WinBoll.ACTION_BIND); + filter.addAction(WinBoLL.ACTION_BIND); //filter.addAction(Intent.ACTION_BATTERY_CHANGED); service.registerReceiver(this, filter); } diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/services/TestDemoBindService.java b/appbase/src/main/java/cc/winboll/studio/appbase/services/TestDemoBindService.java index 14209de..043a256 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/services/TestDemoBindService.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/services/TestDemoBindService.java @@ -12,7 +12,7 @@ import android.os.Binder; import android.os.IBinder; import cc.winboll.studio.appbase.models.TestDemoBindServiceBean; import cc.winboll.studio.libappbase.LogUtils; -import cc.winboll.studio.libappbase.sos.WinBoll; +import cc.winboll.studio.libappbase.sos.WinBoLL; import cc.winboll.studio.appbase.App; import cc.winboll.studio.libappbase.sos.SOS; @@ -156,9 +156,9 @@ public class TestDemoBindService extends Service { super.run(); LogUtils.d(TAG, "run() start"); if (App.isDebuging()) { - WinBoll.bindToAPPBaseBeta(mContext, TestDemoBindService.class.getName()); + WinBoLL.bindToAPPBaseBeta(mContext, TestDemoBindService.class.getName()); } else { - WinBoll.bindToAPPBase(mContext, TestDemoBindService.class.getName()); + WinBoLL.bindToAPPBase(mContext, TestDemoBindService.class.getName()); } while (!isExit()) { diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/services/TestDemoService.java b/appbase/src/main/java/cc/winboll/studio/appbase/services/TestDemoService.java index 6098dce..4991b86 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/services/TestDemoService.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/services/TestDemoService.java @@ -12,7 +12,7 @@ import android.os.Binder; import android.os.IBinder; import cc.winboll.studio.appbase.models.TestDemoServiceBean; import cc.winboll.studio.libappbase.LogUtils; -import cc.winboll.studio.libappbase.sos.WinBoll; +import cc.winboll.studio.libappbase.sos.WinBoLL; public class TestDemoService extends Service { diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/widgets/APPNewsWidget.java b/appbase/src/main/java/cc/winboll/studio/appbase/widgets/APPNewsWidget.java index c844983..0c7c7e5 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/widgets/APPNewsWidget.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/widgets/APPNewsWidget.java @@ -12,12 +12,12 @@ import android.content.Context; import android.content.Intent; import android.widget.RemoteViews; import cc.winboll.studio.appbase.R; -import cc.winboll.studio.appbase.models.WinBollNewsBean; +import cc.winboll.studio.appbase.models.WinBoLLNewsBean; import cc.winboll.studio.appbase.receivers.APPNewsWidgetClickListener; import cc.winboll.studio.libappbase.AppUtils; import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.sos.APPModel; -import cc.winboll.studio.libappbase.sos.WinBoll; +import cc.winboll.studio.libappbase.sos.WinBoLL; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -31,14 +31,14 @@ public class APPNewsWidget extends AppWidgetProvider { public static final String ACTION_RELOAD_REPORT = APPNewsWidget.class.getName() + ".ACTION_RELOAD_REPORT"; - volatile static ArrayList _WinBollNewsBeanList; + volatile static ArrayList _WinBoLLNewsBeanList; final static int _MAX_PAGES = 10; final static int _OnePageLinesCount = 5; volatile static int _CurrentPageIndex = 0; @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { - initWinBollNewsBeanList(context); + initWinBoLLNewsBeanList(context); for (int appWidgetId : appWidgetIds) { updateAppWidget(context, appWidgetManager, appWidgetId); } @@ -47,7 +47,7 @@ public class APPNewsWidget extends AppWidgetProvider { @Override public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); - initWinBollNewsBeanList(context); + initWinBoLLNewsBeanList(context); if (intent.getAction().equals(ACTION_RELOAD_REPORT)) { LogUtils.d(TAG, "ACTION_RELOAD_REPORT"); AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); @@ -57,7 +57,7 @@ public class APPNewsWidget extends AppWidgetProvider { } }else if (intent.getAction().equals(ACTION_WAKEUP_SERVICE)) { LogUtils.d(TAG, "ACTION_WAKEUP_SERVICE"); - String szAPPModel = intent.getStringExtra(WinBoll.EXTRA_APPMODEL); + String szAPPModel = intent.getStringExtra(WinBoLL.EXTRA_APPMODEL); LogUtils.d(TAG, String.format("szAPPModel %s", szAPPModel)); if (szAPPModel != null && !szAPPModel.equals("")) { try { @@ -71,7 +71,7 @@ public class APPNewsWidget extends AppWidgetProvider { String appName = AppUtils.getAppNameByPackageName(context, szAppPackageName); LogUtils.d(TAG, String.format("appName %s", appName)); - WinBollNewsBean winBollNewsBean = new WinBollNewsBean(appName); + WinBoLLNewsBean winBollNewsBean = new WinBoLLNewsBean(appName); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); String currentTime = sdf.format(new Date()); StringBuilder sbLine = new StringBuilder(); @@ -81,7 +81,7 @@ public class APPNewsWidget extends AppWidgetProvider { sbLine.append(appName); winBollNewsBean.setMessage(sbLine.toString()); - addWinBollNewsBean(context, winBollNewsBean); + addWinBoLLNewsBean(context, winBollNewsBean); AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, APPNewsWidget.class)); @@ -99,24 +99,24 @@ public class APPNewsWidget extends AppWidgetProvider { // // 加入新报告信息 // - public synchronized static void addWinBollNewsBean(Context context, WinBollNewsBean bean) { - initWinBollNewsBeanList(context); - _WinBollNewsBeanList.add(0, bean); + public synchronized static void addWinBoLLNewsBean(Context context, WinBoLLNewsBean bean) { + initWinBoLLNewsBeanList(context); + _WinBoLLNewsBeanList.add(0, bean); // 控制记录总数 - while (_WinBollNewsBeanList.size() > _MAX_PAGES * _OnePageLinesCount) { - _WinBollNewsBeanList.remove(_WinBollNewsBeanList.size() - 1); + while (_WinBoLLNewsBeanList.size() > _MAX_PAGES * _OnePageLinesCount) { + _WinBoLLNewsBeanList.remove(_WinBoLLNewsBeanList.size() - 1); } - WinBollNewsBean.saveBeanList(context, _WinBollNewsBeanList, WinBollNewsBean.class); + WinBoLLNewsBean.saveBeanList(context, _WinBoLLNewsBeanList, WinBoLLNewsBean.class); } - synchronized static void initWinBollNewsBeanList(Context context) { - if (_WinBollNewsBeanList == null) { - _WinBollNewsBeanList = new ArrayList(); - WinBollNewsBean.loadBeanList(context, _WinBollNewsBeanList, WinBollNewsBean.class); + synchronized static void initWinBoLLNewsBeanList(Context context) { + if (_WinBoLLNewsBeanList == null) { + _WinBoLLNewsBeanList = new ArrayList(); + WinBoLLNewsBean.loadBeanList(context, _WinBoLLNewsBeanList, WinBoLLNewsBean.class); } - if (_WinBollNewsBeanList == null) { - _WinBollNewsBeanList = new ArrayList(); - WinBollNewsBean.saveBeanList(context, _WinBollNewsBeanList, WinBollNewsBean.class); + if (_WinBoLLNewsBeanList == null) { + _WinBoLLNewsBeanList = new ArrayList(); + WinBoLLNewsBean.saveBeanList(context, _WinBoLLNewsBeanList, WinBoLLNewsBean.class); } } @@ -141,11 +141,11 @@ public class APPNewsWidget extends AppWidgetProvider { public static String getMessage() { ArrayList msgTemp = new ArrayList(); - if (_WinBollNewsBeanList != null) { + if (_WinBoLLNewsBeanList != null) { int start = _OnePageLinesCount * _CurrentPageIndex; - start = _WinBollNewsBeanList.size() > start ? start : _WinBollNewsBeanList.size() - 1; - for (int i = start, j = 0; i < _WinBollNewsBeanList.size() && j < _OnePageLinesCount && start > -1; i++, j++) { - msgTemp.add(_WinBollNewsBeanList.get(i).getMessage()); + start = _WinBoLLNewsBeanList.size() > start ? start : _WinBoLLNewsBeanList.size() - 1; + for (int i = start, j = 0; i < _WinBoLLNewsBeanList.size() && j < _OnePageLinesCount && start > -1; i++, j++) { + msgTemp.add(_WinBoLLNewsBeanList.get(i).getMessage()); } String message = String.join("\n", msgTemp); return message; @@ -154,7 +154,7 @@ public class APPNewsWidget extends AppWidgetProvider { } public static void prePage(Context context) { - if (_WinBollNewsBeanList != null) { + if (_WinBoLLNewsBeanList != null) { if (_CurrentPageIndex > 0) { _CurrentPageIndex = _CurrentPageIndex - 1; } @@ -165,8 +165,8 @@ public class APPNewsWidget extends AppWidgetProvider { } public static void nextPage(Context context) { - if (_WinBollNewsBeanList != null) { - if ((_CurrentPageIndex + 1) * _OnePageLinesCount < _WinBollNewsBeanList.size()) { + if (_WinBoLLNewsBeanList != null) { + if ((_CurrentPageIndex + 1) * _OnePageLinesCount < _WinBoLLNewsBeanList.size()) { _CurrentPageIndex = _CurrentPageIndex + 1; } Intent intentWidget = new Intent(context, APPNewsWidget.class); @@ -176,11 +176,11 @@ public class APPNewsWidget extends AppWidgetProvider { } String getPageInfo() { - if (_WinBollNewsBeanList == null) { + if (_WinBoLLNewsBeanList == null) { return "0/0"; } - int leftCount = _WinBollNewsBeanList.size() % _OnePageLinesCount; - int currentPageCount = _WinBollNewsBeanList.size() / _OnePageLinesCount + (leftCount == 0 ?0: 1); + int leftCount = _WinBoLLNewsBeanList.size() % _OnePageLinesCount; + int currentPageCount = _WinBoLLNewsBeanList.size() / _OnePageLinesCount + (leftCount == 0 ?0: 1); return String.format("%d/%d", _CurrentPageIndex + 1, currentPageCount); } } diff --git a/appbase/src/main/res/layout/activity_main.xml b/appbase/src/main/res/layout/activity_main.xml index 17813d2..a0e011f 100644 --- a/appbase/src/main/res/layout/activity_main.xml +++ b/appbase/src/main/res/layout/activity_main.xml @@ -32,7 +32,7 @@ + android:text="Hello, WinBoLL!"/> diff --git a/appbase/src/main/res/values/strings.xml b/appbase/src/main/res/values/strings.xml index eb33ef7..fdd16ce 100644 --- a/appbase/src/main/res/values/strings.xml +++ b/appbase/src/main/res/values/strings.xml @@ -1,5 +1,5 @@ AppBase - WinBoll + WinBoLL diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalApplication.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalApplication.java index 9cff4a1..f00b139 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalApplication.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalApplication.java @@ -12,7 +12,7 @@ import android.content.pm.PackageManager; import android.os.Handler; import android.os.Looper; import cc.winboll.studio.libappbase.utils.ToastUtils; -import cc.winboll.studio.libappbase.winboll.WinBollActivityManager; +import cc.winboll.studio.libappbase.winboll.WinBoLLActivityManager; import cc.winboll.studio.libappbase.winboll.MyActivityLifecycleCallbacks; public class GlobalApplication extends Application { @@ -46,8 +46,8 @@ public class GlobalApplication extends Application { return isDebuging; } - public static WinBollActivityManager getWinBollActivityManager() { - return WinBollActivityManager.getInstance(_GlobalApplication); + public static WinBoLLActivityManager getWinBoLLActivityManager() { + return WinBoLLActivityManager.getInstance(_GlobalApplication); } @Override @@ -77,7 +77,7 @@ public class GlobalApplication extends Application { setIsDebuging(appBaseModel.isDebuging()); } - getWinBollActivityManager().setWinBollUI_TYPE(WinBollActivityManager.WinBollUI_TYPE.Service); + getWinBoLLActivityManager().setWinBoLLUI_TYPE(WinBoLLActivityManager.WinBoLLUI_TYPE.Service); // 注册窗口回调监听 mMyActivityLifecycleCallbacks = new MyActivityLifecycleCallbacks(); registerActivityLifecycleCallbacks(mMyActivityLifecycleCallbacks); diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/WinBoll.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/WinBoll.java deleted file mode 100644 index bfd8d0a..0000000 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/WinBoll.java +++ /dev/null @@ -1,3 +0,0 @@ -package cc.winboll.studio.libappbase; - - diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/sos/SOS.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/sos/SOS.java index fc48a28..b6b8852 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/sos/SOS.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/sos/SOS.java @@ -3,7 +3,7 @@ package cc.winboll.studio.libappbase.sos; /** * @Author ZhanGSKen@AliYun.Com * @Date 2025/03/02 09:36:29 - * @Describe WinBoll 应用 SOS 机理保护类 + * @Describe WinBoLL 应用 SOS 机理保护类 */ import android.content.Context; import android.content.Intent; diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/sos/WinBoLL.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/sos/WinBoLL.java new file mode 100644 index 0000000..080c7e0 --- /dev/null +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/sos/WinBoLL.java @@ -0,0 +1,39 @@ +package cc.winboll.studio.libappbase.sos; + +/** + * @Author ZhanGSKen@AliYun.Com + * @Date 2025/03/02 09:54:28 + * @Describe WinBoLL 系列应用通用管理类 + */ +import android.content.Context; +import android.content.Intent; +import cc.winboll.studio.libappbase.LogUtils; + +public class WinBoLL { + + public static final String TAG = "WinBoLL"; + + public static final String ACTION_BIND = WinBoLL.class.getName() + ".ACTION_BIND"; + public static final String EXTRA_APPMODEL = "EXTRA_APPMODEL"; + + public static void bindToAPPBase(Context context, String appMainService) { + LogUtils.d(TAG, "bindToAPPBase(...)"); + String toPackage = "cc.winboll.studio.appbase"; + startBind(context, toPackage, appMainService); + } + + public static void bindToAPPBaseBeta(Context context, String appMainService) { + LogUtils.d(TAG, "bindToAPPBaseBeta(...)"); + String toPackage = "cc.winboll.studio.appbase.beta"; + startBind(context, toPackage, appMainService); + } + + static void startBind(Context context, String toPackage, String appMainService) { + Intent intent = new Intent(ACTION_BIND); + intent.putExtra(EXTRA_APPMODEL, (new APPModel(toPackage, appMainService)).toString()); + intent.setPackage(toPackage); + LogUtils.d(TAG, String.format("ACTION_BIND :\nTo Package : %s\nAPP Main Service : %s", toPackage, appMainService)); + context.sendBroadcast(intent); + } + +} diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/sos/WinBoll.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/sos/WinBoll.java index f826b7b..080c7e0 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/sos/WinBoll.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/sos/WinBoll.java @@ -3,17 +3,17 @@ package cc.winboll.studio.libappbase.sos; /** * @Author ZhanGSKen@AliYun.Com * @Date 2025/03/02 09:54:28 - * @Describe WinBoll 系列应用通用管理类 + * @Describe WinBoLL 系列应用通用管理类 */ import android.content.Context; import android.content.Intent; import cc.winboll.studio.libappbase.LogUtils; -public class WinBoll { +public class WinBoLL { - public static final String TAG = "WinBoll"; + public static final String TAG = "WinBoLL"; - public static final String ACTION_BIND = WinBoll.class.getName() + ".ACTION_BIND"; + public static final String ACTION_BIND = WinBoLL.class.getName() + ".ACTION_BIND"; public static final String EXTRA_APPMODEL = "EXTRA_APPMODEL"; public static void bindToAPPBase(Context context, String appMainService) { diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/IWinBoLLActivity.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/IWinBoLLActivity.java new file mode 100644 index 0000000..4bed92a --- /dev/null +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/IWinBoLLActivity.java @@ -0,0 +1,18 @@ +package cc.winboll.studio.libappbase.winboll; + +/** + * @Author ZhanGSKen@AliYun.Com + * @Date 2025/03/24 08:23:40 + * @Describe WinBoLL 活动窗口通用接口 + */ +import android.app.Activity; +import android.widget.Toolbar; + +public interface IWinBoLLActivity { + + public static final String TAG = "IWinBoLLActivity"; + + // 获取活动窗口 + abstract public Activity getActivity(); + abstract public String getTag(); +} diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/IWinBollActivity.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/IWinBollActivity.java index 47c8b59..4bed92a 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/IWinBollActivity.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/IWinBollActivity.java @@ -3,14 +3,14 @@ package cc.winboll.studio.libappbase.winboll; /** * @Author ZhanGSKen@AliYun.Com * @Date 2025/03/24 08:23:40 - * @Describe WinBoll 活动窗口通用接口 + * @Describe WinBoLL 活动窗口通用接口 */ import android.app.Activity; import android.widget.Toolbar; -public interface IWinBollActivity { +public interface IWinBoLLActivity { - public static final String TAG = "IWinBollActivity"; + public static final String TAG = "IWinBoLLActivity"; // 获取活动窗口 abstract public Activity getActivity(); diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/LogActivity.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/LogActivity.java index c739743..09d5407 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/LogActivity.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/LogActivity.java @@ -13,7 +13,7 @@ import cc.winboll.studio.libappbase.LogView; import cc.winboll.studio.libappbase.R; import cc.winboll.studio.libappbase.utils.ToastUtils; -public class LogActivity extends Activity implements IWinBollActivity { +public class LogActivity extends Activity implements IWinBoLLActivity { public static final String TAG = "LogActivity"; diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/WinBoLLActivityManager.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/WinBoLLActivityManager.java new file mode 100644 index 0000000..013ee8f --- /dev/null +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/WinBoLLActivityManager.java @@ -0,0 +1,356 @@ +package cc.winboll.studio.libappbase.winboll; + +/** + * @Author ZhanGSKen@AliYun.Com + * @Date 2025/03/24 08:25:43 + * @Describe 应用活动窗口管理器 + * 参考 : + * android 类似微信小程序多任务窗口 及 设置 TaskDescription 修改 icon 和 label + * https://blog.csdn.net/qq_29364417/article/details/109379915?app_version=6.4.2&code=app_1562916241&csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22109379915%22%2C%22source%22%3A%22weixin_38986226%22%7D&uLinkId=usr1mkqgl919blen&utm_source=app + */ +import android.app.ActivityManager; +import android.app.TaskStackBuilder; +import android.content.Context; +import android.content.Intent; +import cc.winboll.studio.libappbase.GlobalApplication; +import cc.winboll.studio.libappbase.LogUtils; +import cc.winboll.studio.libappbase.utils.ToastUtils; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +public class WinBoLLActivityManager { + + public static final String TAG = "WinBoLLActivityManager"; + public static final String EXTRA_TAG = "EXTRA_TAG"; + + public static enum WinBoLLUI_TYPE { + Aplication, // 退出应用后,保持最近任务栏任务记录主窗口 + Service // 退出应用后,清理所有最近任务栏任务记录窗口 + }; + + // 应用类型标志 + static volatile WinBoLLUI_TYPE _mWinBoLLUI_TYPE = WinBoLLUI_TYPE.Service; + + GlobalApplication mGlobalApplication; + static volatile WinBoLLActivityManager _Instance; + static volatile Map _mapIWinBoLLList; + volatile IWinBoLLActivity mFirstIWinBoLLActivity; + + WinBoLLActivityManager(GlobalApplication application) { + mGlobalApplication = application; + _mapIWinBoLLList = new HashMap(); + } + + public static synchronized WinBoLLActivityManager getInstance(GlobalApplication application) { + LogUtils.d(TAG, "getInstance"); + if (_Instance == null) { + LogUtils.d(TAG, "_Instance == null"); + _Instance = new WinBoLLActivityManager(application); + } + return _Instance; + } + + // + // 设置 WinBoLL 应用 UI 类型 + // + public synchronized static void setWinBoLLUI_TYPE(WinBoLLUI_TYPE mWinBoLLUI_TYPE) { + _mWinBoLLUI_TYPE = mWinBoLLUI_TYPE; + } + + // + // 获取 WinBoLL 应用 UI 类型 + // + public synchronized static WinBoLLUI_TYPE getWinBoLLUI_TYPE() { + return _mWinBoLLUI_TYPE; + } + + // + // 把Activity添加到管理中 + // + public void add(T iWinBoLL) { + String tag = ((IWinBoLLActivity)iWinBoLL).getTag(); + LogUtils.d(TAG, String.format("add(T iWinBoLL) tag is %s", tag)); + if (isActive(tag)) { + LogUtils.d(TAG, String.format("isActive(tag) is true, tag : %s.", tag)); + } else { + // 设置起始活动窗口,以便最后退出时提问 + if (mFirstIWinBoLLActivity == null && _mapIWinBoLLList.size() == 0) { + LogUtils.d(TAG, "Set firstIWinBoLLActivity, iWinBoLL.getTag() is %s" + iWinBoLL.getTag()); + mFirstIWinBoLLActivity = iWinBoLL; + } + + // 添加到活动窗口列表 + _mapIWinBoLLList.put(iWinBoLL.getTag(), iWinBoLL); + LogUtils.d(TAG, String.format("Add activity : %s\n_mapActivityList.size() : %d", iWinBoLL.getTag(), _mapIWinBoLLList.size())); + } + } + + + // + // activity: 为 null 时, + // intent.putExtra 函数 EXTRA_TAG 参数为 tag + // activity: 不为 null 时, + // intent.putExtra 函数 "tag" 参数为 activity.getTag() + // + public void startWinBoLLActivity(Context context, Class clazz) { + try { + // 如果窗口已存在就重启窗口 + String tag = ((IWinBoLLActivity)clazz.newInstance()).getTag(); + LogUtils.d(TAG, String.format("startWinBoLLActivity(Context context, Class clazz) tag is %s", tag)); + if (isActive(tag)) { + resumeActivity(context, tag); + return; + } + //ToastUtils.show("startWinBoLLActivity(Context context, Class clazz)"); + + // 新建一个任务窗口 + Intent intent = new Intent(context, clazz); + //打开多任务窗口 flags + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); + intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.putExtra(EXTRA_TAG, tag); + context.startActivity(intent); + } catch (InstantiationException | IllegalAccessException e) { + LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); + } + } + + public void startWinBoLLActivity(Context context, Intent intent, Class clazz) { + try { + // 如果窗口已存在就重启窗口 + String tag = ((IWinBoLLActivity)clazz.newInstance()).getTag(); + LogUtils.d(TAG, String.format("startWinBoLLActivity(Context context, Intent intent, Class clazz) tag is %s", tag)); + if (isActive(tag)) { + resumeActivity(context, tag); + return; + } + + // 新建一个任务窗口 + //Intent intent = new Intent(context, clazz); + //打开多任务窗口 flags + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); + intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.putExtra(EXTRA_TAG, tag); + context.startActivity(intent); + } catch (InstantiationException | IllegalAccessException e) { + LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); + } + } + + public void startLogActivity(Context context) { + // 如果窗口已存在就重启窗口 + String tag = LogActivity.TAG; + if (isActive(tag)) { + resumeActivity(context, tag); + return; + } + + // 新建一个任务窗口 + Intent intent = new Intent(context, LogActivity.class); + //打开多任务窗口 flags + // Define the bounds. +// Rect bounds = new Rect(0, 0, 800, 200); +// // Set the bounds as an activity option. +// ActivityOptions options = ActivityOptions.makeBasic(); +// options.setLaunchBounds(bounds); + intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); + intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); + + intent.putExtra(EXTRA_TAG, tag); + + //context.startActivity(intent, options.toBundle()); + context.startActivity(intent); + } + + public boolean isFirstIWinBoLLActivity(IWinBoLLActivity iWinBoLLActivity) { + return mFirstIWinBoLLActivity != null && mFirstIWinBoLLActivity == iWinBoLLActivity; + } + + // + // 判断 tag绑定的 MyActivity是否存在 + // + public boolean isActive(String tag) { + LogUtils.d(TAG, String.format("isActive(String tag) tag is %s", tag)); + //printIWinBoLLListInfo(); + IWinBoLLActivity iWinBoLL = getIWinBoLL(tag); + if (iWinBoLL != null) { + //LogUtils.d(TAG, "isActive(...) activity != null tag " + tag); + //ToastUtils.show("activity != null tag " + tag); + //判断是否为 BaseActivity,如果已经销毁,则移除 + if (iWinBoLL.getActivity().isFinishing() || iWinBoLL.getActivity().isDestroyed()) { + _mapIWinBoLLList.remove(iWinBoLL.getTag()); + //_mWinBoLLActivityList.remove(activity); + LogUtils.d(TAG, String.format("isActive(...) remove activity.\ntag : %s", tag)); + return false; + } else { + LogUtils.d(TAG, String.format("isActive(...) activity is exist.\ntag : %s", tag)); + return true; + } + } else { + LogUtils.d(TAG, String.format("isActive(...) iWinBoLL is null tag by %s", tag)); + return false; + } + } + + static IWinBoLLActivity getIWinBoLL(String tag) { + LogUtils.d(TAG, String.format("getIWinBoLL(String tag) %s", tag)); + return _mapIWinBoLLList.get(tag); + } + + // + // 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台 + // + public void resumeActivity(Context context, String tag) { + LogUtils.d(TAG, "resumeActivity(Context context, String tag)"); + T iWinBoLL = (T)getIWinBoLL(tag); + LogUtils.d(TAG, String.format("iWinBoLL.getTag() %s", iWinBoLL.getTag())); + //LogUtils.d(TAG, "activity " + activity.getTag()); + if (iWinBoLL != null && !iWinBoLL.getActivity().isFinishing() && !iWinBoLL.getActivity().isDestroyed()) { + resumeActivity(context, iWinBoLL); + } + } + + // + // 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台 + // + public void resumeActivity(Context context, T iWinBoLL) { + LogUtils.d(TAG, "resumeActivity(Context context, T iWinBoLL)"); + ActivityManager am = (ActivityManager) mGlobalApplication.getSystemService(Context.ACTIVITY_SERVICE); + //返回启动它的根任务(home 或者 MainActivity) + Intent intent = new Intent(mGlobalApplication, iWinBoLL.getClass()); + TaskStackBuilder stackBuilder = TaskStackBuilder.create(mGlobalApplication); + stackBuilder.addNextIntentWithParentStack(intent); + stackBuilder.startActivities(); + //moveTaskToFront(YourTaskId, 0); + //ToastUtils.show("resumeActivity am.moveTaskToFront"); + LogUtils.d(TAG, String.format("iWinBoLL.getActivity().getTaskId() %d", iWinBoLL.getActivity().getTaskId())); + am.moveTaskToFront(iWinBoLL.getActivity().getTaskId(), ActivityManager.MOVE_TASK_NO_USER_ACTION); + LogUtils.d(TAG, "am.moveTaskToFront"); + } + + + // + // 结束所有 Activity + // + public void finishAll() { + try { + for (String key : _mapIWinBoLLList.keySet()) { + //System.out.println("Key: " + key + ", Value: " + _mapActivityList.get(key)); + IWinBoLLActivity iWinBoLL = _mapIWinBoLLList.get(key); + //ToastUtils.show("finishAll() activity"); + if (iWinBoLL != null && !iWinBoLL.getActivity().isFinishing() && !iWinBoLL.getActivity().isDestroyed()) { + //ToastUtils.show("activity != null ..."); + if (getWinBoLLUI_TYPE() == WinBoLLUI_TYPE.Service) { + // 结束窗口和最近任务栏, 建议前台服务类应用使用,可以方便用户再次调用 UI 操作。 + iWinBoLL.getActivity().finishAndRemoveTask(); + //ToastUtils.show("finishAll() activity.finishAndRemoveTask();"); + } else if (getWinBoLLUI_TYPE() == WinBoLLUI_TYPE.Aplication) { + // 结束窗口保留最近任务栏,建议前台服务类应用使用,可以保持应用的系统自觉性。 + iWinBoLL.getActivity().finish(); + //ToastUtils.show("finishAll() activity.finish();"); + } else { + LogUtils.d(TAG, "WinBoLLApplication.WinBoLLUI_TYPE error."); + //ToastUtils.show("WinBoLLApplication.WinBoLLUI_TYPE error."); + } + } + } + } catch (Exception e) { + LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); + } + } + + // + // 结束指定Activity + // + public void finish(T iWinBoLL) { + try { + if (iWinBoLL != null && !iWinBoLL.getActivity().isFinishing() && !iWinBoLL.getActivity().isDestroyed()) { + //根据tag 移除 MyActivity + //String tag= activity.getTag(); + //_mWinBoLLActivityList.remove(tag); + //ToastUtils.show("remove"); + //ToastUtils.show("_mWinBoLLActivityArrayMap.size() " + Integer.toString(_mWinBoLLActivityArrayMap.size())); + + // 窗口回调规则: + // [] 当前窗口位置 >> 调度出的窗口位置 + // ★:[0] 1 2 3 4 >> 1 + // ★:0 1 [2] 3 4 >> 1 + // ★:0 1 2 [3] 4 >> 2 + // ★:0 1 2 3 [4] >> 3 + // ★:[0] >> 直接关闭当前窗口 + //LogUtils.d(TAG, "finish no yet."); + IWinBoLLActivity preIWinBoLL = getPreIWinBoLL(iWinBoLL); + iWinBoLL.getActivity().finish(); + if (preIWinBoLL != null) { + resumeActivity(mGlobalApplication, preIWinBoLL); + } + } + + } catch (Exception e) { + LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); + } + } + + // + // 获取窗口队列中的前一个窗口 + // + IWinBoLLActivity getPreIWinBoLL(IWinBoLLActivity iWinBoLL) { + try { + boolean bingo = false; + IWinBoLLActivity preIWinBoLL = null; + for (Map.Entry entity : _mapIWinBoLLList.entrySet()) { + if (entity.getKey().equals(iWinBoLL.getTag())) { + bingo = true; + //LogUtils.d(TAG, "bingo"); + break; + } + preIWinBoLL = entity.getValue(); + } + + if (bingo) { + return preIWinBoLL; + } + } catch (Exception e) { + LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); + } + + return null; + } + + // + // 从管理列表中移除管理项 + // + public boolean registeRemove(T activity) { + IWinBoLLActivity iWinBoLLTest = _mapIWinBoLLList.get(activity.getTag()); + if (iWinBoLLTest != null) { + _mapIWinBoLLList.remove(activity.getTag()); + return true; + } + return false; + } + + // + // 打印管理列表项列表里的信息 + // + public static void printIWinBoLLListInfo() { + //LogUtils.d(TAG, "printAvtivityListInfo"); + if (!_mapIWinBoLLList.isEmpty()) { + StringBuilder sb = new StringBuilder("Map entries : " + Integer.toString(_mapIWinBoLLList.size())); + Iterator> iterator = _mapIWinBoLLList.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry entry = iterator.next(); + sb.append("\nKey: " + entry.getKey() + ", \nValue: " + entry.getValue().getTag()); + //ToastUtils.show("\nKey: " + entry.getKey() + ", Value: " + entry.getValue().getTag()); + } + sb.append("\nMap entries end."); + LogUtils.d(TAG, sb.toString()); + } else { + LogUtils.d(TAG, "The map is empty."); + } + } +} diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/WinBollActivityManager.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/WinBollActivityManager.java index e6c3255..013ee8f 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/WinBollActivityManager.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/WinBollActivityManager.java @@ -19,70 +19,70 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map; -public class WinBollActivityManager { +public class WinBoLLActivityManager { - public static final String TAG = "WinBollActivityManager"; + public static final String TAG = "WinBoLLActivityManager"; public static final String EXTRA_TAG = "EXTRA_TAG"; - public static enum WinBollUI_TYPE { + public static enum WinBoLLUI_TYPE { Aplication, // 退出应用后,保持最近任务栏任务记录主窗口 Service // 退出应用后,清理所有最近任务栏任务记录窗口 }; // 应用类型标志 - static volatile WinBollUI_TYPE _mWinBollUI_TYPE = WinBollUI_TYPE.Service; + static volatile WinBoLLUI_TYPE _mWinBoLLUI_TYPE = WinBoLLUI_TYPE.Service; GlobalApplication mGlobalApplication; - static volatile WinBollActivityManager _Instance; - static volatile Map _mapIWinBollList; - volatile IWinBollActivity mFirstIWinBollActivity; + static volatile WinBoLLActivityManager _Instance; + static volatile Map _mapIWinBoLLList; + volatile IWinBoLLActivity mFirstIWinBoLLActivity; - WinBollActivityManager(GlobalApplication application) { + WinBoLLActivityManager(GlobalApplication application) { mGlobalApplication = application; - _mapIWinBollList = new HashMap(); + _mapIWinBoLLList = new HashMap(); } - public static synchronized WinBollActivityManager getInstance(GlobalApplication application) { + public static synchronized WinBoLLActivityManager getInstance(GlobalApplication application) { LogUtils.d(TAG, "getInstance"); if (_Instance == null) { LogUtils.d(TAG, "_Instance == null"); - _Instance = new WinBollActivityManager(application); + _Instance = new WinBoLLActivityManager(application); } return _Instance; } // - // 设置 WinBoll 应用 UI 类型 + // 设置 WinBoLL 应用 UI 类型 // - public synchronized static void setWinBollUI_TYPE(WinBollUI_TYPE mWinBollUI_TYPE) { - _mWinBollUI_TYPE = mWinBollUI_TYPE; + public synchronized static void setWinBoLLUI_TYPE(WinBoLLUI_TYPE mWinBoLLUI_TYPE) { + _mWinBoLLUI_TYPE = mWinBoLLUI_TYPE; } // - // 获取 WinBoll 应用 UI 类型 + // 获取 WinBoLL 应用 UI 类型 // - public synchronized static WinBollUI_TYPE getWinBollUI_TYPE() { - return _mWinBollUI_TYPE; + public synchronized static WinBoLLUI_TYPE getWinBoLLUI_TYPE() { + return _mWinBoLLUI_TYPE; } // // 把Activity添加到管理中 // - public void add(T iWinBoll) { - String tag = ((IWinBollActivity)iWinBoll).getTag(); - LogUtils.d(TAG, String.format("add(T iWinBoll) tag is %s", tag)); + public void add(T iWinBoLL) { + String tag = ((IWinBoLLActivity)iWinBoLL).getTag(); + LogUtils.d(TAG, String.format("add(T iWinBoLL) tag is %s", tag)); if (isActive(tag)) { LogUtils.d(TAG, String.format("isActive(tag) is true, tag : %s.", tag)); } else { // 设置起始活动窗口,以便最后退出时提问 - if (mFirstIWinBollActivity == null && _mapIWinBollList.size() == 0) { - LogUtils.d(TAG, "Set firstIWinBollActivity, iWinBoll.getTag() is %s" + iWinBoll.getTag()); - mFirstIWinBollActivity = iWinBoll; + if (mFirstIWinBoLLActivity == null && _mapIWinBoLLList.size() == 0) { + LogUtils.d(TAG, "Set firstIWinBoLLActivity, iWinBoLL.getTag() is %s" + iWinBoLL.getTag()); + mFirstIWinBoLLActivity = iWinBoLL; } // 添加到活动窗口列表 - _mapIWinBollList.put(iWinBoll.getTag(), iWinBoll); - LogUtils.d(TAG, String.format("Add activity : %s\n_mapActivityList.size() : %d", iWinBoll.getTag(), _mapIWinBollList.size())); + _mapIWinBoLLList.put(iWinBoLL.getTag(), iWinBoLL); + LogUtils.d(TAG, String.format("Add activity : %s\n_mapActivityList.size() : %d", iWinBoLL.getTag(), _mapIWinBoLLList.size())); } } @@ -93,16 +93,16 @@ public class WinBollActivityManager { // activity: 不为 null 时, // intent.putExtra 函数 "tag" 参数为 activity.getTag() // - public void startWinBollActivity(Context context, Class clazz) { + public void startWinBoLLActivity(Context context, Class clazz) { try { // 如果窗口已存在就重启窗口 - String tag = ((IWinBollActivity)clazz.newInstance()).getTag(); - LogUtils.d(TAG, String.format("startWinBollActivity(Context context, Class clazz) tag is %s", tag)); + String tag = ((IWinBoLLActivity)clazz.newInstance()).getTag(); + LogUtils.d(TAG, String.format("startWinBoLLActivity(Context context, Class clazz) tag is %s", tag)); if (isActive(tag)) { resumeActivity(context, tag); return; } - //ToastUtils.show("startWinBollActivity(Context context, Class clazz)"); + //ToastUtils.show("startWinBoLLActivity(Context context, Class clazz)"); // 新建一个任务窗口 Intent intent = new Intent(context, clazz); @@ -117,11 +117,11 @@ public class WinBollActivityManager { } } - public void startWinBollActivity(Context context, Intent intent, Class clazz) { + public void startWinBoLLActivity(Context context, Intent intent, Class clazz) { try { // 如果窗口已存在就重启窗口 - String tag = ((IWinBollActivity)clazz.newInstance()).getTag(); - LogUtils.d(TAG, String.format("startWinBollActivity(Context context, Intent intent, Class clazz) tag is %s", tag)); + String tag = ((IWinBoLLActivity)clazz.newInstance()).getTag(); + LogUtils.d(TAG, String.format("startWinBoLLActivity(Context context, Intent intent, Class clazz) tag is %s", tag)); if (isActive(tag)) { resumeActivity(context, tag); return; @@ -140,7 +140,7 @@ public class WinBollActivityManager { } } - public void startLogActivity(Context context) { + public void startLogActivity(Context context) { // 如果窗口已存在就重启窗口 String tag = LogActivity.TAG; if (isActive(tag)) { @@ -167,8 +167,8 @@ public class WinBollActivityManager { context.startActivity(intent); } - public boolean isFirstIWinBollActivity(IWinBollActivity iWinBollActivity) { - return mFirstIWinBollActivity != null && mFirstIWinBollActivity == iWinBollActivity; + public boolean isFirstIWinBoLLActivity(IWinBoLLActivity iWinBoLLActivity) { + return mFirstIWinBoLLActivity != null && mFirstIWinBoLLActivity == iWinBoLLActivity; } // @@ -176,15 +176,15 @@ public class WinBollActivityManager { // public boolean isActive(String tag) { LogUtils.d(TAG, String.format("isActive(String tag) tag is %s", tag)); - //printIWinBollListInfo(); - IWinBollActivity iWinBoll = getIWinBoll(tag); - if (iWinBoll != null) { + //printIWinBoLLListInfo(); + IWinBoLLActivity iWinBoLL = getIWinBoLL(tag); + if (iWinBoLL != null) { //LogUtils.d(TAG, "isActive(...) activity != null tag " + tag); //ToastUtils.show("activity != null tag " + tag); //判断是否为 BaseActivity,如果已经销毁,则移除 - if (iWinBoll.getActivity().isFinishing() || iWinBoll.getActivity().isDestroyed()) { - _mapIWinBollList.remove(iWinBoll.getTag()); - //_mWinBollActivityList.remove(activity); + if (iWinBoLL.getActivity().isFinishing() || iWinBoLL.getActivity().isDestroyed()) { + _mapIWinBoLLList.remove(iWinBoLL.getTag()); + //_mWinBoLLActivityList.remove(activity); LogUtils.d(TAG, String.format("isActive(...) remove activity.\ntag : %s", tag)); return false; } else { @@ -192,44 +192,44 @@ public class WinBollActivityManager { return true; } } else { - LogUtils.d(TAG, String.format("isActive(...) iWinBoll is null tag by %s", tag)); + LogUtils.d(TAG, String.format("isActive(...) iWinBoLL is null tag by %s", tag)); return false; } } - static IWinBollActivity getIWinBoll(String tag) { - LogUtils.d(TAG, String.format("getIWinBoll(String tag) %s", tag)); - return _mapIWinBollList.get(tag); + static IWinBoLLActivity getIWinBoLL(String tag) { + LogUtils.d(TAG, String.format("getIWinBoLL(String tag) %s", tag)); + return _mapIWinBoLLList.get(tag); } // // 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台 // - public void resumeActivity(Context context, String tag) { + public void resumeActivity(Context context, String tag) { LogUtils.d(TAG, "resumeActivity(Context context, String tag)"); - T iWinBoll = (T)getIWinBoll(tag); - LogUtils.d(TAG, String.format("iWinBoll.getTag() %s", iWinBoll.getTag())); + T iWinBoLL = (T)getIWinBoLL(tag); + LogUtils.d(TAG, String.format("iWinBoLL.getTag() %s", iWinBoLL.getTag())); //LogUtils.d(TAG, "activity " + activity.getTag()); - if (iWinBoll != null && !iWinBoll.getActivity().isFinishing() && !iWinBoll.getActivity().isDestroyed()) { - resumeActivity(context, iWinBoll); + if (iWinBoLL != null && !iWinBoLL.getActivity().isFinishing() && !iWinBoLL.getActivity().isDestroyed()) { + resumeActivity(context, iWinBoLL); } } // // 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台 // - public void resumeActivity(Context context, T iWinBoll) { - LogUtils.d(TAG, "resumeActivity(Context context, T iWinBoll)"); + public void resumeActivity(Context context, T iWinBoLL) { + LogUtils.d(TAG, "resumeActivity(Context context, T iWinBoLL)"); ActivityManager am = (ActivityManager) mGlobalApplication.getSystemService(Context.ACTIVITY_SERVICE); //返回启动它的根任务(home 或者 MainActivity) - Intent intent = new Intent(mGlobalApplication, iWinBoll.getClass()); + Intent intent = new Intent(mGlobalApplication, iWinBoLL.getClass()); TaskStackBuilder stackBuilder = TaskStackBuilder.create(mGlobalApplication); stackBuilder.addNextIntentWithParentStack(intent); stackBuilder.startActivities(); //moveTaskToFront(YourTaskId, 0); //ToastUtils.show("resumeActivity am.moveTaskToFront"); - LogUtils.d(TAG, String.format("iWinBoll.getActivity().getTaskId() %d", iWinBoll.getActivity().getTaskId())); - am.moveTaskToFront(iWinBoll.getActivity().getTaskId(), ActivityManager.MOVE_TASK_NO_USER_ACTION); + LogUtils.d(TAG, String.format("iWinBoLL.getActivity().getTaskId() %d", iWinBoLL.getActivity().getTaskId())); + am.moveTaskToFront(iWinBoLL.getActivity().getTaskId(), ActivityManager.MOVE_TASK_NO_USER_ACTION); LogUtils.d(TAG, "am.moveTaskToFront"); } @@ -239,23 +239,23 @@ public class WinBollActivityManager { // public void finishAll() { try { - for (String key : _mapIWinBollList.keySet()) { + for (String key : _mapIWinBoLLList.keySet()) { //System.out.println("Key: " + key + ", Value: " + _mapActivityList.get(key)); - IWinBollActivity iWinBoll = _mapIWinBollList.get(key); + IWinBoLLActivity iWinBoLL = _mapIWinBoLLList.get(key); //ToastUtils.show("finishAll() activity"); - if (iWinBoll != null && !iWinBoll.getActivity().isFinishing() && !iWinBoll.getActivity().isDestroyed()) { + if (iWinBoLL != null && !iWinBoLL.getActivity().isFinishing() && !iWinBoLL.getActivity().isDestroyed()) { //ToastUtils.show("activity != null ..."); - if (getWinBollUI_TYPE() == WinBollUI_TYPE.Service) { + if (getWinBoLLUI_TYPE() == WinBoLLUI_TYPE.Service) { // 结束窗口和最近任务栏, 建议前台服务类应用使用,可以方便用户再次调用 UI 操作。 - iWinBoll.getActivity().finishAndRemoveTask(); + iWinBoLL.getActivity().finishAndRemoveTask(); //ToastUtils.show("finishAll() activity.finishAndRemoveTask();"); - } else if (getWinBollUI_TYPE() == WinBollUI_TYPE.Aplication) { + } else if (getWinBoLLUI_TYPE() == WinBoLLUI_TYPE.Aplication) { // 结束窗口保留最近任务栏,建议前台服务类应用使用,可以保持应用的系统自觉性。 - iWinBoll.getActivity().finish(); + iWinBoLL.getActivity().finish(); //ToastUtils.show("finishAll() activity.finish();"); } else { - LogUtils.d(TAG, "WinBollApplication.WinBollUI_TYPE error."); - //ToastUtils.show("WinBollApplication.WinBollUI_TYPE error."); + LogUtils.d(TAG, "WinBoLLApplication.WinBoLLUI_TYPE error."); + //ToastUtils.show("WinBoLLApplication.WinBoLLUI_TYPE error."); } } } @@ -267,14 +267,14 @@ public class WinBollActivityManager { // // 结束指定Activity // - public void finish(T iWinBoll) { + public void finish(T iWinBoLL) { try { - if (iWinBoll != null && !iWinBoll.getActivity().isFinishing() && !iWinBoll.getActivity().isDestroyed()) { + if (iWinBoLL != null && !iWinBoLL.getActivity().isFinishing() && !iWinBoLL.getActivity().isDestroyed()) { //根据tag 移除 MyActivity //String tag= activity.getTag(); - //_mWinBollActivityList.remove(tag); + //_mWinBoLLActivityList.remove(tag); //ToastUtils.show("remove"); - //ToastUtils.show("_mWinBollActivityArrayMap.size() " + Integer.toString(_mWinBollActivityArrayMap.size())); + //ToastUtils.show("_mWinBoLLActivityArrayMap.size() " + Integer.toString(_mWinBoLLActivityArrayMap.size())); // 窗口回调规则: // [] 当前窗口位置 >> 调度出的窗口位置 @@ -284,10 +284,10 @@ public class WinBollActivityManager { // ★:0 1 2 3 [4] >> 3 // ★:[0] >> 直接关闭当前窗口 //LogUtils.d(TAG, "finish no yet."); - IWinBollActivity preIWinBoll = getPreIWinBoll(iWinBoll); - iWinBoll.getActivity().finish(); - if (preIWinBoll != null) { - resumeActivity(mGlobalApplication, preIWinBoll); + IWinBoLLActivity preIWinBoLL = getPreIWinBoLL(iWinBoLL); + iWinBoLL.getActivity().finish(); + if (preIWinBoLL != null) { + resumeActivity(mGlobalApplication, preIWinBoLL); } } @@ -299,21 +299,21 @@ public class WinBollActivityManager { // // 获取窗口队列中的前一个窗口 // - IWinBollActivity getPreIWinBoll(IWinBollActivity iWinBoll) { + IWinBoLLActivity getPreIWinBoLL(IWinBoLLActivity iWinBoLL) { try { boolean bingo = false; - IWinBollActivity preIWinBoll = null; - for (Map.Entry entity : _mapIWinBollList.entrySet()) { - if (entity.getKey().equals(iWinBoll.getTag())) { + IWinBoLLActivity preIWinBoLL = null; + for (Map.Entry entity : _mapIWinBoLLList.entrySet()) { + if (entity.getKey().equals(iWinBoLL.getTag())) { bingo = true; //LogUtils.d(TAG, "bingo"); break; } - preIWinBoll = entity.getValue(); + preIWinBoLL = entity.getValue(); } if (bingo) { - return preIWinBoll; + return preIWinBoLL; } } catch (Exception e) { LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); @@ -325,10 +325,10 @@ public class WinBollActivityManager { // // 从管理列表中移除管理项 // - public boolean registeRemove(T activity) { - IWinBollActivity iWinBollTest = _mapIWinBollList.get(activity.getTag()); - if (iWinBollTest != null) { - _mapIWinBollList.remove(activity.getTag()); + public boolean registeRemove(T activity) { + IWinBoLLActivity iWinBoLLTest = _mapIWinBoLLList.get(activity.getTag()); + if (iWinBoLLTest != null) { + _mapIWinBoLLList.remove(activity.getTag()); return true; } return false; @@ -337,13 +337,13 @@ public class WinBollActivityManager { // // 打印管理列表项列表里的信息 // - public static void printIWinBollListInfo() { + public static void printIWinBoLLListInfo() { //LogUtils.d(TAG, "printAvtivityListInfo"); - if (!_mapIWinBollList.isEmpty()) { - StringBuilder sb = new StringBuilder("Map entries : " + Integer.toString(_mapIWinBollList.size())); - Iterator> iterator = _mapIWinBollList.entrySet().iterator(); + if (!_mapIWinBoLLList.isEmpty()) { + StringBuilder sb = new StringBuilder("Map entries : " + Integer.toString(_mapIWinBoLLList.size())); + Iterator> iterator = _mapIWinBoLLList.entrySet().iterator(); while (iterator.hasNext()) { - Map.Entry entry = iterator.next(); + Map.Entry entry = iterator.next(); sb.append("\nKey: " + entry.getKey() + ", \nValue: " + entry.getValue().getTag()); //ToastUtils.show("\nKey: " + entry.getKey() + ", Value: " + entry.getValue().getTag()); } From 3127a260562f8533f718c8586eeb9deb3f62e97a Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 14:45:53 +0800 Subject: [PATCH 098/110] =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../studio/appbase/WinBollActivityBase.java | 81 ---- .../appbase/models/WinBollNewsBean.java | 72 ---- .../studio/libappbase/sos/WinBoll.java | 39 -- .../libappbase/winboll/IWinBollActivity.java | 18 - .../winboll/WinBollActivityManager.java | 356 ------------------ 5 files changed, 566 deletions(-) delete mode 100644 appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java delete mode 100644 appbase/src/main/java/cc/winboll/studio/appbase/models/WinBollNewsBean.java delete mode 100644 libappbase/src/main/java/cc/winboll/studio/libappbase/sos/WinBoll.java delete mode 100644 libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/IWinBollActivity.java delete mode 100644 libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/WinBollActivityManager.java diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java b/appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java deleted file mode 100644 index 71b4e40..0000000 --- a/appbase/src/main/java/cc/winboll/studio/appbase/WinBollActivityBase.java +++ /dev/null @@ -1,81 +0,0 @@ -package cc.winboll.studio.appbase; - -/** - * @Author ZhanGSKen@AliYun.Com - * @Date 2025/03/28 15:34:16 - * @Describe 应用活动窗口基类 - */ -import android.app.Activity; -import android.os.Bundle; -import android.os.PersistableBundle; -import android.view.MenuItem; -import cc.winboll.studio.appbase.App; -import cc.winboll.studio.appbase.R; -import cc.winboll.studio.libappbase.GlobalApplication; -import cc.winboll.studio.libappbase.dialogs.YesNoAlertDialog; -import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; -import cc.winboll.studio.libappbase.winboll.WinBoLLActivityManager; - -public class WinBoLLActivityBase extends Activity implements IWinBoLLActivity { - - public static final String TAG = "WinBoLLActivityBase"; - - @Override - public Activity getActivity() { - return this; - } - - @Override - public String getTag() { - return TAG; - } - - WinBoLLActivityManager getWinBoLLActivityManager() { - return WinBoLLActivityManager.getInstance(GlobalApplication.getInstance()); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - getWinBoLLActivityManager().add(this); - } - - @Override - public void onPostCreate(Bundle savedInstanceState, PersistableBundle persistentState) { - super.onPostCreate(savedInstanceState, persistentState); - } - - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (item.getItemId() == cc.winboll.studio.appbase.R.id.item_log) { - GlobalApplication.getWinBoLLActivityManager().startLogActivity(this); - return true; - } else if(item.getItemId() == cc.winboll.studio.appbase.R.id.item_minimal) { - //moveTaskToBack(true); - exit(); - } - // 在switch语句中处理每个ID,并在处理完后返回true,未处理的情况返回false。 - return super.onOptionsItemSelected(item); - } - - void exit() { - YesNoAlertDialog.show(this, "Exit " + getString(R.string.app_name), "Close all activity and exit?", new YesNoAlertDialog.OnDialogResultListener(){ - - @Override - public void onYes() { - App.getWinBoLLActivityManager().finishAll(); - } - - @Override - public void onNo() { - } - }); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - getWinBoLLActivityManager().registeRemove(this); - } -} diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/models/WinBollNewsBean.java b/appbase/src/main/java/cc/winboll/studio/appbase/models/WinBollNewsBean.java deleted file mode 100644 index 8d70a3a..0000000 --- a/appbase/src/main/java/cc/winboll/studio/appbase/models/WinBollNewsBean.java +++ /dev/null @@ -1,72 +0,0 @@ -package cc.winboll.studio.appbase.models; - -/** - * @Author ZhanGSKen@AliYun.Com - * @Date 2025/02/17 10:05:09 - * @Describe APPSOSReportBean - */ -import android.util.JsonReader; -import android.util.JsonWriter; -import cc.winboll.studio.libappbase.BaseBean; -import java.io.IOException; - -public class WinBoLLNewsBean extends BaseBean { - - public static final String TAG = "WinBoLLNewsBean"; - - protected String message; - - public WinBoLLNewsBean() { - this.message = ""; - } - - public WinBoLLNewsBean(String message) { - this.message = message; - } - - public void setMessage(String message) { - this.message = message; - } - - public String getMessage() { - return message; - } - - @Override - public String getName() { - return WinBoLLNewsBean.class.getName(); - } - - @Override - public void writeThisToJsonWriter(JsonWriter jsonWriter) throws IOException { - super.writeThisToJsonWriter(jsonWriter); - jsonWriter.name("message").value(getMessage()); - - } - - @Override - public boolean initObjectsFromJsonReader(JsonReader jsonReader, String name) throws IOException { - if (super.initObjectsFromJsonReader(jsonReader, name)) { return true; } else { - if (name.equals("message")) { - setMessage(jsonReader.nextString()); - } else { - return false; - } - } - return true; - } - - @Override - public BaseBean readBeanFromJsonReader(JsonReader jsonReader) throws IOException { - jsonReader.beginObject(); - while (jsonReader.hasNext()) { - String name = jsonReader.nextName(); - if (!initObjectsFromJsonReader(jsonReader, name)) { - jsonReader.skipValue(); - } - } - // 结束 JSON 对象 - jsonReader.endObject(); - return this; - } -} diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/sos/WinBoll.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/sos/WinBoll.java deleted file mode 100644 index 080c7e0..0000000 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/sos/WinBoll.java +++ /dev/null @@ -1,39 +0,0 @@ -package cc.winboll.studio.libappbase.sos; - -/** - * @Author ZhanGSKen@AliYun.Com - * @Date 2025/03/02 09:54:28 - * @Describe WinBoLL 系列应用通用管理类 - */ -import android.content.Context; -import android.content.Intent; -import cc.winboll.studio.libappbase.LogUtils; - -public class WinBoLL { - - public static final String TAG = "WinBoLL"; - - public static final String ACTION_BIND = WinBoLL.class.getName() + ".ACTION_BIND"; - public static final String EXTRA_APPMODEL = "EXTRA_APPMODEL"; - - public static void bindToAPPBase(Context context, String appMainService) { - LogUtils.d(TAG, "bindToAPPBase(...)"); - String toPackage = "cc.winboll.studio.appbase"; - startBind(context, toPackage, appMainService); - } - - public static void bindToAPPBaseBeta(Context context, String appMainService) { - LogUtils.d(TAG, "bindToAPPBaseBeta(...)"); - String toPackage = "cc.winboll.studio.appbase.beta"; - startBind(context, toPackage, appMainService); - } - - static void startBind(Context context, String toPackage, String appMainService) { - Intent intent = new Intent(ACTION_BIND); - intent.putExtra(EXTRA_APPMODEL, (new APPModel(toPackage, appMainService)).toString()); - intent.setPackage(toPackage); - LogUtils.d(TAG, String.format("ACTION_BIND :\nTo Package : %s\nAPP Main Service : %s", toPackage, appMainService)); - context.sendBroadcast(intent); - } - -} diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/IWinBollActivity.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/IWinBollActivity.java deleted file mode 100644 index 4bed92a..0000000 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/IWinBollActivity.java +++ /dev/null @@ -1,18 +0,0 @@ -package cc.winboll.studio.libappbase.winboll; - -/** - * @Author ZhanGSKen@AliYun.Com - * @Date 2025/03/24 08:23:40 - * @Describe WinBoLL 活动窗口通用接口 - */ -import android.app.Activity; -import android.widget.Toolbar; - -public interface IWinBoLLActivity { - - public static final String TAG = "IWinBoLLActivity"; - - // 获取活动窗口 - abstract public Activity getActivity(); - abstract public String getTag(); -} diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/WinBollActivityManager.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/WinBollActivityManager.java deleted file mode 100644 index 013ee8f..0000000 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/winboll/WinBollActivityManager.java +++ /dev/null @@ -1,356 +0,0 @@ -package cc.winboll.studio.libappbase.winboll; - -/** - * @Author ZhanGSKen@AliYun.Com - * @Date 2025/03/24 08:25:43 - * @Describe 应用活动窗口管理器 - * 参考 : - * android 类似微信小程序多任务窗口 及 设置 TaskDescription 修改 icon 和 label - * https://blog.csdn.net/qq_29364417/article/details/109379915?app_version=6.4.2&code=app_1562916241&csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22109379915%22%2C%22source%22%3A%22weixin_38986226%22%7D&uLinkId=usr1mkqgl919blen&utm_source=app - */ -import android.app.ActivityManager; -import android.app.TaskStackBuilder; -import android.content.Context; -import android.content.Intent; -import cc.winboll.studio.libappbase.GlobalApplication; -import cc.winboll.studio.libappbase.LogUtils; -import cc.winboll.studio.libappbase.utils.ToastUtils; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -public class WinBoLLActivityManager { - - public static final String TAG = "WinBoLLActivityManager"; - public static final String EXTRA_TAG = "EXTRA_TAG"; - - public static enum WinBoLLUI_TYPE { - Aplication, // 退出应用后,保持最近任务栏任务记录主窗口 - Service // 退出应用后,清理所有最近任务栏任务记录窗口 - }; - - // 应用类型标志 - static volatile WinBoLLUI_TYPE _mWinBoLLUI_TYPE = WinBoLLUI_TYPE.Service; - - GlobalApplication mGlobalApplication; - static volatile WinBoLLActivityManager _Instance; - static volatile Map _mapIWinBoLLList; - volatile IWinBoLLActivity mFirstIWinBoLLActivity; - - WinBoLLActivityManager(GlobalApplication application) { - mGlobalApplication = application; - _mapIWinBoLLList = new HashMap(); - } - - public static synchronized WinBoLLActivityManager getInstance(GlobalApplication application) { - LogUtils.d(TAG, "getInstance"); - if (_Instance == null) { - LogUtils.d(TAG, "_Instance == null"); - _Instance = new WinBoLLActivityManager(application); - } - return _Instance; - } - - // - // 设置 WinBoLL 应用 UI 类型 - // - public synchronized static void setWinBoLLUI_TYPE(WinBoLLUI_TYPE mWinBoLLUI_TYPE) { - _mWinBoLLUI_TYPE = mWinBoLLUI_TYPE; - } - - // - // 获取 WinBoLL 应用 UI 类型 - // - public synchronized static WinBoLLUI_TYPE getWinBoLLUI_TYPE() { - return _mWinBoLLUI_TYPE; - } - - // - // 把Activity添加到管理中 - // - public void add(T iWinBoLL) { - String tag = ((IWinBoLLActivity)iWinBoLL).getTag(); - LogUtils.d(TAG, String.format("add(T iWinBoLL) tag is %s", tag)); - if (isActive(tag)) { - LogUtils.d(TAG, String.format("isActive(tag) is true, tag : %s.", tag)); - } else { - // 设置起始活动窗口,以便最后退出时提问 - if (mFirstIWinBoLLActivity == null && _mapIWinBoLLList.size() == 0) { - LogUtils.d(TAG, "Set firstIWinBoLLActivity, iWinBoLL.getTag() is %s" + iWinBoLL.getTag()); - mFirstIWinBoLLActivity = iWinBoLL; - } - - // 添加到活动窗口列表 - _mapIWinBoLLList.put(iWinBoLL.getTag(), iWinBoLL); - LogUtils.d(TAG, String.format("Add activity : %s\n_mapActivityList.size() : %d", iWinBoLL.getTag(), _mapIWinBoLLList.size())); - } - } - - - // - // activity: 为 null 时, - // intent.putExtra 函数 EXTRA_TAG 参数为 tag - // activity: 不为 null 时, - // intent.putExtra 函数 "tag" 参数为 activity.getTag() - // - public void startWinBoLLActivity(Context context, Class clazz) { - try { - // 如果窗口已存在就重启窗口 - String tag = ((IWinBoLLActivity)clazz.newInstance()).getTag(); - LogUtils.d(TAG, String.format("startWinBoLLActivity(Context context, Class clazz) tag is %s", tag)); - if (isActive(tag)) { - resumeActivity(context, tag); - return; - } - //ToastUtils.show("startWinBoLLActivity(Context context, Class clazz)"); - - // 新建一个任务窗口 - Intent intent = new Intent(context, clazz); - //打开多任务窗口 flags - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); - intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.putExtra(EXTRA_TAG, tag); - context.startActivity(intent); - } catch (InstantiationException | IllegalAccessException e) { - LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); - } - } - - public void startWinBoLLActivity(Context context, Intent intent, Class clazz) { - try { - // 如果窗口已存在就重启窗口 - String tag = ((IWinBoLLActivity)clazz.newInstance()).getTag(); - LogUtils.d(TAG, String.format("startWinBoLLActivity(Context context, Intent intent, Class clazz) tag is %s", tag)); - if (isActive(tag)) { - resumeActivity(context, tag); - return; - } - - // 新建一个任务窗口 - //Intent intent = new Intent(context, clazz); - //打开多任务窗口 flags - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); - intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.putExtra(EXTRA_TAG, tag); - context.startActivity(intent); - } catch (InstantiationException | IllegalAccessException e) { - LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); - } - } - - public void startLogActivity(Context context) { - // 如果窗口已存在就重启窗口 - String tag = LogActivity.TAG; - if (isActive(tag)) { - resumeActivity(context, tag); - return; - } - - // 新建一个任务窗口 - Intent intent = new Intent(context, LogActivity.class); - //打开多任务窗口 flags - // Define the bounds. -// Rect bounds = new Rect(0, 0, 800, 200); -// // Set the bounds as an activity option. -// ActivityOptions options = ActivityOptions.makeBasic(); -// options.setLaunchBounds(bounds); - intent.addFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); - intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); - - intent.putExtra(EXTRA_TAG, tag); - - //context.startActivity(intent, options.toBundle()); - context.startActivity(intent); - } - - public boolean isFirstIWinBoLLActivity(IWinBoLLActivity iWinBoLLActivity) { - return mFirstIWinBoLLActivity != null && mFirstIWinBoLLActivity == iWinBoLLActivity; - } - - // - // 判断 tag绑定的 MyActivity是否存在 - // - public boolean isActive(String tag) { - LogUtils.d(TAG, String.format("isActive(String tag) tag is %s", tag)); - //printIWinBoLLListInfo(); - IWinBoLLActivity iWinBoLL = getIWinBoLL(tag); - if (iWinBoLL != null) { - //LogUtils.d(TAG, "isActive(...) activity != null tag " + tag); - //ToastUtils.show("activity != null tag " + tag); - //判断是否为 BaseActivity,如果已经销毁,则移除 - if (iWinBoLL.getActivity().isFinishing() || iWinBoLL.getActivity().isDestroyed()) { - _mapIWinBoLLList.remove(iWinBoLL.getTag()); - //_mWinBoLLActivityList.remove(activity); - LogUtils.d(TAG, String.format("isActive(...) remove activity.\ntag : %s", tag)); - return false; - } else { - LogUtils.d(TAG, String.format("isActive(...) activity is exist.\ntag : %s", tag)); - return true; - } - } else { - LogUtils.d(TAG, String.format("isActive(...) iWinBoLL is null tag by %s", tag)); - return false; - } - } - - static IWinBoLLActivity getIWinBoLL(String tag) { - LogUtils.d(TAG, String.format("getIWinBoLL(String tag) %s", tag)); - return _mapIWinBoLLList.get(tag); - } - - // - // 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台 - // - public void resumeActivity(Context context, String tag) { - LogUtils.d(TAG, "resumeActivity(Context context, String tag)"); - T iWinBoLL = (T)getIWinBoLL(tag); - LogUtils.d(TAG, String.format("iWinBoLL.getTag() %s", iWinBoLL.getTag())); - //LogUtils.d(TAG, "activity " + activity.getTag()); - if (iWinBoLL != null && !iWinBoLL.getActivity().isFinishing() && !iWinBoLL.getActivity().isDestroyed()) { - resumeActivity(context, iWinBoLL); - } - } - - // - // 找到tag 绑定的 BaseActivity ,通过 getTaskId() 移动到前台 - // - public void resumeActivity(Context context, T iWinBoLL) { - LogUtils.d(TAG, "resumeActivity(Context context, T iWinBoLL)"); - ActivityManager am = (ActivityManager) mGlobalApplication.getSystemService(Context.ACTIVITY_SERVICE); - //返回启动它的根任务(home 或者 MainActivity) - Intent intent = new Intent(mGlobalApplication, iWinBoLL.getClass()); - TaskStackBuilder stackBuilder = TaskStackBuilder.create(mGlobalApplication); - stackBuilder.addNextIntentWithParentStack(intent); - stackBuilder.startActivities(); - //moveTaskToFront(YourTaskId, 0); - //ToastUtils.show("resumeActivity am.moveTaskToFront"); - LogUtils.d(TAG, String.format("iWinBoLL.getActivity().getTaskId() %d", iWinBoLL.getActivity().getTaskId())); - am.moveTaskToFront(iWinBoLL.getActivity().getTaskId(), ActivityManager.MOVE_TASK_NO_USER_ACTION); - LogUtils.d(TAG, "am.moveTaskToFront"); - } - - - // - // 结束所有 Activity - // - public void finishAll() { - try { - for (String key : _mapIWinBoLLList.keySet()) { - //System.out.println("Key: " + key + ", Value: " + _mapActivityList.get(key)); - IWinBoLLActivity iWinBoLL = _mapIWinBoLLList.get(key); - //ToastUtils.show("finishAll() activity"); - if (iWinBoLL != null && !iWinBoLL.getActivity().isFinishing() && !iWinBoLL.getActivity().isDestroyed()) { - //ToastUtils.show("activity != null ..."); - if (getWinBoLLUI_TYPE() == WinBoLLUI_TYPE.Service) { - // 结束窗口和最近任务栏, 建议前台服务类应用使用,可以方便用户再次调用 UI 操作。 - iWinBoLL.getActivity().finishAndRemoveTask(); - //ToastUtils.show("finishAll() activity.finishAndRemoveTask();"); - } else if (getWinBoLLUI_TYPE() == WinBoLLUI_TYPE.Aplication) { - // 结束窗口保留最近任务栏,建议前台服务类应用使用,可以保持应用的系统自觉性。 - iWinBoLL.getActivity().finish(); - //ToastUtils.show("finishAll() activity.finish();"); - } else { - LogUtils.d(TAG, "WinBoLLApplication.WinBoLLUI_TYPE error."); - //ToastUtils.show("WinBoLLApplication.WinBoLLUI_TYPE error."); - } - } - } - } catch (Exception e) { - LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); - } - } - - // - // 结束指定Activity - // - public void finish(T iWinBoLL) { - try { - if (iWinBoLL != null && !iWinBoLL.getActivity().isFinishing() && !iWinBoLL.getActivity().isDestroyed()) { - //根据tag 移除 MyActivity - //String tag= activity.getTag(); - //_mWinBoLLActivityList.remove(tag); - //ToastUtils.show("remove"); - //ToastUtils.show("_mWinBoLLActivityArrayMap.size() " + Integer.toString(_mWinBoLLActivityArrayMap.size())); - - // 窗口回调规则: - // [] 当前窗口位置 >> 调度出的窗口位置 - // ★:[0] 1 2 3 4 >> 1 - // ★:0 1 [2] 3 4 >> 1 - // ★:0 1 2 [3] 4 >> 2 - // ★:0 1 2 3 [4] >> 3 - // ★:[0] >> 直接关闭当前窗口 - //LogUtils.d(TAG, "finish no yet."); - IWinBoLLActivity preIWinBoLL = getPreIWinBoLL(iWinBoLL); - iWinBoLL.getActivity().finish(); - if (preIWinBoLL != null) { - resumeActivity(mGlobalApplication, preIWinBoLL); - } - } - - } catch (Exception e) { - LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); - } - } - - // - // 获取窗口队列中的前一个窗口 - // - IWinBoLLActivity getPreIWinBoLL(IWinBoLLActivity iWinBoLL) { - try { - boolean bingo = false; - IWinBoLLActivity preIWinBoLL = null; - for (Map.Entry entity : _mapIWinBoLLList.entrySet()) { - if (entity.getKey().equals(iWinBoLL.getTag())) { - bingo = true; - //LogUtils.d(TAG, "bingo"); - break; - } - preIWinBoLL = entity.getValue(); - } - - if (bingo) { - return preIWinBoLL; - } - } catch (Exception e) { - LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); - } - - return null; - } - - // - // 从管理列表中移除管理项 - // - public boolean registeRemove(T activity) { - IWinBoLLActivity iWinBoLLTest = _mapIWinBoLLList.get(activity.getTag()); - if (iWinBoLLTest != null) { - _mapIWinBoLLList.remove(activity.getTag()); - return true; - } - return false; - } - - // - // 打印管理列表项列表里的信息 - // - public static void printIWinBoLLListInfo() { - //LogUtils.d(TAG, "printAvtivityListInfo"); - if (!_mapIWinBoLLList.isEmpty()) { - StringBuilder sb = new StringBuilder("Map entries : " + Integer.toString(_mapIWinBoLLList.size())); - Iterator> iterator = _mapIWinBoLLList.entrySet().iterator(); - while (iterator.hasNext()) { - Map.Entry entry = iterator.next(); - sb.append("\nKey: " + entry.getKey() + ", \nValue: " + entry.getValue().getTag()); - //ToastUtils.show("\nKey: " + entry.getKey() + ", Value: " + entry.getValue().getTag()); - } - sb.append("\nMap entries end."); - LogUtils.d(TAG, sb.toString()); - } else { - LogUtils.d(TAG, "The map is empty."); - } - } -} From 4fcef89a10e9a4add8adb0961c49eddd59811c64 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 14:46:07 +0800 Subject: [PATCH 099/110] =?UTF-8?q?=E7=BC=96=E8=AF=91=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.properties | 4 ++-- libappbase/build.properties | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index 5f70437..d22b597 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 13:40:44 HKT 2025 +#Tue Apr 29 06:40:04 GMT 2025 stageCount=6 libraryProject=libappbase baseVersion=15.7 publishVersion=15.7.5 -buildCount=0 +buildCount=1 baseBetaVersion=15.7.6 diff --git a/libappbase/build.properties b/libappbase/build.properties index cb8845e..d22b597 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 13:40:21 HKT 2025 +#Tue Apr 29 06:40:04 GMT 2025 stageCount=6 libraryProject=libappbase baseVersion=15.7 publishVersion=15.7.5 -buildCount=0 +buildCount=1 baseBetaVersion=15.7.6 From 980eb533bfb627b626fa540e31ef970c0fd3bcfb Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 14:47:16 +0800 Subject: [PATCH 100/110] APK 15.7.6 release Publish. --- appbase/build.properties | 10 +++++----- libappbase/build.properties | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index d22b597..faa715a 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 06:40:04 GMT 2025 -stageCount=6 +#Tue Apr 29 14:47:16 HKT 2025 +stageCount=7 libraryProject=libappbase baseVersion=15.7 -publishVersion=15.7.5 -buildCount=1 -baseBetaVersion=15.7.6 +publishVersion=15.7.6 +buildCount=0 +baseBetaVersion=15.7.7 diff --git a/libappbase/build.properties b/libappbase/build.properties index d22b597..faa715a 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 06:40:04 GMT 2025 -stageCount=6 +#Tue Apr 29 14:47:16 HKT 2025 +stageCount=7 libraryProject=libappbase baseVersion=15.7 -publishVersion=15.7.5 -buildCount=1 -baseBetaVersion=15.7.6 +publishVersion=15.7.6 +buildCount=0 +baseBetaVersion=15.7.7 From 81669f03b3b76e65557444d6119c62e3de1ea0ec Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 14:47:37 +0800 Subject: [PATCH 101/110] Library Release 15.7.6 --- appbase/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appbase/build.properties b/appbase/build.properties index faa715a..3cb59e8 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,5 +1,5 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 14:47:16 HKT 2025 +#Tue Apr 29 14:47:34 HKT 2025 stageCount=7 libraryProject=libappbase baseVersion=15.7 From 28f2ada31a353a5a6675f3875d5b676d9b216b87 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 29 Apr 2025 15:03:10 +0800 Subject: [PATCH 102/110] =?UTF-8?q?=E6=8A=8A=20WinBoll=20=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=20WinBoLL=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apputils/build.properties | 4 +- .../studio/apputils/AssetsHtmlActivity.java | 6 +-- .../winboll/studio/apputils/MainActivity.java | 40 +++++++++---------- ...vityBase.java => WinBoLLActivityBase.java} | 16 ++++---- apputils/src/main/res/values/colors.xml | 2 +- libapputils/build.gradle | 2 +- libapputils/build.properties | 4 +- .../assets/winboll/studio/html/index.html | 4 +- .../winboll/studio/html/javascript_test.html | 4 +- .../studio/libapputils/git/IAPPFiles.java | 2 +- 10 files changed, 42 insertions(+), 42 deletions(-) rename apputils/src/main/java/cc/winboll/studio/apputils/{WinBollActivityBase.java => WinBoLLActivityBase.java} (63%) diff --git a/apputils/build.properties b/apputils/build.properties index 2164f28..62bd441 100644 --- a/apputils/build.properties +++ b/apputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 14:08:11 HKT 2025 +#Tue Apr 29 07:02:05 GMT 2025 stageCount=4 libraryProject=libapputils baseVersion=15.3 publishVersion=15.3.3 -buildCount=0 +buildCount=1 baseBetaVersion=15.3.4 diff --git a/apputils/src/main/java/cc/winboll/studio/apputils/AssetsHtmlActivity.java b/apputils/src/main/java/cc/winboll/studio/apputils/AssetsHtmlActivity.java index 432d5be..b504503 100644 --- a/apputils/src/main/java/cc/winboll/studio/apputils/AssetsHtmlActivity.java +++ b/apputils/src/main/java/cc/winboll/studio/apputils/AssetsHtmlActivity.java @@ -15,12 +15,12 @@ import android.view.MenuItem; import android.widget.Toolbar; import cc.winboll.studio.apputils.R; import cc.winboll.studio.libappbase.LogUtils; -import cc.winboll.studio.libappbase.winboll.IWinBollActivity; +import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; import cc.winboll.studio.libapputils.views.SimpleWebView; import java.io.IOException; import java.io.InputStream; -public class AssetsHtmlActivity extends WinBollActivityBase implements IWinBollActivity { +public class AssetsHtmlActivity extends WinBoLLActivityBase implements IWinBoLLActivity { @Override public Activity getActivity() { @@ -57,7 +57,7 @@ public class AssetsHtmlActivity extends WinBollActivityBase implements IWinBollA @Override public boolean onOptionsItemSelected(MenuItem item) { // if (item.getItemId() == android.R.id.home) { -// WinBollActivityManager.getInstance(this).finish(this); +// WinBoLLActivityManager.getInstance(this).finish(this); // } return super.onOptionsItemSelected(item); } diff --git a/apputils/src/main/java/cc/winboll/studio/apputils/MainActivity.java b/apputils/src/main/java/cc/winboll/studio/apputils/MainActivity.java index afe1708..34de3b5 100644 --- a/apputils/src/main/java/cc/winboll/studio/apputils/MainActivity.java +++ b/apputils/src/main/java/cc/winboll/studio/apputils/MainActivity.java @@ -60,9 +60,9 @@ final public class MainActivity extends Activity { //if (prosessIntents(getIntent())) return; // 以下正常创建主窗口 -// // 设置 WinBoll 应用 UI 类型 -// WinBollApplication.setWinBollUI_TYPE(WinBollApplication.WinBollUI_TYPE.Aplication); -// //ToastUtils.show("WinBollUI_TYPE " + WinBollApplication.getWinBollUI_TYPE()); +// // 设置 WinBoLL 应用 UI 类型 +// WinBoLLApplication.setWinBoLLUI_TYPE(WinBoLLApplication.WinBoLLUI_TYPE.Aplication); +// //ToastUtils.show("WinBoLLUI_TYPE " + WinBoLLApplication.getWinBoLLUI_TYPE()); // LogUtils.d(TAG, "BuildConfig.DEBUG : " + Boolean.toString(BuildConfig.DEBUG)); } @@ -77,7 +77,7 @@ final public class MainActivity extends Activity { if (intent.getAction() != null) { // if (intent.getAction().equals(cc.winboll.studio.libapputils.intent.action.DEBUGVIEW)) { // App.setIsDebug(true); -// //ToastUtils.show!("WinBollApplication.setIsDebug(true) by action : " + intent.getAction()); +// //ToastUtils.show!("WinBoLLApplication.setIsDebug(true) by action : " + intent.getAction()); // // } } @@ -130,12 +130,12 @@ final public class MainActivity extends Activity { protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); // 缓存当前 activity - //WinBollActivityManager.getInstance(this).add(this); + //WinBoLLActivityManager.getInstance(this).add(this); } @Override public void onDestroy() { - //WinBollActivityManager.getInstance(this).registeRemove(this); + //WinBoLLActivityManager.getInstance(this).registeRemove(this); super.onDestroy(); } @@ -150,8 +150,8 @@ final public class MainActivity extends Activity { // intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); // startActivity(intent); - //WinBollActivityManager.getInstance().printAvtivityListInfo(); - //WinBollActivityManager.getInstance(this).startWinBollActivity(this, LogActivity.class); + //WinBoLLActivityManager.getInstance().printAvtivityListInfo(); + //WinBoLLActivityManager.getInstance(this).startWinBoLLActivity(this, LogActivity.class); } // @@ -165,7 +165,7 @@ final public class MainActivity extends Activity { // if (intent.getAction().equals(StringToQrCodeView.ACTION_UNITTEST_QRCODE)) { // try { -// WinBollActivity clazzActivity = UnitTestActivity.class.newInstance(); +// WinBoLLActivity clazzActivity = UnitTestActivity.class.newInstance(); // String tag = clazzActivity.getTag(); // LogUtils.d(TAG, "String tag = clazzActivity.getTag(); tag " + tag); // Intent subIntent = new Intent(this, UnitTestActivity.class); @@ -183,8 +183,8 @@ final public class MainActivity extends Activity { // } // // Files.copy(Paths.get(szSrcPath), Paths.get(file.getPath())); -// //startWinBollActivity(subIntent, tag); -// WinBollActivityManager.getInstance(this).startWinBollActivity(this, subIntent, UnitTestActivity.class); +// //startWinBoLLActivity(subIntent, tag); +// WinBoLLActivityManager.getInstance(this).startWinBoLLActivity(this, subIntent, UnitTestActivity.class); // } catch (IllegalAccessException | InstantiationException | IOException e) { // LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); // // 函数处理异常返回失败 @@ -201,8 +201,8 @@ final public class MainActivity extends Activity { public boolean onCreateOptionsMenu(Menu menu) { //ToastUtils.show("onCreateOptionsMenu"); getMenuInflater().inflate(R.menu.toolbar_main, menu); -// if (isAddWinBollToolBar()) { -// //ToastUtils.show("mIWinBoll.isAddWinBollToolBar()"); +// if (isAddWinBoLLToolBar()) { +// //ToastUtils.show("mIWinBoLL.isAddWinBoLLToolBar()"); // getMenuInflater().inflate(R.menu.toolbar_winboll_shared_main, menu); // } if (App.isDebuging()) { @@ -220,7 +220,7 @@ final public class MainActivity extends Activity { } else if (item.getItemId() == R.id.item_teststringtoqrcodeview) { Intent intent = new Intent(this, TestStringToQRCodeViewActivity.class); startActivityForResult(intent, REQUEST_QRCODEDECODE_ACTIVITY); - //WinBollActivityManager.getInstance(this).startWinBollActivity(this, TestStringToQrCodeViewActivity.class); + //WinBoLLActivityManager.getInstance(this).startWinBoLLActivity(this, TestStringToQrCodeViewActivity.class); } else if (item.getItemId() == R.id.item_testqrcodedecodeactivity) { Intent intent = new Intent(this, QRCodeDecodeActivity.class); startActivityForResult(intent, REQUEST_QRCODEDECODE_ACTIVITY); @@ -230,13 +230,13 @@ final public class MainActivity extends Activity { } return true; } else if (item.getItemId() == R.id.item_log) { - //WinBollActivityManager.getInstance(this).startWinBollActivity(this, LogActivity.class); + //WinBoLLActivityManager.getInstance(this).startWinBoLLActivity(this, LogActivity.class); return true; } else if (item.getItemId() == R.id.item_exitdebug) { //AboutView.setApp2NormalMode(this); return true; } else if (item.getItemId() == android.R.id.home) { - //WinBollActivityManager.getInstance(this).finish(this); + //WinBoLLActivityManager.getInstance(this).finish(this); return true; } return super.onOptionsItemSelected(item); @@ -247,7 +247,7 @@ final public class MainActivity extends Activity { // // @Override // public void onYes() { -// //WinBollActivityManager.getInstance(getApplicationContext()).finishAll(); +// //WinBoLLActivityManager.getInstance(getApplicationContext()).finishAll(); // } // // @Override @@ -260,10 +260,10 @@ final public class MainActivity extends Activity { @Override public void onBackPressed() { -// if (WinBollActivityManager.getInstance(getApplicationContext()).isFirstIWinBollActivity(this)) { +// if (WinBoLLActivityManager.getInstance(getApplicationContext()).isFirstIWinBoLLActivity(this)) { // exit(); // } else { -// WinBollActivityManager.getInstance(this).finish(this); +// WinBoLLActivityManager.getInstance(this).finish(this); // super.onBackPressed(); // } } @@ -275,7 +275,7 @@ final public class MainActivity extends Activity { intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); startActivity(intent); - //WinBollActivityManager.getInstance(this).startWinBollActivity(this, intent, AssetsHtmlActivity.class); + //WinBoLLActivityManager.getInstance(this).startWinBoLLActivity(this, intent, AssetsHtmlActivity.class); } @Override diff --git a/apputils/src/main/java/cc/winboll/studio/apputils/WinBollActivityBase.java b/apputils/src/main/java/cc/winboll/studio/apputils/WinBoLLActivityBase.java similarity index 63% rename from apputils/src/main/java/cc/winboll/studio/apputils/WinBollActivityBase.java rename to apputils/src/main/java/cc/winboll/studio/apputils/WinBoLLActivityBase.java index ff6e426..91c285e 100644 --- a/apputils/src/main/java/cc/winboll/studio/apputils/WinBollActivityBase.java +++ b/apputils/src/main/java/cc/winboll/studio/apputils/WinBoLLActivityBase.java @@ -9,12 +9,12 @@ import android.app.Activity; import android.os.Bundle; import android.os.PersistableBundle; import cc.winboll.studio.libappbase.GlobalApplication; -import cc.winboll.studio.libappbase.winboll.IWinBollActivity; -import cc.winboll.studio.libappbase.winboll.WinBollActivityManager; +import cc.winboll.studio.libappbase.winboll.IWinBoLLActivity; +import cc.winboll.studio.libappbase.winboll.WinBoLLActivityManager; -public class WinBollActivityBase extends Activity implements IWinBollActivity { +public class WinBoLLActivityBase extends Activity implements IWinBoLLActivity { - public static final String TAG = "WinBollActivityBase"; + public static final String TAG = "WinBoLLActivityBase"; @Override public Activity getActivity() { @@ -26,14 +26,14 @@ public class WinBollActivityBase extends Activity implements IWinBollActivity { return TAG; } - WinBollActivityManager getWinBollActivityManager() { - return WinBollActivityManager.getInstance(GlobalApplication.getInstance()); + WinBoLLActivityManager getWinBoLLActivityManager() { + return WinBoLLActivityManager.getInstance(GlobalApplication.getInstance()); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - getWinBollActivityManager().add(this); + getWinBoLLActivityManager().add(this); } @Override @@ -46,6 +46,6 @@ public class WinBollActivityBase extends Activity implements IWinBollActivity { @Override protected void onDestroy() { super.onDestroy(); - getWinBollActivityManager().registeRemove(this); + getWinBoLLActivityManager().registeRemove(this); } } diff --git a/apputils/src/main/res/values/colors.xml b/apputils/src/main/res/values/colors.xml index bb20e29..60c561c 100644 --- a/apputils/src/main/res/values/colors.xml +++ b/apputils/src/main/res/values/colors.xml @@ -1,6 +1,6 @@ - + #FF196ABC #FF002B57 #FF80BFFF diff --git a/libapputils/build.gradle b/libapputils/build.gradle index 2b8a5b6..925f384 100644 --- a/libapputils/build.gradle +++ b/libapputils/build.gradle @@ -21,7 +21,7 @@ android { dependencies { api fileTree(dir: 'libs', include: ['*.jar']) - api 'cc.winboll.studio:libappbase:15.7.5' + api 'cc.winboll.studio:libappbase:15.7.6' // 二维码类库 api 'com.google.zxing:core:3.4.1' diff --git a/libapputils/build.properties b/libapputils/build.properties index b2fd69c..62bd441 100644 --- a/libapputils/build.properties +++ b/libapputils/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 29 14:07:52 HKT 2025 +#Tue Apr 29 07:02:05 GMT 2025 stageCount=4 libraryProject=libapputils baseVersion=15.3 publishVersion=15.3.3 -buildCount=0 +buildCount=1 baseBetaVersion=15.3.4 diff --git a/libapputils/src/main/assets/winboll/studio/html/index.html b/libapputils/src/main/assets/winboll/studio/html/index.html index 4ea1b38..b95d385 100644 --- a/libapputils/src/main/assets/winboll/studio/html/index.html +++ b/libapputils/src/main/assets/winboll/studio/html/index.html @@ -3,10 +3,10 @@ - WinBoll-APP + WinBoLL-APP -

访问 WWW.WinBoll.CC

+

访问 WWW.WinBoLL.CC

diff --git a/libapputils/src/main/assets/winboll/studio/html/javascript_test.html b/libapputils/src/main/assets/winboll/studio/html/javascript_test.html index 6604456..49f5ec9 100644 --- a/libapputils/src/main/assets/winboll/studio/html/javascript_test.html +++ b/libapputils/src/main/assets/winboll/studio/html/javascript_test.html @@ -7,10 +7,10 @@ - WinBoll + WinBoLL - WinBoll Studio + WinBoLL Studio