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; + } +}