diff --git a/timestamp/build.properties b/timestamp/build.properties index ef09f39..8e0fe5f 100644 --- a/timestamp/build.properties +++ b/timestamp/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Wed May 07 15:07:02 HKT 2025 -stageCount=2 +#Mon Jul 28 11:36:51 HKT 2025 +stageCount=4 libraryProject= baseVersion=15.1 -publishVersion=15.1.1 +publishVersion=15.1.3 buildCount=0 -baseBetaVersion=15.1.2 +baseBetaVersion=15.1.4 diff --git a/timestamp/src/main/AndroidManifest.xml b/timestamp/src/main/AndroidManifest.xml index fe35364..b1705ab 100644 --- a/timestamp/src/main/AndroidManifest.xml +++ b/timestamp/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:android="http://schemas.android.com/apk/res/android" package="cc.winboll.studio.timestamp"> + + + @@ -45,6 +48,20 @@ + + + + + + + + + + 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 2236bb2..efec018 100644 --- a/timestamp/src/main/java/cc/winboll/studio/timestamp/MainActivity.java +++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/MainActivity.java @@ -5,6 +5,7 @@ import android.view.View; import android.widget.EditText; import android.widget.Switch; import android.widget.TextView; +import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import cc.winboll.studio.libappbase.LogUtils; @@ -12,6 +13,8 @@ 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.ClipboardUtil; +import cc.winboll.studio.timestamp.utils.TimeStampUtil; import com.hjq.toast.ToastUtils; import java.time.Instant; import java.time.LocalDateTime; @@ -97,4 +100,22 @@ public class MainActivity extends AppCompatActivity { } return false; } + + public void onTimeStamp(View view) { + // 在这里编写按钮点击后要执行的代码 + TimeStampUtil.getInstance(this).genTimeStamp(); + String formattedDateTime = TimeStampUtil.getInstance(this).getTimeStampCopyString(); + ClipboardUtil.copyTextToClipboard(this, formattedDateTime); + + // 更新时间戳文本框显示内容 + EditText etTimeStamp = findViewById(R.id.et_timestamp); + etTimeStamp.setText(formattedDateTime); + + // 输出一个提示音 + TimeStampUtil.getInstance(this).playNotifyMusic(this); + + // 比如显示一个 Toast + Toast.makeText(this, "时间戳:\n" + TimeStampUtil.getInstance(this).getTimeStampCopyString() + "\n已拷贝到剪贴板。", Toast.LENGTH_SHORT).show(); + MainService.updateCopiedTimeStamp(); + } } diff --git a/timestamp/src/main/java/cc/winboll/studio/timestamp/receivers/MainReceiver.java b/timestamp/src/main/java/cc/winboll/studio/timestamp/receivers/MainReceiver.java new file mode 100644 index 0000000..05f0811 --- /dev/null +++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/receivers/MainReceiver.java @@ -0,0 +1,40 @@ +package cc.winboll.studio.timestamp.receivers; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import cc.winboll.studio.libappbase.LogUtils; +import cc.winboll.studio.timestamp.MainService; +import cc.winboll.studio.timestamp.models.AppConfigsModel; +import cc.winboll.studio.timestamp.utils.AppConfigsUtil; + +/** + * @Author ZhanGSKen&豆包大模型 + * @Date 2025/07/28 11:15 + * @Describe MainReceiver + */ +public class MainReceiver extends BroadcastReceiver { + + public static final String TAG = "MainReceiver"; + + static final String ACTION_BOOT_COMPLETED = "android.intent.action.BOOT_COMPLETED"; + + AppConfigsUtil mAppConfigsUtil; + + @Override + public void onReceive(Context context, Intent intent) { + String szAction = intent.getAction(); + if (szAction.equals(ACTION_BOOT_COMPLETED)) { + AppConfigsModel appConfigs = AppConfigsUtil.getInstance(context).loadAppConfigs(); + boolean isEnable = appConfigs.isEnableService(); + AppConfigsUtil.getInstance(context).saveAppConfigs(); + + Intent intentMainService = new Intent(context, MainService.class); + if (isEnable) { + context.startService(intentMainService); + } + LogUtils.i(TAG, "System Boot And Start ManagerService Completed!"); + } + } + +} 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 0499ca2..b4a5fb3 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 @@ -130,16 +130,10 @@ public class NotificationHelper { mForegroundNotification.bigContentView = remoteViews; service.startForeground(ID_MSG_SERVICE, mForegroundNotification); - - // 播放默认短信铃声 - Uri defaultSmsRingtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); - AudioPlayerUriUtil.playAudio(service, defaultSmsRingtoneUri); - - // 播放应用铃声 - // 获取MP3文件的Uri - Uri soundUri = Uri.parse("android.resource://" + service.getPackageName() + "/" + R.raw.diweiyi); - AudioPlayerUriUtil.playAudio(service, soundUri); + + TimeStampUtil.getInstance(service).playNotifyMusic(service); } + 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 index 9a3af96..26c273d 100644 --- a/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampUtil.java +++ b/timestamp/src/main/java/cc/winboll/studio/timestamp/utils/TimeStampUtil.java @@ -6,6 +6,8 @@ package cc.winboll.studio.timestamp.utils; * @Describe TimeStampUtil */ import android.content.Context; +import android.net.Uri; +import cc.winboll.studio.timestamp.R; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; @@ -55,4 +57,19 @@ public class TimeStampUtil { String formattedDateTime = ldt.format(formatter); return formattedDateTime; } + + + // + // 播放时间戳确定时的提示音乐 + // + public static void playNotifyMusic(Context context) { + // 播放默认短信铃声 + //Uri defaultSmsRingtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); + //AudioPlayerUriUtil.playAudio(context, defaultSmsRingtoneUri); + + // 播放应用铃声 + // 获取MP3文件的Uri + Uri soundUri = Uri.parse("android.resource://" + context.getPackageName() + "/" + R.raw.diweiyi); + AudioPlayerUriUtil.playAudio(context, soundUri); + } } diff --git a/timestamp/src/main/res/layout/activity_main.xml b/timestamp/src/main/res/layout/activity_main.xml index 225a123..34a11c1 100644 --- a/timestamp/src/main/res/layout/activity_main.xml +++ b/timestamp/src/main/res/layout/activity_main.xml @@ -1,144 +1,180 @@ + android:orientation="vertical" + android:layout_width="wrap_content" + android:layout_height="wrap_content"> - - - - - - - - - - - - - - - - - - - - - - - - -