From 3607a99053b1fcc3bb99d84c82d0f6b029664bf7 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 6 May 2025 11:27:09 +0800 Subject: [PATCH 01/26] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E6=A0=8F=E6=B8=85=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- timestamp/build.properties | 4 ++-- .../main/java/cc/winboll/studio/timestamp/MainService.java | 4 ++++ .../studio/timestamp/utils/TimeStampRemoteViewsUtil.java | 5 ++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/timestamp/build.properties b/timestamp/build.properties index e6ed333..f873b0f 100644 --- a/timestamp/build.properties +++ b/timestamp/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue May 06 11:17:44 HKT 2025 +#Tue May 06 03:25:35 GMT 2025 stageCount=1 libraryProject= baseVersion=15.0 publishVersion=15.0.0 -buildCount=0 +buildCount=2 baseBetaVersion=15.0.1 diff --git a/timestamp/src/main/java/cc/winboll/studio/timestamp/MainService.java b/timestamp/src/main/java/cc/winboll/studio/timestamp/MainService.java index b6862c3..158e8a8 100644 --- a/timestamp/src/main/java/cc/winboll/studio/timestamp/MainService.java +++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/MainService.java @@ -6,6 +6,7 @@ package cc.winboll.studio.timestamp; * @Describe 主要服务 */ import android.app.Notification; +import android.app.NotificationManager; import android.app.Service; import android.content.ComponentName; import android.content.Context; @@ -128,6 +129,9 @@ public class MainService extends Service { if (mTimer != null) { mTimer.cancel(); } + + NotificationManager notificationManager = getSystemService(NotificationManager.class); + notificationManager.cancelAll(); _mIsServiceAlive = false; LogUtils.d(TAG, "onDestroy()"); diff --git a/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampRemoteViewsUtil.java b/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampRemoteViewsUtil.java index 0aee3d6..1b91f5a 100644 --- a/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampRemoteViewsUtil.java +++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampRemoteViewsUtil.java @@ -15,6 +15,7 @@ import android.widget.TextView; import androidx.core.app.NotificationCompat; import cc.winboll.studio.timestamp.R; import cc.winboll.studio.timestamp.receivers.ButtonClickReceiver; +import android.app.Notification; public class TimeStampRemoteViewsUtil { @@ -26,6 +27,7 @@ public class TimeStampRemoteViewsUtil { Context mContext; RemoteViews mRemoteViews; TextView mtvMessage; + Notification mNotification; TimeStampRemoteViewsUtil(Context context) { mContext = context; @@ -91,6 +93,7 @@ public class TimeStampRemoteViewsUtil { // 显示通知 NotificationManager notificationManager = mContext.getSystemService(NotificationManager.class); - notificationManager.notify(1, builder.build()); + mNotification = builder.build(); + notificationManager.notify(1, mNotification); } } From ddce5646bd0ff7d52b464c633e935ad27dcd0d6e Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 6 May 2025 11:27:46 +0800 Subject: [PATCH 02/26] APK 15.0.1 release Publish. --- timestamp/build.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/timestamp/build.properties b/timestamp/build.properties index f873b0f..942a459 100644 --- a/timestamp/build.properties +++ b/timestamp/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue May 06 03:25:35 GMT 2025 -stageCount=1 +#Tue May 06 11:27:46 HKT 2025 +stageCount=2 libraryProject= baseVersion=15.0 -publishVersion=15.0.0 -buildCount=2 -baseBetaVersion=15.0.1 +publishVersion=15.0.1 +buildCount=0 +baseBetaVersion=15.0.2 From 7d35d5a9b89946ff0d30eb86f3323e623396d30d Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 6 May 2025 11:33:28 +0800 Subject: [PATCH 03/26] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E6=A0=8F=E6=89=93=E5=BC=80=E4=B8=BB=E7=AA=97=E5=8F=A3=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- timestamp/build.properties | 4 ++-- .../timestamp/utils/TimeStampRemoteViewsUtil.java | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/timestamp/build.properties b/timestamp/build.properties index 942a459..d334929 100644 --- a/timestamp/build.properties +++ b/timestamp/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue May 06 11:27:46 HKT 2025 +#Tue May 06 03:32:02 GMT 2025 stageCount=2 libraryProject= baseVersion=15.0 publishVersion=15.0.1 -buildCount=0 +buildCount=1 baseBetaVersion=15.0.2 diff --git a/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampRemoteViewsUtil.java b/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampRemoteViewsUtil.java index 1b91f5a..4c1113b 100644 --- a/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampRemoteViewsUtil.java +++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampRemoteViewsUtil.java @@ -5,17 +5,19 @@ package cc.winboll.studio.timestamp.utils; * @Date 2025/05/05 21:10 * @Describe TimeStampRemoteViewsUtil */ +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.os.Build; import android.widget.RemoteViews; import android.widget.TextView; import androidx.core.app.NotificationCompat; +import cc.winboll.studio.timestamp.MainActivity; import cc.winboll.studio.timestamp.R; import cc.winboll.studio.timestamp.receivers.ButtonClickReceiver; -import android.app.Notification; public class TimeStampRemoteViewsUtil { @@ -66,10 +68,10 @@ public class TimeStampRemoteViewsUtil { // 这里虽然不能直接设置字体大小,但可以通过反射等方式尝试(不推荐,且有兼容性问题) // 创建点击通知后的意图 - //Intent intent = new Intent(mContext, MainActivity.class); - //PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); + Intent intent = new Intent(mContext, MainActivity.class); + PendingIntent pendingMainIntent = PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); // 设置通知的点击事件 - //mRemoteViews.setOnClickPendingIntent(R.id.btn_copytimestamp, pendingIntent); + mRemoteViews.setOnClickPendingIntent(R.id.tv_timestamp, pendingMainIntent); // 创建点击按钮后要发送的广播 Intent Intent broadcastIntent = new Intent(ButtonClickReceiver.BUTTON_COPYTIMESTAMP_ACTION); From df6633046c5b136dbe2bef46410b1d35e2ca83d4 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 6 May 2025 11:34:02 +0800 Subject: [PATCH 04/26] APK 15.0.2 release Publish. --- timestamp/build.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/timestamp/build.properties b/timestamp/build.properties index d334929..22ee0a3 100644 --- a/timestamp/build.properties +++ b/timestamp/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue May 06 03:32:02 GMT 2025 -stageCount=2 +#Tue May 06 11:34:02 HKT 2025 +stageCount=3 libraryProject= baseVersion=15.0 -publishVersion=15.0.1 -buildCount=1 -baseBetaVersion=15.0.2 +publishVersion=15.0.2 +buildCount=0 +baseBetaVersion=15.0.3 From 6555346618b7c0191c0423b3d0c41ea139833563 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 6 May 2025 17:04:14 +0800 Subject: [PATCH 05/26] =?UTF-8?q?=E9=87=8D=E6=9E=84=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E6=A0=8F=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- timestamp/build.properties | 4 +- .../timestamp/utils/NotificationHelper.java | 2 +- .../utils/TimeStampRemoteViewsUtil.java | 146 +++++++++++------- 3 files changed, 92 insertions(+), 60 deletions(-) diff --git a/timestamp/build.properties b/timestamp/build.properties index 22ee0a3..e80e2e2 100644 --- a/timestamp/build.properties +++ b/timestamp/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue May 06 11:34:02 HKT 2025 +#Tue May 06 09:02:43 GMT 2025 stageCount=3 libraryProject= baseVersion=15.0 publishVersion=15.0.2 -buildCount=0 +buildCount=2 baseBetaVersion=15.0.3 diff --git a/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/NotificationHelper.java b/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/NotificationHelper.java index 39c826c..7e51d49 100644 --- a/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/NotificationHelper.java +++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/NotificationHelper.java @@ -120,7 +120,7 @@ public class NotificationHelper { PendingIntent pendingIntent = createPendingIntent(intent); - Notification notification = new NotificationCompat.Builder(mContext, CHANNEL_ID_TEMPORARY) + 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) diff --git a/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampRemoteViewsUtil.java b/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampRemoteViewsUtil.java index 4c1113b..f9c59fb 100644 --- a/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampRemoteViewsUtil.java +++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampRemoteViewsUtil.java @@ -5,16 +5,12 @@ package cc.winboll.studio.timestamp.utils; * @Date 2025/05/05 21:10 * @Describe TimeStampRemoteViewsUtil */ -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.os.Build; import android.widget.RemoteViews; -import android.widget.TextView; -import androidx.core.app.NotificationCompat; import cc.winboll.studio.timestamp.MainActivity; import cc.winboll.studio.timestamp.R; import cc.winboll.studio.timestamp.receivers.ButtonClickReceiver; @@ -27,13 +23,16 @@ public class TimeStampRemoteViewsUtil { static volatile TimeStampRemoteViewsUtil _TimeStampRemoteViewsUtil; Context mContext; + NotificationHelper mNotificationHelper; RemoteViews mRemoteViews; - TextView mtvMessage; - Notification mNotification; + Intent mIntentMain; + + TimeStampRemoteViewsUtil(Context context) { mContext = context; - createNotificationChannel(); + mNotificationHelper = new NotificationHelper(context); + //createNotificationChannel(); } public static synchronized TimeStampRemoteViewsUtil getInstance(Context context) { @@ -42,60 +41,93 @@ public class TimeStampRemoteViewsUtil { } return _TimeStampRemoteViewsUtil; } - - private void createNotificationChannel() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - CharSequence name = "自定义视图通知通道"; - String description = "用于展示自定义视图的通知通道"; - int importance = NotificationManager.IMPORTANCE_HIGH; - NotificationChannel channel = new NotificationChannel(CHANNEL_ID, name, importance); - channel.setDescription(description); - NotificationManager notificationManager = mContext.getSystemService(NotificationManager.class); - notificationManager.createNotificationChannel(channel); - } - } + +// private void createNotificationChannel() { +// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { +// CharSequence name = "自定义视图通知通道"; +// String description = "用于展示自定义视图的通知通道"; +// int importance = NotificationManager.IMPORTANCE_HIGH; +// NotificationChannel channel = new NotificationChannel(CHANNEL_ID, name, importance); +// channel.setDescription(description); +// NotificationManager notificationManager = mContext.getSystemService(NotificationManager.class); +// notificationManager.createNotificationChannel(channel); +// } +// } + +// public void showNotification(String msg) { +// if (mRemoteViews == null) { +// // 创建 RemoteViews 对象,加载布局 +// mRemoteViews = new RemoteViews(mContext.getPackageName(), R.layout.custom_notification_layout); +// +// } +// // 自定义 TextView 的文本 +// mRemoteViews.setTextViewText(R.id.tv_timestamp, msg); +// // 自定义 TextView 的文本颜色 +// mRemoteViews.setTextColor(R.id.tv_timestamp, mContext.getResources().getColor(R.color.colorAccent, null)); +// // 这里虽然不能直接设置字体大小,但可以通过反射等方式尝试(不推荐,且有兼容性问题) +// +// // 创建点击通知后的意图 +// Intent intent = new Intent(mContext, MainActivity.class); +// PendingIntent pendingMainIntent = PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); +// // 设置通知的点击事件 +// mRemoteViews.setOnClickPendingIntent(R.id.tv_timestamp, pendingMainIntent); +// +// // 创建点击按钮后要发送的广播 Intent +// Intent broadcastIntent = new Intent(ButtonClickReceiver.BUTTON_COPYTIMESTAMP_ACTION); +// android.app.PendingIntent pendingIntent = android.app.PendingIntent.getBroadcast( +// mContext, +// 0, +// broadcastIntent, +// android.app.PendingIntent.FLAG_UPDATE_CURRENT +// ); +// +// // 为按钮设置点击事件 +// mRemoteViews.setOnClickPendingIntent(R.id.btn_copytimestamp, pendingIntent); +// +// // 构建通知 +// NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext, CHANNEL_ID) +// .setSmallIcon(android.R.drawable.ic_dialog_info) +// .setContent(mRemoteViews) +// .setPriority(NotificationCompat.PRIORITY_HIGH) +// .setOngoing(true) +// .setAutoCancel(true); +// +// // 显示通知 +// NotificationManager notificationManager = mContext.getSystemService(NotificationManager.class); +// mNotification = builder.build(); +// notificationManager.notify(1, mNotification); +// } public void showNotification(String msg) { if (mRemoteViews == null) { // 创建 RemoteViews 对象,加载布局 mRemoteViews = new RemoteViews(mContext.getPackageName(), R.layout.custom_notification_layout); - + + // 自定义 TextView 的文本 + mRemoteViews.setTextViewText(R.id.tv_timestamp, msg); + // 自定义 TextView 的文本颜色 + mRemoteViews.setTextColor(R.id.tv_timestamp, mContext.getResources().getColor(R.color.colorAccent, null)); + // 这里虽然不能直接设置字体大小,但可以通过反射等方式尝试(不推荐,且有兼容性问题) + + // 创建点击通知后的意图 + mIntentMain = new Intent(mContext, MainActivity.class); + PendingIntent pendingMainIntent = PendingIntent.getActivity(mContext, 0, mIntentMain, PendingIntent.FLAG_UPDATE_CURRENT); + // 设置通知的点击事件 + mRemoteViews.setOnClickPendingIntent(R.id.tv_timestamp, pendingMainIntent); + + // 创建点击按钮后要发送的广播 Intent + Intent broadcastIntent = new Intent(ButtonClickReceiver.BUTTON_COPYTIMESTAMP_ACTION); + android.app.PendingIntent pendingIntent = android.app.PendingIntent.getBroadcast( + mContext, + 0, + broadcastIntent, + android.app.PendingIntent.FLAG_UPDATE_CURRENT + ); + + // 为按钮设置点击事件 + mRemoteViews.setOnClickPendingIntent(R.id.btn_copytimestamp, pendingIntent); } - // 自定义 TextView 的文本 - mRemoteViews.setTextViewText(R.id.tv_timestamp, msg); - // 自定义 TextView 的文本颜色 - mRemoteViews.setTextColor(R.id.tv_timestamp, mContext.getResources().getColor(R.color.colorAccent, null)); - // 这里虽然不能直接设置字体大小,但可以通过反射等方式尝试(不推荐,且有兼容性问题) - - // 创建点击通知后的意图 - Intent intent = new Intent(mContext, MainActivity.class); - PendingIntent pendingMainIntent = PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); - // 设置通知的点击事件 - mRemoteViews.setOnClickPendingIntent(R.id.tv_timestamp, pendingMainIntent); - - // 创建点击按钮后要发送的广播 Intent - Intent broadcastIntent = new Intent(ButtonClickReceiver.BUTTON_COPYTIMESTAMP_ACTION); - android.app.PendingIntent pendingIntent = android.app.PendingIntent.getBroadcast( - mContext, - 0, - broadcastIntent, - android.app.PendingIntent.FLAG_UPDATE_CURRENT - ); - // 为按钮设置点击事件 - mRemoteViews.setOnClickPendingIntent(R.id.btn_copytimestamp, pendingIntent); - - // 构建通知 - NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext, CHANNEL_ID) - .setSmallIcon(android.R.drawable.ic_dialog_info) - .setContent(mRemoteViews) - .setPriority(NotificationCompat.PRIORITY_HIGH) - .setOngoing(true) - .setAutoCancel(true); - - // 显示通知 - NotificationManager notificationManager = mContext.getSystemService(NotificationManager.class); - mNotification = builder.build(); - notificationManager.notify(1, mNotification); + mNotificationHelper.showCustomForegroundNotification(mIntentMain, mRemoteViews, mRemoteViews); } } From 1ca93a610e53a01394fe50ddb83f4945f40add00 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 6 May 2025 17:59:57 +0800 Subject: [PATCH 06/26] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=B8=B8=E9=A9=BB?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E7=94=B5=E9=87=8F=E6=B6=88=E8=80=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- timestamp/build.properties | 4 +- timestamp/src/main/AndroidManifest.xml | 10 ++-- .../winboll/studio/timestamp/MainService.java | 50 +++++++++++-------- .../receivers/ButtonClickReceiver.java | 2 + .../utils/TimeStampRemoteViewsUtil.java | 47 +++++++++-------- timestamp/src/main/res/values/strings.xml | 2 +- 6 files changed, 64 insertions(+), 51 deletions(-) diff --git a/timestamp/build.properties b/timestamp/build.properties index e80e2e2..1e80878 100644 --- a/timestamp/build.properties +++ b/timestamp/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue May 06 09:02:43 GMT 2025 +#Tue May 06 09:59:03 GMT 2025 stageCount=3 libraryProject= baseVersion=15.0 publishVersion=15.0.2 -buildCount=2 +buildCount=14 baseBetaVersion=15.0.3 diff --git a/timestamp/src/main/AndroidManifest.xml b/timestamp/src/main/AndroidManifest.xml index 6d48e55..0c5ecbc 100644 --- a/timestamp/src/main/AndroidManifest.xml +++ b/timestamp/src/main/AndroidManifest.xml @@ -5,9 +5,13 @@ - - - + + + + + + + TimeStamp This is the prompt window when the SMS service runs, which you can set to hide this class notification in the notification message settings. - + Accessibility service description. From 8fa20b56ec793aefed9543bc08b06236687b441c Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 6 May 2025 18:01:46 +0800 Subject: [PATCH 07/26] APK 15.0.3 release Publish. --- timestamp/build.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/timestamp/build.properties b/timestamp/build.properties index 1e80878..aa67c49 100644 --- a/timestamp/build.properties +++ b/timestamp/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue May 06 09:59:03 GMT 2025 -stageCount=3 +#Tue May 06 18:01:46 HKT 2025 +stageCount=4 libraryProject= baseVersion=15.0 -publishVersion=15.0.2 -buildCount=14 -baseBetaVersion=15.0.3 +publishVersion=15.0.3 +buildCount=0 +baseBetaVersion=15.0.4 From b032de55dc74e859b7d8c87ccaf306dce24c8d7e Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 6 May 2025 18:14:34 +0800 Subject: [PATCH 08/26] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AF=B4=E6=98=8E?= =?UTF-8?q?=E4=B9=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- timestamp/README.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 timestamp/README.md diff --git a/timestamp/README.md b/timestamp/README.md new file mode 100644 index 0000000..e93e22c --- /dev/null +++ b/timestamp/README.md @@ -0,0 +1,6 @@ +## TimpStamp +## 时间戳工具集 + +## 使用要点: +1。常驻通知栏按钮的正常使用, + 需要设置允许应用[写入剪贴板]的[始终允许]权限。 From bc873852c20d82fb3630a3bb54d1dfdfb805acfd Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 6 May 2025 18:32:51 +0800 Subject: [PATCH 09/26] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=88=B3=E5=A4=8D=E5=88=B6=E6=A0=BC=E5=BC=8F=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=9C=AA=E4=BF=9D=E5=AD=98=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- timestamp/build.properties | 4 ++-- .../cc/winboll/studio/timestamp/models/AppConfigsModel.java | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/timestamp/build.properties b/timestamp/build.properties index aa67c49..ae210e1 100644 --- a/timestamp/build.properties +++ b/timestamp/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue May 06 18:01:46 HKT 2025 +#Tue May 06 10:30:35 GMT 2025 stageCount=4 libraryProject= baseVersion=15.0 publishVersion=15.0.3 -buildCount=0 +buildCount=1 baseBetaVersion=15.0.4 diff --git a/timestamp/src/main/java/cc/winboll/studio/timestamp/models/AppConfigsModel.java b/timestamp/src/main/java/cc/winboll/studio/timestamp/models/AppConfigsModel.java index 8b87647..5d23cfc 100644 --- a/timestamp/src/main/java/cc/winboll/studio/timestamp/models/AppConfigsModel.java +++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/models/AppConfigsModel.java @@ -63,6 +63,7 @@ public class AppConfigsModel extends BaseBean { super.writeThisToJsonWriter(jsonWriter); jsonWriter.name("isEnableService").value(isEnableService()); jsonWriter.name("timeStampFormatString").value(getTimeStampFormatString()); + jsonWriter.name("timeStampCopyFormatString").value(getTimeStampCopyFormatString()); } @Override @@ -72,6 +73,8 @@ public class AppConfigsModel extends BaseBean { setIsEnableService(jsonReader.nextBoolean()); } else if (name.equals("timeStampFormatString")) { setTimeStampFormatString(jsonReader.nextString()); + } else if (name.equals("timeStampCopyFormatString")) { + setTimeStampCopyFormatString(jsonReader.nextString()); } else { return false; } From d875b6965d3cc18a3b18f6206f95018556cf910f Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 6 May 2025 18:33:32 +0800 Subject: [PATCH 10/26] APK 15.0.4 release Publish. --- timestamp/build.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/timestamp/build.properties b/timestamp/build.properties index ae210e1..6b9fa5a 100644 --- a/timestamp/build.properties +++ b/timestamp/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue May 06 10:30:35 GMT 2025 -stageCount=4 +#Tue May 06 18:33:32 HKT 2025 +stageCount=5 libraryProject= baseVersion=15.0 -publishVersion=15.0.3 -buildCount=1 -baseBetaVersion=15.0.4 +publishVersion=15.0.4 +buildCount=0 +baseBetaVersion=15.0.5 From 9a3383a43bc044fe0d2a31e4734433801c0f21c1 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 6 May 2025 18:33:59 +0800 Subject: [PATCH 11/26] APK 15.0.5 release Publish. --- timestamp/build.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/timestamp/build.properties b/timestamp/build.properties index 6b9fa5a..d31b5e0 100644 --- a/timestamp/build.properties +++ b/timestamp/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue May 06 18:33:32 HKT 2025 -stageCount=5 +#Tue May 06 18:33:59 HKT 2025 +stageCount=6 libraryProject= baseVersion=15.0 -publishVersion=15.0.4 +publishVersion=15.0.5 buildCount=0 -baseBetaVersion=15.0.5 +baseBetaVersion=15.0.6 From be85ef923e69a5d3f78d9a15ce952ef6b864ffaa Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 6 May 2025 20:36:51 +0800 Subject: [PATCH 12/26] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=EF=BC=8C=E4=BC=98=E5=8C=96=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=A0=8FUI=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- timestamp/build.properties | 4 ++-- timestamp/src/main/AndroidManifest.xml | 4 ++-- .../winboll/studio/timestamp/MainService.java | 2 +- .../receivers/ButtonClickReceiver.java | 2 +- timestamp/src/main/res/drawable/ic_launcher.png | Bin 0 -> 10189 bytes .../res/layout/custom_notification_layout.xml | 8 ++++---- 6 files changed, 10 insertions(+), 10 deletions(-) create mode 100644 timestamp/src/main/res/drawable/ic_launcher.png diff --git a/timestamp/build.properties b/timestamp/build.properties index d31b5e0..af52063 100644 --- a/timestamp/build.properties +++ b/timestamp/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue May 06 18:33:59 HKT 2025 +#Tue May 06 12:35:36 GMT 2025 stageCount=6 libraryProject= baseVersion=15.0 publishVersion=15.0.5 -buildCount=0 +buildCount=9 baseBetaVersion=15.0.6 diff --git a/timestamp/src/main/AndroidManifest.xml b/timestamp/src/main/AndroidManifest.xml index 0c5ecbc..09b697c 100644 --- a/timestamp/src/main/AndroidManifest.xml +++ b/timestamp/src/main/AndroidManifest.xml @@ -14,8 +14,8 @@ Q1uY|DtI9AyP<1N0e-?L?mmVfZb(;C-8?97V=g#@-KCwl z9q4-H*%!X_aDGLSH2Urf-Hd+?Zrx_Y*0vO(Oh}mMncF7|DTFC53)|9JYT=_Ezj=b; z`;FR;vAZ4hhKD=h9Q}=3R}N22qMw;t4Bt#!t=tTmukkzb|7CMM-MgrKeauLCj|rK^ zr~7}uKm(-X{99yvE|m;!$Y6i+EQG!(XM*plx#{hTQ0Wghcq556tjC742SbB-icQ@+ zn5M!6i>6H4oE}=>ZsU?bLz=H6lv+9FRvdkLL3G%raeQY-2Cw;BlHBT&8kZGlqvSbJ1IL_i-{ACg1Bd}J=s>cakUt9K#tGN>T9bb z7^E>$L#6~3SQw{VSU7s*QMDZ$0wD+Xik+9mXZNHLfW{4~B-7A(mme z4NX6rpW>H#a8k!wJlsr!gQ#5us-Fut->3LTln5V!i6L%f)XP?^01YqC&>rZ1_S3a% z!A8vV2*q`&cy3;NbkF_~6`I^~Vfw`(TpYdtRf~i=o2mm#8XBXpCCQtbFf>TQKRaD) z=yB?CnwGw0aN%lI=dJBiWhETwTM}aemd9z!{ZwBIoE2UD>;%+2%}S(EZbK#zAAE%xFxfdEqQWL>Q&V zKLUhzjgCBF%a*9=B)o}VZYv>cWoIDvne-J4c?70mlZ>&-*3x%+e!B#>>=3Jb<=&*Z ziLxro(1HBPc9%?GD2*IR(AD&^Qejspbz<-W))PC@kTln#t#NvfgG2O3$&g=9JF5H8 zvzos)!!1)wfI`pn)nF^Ef-;=4nRz9>(dP$iPO#+7nd{G2Ylf~n`Af(94%r3~-i_O> zJ>GmhLNTl5&vHXovO`&y!&1XvWM=HE%)~_ZWXdDrk*)Ni(bE2mBJLlqp5p|)&1>my z%4Ex=NJ+3^KfU-AI`bq-RcC`ZJya!sCVyyaa{4|kaXg*YdcrZ4@5aERD+;#hxP_79 zgbq0)7tB8UmzQ-)cBZW1`wlZ|b|3fsHhGw{_p)t(*wmqB?M}Zm7BEt=1y|!uW)^Ww+J^f=+ zTe=&~L|wU+b-ewN6TzbRDaKODQ?F7Dn6#Y{j@I!(n8u_+^B#OERPV1rg>ykD^FvkA z`MkoG!vIGX+{>G}X~KyxHN8q6g@Y~T1zcBWNSg%RLxO2Py+pR#;jiSmL@QzLY{92# z9YzCPogKO4#0S?N%FPn}SXBfAc9F&L`5olKR)+A532B;UKKnOYWK9kfp)IA}7ORs~ zWgGCx1u81ln;x8`f1u4TZITu6AWAiBPbIwID5bAEkQp^%I4xT`BzaHF!%yj|by`cX z!o03A%=bY5$vDH@kgN}$I6NGJuX*@WyL)R`=)Lr=H)e7AA>Y!l8D#oTuBQ7*jZ@(U z4n5>+K)gH^6y%>?c01*YOaS5v(-C*<2>!LQjlyaVW)yF9MYCEtmO> z48$@d=r6#ic!0V&aXw&^KyNn8bM{Jsb=RT{xcetsmL-24?Ts3Tw$SN36mZu}`D z?aN|GNYFgqX}-N2JMnYJO)L2RgBUYf{W<^3LgjI#mqD*)dgS1bkKUZw8Uh1zt5QWT zR7|`e*SiZz8603`e`K4)L%H9L7MxXr-r=EL456i7dToaPJ2I}9sxRzvij29C>+fgQ z^XFGGJq1i3QbUx3$l`#7NmK)j+bz^6-iw3XjEX%cT-H?PtdC*4`+{?c8ANI6Dazhx zvsU)O?de(Ah;^L|a_Y4YZg`<*_9GxwMNv%{0vt#Q*-!cTa(ce{`n$ztjWYEV!!sSo zn^_1`(hKWVaf{u3Aylbf%lh zR?6|iU;Jl^ECf1*g@cq{Gdm`WBHGAh_DRM$AZ+@9bl|@8nbM?opN{XaJNh){Bc~-G zLFvFgs?JUkU>WzT_1mstGA0xL-QizkMehTgHf=zB%xf{x0?7m6z;Uf?UCK*q0EC8YrQ$c)|$7hukUAGJVPlF%_>ro?G%j0MPRxPwhd5y-zb z8?^XV9@Xct3!Ea@PvzvtuWh zv(CRgL5nXsyS@ef8hujt_seJeg6vDLBcWQpGj|N=Z-oinGlJ(fiT&B4@vBZQu(&xm zSUb497?0+Y5rsWsNP;6{e^Fp=1U_h!Ach}&)e3GXeq(!bJRYrz4GzLvazEJhQX7~S z!CKuZfs8t-XA+|gw10g~A6WS&>vYtFEBS|+K!lR{9`+$CUMZ1stD}o^JN|gv{hp*M zIJln3nrCFT7WO%-=dVCn#E}E(Zzzc4anzy^BxKEk6WRU|6@t!$-bB7H4O^`7{9`qXh)HeBGPXO0pr;Xs2`f%|82My-c@*pY4X!(07!N(cH? z2h&;)9QvPP&_i(|-f?tt0CNIHzN?rrVRU%bGwYbRyEVX)o4 zc9-kwBVseu@$i2C=MyM`^b3^bI+0_}pNHVCYOlcVsjU^Eode~F3HXm1b}G%bu0zQ~ z`<>f0X{}cgD&)5Lx6Mp5w>NaHWf76NkGs_>IRv_{FKl~7<*)Ye<1-7pmzo;h&)DMB zaNf_P`7MNuV90e>$x*y7qSov?ZB08(_8b$9(N^t6|0?|%eU5-b(b2Syebwn-Ub2W| z`dCQU6GftCjh=yZlJ;hOcXC4?%(H+DRwGGv(OzU@!ic*!>2=CCo29Q(Fmw{>EiVk|J) zc|UTlk@B87uAc>0IkWiunWz2N$?wrvG=vs+cQ%DUT6btb7IDKrq{yy^ylXVHr+h!* z7d6vh?(SlxVsYPs{cn6zyP9;Ruk-Y!bhtB=T31hwx-eSTz)`nNG3Bi|6?p7+x9CMj z*kI=8fy~ibf+tg$>8qPj!1u^YhlVM;P?7hgB`A3jJYDlbkT4&@Qiw0rk%qsyIHX51~BqH}`li z>Rd_j7)e#34o$z;xgWC2J$`;A`hN?;1NL^;x897U*yuKV*x8TlQ>@X~y?<7}J;&U~ zHbo{W{3Q2kh9$DI4+^l#vuaaENothzKcd+iWhMvzIH=jyUg#jM-oBuGRttI^hK%0H zIlk3Ux7e4G(n+ZG+pO7V#VZyE96M}f6bkB^G6y59n5TYzGCUL)xL-x;`}V0h^Nlte zOw($nFA!B&=dnKQ`ag3Rrb>EMA7o~w&=%RmEtaA{Bi3=2M}HE$LZtnnH`b(FSM5)O zh#EPQ*U;QoK8)~MkRUMTU7LjatDe{GiaJEb0~5p;-fUe`9(JJEU5E>ukDeqla|A87 zpC6neqE^@XBdWOcvvpMK1BcyA9W|7t{cV(;P>x)zDiY7lsphxN7+{K^g*0WU^%ey& z8Hh8oC<=&Q`#NBo_FvXdgdh|r#$5O8VT#*c@E;1bqt5%HUcy%^>cLtk*P(D5mIv-m zsH4N3N|~#t^@LZ6GpR9vQxfN&u_n>GZY3w$bh_gAW@7myfPNhPizTGv#I8wP@hL`t zhWFs_kc~q;QOFGvl!W8JQAG}_6?Dn@*eEj0+a9yeyqJF&)zb!mmX^e~&ozG#SgM>f zraMiygpV_T*mLm=C}7JMWb!A0lxVmuC=r;9&e81~Cd-goKdN50*Av+#1xVHq;Fx?> zB^ulw#*@efa@MOqWlC{C*>q}aYZ3c;nbwFD$jI=}UTwb~ia!h-cT8}1 zL?q$0?*FAn<`EYpPcc?jHr{ZWz4#rd2p6c4DjW@>O5f)84dgPB$C?2(V_+s5d`WHK zEZEFXs0~lVmi3~=@ve?Fr3KLI(AK#oxI4^(CXFXy?-@qcsjtmjpM-nmH+vUr!o zd@wWaxk}$ZEr{8ug*Ryi%ZX84&CCb0O+b#VLEG30d4E&bT5H$*>SCV>RPhCf-}o2N z(jb<|N%?ckJB2MKyvazE4Jy3`c6eGZkEkl=qwZ*>cXAvE54k%N&jbuVBj4I_AxLt3 zk(ffmMUtC{%rGO`=&mUN&J@ie=c}k__G(*YyIeZ|j6rd(vyYgV&c^ioj6Ds+eE+Uw zU2&Bkj+HLrnK3Ly0fYA#hx&RG;x@9vc{ANo`bX~|C26n%^;_DMXUge?sTEGd7SN!O zKeE)E)~v~ON^6LLcYCXlUBJ$#kzq%L9c=za^V9-XIve@cDv;Yi<9Q)!;D{$7P~3+E zP*cSj3Quj?^xz`meJveB{>~vkf~^|Z5-dhccham;g_5$J$5dwvJ1bN_5hJPazfMdW3GV(cw2`<RqXF=N^qU*g&pNA3BE1D=a>B5AMy-I%o zYg+PStnGdArh=gZWo$TS9v{(;Tlu38HyUbYt{4GZ6g&!bvwT}P)f(qo6uACF z=I5f0J+{%XWdiov@fUBrK`wv=x9-iQn==6@G=DkBQM2vfrq8g2KzJ4 z+%7N85<6zP40D%93?ik+d!DWCBa}EH~`r zCIbh?x;HzX?M~#;V`ZHF*zWyTZY>k)&dRfYQFq3)vFTX9XR`bj@>@u;s!sCAiYltT zIb7^Q7haveL&Lr5{Y4p~w9>BLoiSU-^NzPCly$#-F@wGy9ZJ6iWhuJJ^5i9fTJzPv~IJzY||U9`OuV&z>)1QG*vP6u~M!G(|Op?7VA`Um9p+)dAlO zz5MpRGmZxL_DgPBWh$sE-pP^#k*&+;`z8?ysZnOnq&6{!h^8V** zoe)l|*Me{rAIhF$L)Co0LApd&y(|SUDV&L8l8_q!OQbB-7wiwEnd_EB96t|t*VlkD zjJHK;><}_NR{&2{C}TlUy^Tg^i=j4%yST#a6eEDf_g!0$RE3|`ZR%ED07Ty{5hoX? zggX`!c^9e3T^3Srv3;d`ZrR=5{~G=r!|~XQtxb5nqf`(0>GwcM310hI4~^!(t)r9y z1CwGlSO?dhwm`;QZH768gK8kFaGoDj+Q@;hWfuSI8Kr~1SanoBfdAVnvD&;M|1lC< z1@J5j8DJVOHz-bo?cY?zsuD(`(JwEKvv?8I`x&0O$6xW$d*B3W9Ru#84^!7W7Sqg} z`UdO0ksC7+mu>xh*UC7tH;eU2_|IrOsAsAEBzqs62rMRy)p;X10tXf)JSWEuqT_$T zn{Cr$05{DHSck|L+cb)XQK9HxrJWCIgM@CXa2Du0&>#2|Ux#P8e$Oy>0!DF*P47>? zst=y4Ufq9wAsQXv_M0})mV}LO^BaX`w%`0?OLZX>h^${zR&c6UI-HQ`=5+zFzh<7= zw2xZFB2^43a`#EAd0RA%DbrwTPc}FA=||rauT%d<>=W6w1$s%$X?l}l6vbjVX)1E* zNWCt*6qhr>LD?-!n=`l5_9!wO*HPFrwKy&Na;Scz4E34LG@FV{4zuzg<G9k zzT%k?ZYJDWq6(AEqp}+-Cm8Uwkofy&DeDFUbd4_ntA+K}4cjAOD38fZ1V$I;Q3`P8 zd74$;q*9Gpz1Q z%Bm53|9K4S?`Y_1pz8wAHk02l+jG<+?|Kd$Vx&?As(CDG`U>Oj-|G<}diXWfV|MFT zk!xXOkVPxa^awX#yZTGRII4`!dSe5iw5U@(c6gyIb1Q&&Hp41 zRo+s@Y(bNdjoA+zaT86u4HKun@}+%Wt(Zos=sAb+LY5Pz_X`XuYPY2&&1R|W5hTUHCPO%;9&Q~P$; z8^>6@WUap?&987kw_0dmMhUJ9aHU*b*QI9W_Pnw2SYl?o(0yfA$egAO;qWqlZyHo& zTqopVi$xyKO>;Jb*$tJr3eZ(^cHXcdm|l$-_tGb*Nbei79IagRLzV5oEwXYB*n$%6 z^Gi~z29d`rya(G`i^S8Gf7(f`bI*mPxM`_Z+yT?y4}l55%D)cnytZr6Om7f7VDymS zPMf*ndb)V(t#KnT!XN32jgAGN)uwy*U0MwmJBMRLWyL}r zOj|cYm<;8(?8DkMT2-k|=uo7!MTwqg_i}|x|wFEy>5;)Mx~LxnV~t)EqKww#luJsV1w>+7{p`RBXY*7xAWCiGLbbAl&-(e z1#I+^2&saruB8nV`W4(`2&=DI0`DZ57qj#>bti*dUOZZ<4%1-_|FJdq)O+nK>E8t& z1^kxe`@9X^{F?U{3Hyd}`?4G@cW?^}WJ)*vC%bGS%Lm2_004S>95Dk|e5X_f4_7!E zoNMiRd)&P$1uExj0fH`fm-G(iuF5S_25o+ONBA53h89tedZ`|88G%vI@GeH2ifNJ` z=T9uff#@W_K`CGq9T~1zuUv8MOCC*U^UEGfn$q`(11S^MpqBb0Q;?xp+nkRaj2yJ) z%te$;?!{ey7#AHFbuqL{eVvJ|bZvK@9QBO@pOCw_nmu{gcak7TF{|G&HL|PunL(ce zfXB8Dj%JSZBXlctiQFxVL$~}(Z?G}33tZC&Nz_?}oSbiUY#kao+aQHc`a@<*wbw6@_5I-&9r zi}|W^Pd^Sv2awpSgbTWoxj1XYgO@T}WEtsIrm+x2?tbLL=Rj3f<& zM)h)yAQ9h9E%{w0wdO}K7MRXIbB{~Ew8Qew+2#lG4y3@iZ<=9L84UiUGgW`ai2s_4 z*>Qp>hRusx)2iNa(u|aZ{+S(T6`dNh;xbrqUm;7PF}6XxvnwjQ@SsK0VRHOUMD=Rj z(Rzcm!RP&n#!CHfuindBle`MH`0OY3#`c}7=hDEdiCOAF5le4}_r80RgQ5=NcC`9g zS}7m(o%(lHDkHV@iw}1WCGp8-t!yxRA_v)N zh&pk8w7zsecFQxTlYTyeg%iyQ?vV)u)7EvGJkq>EgSbj2GEA*4b>1a$Lr(I}6EY7; znYd&=mpjwGa>NG*1dCC@8(%1kUt?^Mg4}@eD!28@@QMW4)ew{BcFE+V+$vXId| zu59c1%Rgl@q!4Oyy&tJsJu`LK(spD@RTDW11Ov%?0UEt?2aI|g``krcjPP>dq z5SSM*wtzkS2ZnbQ+lNx~mNwA?D$5FsxAbD82Z2;O7z=-OQp7Tj(F*H$J+6l`au$?3^7aZ9I=c)g}{X zjFXk9V|bqK>7VTAQ)x_Cm%4Pi$jqX!+0z$4T-C5{7AeDj!m%MVbDPF5-n? z01r)L0&#~=7X}jk|NHv?RSz*v_uFbcg3q>`$*!d|%M#SLzIP!Cjme-FHpQ2P_yz|n zTo7t%)Q}VMq*C_SU5s?2Gc%UA;U=U(eCqq?JQNxpnycKd1=UBgJO6k=^SHk zJ5Wy4{m}^juW`i1cc=Ypg?c9hae!Zd!;3!oE+nz8-zB_#To_bn3~Imbx7;RHIlzvE z)#De4hZmb(u!F{JaKpTn|L++HLs#Y;YZBI)AG=rrg1BF5|yF{%xp_ zg-+ipm8_p;lrJn~hA@x7u|8dArt9P0hW{dhIut!~F-wP5X)s@k@!M~|<}lalp(z^H zxt5@1-rBnte@ig5Oe~FNmA+9rVETwHHomMMv?>EjjlXmWx)7iTc7R}0tXfqOqVv1x~@r7YkGwV)wH$LLdzW9hCd zyv2RmJw--FD|3jD{g@7ekrGAe>)I&=G^2#H0q1Q~s|FGkD|Y1zqLHy&-JuD%Q!P9p z4nGu%2RBM5?s(I_^4&pl8PcycRK`v~Oa96dRe5N2GiQH2rz9Ouy}>bB%JHu*wZ-z! z6SIRFD#gXNqU^XJa`=Ac9=Of``?Ma4oeq}e5t1E-k;90eS{aslUPIk`qQy>~iaTDK zre(hn<*;--j!RkxBB?!x60GH_B^?o1c*qw}Cy({OS>uf4_lqf=AmisXjt=nEl9D(cvvf93c)9hl{7yQRDzrzpAr9E&TUr)wja@UjkL_7T9Z! t!Jl{QGHTjiH2vS(UjL5