feat(ui): 實作首頁機台資訊列,包含網路、溫度及多國語言切換功能
This commit is contained in:
parent
317dec1084
commit
7ec2d3916a
@ -334,6 +334,11 @@ public class FontendActivity extends AppCompatActivityAbstract implements SaleFl
|
||||
binding.textTemperature.setText(getString(R.string.temp) + ":" + tempStr);
|
||||
getLogs().update("Temperature", String.valueOf(DevXinYuanController.getTemperature()), "℃");
|
||||
|
||||
// 同步更新機台資訊列
|
||||
binding.textMachineInfoName.setText(MyApp.getInstance().getMachine().getMachineID());
|
||||
// 待日後動態更改:binding.textMachineInfoNetwork.setText(getString(R.string.network) + ":" + networkDevice);
|
||||
binding.textMachineInfoTemperature.setText(getString(R.string.temp) + ":" + tempStr);
|
||||
|
||||
try {
|
||||
// httpAPI.detectHost();
|
||||
} catch (Exception e) {
|
||||
@ -387,6 +392,7 @@ public class FontendActivity extends AppCompatActivityAbstract implements SaleFl
|
||||
case SET_NETWORK:
|
||||
getLogs().info("網路:" + message);
|
||||
binding.textNetwork.setText(message);
|
||||
// 待日後動態更改:binding.textMachineInfoNetwork.setText(message);
|
||||
break;
|
||||
case RESET_SLOTNO:
|
||||
new ResetSlotNo(this).start();
|
||||
@ -764,6 +770,12 @@ public class FontendActivity extends AppCompatActivityAbstract implements SaleFl
|
||||
binding.btnswitchlanEn.setVisibility(View.GONE);
|
||||
binding.btnswitchlanJa.setVisibility(View.GONE);
|
||||
binding.btnswitchlanTW.setOnClickListener(v -> showLanguagePicker());
|
||||
// 新增:機台資訊列的語言按鈕
|
||||
binding.textMachineInfoLang.setOnClickListener(v -> showLanguagePicker());
|
||||
// 機台資訊列一動就顯示機台 ID
|
||||
binding.textMachineInfoName.setText(MyApp.getInstance().getMachine().getMachineID());
|
||||
String currentLang = LanguageHelper.getSavedLanguage(this);
|
||||
binding.textMachineInfoLangText.setText(LanguageHelper.getDisplayName(currentLang));
|
||||
|
||||
// 🛠️ 隱藏後門:長按「網路狀態」文字 2 秒進入主控台
|
||||
final Handler networkHandler = new Handler();
|
||||
@ -830,6 +842,10 @@ public class FontendActivity extends AppCompatActivityAbstract implements SaleFl
|
||||
binding.btnswitchlanEn.setVisibility(View.GONE);
|
||||
binding.btnswitchlanJa.setVisibility(View.GONE);
|
||||
binding.btnswitchlanTW.setOnClickListener(v -> showLanguagePicker());
|
||||
binding.textMachineInfoLang.setOnClickListener(v -> showLanguagePicker());
|
||||
binding.textMachineInfoName.setText(MyApp.getInstance().getMachine().getMachineID());
|
||||
String currentLang = LanguageHelper.getSavedLanguage(this);
|
||||
binding.textMachineInfoLangText.setText(LanguageHelper.getDisplayName(currentLang));
|
||||
}
|
||||
|
||||
private void startHeaderReportScheduler() {
|
||||
|
||||
9
app/src/main/res/drawable/device_thermostat_24.xml
Normal file
9
app/src/main/res/drawable/device_thermostat_24.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M15,13V5c0-1.66-1.34-3-3-3S9,3.34,9,5v8c-1.21,0.91-2,2.37-2,4c0,2.76,2.24,5,5,5s5-2.24,5-5 C17,15.37,16.21,13.91,15,13z M11,5c0-0.55,0.45-1,1-1s1,0.45,1,1h-2z" />
|
||||
</vector>
|
||||
9
app/src/main/res/drawable/language_24.xml
Normal file
9
app/src/main/res/drawable/language_24.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
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.25 1.45,2.66 1.84,4.12l-3.68,0c0.39,-1.46 1.01,-2.87 1.84,-4.12zM4.26,14c-0.24,-0.8 -0.34,-1.65 -0.34,-2.55s0.1,-1.75 0.34,-2.55h3.35c-0.12,0.82 -0.19,1.67 -0.19,2.55s0.07,1.73 0.19,2.55l-3.35,0zM5.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,8H5.08c0.96,-1.66 2.49,-2.93 4.33,-3.56 -0.6,1.11 -1.06,2.31 -1.38,3.56zM12,19.96c-0.83,-1.25 -1.45,-2.66 -1.84,-4.12l3.68,0c-0.39,1.46 -1.01,2.87 -1.84,4.12zM14.36,14l-4.72,0c-0.12,-0.81 -0.19,-1.66 -0.19,-2.55s0.07,-1.74 0.19,-2.55h4.72c0.12,0.81 0.19,1.66 0.19,2.55s-0.07,1.74 -0.19,2.55zM14.65,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.44,14c0.12,-0.82 0.19,-1.67 0.19,-2.55s-0.07,-1.73 -0.19,-2.55h3.35c0.24,0.8 0.34,1.65 0.34,2.55s-0.1,1.75 -0.34,2.55l-3.35,0z"/>
|
||||
</vector>
|
||||
13
app/src/main/res/drawable/network_wifi_1_bar_24.xml
Normal file
13
app/src/main/res/drawable/network_wifi_1_bar_24.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:fillAlpha="0.3"
|
||||
android:pathData="M12,2.01c-4.75,0-9.03,2.08-12,5.39L12,22L24,7.4C21.03,4.09,16.75,2.01,12,2.01z M12,18.86L2.7,7.54 C5.27,5.28,8.58,4.01,12,4.01s6.73,1.27,9.3,3.53L12,18.86z" />
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M16.42,16.63L12,22l-4.42-5.37c0.15-0.74,0.48-1.43,0.95-1.99C9.35,13.64,10.6,13,12,13s2.65,0.64,3.47,1.64 C15.94,15.2,16.27,15.89,16.42,16.63z" />
|
||||
</vector>
|
||||
9
app/src/main/res/drawable/network_wifi_24.xml
Normal file
9
app/src/main/res/drawable/network_wifi_24.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M24,7.39L12,22L0,7.39C2.97,4.08,7.25,2,12,2S21.03,4.08,24,7.39z" />
|
||||
</vector>
|
||||
13
app/src/main/res/drawable/network_wifi_2_bar_24.xml
Normal file
13
app/src/main/res/drawable/network_wifi_2_bar_24.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:fillAlpha="0.3"
|
||||
android:pathData="M12,2c-4.75,0-9.03,2.08-12,5.39L12,22L24,7.39C21.03,4.08,16.75,2,12,2z M12,18.85L2.7,7.53C5.27,5.27,8.58,4,12,4 s6.73,1.27,9.3,3.53L12,18.85z" />
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M18.61,13.95L12,22l-6.61-8.05c0.33-0.61,0.74-1.17,1.22-1.66c1.36-1.42,3.27-2.3,5.39-2.3s4.03,0.88,5.39,2.3 C17.87,12.78,18.28,13.34,18.61,13.95z" />
|
||||
</vector>
|
||||
13
app/src/main/res/drawable/network_wifi_3_bar_24.xml
Normal file
13
app/src/main/res/drawable/network_wifi_3_bar_24.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:fillAlpha="0.3"
|
||||
android:pathData="M12,2c-4.75,0-9.03,2.08-12,5.39L12,22L24,7.39C21.03,4.08,16.75,2,12,2z M12,18.85L2.7,7.53C5.27,5.27,8.58,4,12,4 s6.73,1.27,9.3,3.53L12,18.85z" />
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M20.7,11.41L12,22L3.3,11.41c0.38-0.52,0.8-0.99,1.26-1.43C6.49,8.13,9.1,6.99,12,6.99s5.51,1.13,7.44,2.99 C19.9,10.41,20.33,10.89,20.7,11.41z" />
|
||||
</vector>
|
||||
10
app/src/main/res/drawable/signal_cellular_0_bar_24.xml
Normal file
10
app/src/main/res/drawable/signal_cellular_0_bar_24.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:fillAlpha="0.3"
|
||||
android:pathData="M20,7v13H7L20,7 M22,2L2,22h20V2L22,2z" />
|
||||
</vector>
|
||||
13
app/src/main/res/drawable/signal_cellular_1_bar_24.xml
Normal file
13
app/src/main/res/drawable/signal_cellular_1_bar_24.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:fillAlpha="0.3"
|
||||
android:pathData="M20,7v13H7L20,7 M22,2L2,22h20V2L22,2z" />
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M 11 13 L 2 22 L 11 22 Z" />
|
||||
</vector>
|
||||
13
app/src/main/res/drawable/signal_cellular_2_bar_24.xml
Normal file
13
app/src/main/res/drawable/signal_cellular_2_bar_24.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:fillAlpha="0.3"
|
||||
android:pathData="M20,7v13H7L20,7 M22,2L2,22h20V2L22,2z" />
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M 13 11 L 2 22 L 13 22 Z" />
|
||||
</vector>
|
||||
13
app/src/main/res/drawable/signal_cellular_3_bar_24.xml
Normal file
13
app/src/main/res/drawable/signal_cellular_3_bar_24.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:fillAlpha="0.3"
|
||||
android:pathData="M20,7v13H7L20,7 M22,2L2,22h20V2L22,2z" />
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M 2 22 L 16 22 L 16 21 L 16 20 L 16 11 L 16 10 L 16 8 Z" />
|
||||
</vector>
|
||||
9
app/src/main/res/drawable/signal_cellular_4_bar_24.xml
Normal file
9
app/src/main/res/drawable/signal_cellular_4_bar_24.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M22,2L2,22h20V2L22,2z" />
|
||||
</vector>
|
||||
@ -17,6 +17,7 @@
|
||||
android:orientation="horizontal"
|
||||
android:paddingLeft="20dp"
|
||||
android:paddingRight="20dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
@ -60,7 +61,6 @@
|
||||
android:id="@+id/relativeLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginTop="60dp"
|
||||
android:layout_marginBottom="2dp"
|
||||
android:background="@color/black"
|
||||
app:layout_constraintDimensionRatio="21:9"
|
||||
@ -72,10 +72,10 @@
|
||||
android:id="@+id/videoView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:resize_mode="zoom"
|
||||
app:show_subtitle_button="true"
|
||||
app:use_artwork="true"
|
||||
app:use_controller="false"
|
||||
app:resize_mode="zoom" />
|
||||
app:use_controller="false" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageAd"
|
||||
@ -86,6 +86,102 @@
|
||||
/>
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/machine_info_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/cardSurface"
|
||||
android:elevation="4dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:paddingStart="26dp"
|
||||
android:paddingEnd="26dp"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingBottom="16dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/relativeLayout">
|
||||
|
||||
<!-- 機台名稱 -->
|
||||
<TextView
|
||||
android:id="@+id/textMachineInfoName"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="start|center_vertical"
|
||||
android:text="--"
|
||||
android:textColor="@color/primary"
|
||||
android:textSize="27sp"
|
||||
android:textStyle="bold"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end" />
|
||||
|
||||
<!-- 網路資訊 -->
|
||||
<TextView
|
||||
android:id="@+id/textMachineInfoNetwork"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:gravity="start|center_vertical"
|
||||
android:text="訊號__"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:drawableStart="@drawable/network_wifi_1_bar_24"
|
||||
android:drawablePadding="4dp"
|
||||
app:drawableTint="@color/black" />
|
||||
|
||||
<!-- 溫度資訊 -->
|
||||
<TextView
|
||||
android:id="@+id/textMachineInfoTemperature"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:gravity="start|center_vertical"
|
||||
android:text="0 ℃"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:drawableStart="@drawable/device_thermostat_24"
|
||||
android:drawablePadding="4dp"
|
||||
app:drawableTint="@color/black" />
|
||||
|
||||
<!-- 多國語言按鈕 -->
|
||||
<LinearLayout
|
||||
android:id="@+id/textMachineInfoLang"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical"
|
||||
android:background="@drawable/button_outline_black"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:paddingTop="6dp"
|
||||
android:paddingBottom="6dp"
|
||||
android:layout_marginStart="16dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:src="@drawable/language_24"
|
||||
app:tint="@color/black" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textMachineInfoLangText"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="中文"
|
||||
android:textSize="16sp"
|
||||
android:textColor="@color/black"
|
||||
android:textStyle="bold"
|
||||
android:layout_marginStart="4dp" />
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/fragment_container"
|
||||
android:layout_width="match_parent"
|
||||
@ -93,7 +189,7 @@
|
||||
app:layout_constraintBottom_toTopOf="@id/bottom_navigation"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/relativeLayout" />
|
||||
app:layout_constraintTop_toBottomOf="@+id/machine_info_bar" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/bottom_navigation"
|
||||
@ -168,6 +264,7 @@
|
||||
android:orientation="horizontal"
|
||||
android:paddingLeft="20dp"
|
||||
android:paddingRight="20dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
@ -183,6 +280,7 @@
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<!-- 語言切換按鈕移至機台資訊列,此處保留 ID 以相容程式碼,隱藏顯示 -->
|
||||
<TextView
|
||||
android:id="@+id/btnswitchlanTW"
|
||||
android:layout_width="wrap_content"
|
||||
@ -192,7 +290,8 @@
|
||||
android:textSize="20sp"
|
||||
android:textColor="@color/gray"
|
||||
android:textStyle="bold"
|
||||
android:layout_marginEnd="10dp" />
|
||||
android:layout_marginEnd="10dp"
|
||||
android:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btnswitchlanEn"
|
||||
@ -203,7 +302,8 @@
|
||||
android:textSize="16sp"
|
||||
android:textColor="@color/gray"
|
||||
android:textStyle="bold"
|
||||
android:layout_marginEnd="10dp" />
|
||||
android:layout_marginEnd="10dp"
|
||||
android:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btnswitchlanJa"
|
||||
@ -213,7 +313,8 @@
|
||||
android:text="日"
|
||||
android:textSize="16sp"
|
||||
android:textColor="@color/gray"
|
||||
android:textStyle="bold" />
|
||||
android:textStyle="bold"
|
||||
android:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textThreadCount"
|
||||
@ -370,4 +471,4 @@
|
||||
android:visibility="gone"
|
||||
android:layout_marginTop="60dp"
|
||||
android:layout_marginEnd="8dp"/>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user