From 551b424960a4d3d2efa4350092dbe4272fae5d0d Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 6 May 2025 10:48:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=B6=E9=97=B4=E6=88=B3?= =?UTF-8?q?=E6=8B=B7=E8=B4=9D=E4=B8=8E=E6=98=BE=E7=A4=BA=E7=9A=84=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E8=AE=BE=E7=BD=AE=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 +- .../studio/timestamp/MainActivity.java | 53 +++++++++++++++- .../timestamp/models/AppConfigsModel.java | 12 ++++ .../receivers/ButtonClickReceiver.java | 2 +- .../utils/TimeStampRemoteViewsUtil.java | 27 +++++--- .../src/main/res/layout/activity_main.xml | 62 +++++++++++++++++-- 6 files changed, 141 insertions(+), 19 deletions(-) diff --git a/timestamp/build.properties b/timestamp/build.properties index 6a8dc63..e054689 100644 --- a/timestamp/build.properties +++ b/timestamp/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue May 06 02:08:16 GMT 2025 +#Tue May 06 02:45:43 GMT 2025 stageCount=0 libraryProject= baseVersion=15.0 publishVersion=15.0.0 -buildCount=101 +buildCount=108 baseBetaVersion=15.0.1 diff --git a/timestamp/src/main/java/cc/winboll/studio/timestamp/MainActivity.java b/timestamp/src/main/java/cc/winboll/studio/timestamp/MainActivity.java index db19df6..2236bb2 100644 --- a/timestamp/src/main/java/cc/winboll/studio/timestamp/MainActivity.java +++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/MainActivity.java @@ -2,20 +2,30 @@ package cc.winboll.studio.timestamp; import android.os.Bundle; import android.view.View; +import android.widget.EditText; import android.widget.Switch; +import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.LogView; +import cc.winboll.studio.timestamp.MainService; import cc.winboll.studio.timestamp.R; import cc.winboll.studio.timestamp.utils.AppConfigsUtil; -import cc.winboll.studio.timestamp.utils.TimeStampRemoteViewsUtil; import com.hjq.toast.ToastUtils; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; public class MainActivity extends AppCompatActivity { public static final String TAG = "MainActivity"; + EditText metTimeStampFormatString; + TextView mtvTimeStampFormatString; + EditText metTimeStampCopyFormatString; + TextView mtvTimeStampCopyFormatString; LogView mLogView; Switch mswEnableMainService; @@ -27,7 +37,17 @@ public class MainActivity extends AppCompatActivity { Toolbar toolbar=(Toolbar)findViewById(R.id.toolbar); setSupportActionBar(toolbar); - + + metTimeStampFormatString = findViewById(R.id.et_timestampformatstring); + mtvTimeStampFormatString = findViewById(R.id.tv_timestampformatstring); + metTimeStampCopyFormatString = findViewById(R.id.et_timestampcopyformatstring); + mtvTimeStampCopyFormatString = findViewById(R.id.tv_timestampcopyformatstring); + + metTimeStampFormatString.setText(AppConfigsUtil.getInstance(this).getAppConfigsModel().getTimeStampFormatString()); + showPreViewResult(metTimeStampFormatString, mtvTimeStampFormatString); + metTimeStampCopyFormatString.setText(AppConfigsUtil.getInstance(this).getAppConfigsModel().getTimeStampCopyFormatString()); + showPreViewResult(metTimeStampCopyFormatString, mtvTimeStampCopyFormatString); + mswEnableMainService = findViewById(R.id.activitymainSwitch1); mswEnableMainService.setChecked(AppConfigsUtil.getInstance(this).loadAppConfigs().isEnableService()); @@ -46,6 +66,35 @@ public class MainActivity extends AppCompatActivity { public void onSetMainServiceStatus(View view) { MainService.setMainServiceStatus(this, mswEnableMainService.isChecked()); + } + public void onSaveFormatString(View view) { + if(showPreViewResult(metTimeStampFormatString, mtvTimeStampFormatString)) { + AppConfigsUtil.getInstance(this).getAppConfigsModel().setTimeStampFormatString(metTimeStampFormatString.getText().toString()); + AppConfigsUtil.getInstance(this).saveAppConfigs(); + } + } + + public void onSaveCopyFormatString(View view) { + if(showPreViewResult(metTimeStampCopyFormatString, mtvTimeStampCopyFormatString)) { + AppConfigsUtil.getInstance(this).getAppConfigsModel().setTimeStampCopyFormatString(metTimeStampCopyFormatString.getText().toString()); + AppConfigsUtil.getInstance(this).saveAppConfigs(); + } + } + + boolean showPreViewResult(EditText etFormat, TextView tvShow) { + try { + long currentMillis = System.currentTimeMillis(); + Instant instant = Instant.ofEpochMilli(currentMillis); + LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); + String szTimeStampFormatString = etFormat.getText().toString(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(szTimeStampFormatString); + String formattedDateTime = ldt.format(formatter); + tvShow.setText(formattedDateTime); + return true; + } catch (Exception e) { + LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); + } + return false; } } 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 c2e25b1..8b87647 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 @@ -18,11 +18,23 @@ public class AppConfigsModel extends BaseBean { // 是否启动服务 boolean isEnableService; + // 时间戳显示格式 String timeStampFormatString; + // 时间戳拷贝格式 + String timeStampCopyFormatString; public AppConfigsModel() { this.isEnableService = false; this.timeStampFormatString = "yyyy-MM-dd HH:mm:ss"; + this.timeStampCopyFormatString = "yyyy_MM_dd-HH_mm_ss"; + } + + public void setTimeStampCopyFormatString(String timeStampCopyFormatString) { + this.timeStampCopyFormatString = timeStampCopyFormatString; + } + + public String getTimeStampCopyFormatString() { + return timeStampCopyFormatString; } public void setTimeStampFormatString(String timeStampFormatString) { 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 3a673db..5228f0e 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 @@ -15,7 +15,7 @@ public class ButtonClickReceiver extends BroadcastReceiver { public static final String TAG = "ButtonClickReceiver"; - public static final String BUTTON_COPYTIMESTAMP_ACTION = "com.example.BUTTON_CLICK_ACTION"; + public static final String BUTTON_COPYTIMESTAMP_ACTION = "cc.winboll.studio.timestamp.receivers.ButtonClickReceiver.BUTTON_COPYTIMESTAMP_ACTION"; @Override public void onReceive(Context context, Intent intent) { 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 5cce4ac..acb1467 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 @@ -7,16 +7,14 @@ package cc.winboll.studio.timestamp.utils; */ 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 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; +import androidx.core.app.NotificationCompat; +import cc.winboll.studio.timestamp.R; +import cc.winboll.studio.timestamp.receivers.ButtonClickReceiver; public class TimeStampRemoteViewsUtil { @@ -66,12 +64,23 @@ 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 pendingIntent = PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); // 设置通知的点击事件 - mRemoteViews.setOnClickPendingIntent(R.id.btn_copytimestamp, pendingIntent); + //mRemoteViews.setOnClickPendingIntent(R.id.btn_copytimestamp, pendingIntent); + + // 创建点击按钮后要发送的广播 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) diff --git a/timestamp/src/main/res/layout/activity_main.xml b/timestamp/src/main/res/layout/activity_main.xml index dfc8fd7..f7bf52a 100644 --- a/timestamp/src/main/res/layout/activity_main.xml +++ b/timestamp/src/main/res/layout/activity_main.xml @@ -39,9 +39,17 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - + + + @@ -61,8 +69,52 @@