hxMac 1 месяц назад
Родитель
Сommit
d806b095c4
17 измененных файлов с 203 добавлено и 57 удалено
  1. 8 0
      UtilsApplication/app/.idea/deploymentTargetSelector.xml
  2. 1 1
      UtilsApplication/app/.idea/kotlinc.xml
  3. 0 1
      UtilsApplication/app/app/src/main/java/com/hx/utils/application/base/BaseAdapter.java
  4. 3 1
      UtilsApplication/app/app/src/main/java/com/hx/utils/application/ui/dashboard/DashboardViewModel.kt
  5. 9 0
      UtilsApplication/app/app/src/main/java/com/hx/utils/application/ui/home/HomeFragment.kt
  6. 4 2
      UtilsApplication/app/app/src/main/java/com/hx/utils/application/ui/home/HomeViewModel.kt
  7. 3 2
      UtilsApplication/app/app/src/main/java/com/hx/utils/application/ui/sms/SmsFragment.kt
  8. 12 6
      UtilsApplication/app/app/src/main/java/com/hx/utils/application/ui/web/WebFragment.kt
  9. 9 7
      UtilsApplication/app/app/src/main/java/com/hx/utils/application/ui/web/WebViewModel.kt
  10. 1 6
      UtilsApplication/app/app/src/main/java/com/hx/utils/application/util/TgUtils.java
  11. 44 0
      UtilsApplication/app/app/src/main/java/com/hx/utils/application/view/ModalBottomSheet.kt
  12. 7 0
      UtilsApplication/app/app/src/main/res/drawable/twotone_language_24.xml
  13. 41 0
      UtilsApplication/app/app/src/main/res/layout/fragment_bottom_sheet.xml
  14. 0 22
      UtilsApplication/app/app/src/main/res/layout/fragment_notifications.xml
  15. 8 8
      UtilsApplication/app/app/src/main/res/layout/fragment_sms.xml
  16. 31 0
      UtilsApplication/app/app/src/main/res/values-zh-rCN/strings.xml
  17. 22 1
      UtilsApplication/app/app/src/main/res/values/strings.xml

+ 8 - 0
UtilsApplication/app/.idea/deploymentTargetSelector.xml

@@ -4,6 +4,14 @@
     <selectionStates>
       <SelectionState runConfigName="app">
         <option name="selectionMode" value="DROPDOWN" />
+        <DropdownSelection timestamp="2024-12-06T04:17:59.398037Z">
+          <Target type="DEFAULT_BOOT">
+            <handle>
+              <DeviceId pluginId="PhysicalDevice" identifier="serial=RR8M50X3KCY" />
+            </handle>
+          </Target>
+        </DropdownSelection>
+        <DialogSelection />
       </SelectionState>
     </selectionStates>
   </component>

+ 1 - 1
UtilsApplication/app/.idea/kotlinc.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="KotlinJpsPluginSettings">
-    <option name="version" value="1.9.0" />
+    <option name="version" value="1.9.24" />
   </component>
 </project>

+ 0 - 1
UtilsApplication/app/app/src/main/java/com/hx/utils/application/base/BaseAdapter.java

@@ -40,7 +40,6 @@ public abstract class BaseAdapter<D, T extends ViewBinding> extends RecyclerView
     @NonNull
     @Override
     public BindViewHolder<T> onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
-
         binding = onCreateView(parent);
         BindViewHolder<T> bindViewHolder = new BindViewHolder<>(binding);
         binding.getRoot().setOnClickListener(view -> {

+ 3 - 1
UtilsApplication/app/app/src/main/java/com/hx/utils/application/ui/dashboard/DashboardViewModel.kt

@@ -3,11 +3,13 @@ package com.hx.utils.application.ui.dashboard
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
+import com.blankj.utilcode.util.StringUtils
+import com.hx.utils.application.R
 
 class DashboardViewModel : ViewModel() {
 
     private val _text = MutableLiveData<String>().apply {
-        value = "Empty"
+        value = StringUtils.getString(R.string.empty)
     }
     val text: LiveData<String> = _text
 }

+ 9 - 0
UtilsApplication/app/app/src/main/java/com/hx/utils/application/ui/home/HomeFragment.kt

@@ -12,6 +12,7 @@ import com.hx.utils.application.base.BaseAdapter
 import com.hx.utils.application.base.BaseFragment
 import com.hx.utils.application.databinding.FragmentHomeBinding
 import com.hx.utils.application.databinding.ItemMenuBinding
+import com.hx.utils.application.view.ModalBottomSheet
 
 class HomeFragment : BaseFragment<FragmentHomeBinding, HomeViewModel>() {
     private var fyOrderAdapter: BaseAdapter<String, ItemMenuBinding>? = null
@@ -71,6 +72,14 @@ class HomeFragment : BaseFragment<FragmentHomeBinding, HomeViewModel>() {
                             ).navigate(R.id.navigation_sms, bundle)
                         }
 
+                        2 -> {
+                            val bottomSheetFragment = ModalBottomSheet()
+                            bottomSheetFragment.show(
+                                requireActivity().supportFragmentManager,
+                                bottomSheetFragment.tag
+                            )
+                        }
+
                         else -> {
                             ToastUtils.showLong(item)
                         }

+ 4 - 2
UtilsApplication/app/app/src/main/java/com/hx/utils/application/ui/home/HomeViewModel.kt

@@ -11,7 +11,8 @@ class HomeViewModel : ViewModel() {
         value = mutableListOf(
             StringUtils.getString(R.string.webview_test),
             StringUtils.getString(R.string.sms_tool),
-            "wait..."
+            StringUtils.getString(R.string.language),
+            StringUtils.getString(R.string.wait)
         )
     }
     val items: LiveData<MutableList<String>> = _items
@@ -20,7 +21,8 @@ class HomeViewModel : ViewModel() {
         value = mutableListOf(
             R.drawable.twotone_connected_tv_24,
             R.drawable.twotone_email_24,
-            R.drawable.twotone_watch_later_24
+            R.drawable.twotone_language_24,
+            R.drawable.twotone_watch_later_24,
         )
     }
     val itemsImg: LiveData<MutableList<Int>> = _itemsImg

+ 3 - 2
UtilsApplication/app/app/src/main/java/com/hx/utils/application/ui/sms/SmsFragment.kt

@@ -19,6 +19,7 @@ import com.blankj.utilcode.util.AppUtils
 import com.blankj.utilcode.util.PermissionUtils
 import com.blankj.utilcode.util.TimeUtils
 import com.blankj.utilcode.util.ToastUtils
+import com.hx.utils.application.R
 import com.hx.utils.application.base.BaseFragment
 import com.hx.utils.application.databinding.FragmentSmsBinding
 import kotlinx.coroutines.DelicateCoroutinesApi
@@ -61,12 +62,12 @@ class SmsFragment : BaseFragment<FragmentSmsBinding, SmsViewModel>() {
             val name = binding.name.text?.toString().orEmpty()
             val message = binding.message.text?.toString().orEmpty()
             if (name.isBlank()) {
-                binding.name.error = "Not empty!"
+                binding.name.error = getString(R.string.not_empty)
                 return@setOnClickListener
             }
 
             if (message.isBlank()) {
-                binding.message.error = "Not empty!"
+                binding.message.error = getString(R.string.not_empty)
                 return@setOnClickListener
             }
 

+ 12 - 6
UtilsApplication/app/app/src/main/java/com/hx/utils/application/ui/web/WebFragment.kt

@@ -8,6 +8,7 @@ import androidx.appcompat.app.AlertDialog
 import androidx.appcompat.app.AppCompatActivity
 import androidx.lifecycle.ViewModelProvider
 import com.hx.utils.application.BuildConfig
+import com.hx.utils.application.R
 import com.hx.utils.application.base.BaseFragment
 import com.hx.utils.application.base.BaseWebView
 import com.hx.utils.application.databinding.FragmentWebBinding
@@ -56,15 +57,20 @@ class WebFragment : BaseFragment<FragmentWebBinding, WebViewModel>() {
 
     private fun successTip() {
         val dialog = AlertDialog.Builder(requireActivity())
-            .setTitle("WebTestBot Message")
+            .setTitle(getString(R.string.webtestbot_message))
             .setMessage(
-                "URL: ${viewModel.urlFormState.value!!.url}\nName: ${viewModel.urlFormState.value!!.username}\nFirst Name: ${viewModel.urlFormState.value!!.firstName}"
+                getString(
+                    R.string.url_name_first_name,
+                    viewModel.urlFormState.value!!.url,
+                    viewModel.urlFormState.value!!.username,
+                    viewModel.urlFormState.value!!.firstName
+                )
             )
-            .setPositiveButton("Go") { dialogInterface, _ ->
+            .setPositiveButton(getString(R.string.go)) { dialogInterface, _ ->
                 webView?.loadUrl(viewModel.urlFormState.value!!.url)
                 dialogInterface.dismiss()
             }
-            .setNegativeButton("Cancel") { dialogInterface, _ ->
+            .setNegativeButton(getString(R.string.cancel)) { dialogInterface, _ ->
                 dialogInterface.dismiss()
             }
             .create()
@@ -73,11 +79,11 @@ class WebFragment : BaseFragment<FragmentWebBinding, WebViewModel>() {
 
     private fun errorTip() {
         val dialog = AlertDialog.Builder(requireActivity())
-            .setTitle("Error Info")
+            .setTitle(getString(R.string.error_info))
             .setMessage(
                 viewModel.urlFormState.value!!.error
             )
-            .setPositiveButton("Ok") { dialogInterface, _ ->
+            .setPositiveButton(getString(R.string.ok)) { dialogInterface, _ ->
                 webView?.loadUrl(viewModel.urlFormState.value!!.url)
                 dialogInterface.dismiss()
             }

+ 9 - 7
UtilsApplication/app/app/src/main/java/com/hx/utils/application/ui/web/WebViewModel.kt

@@ -3,6 +3,8 @@ package com.hx.utils.application.ui.web
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
+import com.blankj.utilcode.util.StringUtils
+import com.hx.utils.application.R
 import com.hx.utils.application.util.TgUtils
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.GlobalScope
@@ -35,9 +37,9 @@ class WebViewModel : ViewModel() {
                 e.message?.let {
                     _urlForm.postValue(
                         UrlFormState(
-                            username = "Error",
-                            firstName = "Error",
-                            url = "Error",
+                            username = StringUtils.getString(R.string.error),
+                            firstName = StringUtils.getString(R.string.error),
+                            url = StringUtils.getString(R.string.error),
                             success = false,
                             error = it
                         )
@@ -45,11 +47,11 @@ class WebViewModel : ViewModel() {
                 } ?: run {
                     _urlForm.postValue(
                         UrlFormState(
-                            username = "Error",
-                            firstName = "Error",
-                            url = "Error",
+                            username = StringUtils.getString(R.string.error),
+                            firstName = StringUtils.getString(R.string.error),
+                            url = StringUtils.getString(R.string.error),
                             success = false,
-                            error = "Error"
+                            error = StringUtils.getString(R.string.error)
                         )
                     )
                 }

+ 1 - 6
UtilsApplication/app/app/src/main/java/com/hx/utils/application/util/TgUtils.java

@@ -1,7 +1,5 @@
 package com.hx.utils.application.util;
 
-import android.util.Log;
-
 import org.json.JSONArray;
 import org.json.JSONObject;
 
@@ -12,6 +10,7 @@ import okhttp3.Response;
 public class TgUtils {
     private static final String BASE_URL = "https://api.telegram.org/bot7790802518:AAGmUCIdh-uogRuG4gElgxTG-yN7f0mGi7I/";
     private final OkHttpClient client = new OkHttpClient();
+
     public String getUpdatesSync() throws Throwable {
         String url = BASE_URL + "getUpdates?offset=-1&limit=10";
         Request request = new Request.Builder().url(url).build();
@@ -21,12 +20,8 @@ public class TgUtils {
             JSONObject jsonObject = new JSONObject(jsonResponse);
             JSONArray resultArray = jsonObject.getJSONArray("result");
             JSONObject data = new JSONObject(resultArray.get(0).toString());
-            Log.d("hzshkj", "[TgUtils] getUpdatesSync: " + data);
             return data.toString();
-        } else {
-            Log.e("hzshkj", "Request Failed: " + (response.body() != null ? response.body().string() : "No response body"));
         }
-
         return "";
     }
 

+ 44 - 0
UtilsApplication/app/app/src/main/java/com/hx/utils/application/view/ModalBottomSheet.kt

@@ -0,0 +1,44 @@
+package com.hx.utils.application.view
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.blankj.utilcode.util.LanguageUtils
+import com.google.android.material.bottomsheet.BottomSheetDialogFragment
+import com.hx.utils.application.databinding.FragmentBottomSheetBinding
+import java.util.Locale
+
+class ModalBottomSheet : BottomSheetDialogFragment() {
+    private var _binding: FragmentBottomSheetBinding? = null
+    private val binding get() = _binding!!
+    override fun onCreateView(
+        inflater: LayoutInflater, container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View {
+        _binding = FragmentBottomSheetBinding.inflate(inflater, container, false)
+        val root: View = binding.root
+        return root
+    }
+
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+        dialog?.window?.setLayout(
+            ViewGroup.LayoutParams.MATCH_PARENT,
+            ViewGroup.LayoutParams.WRAP_CONTENT
+        )
+
+        dialog?.setCanceledOnTouchOutside(false)
+
+        binding.buttonCn.setOnClickListener {
+            LanguageUtils.applyLanguage(Locale.CHINA, true)
+            dialog?.dismiss()
+        }
+
+        binding.buttonEn.setOnClickListener {
+            LanguageUtils.applyLanguage(Locale.ENGLISH, true)
+            dialog?.dismiss()
+
+        }
+    }
+}

+ 7 - 0
UtilsApplication/app/app/src/main/res/drawable/twotone_language_24.xml

@@ -0,0 +1,7 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+      
+    <path android:fillAlpha="0.3" android:fillColor="@android:color/white" android:pathData="M5.08,8h2.95c0.32,-1.25 0.78,-2.45 1.38,-3.56 -1.84,0.63 -3.37,1.9 -4.33,3.56zM7.5,12c0,-0.68 0.06,-1.34 0.14,-2L4.26,10c-0.16,0.64 -0.26,1.31 -0.26,2s0.1,1.36 0.26,2h3.38c-0.08,-0.66 -0.14,-1.32 -0.14,-2zM5.08,16c0.96,1.66 2.49,2.93 4.33,3.56 -0.6,-1.11 -1.06,-2.31 -1.38,-3.56L5.08,16zM12,4.04c-0.83,1.2 -1.48,2.53 -1.91,3.96h3.82c-0.43,-1.43 -1.08,-2.76 -1.91,-3.96zM18.92,8c-0.96,-1.65 -2.49,-2.93 -4.33,-3.56 0.6,1.11 1.06,2.31 1.38,3.56h2.95zM12,19.96c0.83,-1.2 1.48,-2.53 1.91,-3.96h-3.82c0.43,1.43 1.08,2.76 1.91,3.96zM14.59,19.56c1.84,-0.63 3.37,-1.91 4.33,-3.56h-2.95c-0.32,1.25 -0.78,2.45 -1.38,3.56zM19.74,10h-3.38c0.08,0.66 0.14,1.32 0.14,2s-0.06,1.34 -0.14,2h3.38c0.16,-0.64 0.26,-1.31 0.26,-2s-0.1,-1.36 -0.26,-2zM9.66,10c-0.09,0.65 -0.16,1.32 -0.16,2s0.07,1.34 0.16,2h4.68c0.09,-0.66 0.16,-1.32 0.16,-2s-0.07,-1.35 -0.16,-2L9.66,10z" android:strokeAlpha="0.3"/>
+      
+    <path android:fillColor="@android:color/white" android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM18.92,8h-2.95c-0.32,-1.25 -0.78,-2.45 -1.38,-3.56 1.84,0.63 3.37,1.91 4.33,3.56zM12,4.04c0.83,1.2 1.48,2.53 1.91,3.96h-3.82c0.43,-1.43 1.08,-2.76 1.91,-3.96zM4.26,14C4.1,13.36 4,12.69 4,12s0.1,-1.36 0.26,-2h3.38c-0.08,0.66 -0.14,1.32 -0.14,2s0.06,1.34 0.14,2L4.26,14zM5.08,16h2.95c0.32,1.25 0.78,2.45 1.38,3.56 -1.84,-0.63 -3.37,-1.9 -4.33,-3.56zM8.03,8L5.08,8c0.96,-1.66 2.49,-2.93 4.33,-3.56C8.81,5.55 8.35,6.75 8.03,8zM12,19.96c-0.83,-1.2 -1.48,-2.53 -1.91,-3.96h3.82c-0.43,1.43 -1.08,2.76 -1.91,3.96zM14.34,14L9.66,14c-0.09,-0.66 -0.16,-1.32 -0.16,-2s0.07,-1.35 0.16,-2h4.68c0.09,0.65 0.16,1.32 0.16,2s-0.07,1.34 -0.16,2zM14.59,19.56c0.6,-1.11 1.06,-2.31 1.38,-3.56h2.95c-0.96,1.65 -2.49,2.93 -4.33,3.56zM16.36,14c0.08,-0.66 0.14,-1.32 0.14,-2s-0.06,-1.34 -0.14,-2h3.38c0.16,0.64 0.26,1.31 0.26,2s-0.1,1.36 -0.26,2h-3.38z"/>
+    
+</vector>

+ 41 - 0
UtilsApplication/app/app/src/main/res/layout/fragment_bottom_sheet.xml

@@ -0,0 +1,41 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:padding="16dp">
+
+    <TextView
+        android:id="@+id/bottom_sheet_text"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center"
+        android:text="@string/set_language"
+        android:textSize="14sp" />
+
+
+    <com.google.android.material.button.MaterialButtonGroup
+        android:id="@+id/buttonGroup"
+        style="@style/Widget.Material3.MaterialButtonGroup.Connected"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="20dp"
+        android:layout_marginBottom="20dp">
+
+        <Button
+            android:id="@+id/button_en"
+            style="?attr/materialButtonOutlinedStyle"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:text="@string/english" />
+
+        <Button
+            android:id="@+id/button_cn"
+            style="?attr/materialButtonOutlinedStyle"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="10dp"
+            android:layout_weight="1"
+            android:text="@string/chinese" />
+    </com.google.android.material.button.MaterialButtonGroup>
+</LinearLayout>

+ 0 - 22
UtilsApplication/app/app/src/main/res/layout/fragment_notifications.xml

@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context=".ui.notifications.NotificationsFragment">
-
-    <TextView
-        android:id="@+id/text_notifications"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="8dp"
-        android:layout_marginTop="8dp"
-        android:layout_marginEnd="8dp"
-        android:textAlignment="center"
-        android:textSize="20sp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 8 - 8
UtilsApplication/app/app/src/main/res/layout/fragment_sms.xml

@@ -27,7 +27,7 @@
                 android:layout_marginStart="15dp"
                 android:layout_marginTop="10dp"
                 android:layout_marginEnd="15dp"
-                android:hint="发送者名字或者号码/通话号码"
+                android:hint="@string/sender_s_name_or_number"
                 android:lines="2" />
 
             <EditText
@@ -37,7 +37,7 @@
                 android:layout_marginStart="15dp"
                 android:layout_marginEnd="15dp"
                 android:gravity="top|start"
-                android:hint="短信内容"
+                android:hint="@string/sms_content"
                 android:inputType="textMultiLine"
                 android:maxLines="20"
                 android:minLines="10"
@@ -48,7 +48,7 @@
                 android:layout_height="wrap_content"
                 android:layout_marginStart="15dp"
                 android:layout_marginEnd="15dp"
-                android:text="短信设置是否已读:"
+                android:text="@string/has_the_message_been_read"
                 android:textColor="#000000"
                 android:textSize="13sp" />
 
@@ -67,7 +67,7 @@
                     android:layout_height="wrap_content"
                     android:checked="true"
                     android:tag="1"
-                    android:text="已读"
+                    android:text="@string/read"
                     android:textColor="#000000" />
 
 
@@ -77,7 +77,7 @@
                     android:layout_height="wrap_content"
                     android:layout_marginStart="20dp"
                     android:tag="0"
-                    android:text="未读"
+                    android:text="@string/unread"
                     android:textColor="#000000" />
             </RadioGroup>
 
@@ -95,7 +95,7 @@
                     android:layout_marginEnd="10dp"
                     android:enabled="false"
                     android:focusable="false"
-                    android:hint="短信发送/通话 时间"
+                    android:hint="@string/sms_sending_time"
                     app:layout_constraintBottom_toBottomOf="parent"
                     app:layout_constraintEnd_toStartOf="@+id/selectTime"
                     app:layout_constraintStart_toStartOf="parent"
@@ -107,7 +107,7 @@
                     android:layout_height="wrap_content"
                     android:layout_marginEnd="15dp"
                     android:layout_marginBottom="10dp"
-                    android:text="选择时间"
+                    android:text="@string/select_time"
                     android:textColor="#ffffff"
                     android:textSize="13sp"
                     app:layout_constraintBottom_toBottomOf="parent"
@@ -122,7 +122,7 @@
                 android:layout_marginStart="15dp"
                 android:layout_marginTop="10dp"
                 android:layout_marginEnd="15dp"
-                android:text="插入短信"
+                android:text="@string/submit"
                 android:textColor="#ffffff"
                 android:textSize="13sp" />
 

+ 31 - 0
UtilsApplication/app/app/src/main/res/values-zh-rCN/strings.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="app_name">UtilsApplication</string>
+    <string name="title_home">主页</string>
+    <string name="title_dashboard">其他</string>
+    <string name="webview_test">webView测试</string>
+    <string name="telegram_message">Tg消息</string>
+    <string name="sms_tool">短信插入工具</string>
+    <string name="webtestbot_message">TgBot消息</string>
+    <string name="url_name_first_name">网址: %1$s 账号: %2$s 名称: %3$s</string>
+    <string name="go">确认</string>
+    <string name="cancel">取消</string>
+    <string name="error_info">错误信息</string>
+    <string name="ok">好的</string>
+    <string name="empty">没什么内容</string>
+    <string name="wait">开发中</string>
+    <string name="not_empty">必须填写!</string>
+    <string name="error">错误</string>
+    <string name="language">语言</string>
+    <string name="set_language">设置语言</string>
+    <string name="english">英语</string>
+    <string name="chinese">中文</string>
+    <string name="sender_s_name_or_number">发送者名字或者号码</string>
+    <string name="sms_content">短信内容</string>
+    <string name="has_the_message_been_read">短信是否已读?</string>
+    <string name="read">已读</string>
+    <string name="unread">未读</string>
+    <string name="sms_sending_time">短信发送时间</string>
+    <string name="select_time">选择时间</string>
+    <string name="submit">提交</string>
+</resources>

+ 22 - 1
UtilsApplication/app/app/src/main/res/values/strings.xml

@@ -2,10 +2,31 @@
     <string name="app_name">UtilsApplication</string>
     <string name="title_home">Home</string>
     <string name="title_dashboard">Dashboard</string>
-    <string name="title_notifications">Notifications</string>
     <string name="webview_test">WebView Test</string>
     <string name="telegram_message">Telegram Message</string>
     <string name="sms_tool">SMS tool</string>
+    <string name="webtestbot_message">WebTestBot Message</string>
+    <string name="url_name_first_name">URL: %1$s Name: %2$s First Name: %3$s</string>
+    <string name="go">Go</string>
+    <string name="cancel">Cancel</string>
+    <string name="error_info">Error Info</string>
+    <string name="ok">Ok</string>
+    <string name="empty">Empty</string>
+    <string name="wait">wait...</string>
+    <string name="not_empty">Not empty!</string>
+    <string name="error">Error</string>
+    <string name="language">Language</string>
+    <string name="set_language">Set language</string>
+    <string name="english">English</string>
+    <string name="chinese">Chinese</string>
+    <string name="sender_s_name_or_number">Sender\'s name or number</string>
+    <string name="sms_content">SMS content</string>
+    <string name="has_the_message_been_read">Has the message been read?</string>
+    <string name="read">Read</string>
+    <string name="unread">Unread</string>
+    <string name="sms_sending_time">SMS sending time</string>
+    <string name="select_time">Select time</string>
+    <string name="submit">Submit</string>
 
 
 </resources>