From d3da3304ee5f4b5b2808a6146c42b38916b3001b Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Wed, 7 May 2025 11:58:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=97=B6=E9=97=B4=E6=88=B3?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=94=9F=E6=88=90=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- timestamp/build.properties | 4 +- .../winboll/studio/timestamp/MainService.java | 16 ++---- .../receivers/ButtonClickReceiver.java | 18 ++---- .../studio/timestamp/utils/TimeStampUtil.java | 57 +++++++++++++++++++ 4 files changed, 67 insertions(+), 28 deletions(-) create mode 100644 timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampUtil.java diff --git a/timestamp/build.properties b/timestamp/build.properties index 5e99834..a2ca8cc 100644 --- a/timestamp/build.properties +++ b/timestamp/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Wed May 07 10:56:24 HKT 2025 +#Wed May 07 03:56:48 GMT 2025 stageCount=10 libraryProject= baseVersion=15.0 publishVersion=15.0.9 -buildCount=0 +buildCount=6 baseBetaVersion=15.0.10 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 e63d2ce..f4b445a 100644 --- a/timestamp/src/main/java/cc/winboll/studio/timestamp/MainService.java +++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/MainService.java @@ -26,10 +26,7 @@ import cc.winboll.studio.timestamp.receivers.ButtonClickReceiver; import cc.winboll.studio.timestamp.utils.AppConfigsUtil; import cc.winboll.studio.timestamp.utils.NotificationHelper; import cc.winboll.studio.timestamp.utils.ServiceUtil; -import java.time.Instant; -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.time.format.DateTimeFormatter; +import cc.winboll.studio.timestamp.utils.TimeStampUtil; public class MainService extends Service { @@ -211,15 +208,10 @@ public class MainService extends Service { switch (message.what) { case MSG_UPDATE_TIMESTAMP: { - long currentMillis = System.currentTimeMillis(); - Instant instant = Instant.ofEpochMilli(currentMillis); - LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); - String szTimeStampFormatString = AppConfigsUtil.getInstance(MainService.this).getAppConfigsModel().getTimeStampFormatString(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern(szTimeStampFormatString); - String formattedDateTime = ldt.format(formatter); - mNotificationHelper.sendForegroundNotification(MainService.this, "时间戳:\n" + formattedDateTime + "\n已拷贝到剪贴板。"); + String szTimeStampShowString = TimeStampUtil.getInstance(MainService.this).getTimeStampShowString(); + mNotificationHelper.sendForegroundNotification(MainService.this, "时间戳:\n" + szTimeStampShowString + "\n已拷贝到剪贴板。"); - LogUtils.d(TAG, "Hello, World! " + formattedDateTime); + LogUtils.d(TAG, "Hello, World! " + szTimeStampShowString); break; } default: diff --git a/timestamp/src/main/java/cc/winboll/studio/timestamp/receivers/ButtonClickReceiver.java b/timestamp/src/main/java/cc/winboll/studio/timestamp/receivers/ButtonClickReceiver.java index 2c56842..30e404b 100644 --- a/timestamp/src/main/java/cc/winboll/studio/timestamp/receivers/ButtonClickReceiver.java +++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/receivers/ButtonClickReceiver.java @@ -11,12 +11,8 @@ import android.content.Intent; import android.widget.Toast; import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.timestamp.MainService; -import cc.winboll.studio.timestamp.utils.AppConfigsUtil; import cc.winboll.studio.timestamp.utils.ClipboardUtil; -import java.time.Instant; -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.time.format.DateTimeFormatter; +import cc.winboll.studio.timestamp.utils.TimeStampUtil; public class ButtonClickReceiver extends BroadcastReceiver { @@ -29,17 +25,11 @@ public class ButtonClickReceiver extends BroadcastReceiver { LogUtils.d(TAG, "onReceive"); if (intent.getAction().equals(BUTTON_COPYTIMESTAMP_ACTION)) { // 在这里编写按钮点击后要执行的代码 - long currentMillis = System.currentTimeMillis(); - Instant instant = Instant.ofEpochMilli(currentMillis); - LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); - String szTimeStampFormatString = AppConfigsUtil.getInstance(context).getAppConfigsModel().getTimeStampCopyFormatString(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern(szTimeStampFormatString); - String formattedDateTime = ldt.format(formatter); - - ClipboardUtil.copyTextToClipboard(context, formattedDateTime); + TimeStampUtil.getInstance(context).genTimeStamp(); + ClipboardUtil.copyTextToClipboard(context, TimeStampUtil.getInstance(context).getTimeStampCopyString()); // 比如显示一个Toast - Toast.makeText(context, "时间戳:\n" + formattedDateTime + "\n已拷贝到剪贴板。", Toast.LENGTH_SHORT).show(); + Toast.makeText(context, "时间戳:\n" + TimeStampUtil.getInstance(context).getTimeStampCopyString() + "\n已拷贝到剪贴板。", Toast.LENGTH_SHORT).show(); MainService.updateCopiedTimeStamp(); } } diff --git a/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampUtil.java b/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampUtil.java new file mode 100644 index 0000000..0511ebb --- /dev/null +++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampUtil.java @@ -0,0 +1,57 @@ +package cc.winboll.studio.timestamp.utils; + +/** + * @Author ZhanGSKen + * @Date 2025/05/07 11:03 + * @Describe TimeStampUtil + */ +import android.content.Context; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; + +public class TimeStampUtil { + + public static final String TAG = "TimeStampUtil"; + + volatile static TimeStampUtil _TimeStampUtil; + + Context mContext; + long mTimeStamp; + + TimeStampUtil(Context context) { + mContext = context; + } + + public synchronized static TimeStampUtil getInstance(Context context) { + if (_TimeStampUtil == null) { + _TimeStampUtil = new TimeStampUtil(context); + } + return _TimeStampUtil; + } + + public void genTimeStamp() { + mTimeStamp = System.currentTimeMillis(); + } + + public String getTimeStampShowString() { + long currentMillis = mTimeStamp; + Instant instant = Instant.ofEpochMilli(currentMillis); + LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); + String szTimeStampFormatString = AppConfigsUtil.getInstance(mContext).getAppConfigsModel().getTimeStampCopyFormatString(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(szTimeStampFormatString); + String formattedDateTime = ldt.format(formatter); + return formattedDateTime; + } + + public String getTimeStampCopyString() { + long currentMillis = mTimeStamp; + Instant instant = Instant.ofEpochMilli(currentMillis); + LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); + String szTimeStampFormatString = AppConfigsUtil.getInstance(mContext).getAppConfigsModel().getTimeStampCopyFormatString(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(szTimeStampFormatString); + String formattedDateTime = ldt.format(formatter); + return formattedDateTime; + } +}