From 1062c7d2eebaacb9ca85810ab9cf8483d6d2ac71 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 6 May 2025 10:09:34 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E5=B8=B8=E9=A9=BB=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- timestamp/build.properties | 4 +- .../winboll/studio/timestamp/MainService.java | 19 ++++++-- .../utils/TimeStampRemoteViewsUtil.java | 46 ++++++++++--------- .../studio/timestamp/views/TimeStampView.java | 9 +--- .../res/layout/custom_notification_layout.xml | 35 +++++++++----- 5 files changed, 66 insertions(+), 47 deletions(-) diff --git a/timestamp/build.properties b/timestamp/build.properties index 4310dbb..6a8dc63 100644 --- a/timestamp/build.properties +++ b/timestamp/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Mon May 05 13:36:35 GMT 2025 +#Tue May 06 02:08:16 GMT 2025 stageCount=0 libraryProject= baseVersion=15.0 publishVersion=15.0.0 -buildCount=91 +buildCount=101 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 37b8afe..b6862c3 100644 --- a/timestamp/src/main/java/cc/winboll/studio/timestamp/MainService.java +++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/MainService.java @@ -26,6 +26,10 @@ import cc.winboll.studio.timestamp.utils.AppConfigsUtil; import cc.winboll.studio.timestamp.utils.NotificationHelper; import cc.winboll.studio.timestamp.utils.ServiceUtil; import cc.winboll.studio.timestamp.utils.TimeStampRemoteViewsUtil; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.Timer; import java.util.TimerTask; @@ -106,8 +110,8 @@ public class MainService extends Service { mMyHandler.sendEmptyMessage(MSG_UPDATE_TIMESTAMP); } }; - // 延迟2秒后开始执行,之后每隔2000毫秒执行一次 - mTimer.schedule(task, 2000, 2000); + // 延迟1秒后开始执行,之后每隔100毫秒执行一次 + mTimer.schedule(task, 1000, 100); @@ -203,8 +207,15 @@ public class MainService extends Service { switch (message.what) { case MSG_UPDATE_TIMESTAMP: { - TimeStampRemoteViewsUtil.getInstance(MainService.this).showNotification("Hello, World"); - LogUtils.d(TAG, "Hello, World"); + 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); + TimeStampRemoteViewsUtil.getInstance(MainService.this).showNotification(formattedDateTime); + + //LogUtils.d(TAG, "Hello, World"); break; } default: 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 c73b4a5..5cce4ac 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,8 @@ import android.widget.RemoteViews; import androidx.core.app.NotificationCompat; import cc.winboll.studio.timestamp.MainActivity; import cc.winboll.studio.timestamp.R; +import cc.winboll.studio.timestamp.views.TimeStampView; +import android.widget.TextView; public class TimeStampRemoteViewsUtil { @@ -25,6 +27,7 @@ public class TimeStampRemoteViewsUtil { static volatile TimeStampRemoteViewsUtil _TimeStampRemoteViewsUtil; Context mContext; RemoteViews mRemoteViews; + TextView mtvMessage; TimeStampRemoteViewsUtil(Context context) { mContext = context; @@ -54,28 +57,29 @@ public class TimeStampRemoteViewsUtil { if (mRemoteViews == null) { // 创建 RemoteViews 对象,加载布局 mRemoteViews = new RemoteViews(mContext.getPackageName(), R.layout.custom_notification_layout); - // 自定义 TextView 的文本颜色 - mRemoteViews.setTextColor(R.id.custom_text_view, mContext.getResources().getColor(R.color.colorAccent, null)); - // 这里虽然不能直接设置字体大小,但可以通过反射等方式尝试(不推荐,且有兼容性问题) - - // 创建点击通知后的意图 - Intent intent = new Intent(mContext, MainActivity.class); - PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); - - // 设置通知的点击事件 - mRemoteViews.setOnClickPendingIntent(R.id.custom_text_view, pendingIntent); - - // 构建通知 - NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext, CHANNEL_ID) - .setSmallIcon(android.R.drawable.ic_dialog_info) - .setContent(mRemoteViews) - .setAutoCancel(true); - - // 显示通知 - NotificationManager notificationManager = mContext.getSystemService(NotificationManager.class); - notificationManager.notify(1, builder.build()); + } // 自定义 TextView 的文本 - mRemoteViews.setTextViewText(R.id.custom_text_view, msg); + 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 pendingIntent = PendingIntent.getActivity(mContext, 0, intent, 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) + .setAutoCancel(true); + + // 显示通知 + NotificationManager notificationManager = mContext.getSystemService(NotificationManager.class); + notificationManager.notify(1, builder.build()); } } diff --git a/timestamp/src/main/java/cc/winboll/studio/timestamp/views/TimeStampView.java b/timestamp/src/main/java/cc/winboll/studio/timestamp/views/TimeStampView.java index 4031c1e..7f22f55 100644 --- a/timestamp/src/main/java/cc/winboll/studio/timestamp/views/TimeStampView.java +++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/views/TimeStampView.java @@ -87,14 +87,7 @@ public class TimeStampView extends View { // public void updateTimeStamp() { // try { -// long currentMillis = System.currentTimeMillis(); -// Instant instant = Instant.ofEpochMilli(currentMillis); -// LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); -// String szTimeStampFormatString = AppConfigsUtil.getInstance(this.mContext).getAppConfigsModel().getTimeStampFormatString(); -// DateTimeFormatter formatter = DateTimeFormatter.ofPattern(szTimeStampFormatString); -// String formattedDateTime = ldt.format(formatter); -// //System.out.println(formattedDateTime); -// mtvTimeStamp.setText(formattedDateTime); +// // } catch (Exception e) { // LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); // ToastUtils.show(e); diff --git a/timestamp/src/main/res/layout/custom_notification_layout.xml b/timestamp/src/main/res/layout/custom_notification_layout.xml index 3aa3d7d..32a37c4 100644 --- a/timestamp/src/main/res/layout/custom_notification_layout.xml +++ b/timestamp/src/main/res/layout/custom_notification_layout.xml @@ -1,15 +1,26 @@ - + + - + + +