Compare commits
	
		
			5 Commits
		
	
	
		
			appbase-v1
			...
			48623a2805
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					48623a2805 | ||
| 
						 | 
					2739627aff | ||
| 
						 | 
					58e0be9cf4 | ||
| 
						 | 
					8bb80ef575 | ||
| 
						 | 
					c1e6e32809 | 
@@ -1,5 +1,7 @@
 | 
				
			|||||||
## TimpStamp
 | 
					## TimpStamp
 | 
				
			||||||
## 时间戳工具集
 | 
					
 | 
				
			||||||
 | 
					#### 介绍
 | 
				
			||||||
 | 
					时间戳工具集。常驻工具栏快捷拷贝一份时间戳到剪贴板的工具。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 使用要点:
 | 
					## 使用要点:
 | 
				
			||||||
1。常驻通知栏按钮的正常使用,
 | 
					1。常驻通知栏按钮的正常使用,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
#Created by .winboll/winboll_app_build.gradle
 | 
					#Created by .winboll/winboll_app_build.gradle
 | 
				
			||||||
#Wed May 07 15:07:02 HKT 2025
 | 
					#Mon Jul 28 11:36:51 HKT 2025
 | 
				
			||||||
stageCount=2
 | 
					stageCount=4
 | 
				
			||||||
libraryProject=
 | 
					libraryProject=
 | 
				
			||||||
baseVersion=15.1
 | 
					baseVersion=15.1
 | 
				
			||||||
publishVersion=15.1.1
 | 
					publishVersion=15.1.3
 | 
				
			||||||
buildCount=0
 | 
					buildCount=0
 | 
				
			||||||
baseBetaVersion=15.1.2
 | 
					baseBetaVersion=15.1.4
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,9 @@
 | 
				
			|||||||
    xmlns:android="http://schemas.android.com/apk/res/android"
 | 
					    xmlns:android="http://schemas.android.com/apk/res/android"
 | 
				
			||||||
    package="cc.winboll.studio.timestamp">
 | 
					    package="cc.winboll.studio.timestamp">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- 开机启动 -->
 | 
				
			||||||
 | 
					    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <!-- 运行前台服务 -->
 | 
					    <!-- 运行前台服务 -->
 | 
				
			||||||
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
 | 
					    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -45,6 +48,20 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        <service android:name=".AssistantService"/>
 | 
					        <service android:name=".AssistantService"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <receiver
 | 
				
			||||||
 | 
					            android:name=".receivers.MainReceiver"
 | 
				
			||||||
 | 
					            android:enabled="true"
 | 
				
			||||||
 | 
					            android:exported="false"
 | 
				
			||||||
 | 
					            android:directBootAware="true">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <intent-filter>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                <action android:name="android.intent.action.BOOT_COMPLETED"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            </intent-filter>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        </receiver>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    </application>
 | 
					    </application>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</manifest>
 | 
					</manifest>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,6 +5,7 @@ import android.view.View;
 | 
				
			|||||||
import android.widget.EditText;
 | 
					import android.widget.EditText;
 | 
				
			||||||
import android.widget.Switch;
 | 
					import android.widget.Switch;
 | 
				
			||||||
import android.widget.TextView;
 | 
					import android.widget.TextView;
 | 
				
			||||||
 | 
					import android.widget.Toast;
 | 
				
			||||||
import androidx.appcompat.app.AppCompatActivity;
 | 
					import androidx.appcompat.app.AppCompatActivity;
 | 
				
			||||||
import androidx.appcompat.widget.Toolbar;
 | 
					import androidx.appcompat.widget.Toolbar;
 | 
				
			||||||
import cc.winboll.studio.libappbase.LogUtils;
 | 
					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.MainService;
 | 
				
			||||||
import cc.winboll.studio.timestamp.R;
 | 
					import cc.winboll.studio.timestamp.R;
 | 
				
			||||||
import cc.winboll.studio.timestamp.utils.AppConfigsUtil;
 | 
					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 com.hjq.toast.ToastUtils;
 | 
				
			||||||
import java.time.Instant;
 | 
					import java.time.Instant;
 | 
				
			||||||
import java.time.LocalDateTime;
 | 
					import java.time.LocalDateTime;
 | 
				
			||||||
@@ -97,4 +100,22 @@ public class MainActivity extends AppCompatActivity {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        return false;
 | 
					        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();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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&豆包大模型<zhangsken@188.com>
 | 
				
			||||||
 | 
					 * @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!");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -130,16 +130,10 @@ public class NotificationHelper {
 | 
				
			|||||||
        mForegroundNotification.bigContentView = remoteViews;
 | 
					        mForegroundNotification.bigContentView = remoteViews;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        service.startForeground(ID_MSG_SERVICE, mForegroundNotification);
 | 
					        service.startForeground(ID_MSG_SERVICE, mForegroundNotification);
 | 
				
			||||||
 | 
							
 | 
				
			||||||
        // 播放默认短信铃声
 | 
							TimeStampUtil.getInstance(service).playNotifyMusic(service);
 | 
				
			||||||
        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);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
						
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,8 @@ package cc.winboll.studio.timestamp.utils;
 | 
				
			|||||||
 * @Describe TimeStampUtil
 | 
					 * @Describe TimeStampUtil
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
import android.content.Context;
 | 
					import android.content.Context;
 | 
				
			||||||
 | 
					import android.net.Uri;
 | 
				
			||||||
 | 
					import cc.winboll.studio.timestamp.R;
 | 
				
			||||||
import java.time.Instant;
 | 
					import java.time.Instant;
 | 
				
			||||||
import java.time.LocalDateTime;
 | 
					import java.time.LocalDateTime;
 | 
				
			||||||
import java.time.ZoneId;
 | 
					import java.time.ZoneId;
 | 
				
			||||||
@@ -55,4 +57,19 @@ public class TimeStampUtil {
 | 
				
			|||||||
        String formattedDateTime = ldt.format(formatter);
 | 
					        String formattedDateTime = ldt.format(formatter);
 | 
				
			||||||
        return formattedDateTime;
 | 
					        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);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,144 +1,180 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="utf-8"?>
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
<LinearLayout
 | 
					<LinearLayout
 | 
				
			||||||
	xmlns:android="http://schemas.android.com/apk/res/android"
 | 
						xmlns:android="http://schemas.android.com/apk/res/android"
 | 
				
			||||||
	xmlns:app="http://schemas.android.com/apk/res-auto"
 | 
						android:orientation="vertical"
 | 
				
			||||||
	android:layout_width="match_parent"
 | 
						android:layout_width="wrap_content"
 | 
				
			||||||
	android:layout_height="match_parent"
 | 
						android:layout_height="wrap_content">
 | 
				
			||||||
	android:orientation="vertical">
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<com.google.android.material.appbar.AppBarLayout
 | 
						<ScrollView
 | 
				
			||||||
		android:layout_width="match_parent"
 | 
					 | 
				
			||||||
		android:layout_height="wrap_content"
 | 
					 | 
				
			||||||
		android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		<androidx.appcompat.widget.Toolbar
 | 
					 | 
				
			||||||
			android:id="@+id/toolbar"
 | 
					 | 
				
			||||||
			android:layout_width="match_parent"
 | 
					 | 
				
			||||||
			android:layout_height="?attr/actionBarSize"
 | 
					 | 
				
			||||||
			app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	</com.google.android.material.appbar.AppBarLayout>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<LinearLayout
 | 
					 | 
				
			||||||
		android:orientation="horizontal"
 | 
					 | 
				
			||||||
		android:layout_width="match_parent"
 | 
					 | 
				
			||||||
		android:layout_height="wrap_content"
 | 
					 | 
				
			||||||
		android:padding="10dp">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		<Switch
 | 
					 | 
				
			||||||
			android:layout_width="match_parent"
 | 
					 | 
				
			||||||
			android:layout_height="wrap_content"
 | 
					 | 
				
			||||||
			android:text="启用时间戳常驻通知栏"
 | 
					 | 
				
			||||||
			android:id="@+id/activitymainSwitch1"
 | 
					 | 
				
			||||||
			android:onClick="onSetMainServiceStatus"/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	</LinearLayout>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<LinearLayout
 | 
					 | 
				
			||||||
		android:orientation="vertical"
 | 
					 | 
				
			||||||
		android:layout_width="match_parent"
 | 
					 | 
				
			||||||
		android:layout_height="wrap_content">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		<TextView
 | 
					 | 
				
			||||||
			android:layout_width="wrap_content"
 | 
					 | 
				
			||||||
			android:layout_height="wrap_content"
 | 
					 | 
				
			||||||
			android:text="Show Format Preview:"
 | 
					 | 
				
			||||||
			android:paddingRight="10dp"/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		<TextView
 | 
					 | 
				
			||||||
			android:layout_width="wrap_content"
 | 
					 | 
				
			||||||
			android:layout_height="wrap_content"
 | 
					 | 
				
			||||||
			android:text="Text"
 | 
					 | 
				
			||||||
			android:id="@+id/tv_timestampformatstring"/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	</LinearLayout>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<LinearLayout
 | 
					 | 
				
			||||||
		android:orientation="horizontal"
 | 
					 | 
				
			||||||
		android:layout_width="match_parent"
 | 
					 | 
				
			||||||
		android:layout_height="wrap_content"
 | 
					 | 
				
			||||||
		android:padding="10dp">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		<EditText
 | 
					 | 
				
			||||||
			android:layout_width="0dp"
 | 
					 | 
				
			||||||
			android:ems="10"
 | 
					 | 
				
			||||||
			android:layout_height="wrap_content"
 | 
					 | 
				
			||||||
			android:id="@+id/et_timestampformatstring"
 | 
					 | 
				
			||||||
			android:layout_weight="1.0"/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		<Button
 | 
					 | 
				
			||||||
			android:layout_width="wrap_content"
 | 
					 | 
				
			||||||
			android:layout_height="wrap_content"
 | 
					 | 
				
			||||||
			android:text="ApplyShow"
 | 
					 | 
				
			||||||
			android:id="@+id/btn_saveformatstring"
 | 
					 | 
				
			||||||
			android:textAllCaps="false"
 | 
					 | 
				
			||||||
			android:onClick="onSaveFormatString"/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	</LinearLayout>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<LinearLayout
 | 
					 | 
				
			||||||
		android:orientation="vertical"
 | 
					 | 
				
			||||||
		android:layout_width="match_parent"
 | 
					 | 
				
			||||||
		android:layout_height="wrap_content">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		<TextView
 | 
					 | 
				
			||||||
			android:layout_width="wrap_content"
 | 
					 | 
				
			||||||
			android:layout_height="wrap_content"
 | 
					 | 
				
			||||||
			android:text="Copy Format Preview:"
 | 
					 | 
				
			||||||
			android:paddingRight="10dp"/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		<TextView
 | 
					 | 
				
			||||||
			android:layout_width="wrap_content"
 | 
					 | 
				
			||||||
			android:layout_height="wrap_content"
 | 
					 | 
				
			||||||
			android:text="Text"
 | 
					 | 
				
			||||||
			android:id="@+id/tv_timestampcopyformatstring"/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	</LinearLayout>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<LinearLayout
 | 
					 | 
				
			||||||
		android:orientation="horizontal"
 | 
					 | 
				
			||||||
		android:layout_width="match_parent"
 | 
					 | 
				
			||||||
		android:layout_height="wrap_content"
 | 
					 | 
				
			||||||
		android:padding="10dp">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		<EditText
 | 
					 | 
				
			||||||
			android:layout_width="0dp"
 | 
					 | 
				
			||||||
			android:ems="10"
 | 
					 | 
				
			||||||
			android:layout_height="wrap_content"
 | 
					 | 
				
			||||||
			android:id="@+id/et_timestampcopyformatstring"
 | 
					 | 
				
			||||||
			android:layout_weight="1.0"/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		<Button
 | 
					 | 
				
			||||||
			android:layout_width="wrap_content"
 | 
					 | 
				
			||||||
			android:layout_height="wrap_content"
 | 
					 | 
				
			||||||
			android:text="ApplyCopy"
 | 
					 | 
				
			||||||
			android:id="@+id/btn_savecopyformatstring"
 | 
					 | 
				
			||||||
			android:textAllCaps="false"
 | 
					 | 
				
			||||||
			android:onClick="onSaveCopyFormatString"/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	</LinearLayout>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<LinearLayout
 | 
					 | 
				
			||||||
		android:orientation="vertical"
 | 
					 | 
				
			||||||
		android:layout_width="match_parent"
 | 
					 | 
				
			||||||
		android:layout_height="0dp"
 | 
					 | 
				
			||||||
		android:layout_weight="1.0"
 | 
					 | 
				
			||||||
		android:gravity="center_vertical|center_horizontal">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	</LinearLayout>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<LinearLayout
 | 
					 | 
				
			||||||
		android:orientation="vertical"
 | 
					 | 
				
			||||||
		android:layout_width="match_parent"
 | 
							android:layout_width="match_parent"
 | 
				
			||||||
		android:layout_height="0dp"
 | 
							android:layout_height="0dp"
 | 
				
			||||||
		android:layout_weight="1.0">
 | 
							android:layout_weight="1.0">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<cc.winboll.studio.libappbase.LogView
 | 
							<LinearLayout
 | 
				
			||||||
 | 
								xmlns:app="http://schemas.android.com/apk/res-auto"
 | 
				
			||||||
			android:layout_width="match_parent"
 | 
								android:layout_width="match_parent"
 | 
				
			||||||
			android:layout_height="match_parent"
 | 
								android:layout_height="match_parent"
 | 
				
			||||||
			android:id="@+id/logview"/>
 | 
								android:orientation="vertical">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	</LinearLayout>
 | 
								<com.google.android.material.appbar.AppBarLayout
 | 
				
			||||||
 | 
									android:layout_width="match_parent"
 | 
				
			||||||
 | 
									android:layout_height="wrap_content"
 | 
				
			||||||
 | 
									android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<androidx.appcompat.widget.Toolbar
 | 
				
			||||||
 | 
										android:id="@+id/toolbar"
 | 
				
			||||||
 | 
										android:layout_width="match_parent"
 | 
				
			||||||
 | 
										android:layout_height="?attr/actionBarSize"
 | 
				
			||||||
 | 
										app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								</com.google.android.material.appbar.AppBarLayout>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								<LinearLayout
 | 
				
			||||||
 | 
									android:orientation="horizontal"
 | 
				
			||||||
 | 
									android:layout_width="match_parent"
 | 
				
			||||||
 | 
									android:layout_height="wrap_content"
 | 
				
			||||||
 | 
									android:padding="10dp">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<Switch
 | 
				
			||||||
 | 
										android:layout_width="match_parent"
 | 
				
			||||||
 | 
										android:layout_height="wrap_content"
 | 
				
			||||||
 | 
										android:text="启用时间戳常驻通知栏"
 | 
				
			||||||
 | 
										android:id="@+id/activitymainSwitch1"
 | 
				
			||||||
 | 
										android:onClick="onSetMainServiceStatus"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								</LinearLayout>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								<LinearLayout
 | 
				
			||||||
 | 
									android:orientation="vertical"
 | 
				
			||||||
 | 
									android:layout_width="match_parent"
 | 
				
			||||||
 | 
									android:layout_height="wrap_content">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<TextView
 | 
				
			||||||
 | 
										android:layout_width="wrap_content"
 | 
				
			||||||
 | 
										android:layout_height="wrap_content"
 | 
				
			||||||
 | 
										android:text="Show Format Preview:"
 | 
				
			||||||
 | 
										android:paddingRight="10dp"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<TextView
 | 
				
			||||||
 | 
										android:layout_width="wrap_content"
 | 
				
			||||||
 | 
										android:layout_height="wrap_content"
 | 
				
			||||||
 | 
										android:text="Text"
 | 
				
			||||||
 | 
										android:id="@+id/tv_timestampformatstring"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								</LinearLayout>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								<LinearLayout
 | 
				
			||||||
 | 
									android:orientation="horizontal"
 | 
				
			||||||
 | 
									android:layout_width="match_parent"
 | 
				
			||||||
 | 
									android:layout_height="wrap_content"
 | 
				
			||||||
 | 
									android:padding="10dp">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<EditText
 | 
				
			||||||
 | 
										android:layout_width="0dp"
 | 
				
			||||||
 | 
										android:ems="10"
 | 
				
			||||||
 | 
										android:layout_height="wrap_content"
 | 
				
			||||||
 | 
										android:id="@+id/et_timestampformatstring"
 | 
				
			||||||
 | 
										android:layout_weight="1.0"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<Button
 | 
				
			||||||
 | 
										android:layout_width="wrap_content"
 | 
				
			||||||
 | 
										android:layout_height="wrap_content"
 | 
				
			||||||
 | 
										android:text="ApplyShow"
 | 
				
			||||||
 | 
										android:id="@+id/btn_saveformatstring"
 | 
				
			||||||
 | 
										android:textAllCaps="false"
 | 
				
			||||||
 | 
										android:onClick="onSaveFormatString"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								</LinearLayout>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								<LinearLayout
 | 
				
			||||||
 | 
									android:orientation="vertical"
 | 
				
			||||||
 | 
									android:layout_width="match_parent"
 | 
				
			||||||
 | 
									android:layout_height="wrap_content">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<TextView
 | 
				
			||||||
 | 
										android:layout_width="wrap_content"
 | 
				
			||||||
 | 
										android:layout_height="wrap_content"
 | 
				
			||||||
 | 
										android:text="Copy Format Preview:"
 | 
				
			||||||
 | 
										android:paddingRight="10dp"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<TextView
 | 
				
			||||||
 | 
										android:layout_width="wrap_content"
 | 
				
			||||||
 | 
										android:layout_height="wrap_content"
 | 
				
			||||||
 | 
										android:text="Text"
 | 
				
			||||||
 | 
										android:id="@+id/tv_timestampcopyformatstring"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								</LinearLayout>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								<LinearLayout
 | 
				
			||||||
 | 
									android:orientation="horizontal"
 | 
				
			||||||
 | 
									android:layout_width="match_parent"
 | 
				
			||||||
 | 
									android:layout_height="wrap_content"
 | 
				
			||||||
 | 
									android:padding="10dp">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<EditText
 | 
				
			||||||
 | 
										android:layout_width="0dp"
 | 
				
			||||||
 | 
										android:ems="10"
 | 
				
			||||||
 | 
										android:layout_height="wrap_content"
 | 
				
			||||||
 | 
										android:id="@+id/et_timestampcopyformatstring"
 | 
				
			||||||
 | 
										android:layout_weight="1.0"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<Button
 | 
				
			||||||
 | 
										android:layout_width="wrap_content"
 | 
				
			||||||
 | 
										android:layout_height="wrap_content"
 | 
				
			||||||
 | 
										android:text="ApplyCopy"
 | 
				
			||||||
 | 
										android:id="@+id/btn_savecopyformatstring"
 | 
				
			||||||
 | 
										android:textAllCaps="false"
 | 
				
			||||||
 | 
										android:onClick="onSaveCopyFormatString"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								</LinearLayout>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								<LinearLayout
 | 
				
			||||||
 | 
									android:orientation="horizontal"
 | 
				
			||||||
 | 
									android:layout_width="match_parent"
 | 
				
			||||||
 | 
									android:layout_height="wrap_content">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<TextView
 | 
				
			||||||
 | 
										android:layout_width="wrap_content"
 | 
				
			||||||
 | 
										android:layout_height="wrap_content"
 | 
				
			||||||
 | 
										android:text="当前截取的时间戳为:"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								</LinearLayout>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								<LinearLayout
 | 
				
			||||||
 | 
									android:orientation="vertical"
 | 
				
			||||||
 | 
									android:layout_width="match_parent"
 | 
				
			||||||
 | 
									android:layout_height="wrap_content"
 | 
				
			||||||
 | 
									android:gravity="center_vertical|center_horizontal">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<ImageButton
 | 
				
			||||||
 | 
										android:layout_width="100dp"
 | 
				
			||||||
 | 
										android:layout_height="100dp"
 | 
				
			||||||
 | 
										android:onClick="onTimeStamp"
 | 
				
			||||||
 | 
										android:background="@drawable/ic_timestamp"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								</LinearLayout>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								<LinearLayout
 | 
				
			||||||
 | 
									android:orientation="horizontal"
 | 
				
			||||||
 | 
									android:layout_width="match_parent"
 | 
				
			||||||
 | 
									android:layout_height="wrap_content">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									<EditText
 | 
				
			||||||
 | 
										android:layout_width="match_parent"
 | 
				
			||||||
 | 
										android:ems="10"
 | 
				
			||||||
 | 
										android:layout_height="wrap_content"
 | 
				
			||||||
 | 
										android:id="@+id/et_timestamp"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								</LinearLayout>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							</LinearLayout>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						</ScrollView>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						<cc.winboll.studio.libappbase.LogView
 | 
				
			||||||
 | 
							android:layout_width="match_parent"
 | 
				
			||||||
 | 
							android:layout_height="200dp"
 | 
				
			||||||
 | 
							android:id="@+id/logview"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</LinearLayout>
 | 
					</LinearLayout>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user