Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
404ba69fba | ||
|
|
8e4a0993c7 | ||
|
|
4d7717edc3 | ||
|
|
b1732987ce | ||
|
|
d917f6445c | ||
|
|
d1bf7d18ce | ||
|
|
f2ed393686 | ||
|
|
907d5095d5 | ||
|
|
28a3d623f0 | ||
|
|
2e71cc29b8 | ||
|
|
8f6b5217d6 | ||
|
|
5d9c5ba5cf | ||
|
|
a933bb22f6 | ||
|
|
aed8d9bc1f | ||
|
|
54e0c9ffa5 | ||
|
|
02ae6623d9 | ||
|
|
12e61d2a10 | ||
|
|
c7d75a8522 | ||
|
|
c7b8372dfc |
@ -1,34 +0,0 @@
|
||||
---
|
||||
name: android-deploy
|
||||
description: 用於 TaiwanStar 專案的 Android App 編譯、安裝與自動啟動。當使用者要求「安裝到手機」、「部署 APK」或「更新 App」時,應使用此技能。
|
||||
---
|
||||
|
||||
# Android 部署技能 (TaiwanStar 專案專用)
|
||||
|
||||
此技能定義了在 WSL 環境下編譯 Android App 並透過 Windows ADB 安裝至實體手機的標準流程。
|
||||
|
||||
## 前置要求
|
||||
|
||||
1. **Java 版本**:必須使用 OpenJDK 17。
|
||||
2. **ADB 工具**:使用 Windows 端安裝的 ADB (路徑:`/mnt/c/Users/User/AppData/Local/Android/Sdk/platform-tools/adb.exe`)。
|
||||
3. **手機連線**:手機必須開啟 USB 調試,且已連線至電腦。
|
||||
|
||||
## 標準部署流程
|
||||
|
||||
執行以下複合指令以完成「編譯 + 安裝 + 自動啟動」:
|
||||
|
||||
```bash
|
||||
# 1. 設定環境變數
|
||||
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
|
||||
|
||||
# 2. 執行編譯與安裝 (包含自動開啟 HomeActivity)
|
||||
./gradlew :app:assembleS_12_XY_U_Standard_Debug && \
|
||||
/mnt/c/Users/User/AppData/Local/Android/Sdk/platform-tools/adb.exe install -r -d -t app/build/outputs/apk/S_12_XY_U_Standard_/debug/app-S_12_XY_U_Standard_-10_08_2_R-debug.apk && \
|
||||
/mnt/c/Users/User/AppData/Local/Android/Sdk/platform-tools/adb.exe shell am start -n com.unibuy.smartdevice/com.unibuy.smartdevice.HomeActivity
|
||||
```
|
||||
|
||||
## 注意事項
|
||||
|
||||
- **安裝失敗**:若出現 `INSTALL_FAILED_UPDATE_INCOMPATIBLE`,代表簽名或版本衝突,請先執行 `adb uninstall com.unibuy.smartdevice`。
|
||||
- **ADB 找不到裝置**:請確認手機 USB 模式是否為「檔案傳輸」或「PTP」,並檢查 Windows 端的 ADB server 是否正常執行。
|
||||
- **Mock Mode**:此部署版本已包含 Mock Mode,可在無串口設備的手機上正常運作不崩潰。
|
||||
@ -1,27 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# TaiwanStar Android 部署腳本
|
||||
# 自動執行:編譯 -> 安裝 -> 啟動
|
||||
|
||||
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
|
||||
ADB_PATH="/mnt/c/Users/User/AppData/Local/Android/Sdk/platform-tools/adb.exe"
|
||||
APK_PATH="app/build/outputs/apk/S_12_XY_U_Standard_/debug/app-S_12_XY_U_Standard_-10_08_2_R-debug.apk"
|
||||
PACKAGE_NAME="com.unibuy.smartdevice"
|
||||
LAUNCHER_ACTIVITY=".HomeActivity"
|
||||
|
||||
echo "🚀 開始編譯 APK..."
|
||||
./gradlew :app:assembleS_12_XY_U_Standard_Debug
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ 編譯成功,正在安裝至手機..."
|
||||
$ADB_PATH install -r -d -t $APK_PATH
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "🎉 安裝成功,正在啟動 App..."
|
||||
$ADB_PATH shell am start -n $PACKAGE_NAME/$LAUNCHER_ACTIVITY
|
||||
else
|
||||
echo "❌ 安裝失敗,請檢查手機連線狀態。"
|
||||
fi
|
||||
else
|
||||
echo "❌ 編譯失敗,請檢查程式碼錯誤。"
|
||||
fi
|
||||
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?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"
|
||||
@ -12,7 +12,7 @@
|
||||
android:id="@+id/linearLayout5"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:paddingLeft="20dp"
|
||||
@ -260,7 +260,7 @@
|
||||
android:layout_height="100dp"
|
||||
android:text="進入後台"
|
||||
android:textSize="24sp"
|
||||
android:backgroundTint="@color/red"
|
||||
android:backgroundTint="@color/error"
|
||||
android:textColor="@android:color/white"
|
||||
android:alpha="1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?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"
|
||||
@ -133,7 +133,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="出貨明細:"
|
||||
android:textColor="@color/white"
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?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"
|
||||
@ -21,7 +21,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="40dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="購物車"
|
||||
android:textColor="@color/white"
|
||||
@ -43,7 +43,7 @@
|
||||
android:layout_weight="1.15"
|
||||
android:gravity="center|end"
|
||||
android:text="合計金額:"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@ -55,7 +55,7 @@
|
||||
android:layout_weight="0.85"
|
||||
android:gravity="center|start"
|
||||
android:text="0"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?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"
|
||||
@ -20,7 +20,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="40dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="取貨碼"
|
||||
android:textColor="@color/white"
|
||||
@ -43,7 +43,7 @@
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="輸入取貨碼 或 掃描QRCode"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -20,9 +20,9 @@
|
||||
android:allowBackup="false"
|
||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
||||
android:fullBackupContent="@xml/backup_rules"
|
||||
android:icon="@drawable/cpu"
|
||||
android:icon="@drawable/starcloud_logo_circle"
|
||||
android:label="@string/app_name"
|
||||
android:roundIcon="@drawable/cpu"
|
||||
android:roundIcon="@drawable/starcloud_logo_circle"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/Theme.SmartDevice"
|
||||
android:windowSoftInputMode="adjustPan"
|
||||
|
||||
@ -346,8 +346,12 @@ public class Tools {
|
||||
public void setImmOpenByFocusChange(EditText editText) {
|
||||
editText.requestFocus();
|
||||
editText.setSelection(editText.getText().length());
|
||||
InputMethodManager imm = (InputMethodManager) context.getSystemService(context.INPUT_METHOD_SERVICE);
|
||||
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
|
||||
// 使用 post() 延遲執行,確保 hideSystemBars() 觸發的 Window 重繪完成後才彈出鍵盤
|
||||
// 若直接呼叫 showSoftInput,Window flag 變更會清除 focus,導致鍵盤無法彈出
|
||||
editText.post(() -> {
|
||||
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
|
||||
});
|
||||
}
|
||||
|
||||
public void setImmHideByFocusChange(EditText editText) {
|
||||
|
||||
@ -12,6 +12,7 @@ import android.widget.ImageView;
|
||||
import android.widget.SearchView;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
|
||||
import com.unibuy.smartdevice.AppCompatActivityAbstract;
|
||||
import com.unibuy.smartdevice.MyApp;
|
||||
@ -94,34 +95,44 @@ public class ProductSearchActivity extends AppCompatActivityAbstract {
|
||||
if (size > 0) recyclerSearchTextAdpter.notifyItemRangeRemoved(0, size);
|
||||
|
||||
if (message.isEmpty()) {
|
||||
binding.recyclerSearchText.setVisibility(View.GONE);
|
||||
binding.textSearchStatus.setVisibility(View.VISIBLE);
|
||||
binding.textSearchStatus.setText("請輸入您要搜尋的文字");
|
||||
|
||||
for (ProductStructure product: MyApp.getInstance().getProductList()) {
|
||||
searchProductList.add(product);
|
||||
}
|
||||
|
||||
recyclerProductSearchAdpter.notifyItemInserted(searchProductList.size() -1);
|
||||
if (searchProductList.size() > 0) {
|
||||
recyclerProductSearchAdpter.notifyDataSetChanged();
|
||||
}
|
||||
} else {
|
||||
for (ProductStructure product: MyApp.getInstance().getProductList()) {
|
||||
if (product.getProductName().contains(message)) {
|
||||
searchProductList.add(product);
|
||||
String name = product.getProductName();
|
||||
// Log.i("product name", name);
|
||||
int index = name.indexOf(message);
|
||||
if (index != -1 && index < name.length() - 1) {
|
||||
String result = name.substring(index + message.length());
|
||||
|
||||
if (!result.isEmpty()) {
|
||||
String oneText = String.valueOf(result.charAt(0));
|
||||
if (!searchTextList.contains(oneText)) {
|
||||
searchTextList.add(oneText);
|
||||
}
|
||||
}
|
||||
if (!searchTextList.contains(name)) {
|
||||
searchTextList.add(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (searchTextList.size() > 2) Collections.sort(searchTextList);
|
||||
recyclerProductSearchAdpter.notifyItemInserted(searchProductList.size() -1);
|
||||
recyclerSearchTextAdpter.notifyItemInserted(searchTextList.size() -1);
|
||||
|
||||
if (searchTextList.isEmpty()) {
|
||||
binding.recyclerSearchText.setVisibility(View.GONE);
|
||||
binding.textSearchStatus.setVisibility(View.VISIBLE);
|
||||
binding.textSearchStatus.setText("查無相關的候選字");
|
||||
} else {
|
||||
binding.recyclerSearchText.setVisibility(View.VISIBLE);
|
||||
binding.textSearchStatus.setVisibility(View.GONE);
|
||||
recyclerSearchTextAdpter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
if (searchProductList.size() > 0) {
|
||||
recyclerProductSearchAdpter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -140,7 +151,7 @@ public class ProductSearchActivity extends AppCompatActivityAbstract {
|
||||
|
||||
recyclerProductSearchAdpter = new RecyclerProductSearchAdpter(getCtx(), position, searchProductList);
|
||||
binding.recyclerProductSearch.setAdapter(recyclerProductSearchAdpter);
|
||||
binding.recyclerProductSearch.setLayoutManager(new LinearLayoutManager(getCtx()));
|
||||
binding.recyclerProductSearch.setLayoutManager(new GridLayoutManager(getCtx(), 3));
|
||||
|
||||
recyclerSearchTextAdpter = new RecyclerSearchTextAdpter(binding, searchTextList);
|
||||
binding.recyclerSearchText.setAdapter(recyclerSearchTextAdpter);
|
||||
@ -149,8 +160,30 @@ public class ProductSearchActivity extends AppCompatActivityAbstract {
|
||||
// SearchView searchView = binding.searchProductList;
|
||||
// enlargeSearchView(searchView, 32, 20, R.drawable.search); // icon 32dp,文字 20sp,自訂 drawable
|
||||
replaceSearchViewIcon(binding.searchProductList);
|
||||
binding.searchProductList.setOnQueryTextListener(new SearchProductListOnQueryText(getHandlerMain()));
|
||||
binding.searchProductList.setOnQueryTextListener(new SearchProductListOnQueryText(getHandlerMain()) {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
binding.searchProductList.clearFocus();
|
||||
return super.onQueryTextSubmit(query);
|
||||
}
|
||||
});
|
||||
|
||||
// 點擊列表時自動關閉鍵盤
|
||||
binding.recyclerProductSearch.setOnTouchListener((v, event) -> {
|
||||
binding.searchProductList.clearFocus();
|
||||
return false;
|
||||
});
|
||||
binding.recyclerSearchText.setOnTouchListener((v, event) -> {
|
||||
binding.searchProductList.clearFocus();
|
||||
return false;
|
||||
});
|
||||
|
||||
binding.buttonBack.setOnClickListener(v -> finish());
|
||||
|
||||
binding.buttonClear.setOnClickListener(v -> {
|
||||
binding.searchProductList.setQuery("", false);
|
||||
binding.searchProductList.clearFocus();
|
||||
});
|
||||
|
||||
if (MyApp.getInstance().getProductList().isEmpty()) {
|
||||
ProductsDao productsDao = new ProductsDao(getCtx());
|
||||
@ -172,9 +205,6 @@ public class ProductSearchActivity extends AppCompatActivityAbstract {
|
||||
private void replaceSearchViewIcon(SearchView searchView) {
|
||||
if (searchView == null) return;
|
||||
|
||||
// 設定 hint
|
||||
searchView.setQueryHint("輸入搜尋關鍵字");
|
||||
|
||||
// 找到內部的 EditText,修改字體大小 & 顏色
|
||||
int searchEditTextId = searchView.getContext()
|
||||
.getResources()
|
||||
@ -194,7 +224,24 @@ public class ProductSearchActivity extends AppCompatActivityAbstract {
|
||||
|
||||
ImageView searchIcon = searchView.findViewById(searchIconId);
|
||||
if (searchIcon != null) {
|
||||
searchIcon.setImageResource(R.drawable.searchopen);
|
||||
searchIcon.setImageDrawable(null);
|
||||
searchIcon.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
// 隱藏內部的清除 icon
|
||||
int closeIconId = searchView.getContext()
|
||||
.getResources()
|
||||
.getIdentifier("android:id/search_close_btn", null, null);
|
||||
ImageView closeIcon = searchView.findViewById(closeIconId);
|
||||
if (closeIcon != null) {
|
||||
closeIcon.setImageDrawable(null);
|
||||
closeIcon.setEnabled(false);
|
||||
ViewGroup.LayoutParams params = closeIcon.getLayoutParams();
|
||||
if (params != null) {
|
||||
params.width = 0;
|
||||
params.height = 0;
|
||||
closeIcon.setLayoutParams(params);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -79,7 +79,7 @@ public class RecyclerVmcBuyListAdpter extends RecyclerView.Adapter<RecyclerVmcBu
|
||||
} catch (LogsEmptyException e) {
|
||||
this.logs.warning(e);
|
||||
}
|
||||
holder.binding.textSlot.setText(String.format("%03d", slot.getSlot()));
|
||||
holder.binding.textSlot.setText("貨道" + slot.getSlot());
|
||||
// 多國語的判斷
|
||||
String currentLang = LanguageHelper.getSavedLanguage(context);
|
||||
holder.binding.textProductName.setText(slot.getProduct().getProductName());
|
||||
@ -110,6 +110,9 @@ public class RecyclerVmcBuyListAdpter extends RecyclerView.Adapter<RecyclerVmcBu
|
||||
holder.binding.textPrice.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
// 綁定庫存數量顯示
|
||||
holder.binding.textStock.setText("庫存: " + count);
|
||||
|
||||
holder.binding.mask.setVisibility(View.GONE);
|
||||
holder.binding.textMask.setText("");
|
||||
|
||||
|
||||
@ -19,10 +19,12 @@ import androidx.viewpager.widget.ViewPager;
|
||||
import com.unibuy.smartdevice.R;
|
||||
import com.unibuy.smartdevice.databinding.RecyclerVmcSlotListBinding;
|
||||
import com.unibuy.smartdevice.exception.Logs;
|
||||
import com.unibuy.smartdevice.exception.LogsEmptyException;
|
||||
import com.unibuy.smartdevice.structure.ProductStructure;
|
||||
import com.unibuy.smartdevice.structure.SlotStructure;
|
||||
import com.unibuy.smartdevice.tools.Tools;
|
||||
import com.unibuy.smartdevice.ui.ProductSearchActivity;
|
||||
import com.unibuy.smartdevice.ui.tools.ImageGlide;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -62,7 +64,7 @@ public class RecyclerVmcSlotListAdpter extends RecyclerView.Adapter<RecyclerVmcS
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
||||
SlotStructure slot = slotList.get(position);
|
||||
holder.binding.textSlot.setText(String.valueOf(slot.getSlot()));
|
||||
holder.binding.textSlot.setText("貨道" + slot.getSlot());
|
||||
String productID = slot.getProduct().getProductID();
|
||||
if (!productID.isEmpty() && !productID.equals("?")) {
|
||||
holder.binding.textProductName.setText(slot.getProduct().getProductName());
|
||||
@ -71,17 +73,54 @@ public class RecyclerVmcSlotListAdpter extends RecyclerView.Adapter<RecyclerVmcS
|
||||
}
|
||||
holder.binding.textCount.setText(String.valueOf(slot.getCount()));
|
||||
holder.binding.editCount.setText(String.valueOf(slot.getCount()));
|
||||
// numberPassword 預設會遮罩輸入,關閉遮罩以顯示明碼數字
|
||||
holder.binding.editCount.setTransformationMethod(null);
|
||||
|
||||
if (slot.isLock()) {
|
||||
holder.binding.textLock.setText(context.getString(R.string.lock));
|
||||
holder.binding.textLock.setTextColor(Color.BLACK);
|
||||
holder.binding.textLock.setChecked(false);
|
||||
holder.binding.textLockStatus.setText("停售中");
|
||||
holder.binding.textLockStatus.setTextColor(androidx.core.content.ContextCompat.getColor(context, R.color.warning));
|
||||
holder.binding.textLock.setThumbTintList(android.content.res.ColorStateList.valueOf(androidx.core.content.ContextCompat.getColor(context, R.color.warning)));
|
||||
holder.binding.textLock.setTrackTintList(android.content.res.ColorStateList.valueOf(androidx.core.graphics.ColorUtils.setAlphaComponent(androidx.core.content.ContextCompat.getColor(context, R.color.warning), 77)));
|
||||
holder.binding.viewProductMask.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
holder.binding.textLock.setText(context.getString(R.string.unlocked));
|
||||
holder.binding.textLock.setTextColor(Color.GRAY);
|
||||
holder.binding.textLock.setChecked(true);
|
||||
holder.binding.textLockStatus.setText("販售中");
|
||||
holder.binding.textLockStatus.setTextColor(androidx.core.content.ContextCompat.getColor(context, R.color.success));
|
||||
holder.binding.textLock.setThumbTintList(android.content.res.ColorStateList.valueOf(androidx.core.content.ContextCompat.getColor(context, R.color.success)));
|
||||
holder.binding.textLock.setTrackTintList(android.content.res.ColorStateList.valueOf(androidx.core.graphics.ColorUtils.setAlphaComponent(androidx.core.content.ContextCompat.getColor(context, R.color.success), 77)));
|
||||
holder.binding.viewProductMask.setVisibility(View.GONE);
|
||||
}
|
||||
holder.binding.textProductName.setOnClickListener(new selectPositionOnClickListener(position));
|
||||
holder.binding.textCount.setOnClickListener(new textCountOnClickListener(holder.binding, slot.getCount()));
|
||||
holder.binding.textLock.setOnClickListener(new textLockOnClickListener(position));
|
||||
|
||||
String productImg = slot.getProduct().getProductImg();
|
||||
if (productImg != null && !productImg.isEmpty() && !productImg.equals("?")) {
|
||||
try {
|
||||
new ImageGlide(context).fileload(productImg, holder.binding.imageProduct);
|
||||
} catch (LogsEmptyException e) {
|
||||
holder.binding.imageProduct.setImageResource(R.drawable.slot_no_product);
|
||||
}
|
||||
} else {
|
||||
holder.binding.imageProduct.setImageResource(R.drawable.slot_no_product);
|
||||
}
|
||||
|
||||
holder.binding.buttonCountMinus.setOnClickListener(v -> {
|
||||
int current = slot.getCount();
|
||||
if (current > 0) {
|
||||
slot.setCount(current - 1);
|
||||
notifyItemChanged(position);
|
||||
}
|
||||
});
|
||||
|
||||
holder.binding.buttonCountPlus.setOnClickListener(v -> {
|
||||
int current = slot.getCount();
|
||||
slot.setCount(current + 1);
|
||||
notifyItemChanged(position);
|
||||
});
|
||||
|
||||
holder.binding.imageProduct.setOnClickListener(new selectPositionOnClickListener(position));
|
||||
holder.binding.textProductName.setOnClickListener(null);
|
||||
holder.binding.textCount.setOnClickListener(new textCountOnClickListener(holder.binding, slot.getCount()));
|
||||
holder.binding.textDelete.setOnClickListener(new textDeleteOnClickListener(position));
|
||||
holder.binding.editCount.setOnEditorActionListener(new editCountOnEditorActionListener(holder.binding, position));
|
||||
holder.binding.editCount.setOnClickListener(new editCountOnClickListener(holder.binding, slot.getCount()));
|
||||
@ -163,7 +202,9 @@ public class RecyclerVmcSlotListAdpter extends RecyclerView.Adapter<RecyclerVmcS
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
binding.textCount.setVisibility(View.GONE);
|
||||
// 改用 INVISIBLE 而非 GONE,避免 buttonCountPlus 的 constraint 因 textCount 折疊
|
||||
// 導致 editCount 可用寬度被壓縮成 0(看不到輸入框、IME 無法接受輸入)
|
||||
binding.textCount.setVisibility(View.INVISIBLE);
|
||||
binding.editCount.setVisibility(View.VISIBLE);
|
||||
if (this.count == 0) {
|
||||
binding.editCount.setText("");
|
||||
|
||||
@ -9,7 +9,7 @@ import androidx.activity.result.ActivityResult;
|
||||
import androidx.activity.result.ActivityResultCallback;
|
||||
import androidx.activity.result.ActivityResultLauncher;
|
||||
import androidx.activity.result.contract.ActivityResultContracts;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
|
||||
import com.unibuy.smartdevice.AppCompatActivityAbstract;
|
||||
import com.unibuy.smartdevice.MyApp;
|
||||
@ -127,7 +127,7 @@ public class VmcSlotListActivity extends AppCompatActivityAbstract {
|
||||
|
||||
recyclerVmcSlotListAdpter = new RecyclerVmcSlotListAdpter(this, resultLauncher, MyApp.getInstance().getSlotList(SlotField.VMC.getField()));
|
||||
binding.recyclerSlotList.setAdapter(recyclerVmcSlotListAdpter);
|
||||
binding.recyclerSlotList.setLayoutManager(new LinearLayoutManager(this));
|
||||
binding.recyclerSlotList.setLayoutManager(new GridLayoutManager(this, 3));
|
||||
|
||||
// dataShow();
|
||||
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
package com.unibuy.smartdevice.ui.recycler;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.GradientDrawable;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.unibuy.smartdevice.R;
|
||||
@ -83,29 +84,31 @@ public class RecyclerDialogDispatchListAdpter extends RecyclerView.Adapter<Recyc
|
||||
|
||||
int price = machinePrice > 0? machinePrice: sellingPrice;
|
||||
|
||||
holder.binding.textCount.setText(String.valueOf(count));
|
||||
holder.binding.textQuantity.setText(String.valueOf(quantity));
|
||||
holder.binding.textCount.setText(String.format("已出貨數量(%d / %d)", count, quantity));
|
||||
|
||||
logs.info("isShipped:" + dispatchProduct.isShipped());
|
||||
|
||||
if (dispatchProduct.getCount() == dispatchProduct.getQuantity()) {
|
||||
holder.binding.textDispatchStatus.setText(context.getString(R.string.shipped));//已出貨
|
||||
holder.binding.textDispatchStatus.setTextColor(Color.RED);
|
||||
holder.binding.textDispatchStatus.setTextColor(ContextCompat.getColor(context, R.color.onSuccess));
|
||||
holder.binding.textDispatchStatus.setBackground(createTagBackground(R.color.success));
|
||||
} else if (dispatchProduct.isShipped()) {
|
||||
try {
|
||||
if (SlotField.getSlotField(dispatchProduct.getField()).isCanOneShipped()) {
|
||||
holder.binding.textDispatchStatus.setText(context.getString(R.string.shipping)+"("+(count+1)+")");//出貨中
|
||||
holder.binding.textDispatchStatus.setText(context.getString(R.string.shipping)+"("+(count+1)+"件)");//出貨中
|
||||
} else {
|
||||
holder.binding.textDispatchStatus.setText(context.getString(R.string.shipping)+"(All)");//出貨中
|
||||
}
|
||||
} catch (LogsEmptyException e) {
|
||||
holder.binding.textDispatchStatus.setText(context.getString(R.string.shipping)+"("+(count+1)+")");//出貨中
|
||||
holder.binding.textDispatchStatus.setText(context.getString(R.string.shipping)+"("+(count+1)+"件)");//出貨中
|
||||
}
|
||||
|
||||
holder.binding.textDispatchStatus.setTextColor(Color.RED);
|
||||
holder.binding.textDispatchStatus.setTextColor(ContextCompat.getColor(context, R.color.onPrimary));
|
||||
holder.binding.textDispatchStatus.setBackground(createTagBackground(R.color.primary));
|
||||
} else {
|
||||
holder.binding.textDispatchStatus.setText(context.getString(R.string.waiting));//等待中
|
||||
holder.binding.textDispatchStatus.setTextColor(Color.BLACK);
|
||||
holder.binding.textDispatchStatus.setTextColor(ContextCompat.getColor(context, R.color.black));
|
||||
holder.binding.textDispatchStatus.setBackground(createTagBackground(R.color.gray));
|
||||
}
|
||||
}
|
||||
|
||||
@ -121,6 +124,14 @@ public class RecyclerDialogDispatchListAdpter extends RecyclerView.Adapter<Recyc
|
||||
delProductData(position);
|
||||
}
|
||||
}
|
||||
/** 建立圓角標籤背景 */
|
||||
private GradientDrawable createTagBackground(int colorResId) {
|
||||
GradientDrawable drawable = new GradientDrawable();
|
||||
drawable.setColor(ContextCompat.getColor(context, colorResId));
|
||||
drawable.setCornerRadius(context.getResources().getDisplayMetrics().density * 20);
|
||||
return drawable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return dispatchList.size();
|
||||
|
||||
@ -69,7 +69,7 @@ public class RecyclerProductSearchAdpter extends RecyclerView.Adapter<RecyclerPr
|
||||
|
||||
holder.binding.textProductId.setText(product.getProductID());
|
||||
holder.binding.textProductName.setText(product.getProductName());
|
||||
holder.binding.buttonSlotProductSelect.setOnClickListener(new View.OnClickListener() {
|
||||
holder.binding.cardProduct.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Log.i("select product", "點選商品:"+product.getProductName());
|
||||
|
||||
@ -58,9 +58,9 @@ public class RecyclerSearchTextAdpter extends RecyclerView.Adapter<RecyclerSearc
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
String nowText = activityProductSearchBinding.searchProductList.getQuery().toString();
|
||||
Log.i("SearchTextOnClick", nowText + oneText);
|
||||
activityProductSearchBinding.searchProductList.setQuery(nowText+oneText, false);
|
||||
Log.i("SearchTextOnClick", "Selected full name: " + oneText);
|
||||
activityProductSearchBinding.searchProductList.setQuery(oneText, false);
|
||||
activityProductSearchBinding.searchProductList.clearFocus();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
5
app/src/main/res/color/switch_thumb_selector.xml
Normal file
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_checked="true" android:color="@color/primary" />
|
||||
<item android:color="@color/light_gray" />
|
||||
</selector>
|
||||
5
app/src/main/res/color/switch_track_selector.xml
Normal file
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_checked="true" android:color="#4D005DAD" />
|
||||
<item android:color="#E0E0E0" />
|
||||
</selector>
|
||||
@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<!-- 背景透明 -->
|
||||
<solid android:color="@color/transparent" />
|
||||
<solid android:color="@android:color/transparent" />
|
||||
<!-- 外框線設定 -->
|
||||
<stroke
|
||||
android:width="2dp"
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/surface" />
|
||||
<stroke android:width="1.5dp" android:color="@color/outlineVariant" />
|
||||
<solid android:color="@color/cardSurface" />
|
||||
<stroke android:width="1.5dp" android:color="@color/gray" />
|
||||
<corners android:radius="12dp" />
|
||||
<padding
|
||||
android:left="16dp"
|
||||
|
||||
6
app/src/main/res/drawable/button_outline_black.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@android:color/transparent" />
|
||||
<stroke android:width="1dp" android:color="@color/black" />
|
||||
<corners android:radius="8dp" />
|
||||
</shape>
|
||||
BIN
app/src/main/res/drawable/pay_mobile_tap_method.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
app/src/main/res/drawable/payment_accepted_types_cash.png
Normal file
|
After Width: | Height: | Size: 336 KiB |
BIN
app/src/main/res/drawable/payment_accepted_types_credit_card.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
app/src/main/res/drawable/payment_accepted_types_eticket.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
app/src/main/res/drawable/payment_accepted_types_idcard.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
app/src/main/res/drawable/payment_accepted_types_qrcode_scan.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
app/src/main/res/drawable/payment_channel_cash.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
app/src/main/res/drawable/payment_channel_idcard.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
app/src/main/res/drawable/payment_channel_qrcode_scan.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
app/src/main/res/drawable/slot_no_img.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
app/src/main/res/drawable/slot_no_product.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
app/src/main/res/drawable/starcloud_logo_circle.png
Normal file
|
After Width: | Height: | Size: 482 KiB |
@ -5,14 +5,14 @@
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/light_gray"
|
||||
android:background="@color/background"
|
||||
>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout5"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/light_gray"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:paddingLeft="20dp"
|
||||
@ -22,95 +22,35 @@
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textVersion"
|
||||
android:layout_width="80dp"
|
||||
android:id="@+id/textTime"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="start"
|
||||
android:text="20250108ver1"
|
||||
android:textColor="@color/white"
|
||||
android:layout_weight="1.2"
|
||||
android:gravity="start|center_vertical"
|
||||
android:text="1911/01/01 01:01:01"
|
||||
android:textColor="@color/gray"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textThreadCount"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="start"
|
||||
android:text="TC:0"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
<TextView
|
||||
android:id="@+id/btnswitchlanTW"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="start"
|
||||
android:text="中"
|
||||
android:visibility="gone"
|
||||
android:textSize="30sp"
|
||||
android:textColor="@color/white"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btnswitchlanEn"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="start"
|
||||
android:text="En"
|
||||
android:visibility="gone"
|
||||
android:textSize="30sp"
|
||||
android:textColor="@color/white"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btnswitchlanJa"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="start"
|
||||
android:text="日"
|
||||
android:visibility="gone"
|
||||
android:textSize="30sp"
|
||||
android:textColor="@color/white"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textTemperature"
|
||||
android:layout_width="60dp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="end"
|
||||
android:layout_weight="0.8"
|
||||
android:gravity="center"
|
||||
android:text="0 ℃"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textTime"
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="end"
|
||||
android:text="1911/01/01 01:01:01"
|
||||
android:textColor="@color/white"
|
||||
android:textColor="@color/gray"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textNetwork"
|
||||
android:layout_width="150dp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1.0"
|
||||
android:gravity="center_vertical|end"
|
||||
android:text="@string/no_internet"
|
||||
android:textColor="@color/white"
|
||||
android:textColor="@color/gray"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@ -123,7 +63,7 @@
|
||||
android:layout_marginTop="60dp"
|
||||
android:layout_marginBottom="2dp"
|
||||
android:background="@color/black"
|
||||
app:layout_constraintDimensionRatio="16:9"
|
||||
app:layout_constraintDimensionRatio="21:9"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
@ -135,13 +75,13 @@
|
||||
app:show_subtitle_button="true"
|
||||
app:use_artwork="true"
|
||||
app:use_controller="false"
|
||||
app:layout_constraintDimensionRatio="16:9" />
|
||||
app:resize_mode="zoom" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageAd"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="fitXY"
|
||||
android:scaleType="centerCrop"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
</RelativeLayout>
|
||||
@ -161,7 +101,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintBottom_toTopOf="@id/bottom_bar"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
|
||||
@ -219,6 +159,78 @@
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/bottom_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="40dp"
|
||||
android:background="@color/light_gray"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:paddingLeft="20dp"
|
||||
android:paddingRight="20dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textVersion"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1.5"
|
||||
android:gravity="start"
|
||||
android:text="20250108ver1"
|
||||
android:textColor="@color/gray"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btnswitchlanTW"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:text="中"
|
||||
android:visibility="gone"
|
||||
android:textSize="16sp"
|
||||
android:textColor="@color/gray"
|
||||
android:textStyle="bold"
|
||||
android:layout_marginEnd="10dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btnswitchlanEn"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:text="En"
|
||||
android:visibility="gone"
|
||||
android:textSize="16sp"
|
||||
android:textColor="@color/gray"
|
||||
android:textStyle="bold"
|
||||
android:layout_marginEnd="10dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/btnswitchlanJa"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:text="日"
|
||||
android:visibility="gone"
|
||||
android:textSize="16sp"
|
||||
android:textColor="@color/gray"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textThreadCount"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1.0"
|
||||
android:gravity="end"
|
||||
android:text="TC:0"
|
||||
android:textColor="@color/gray"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/floatButtonPickupCode"
|
||||
android:layout_width="50dp"
|
||||
@ -258,7 +270,7 @@
|
||||
android:layout_height="100dp"
|
||||
android:text="進入後台"
|
||||
android:textSize="24sp"
|
||||
android:backgroundTint="@color/red"
|
||||
android:backgroundTint="@color/error"
|
||||
android:textColor="@android:color/white"
|
||||
android:alpha="1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
|
||||
@ -39,12 +39,12 @@
|
||||
<!-- 浮動按鈕 -->
|
||||
<Button
|
||||
android:id="@+id/startButton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_width="400dp"
|
||||
android:layout_height="100dp"
|
||||
android:text="購物去"
|
||||
android:text="開始購物"
|
||||
android:textSize="40sp"
|
||||
android:textColor="@android:color/black"
|
||||
android:backgroundTint="#ff9e00"
|
||||
android:textColor="@color/onPrimary"
|
||||
android:backgroundTint="@color/primary"
|
||||
android:layout_marginStart="50dp"
|
||||
android:layout_marginEnd="50dp"
|
||||
android:layout_marginBottom="40dp"
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
android:id="@+id/viewHeaderBg"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="@color/surface"
|
||||
android:background="@color/cardSurface"
|
||||
android:elevation="8dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/headerBarrier"
|
||||
@ -178,7 +178,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="@string/binding_machine"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -211,7 +211,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="@string/system_setting"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -244,7 +244,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="@string/product_list"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -277,7 +277,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="@string/cargo_lane_management"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -310,7 +310,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="@string/shopping_platform"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -399,7 +399,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="@string/set_value_detection"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -432,7 +432,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="@string/infor_debug_window"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -465,7 +465,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="@string/card_machine_checkout"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -498,7 +498,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="@string/card_machine_restart"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -531,7 +531,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="@string/scan_dock_test"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -564,7 +564,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="@string/slave_machine_software"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -597,7 +597,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="紙鈔/現金模組"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -631,7 +631,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="@string/slave_machine_detection"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -665,7 +665,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="@string/electronic_controller_detection"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -699,7 +699,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="@string/other_test"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -732,7 +732,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="刪除本地端廣告"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -765,7 +765,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="重啟APP"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
@ -798,7 +798,7 @@
|
||||
app:layout_constraintDimensionRatio="H,1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:backgroundTint="@color/surface"
|
||||
android:backgroundTint="@color/cardSurface"
|
||||
android:text="進入安卓設定頁"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="@dimen/menu_btn_text_size"
|
||||
|
||||
@ -6,26 +6,83 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".ui.ProductSearchActivity"
|
||||
android:background="@color/light_gray">
|
||||
android:background="@color/background">
|
||||
|
||||
<SearchView
|
||||
android:id="@+id/searchProductList"
|
||||
<LinearLayout
|
||||
android:id="@+id/topControlLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="100dp"
|
||||
android:background="@drawable/textview_border"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/cardSurface"
|
||||
android:elevation="8dp"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="16dp"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recyclerSearchText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:background="@color/white"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/searchProductList" />
|
||||
<TextView
|
||||
android:id="@+id/textTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="選擇商品"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="28sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<SearchView
|
||||
android:id="@+id/searchProductList"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/textview_border"
|
||||
android:queryHint="請輸入商品名稱來搜尋"
|
||||
android:searchIcon="@null"
|
||||
android:iconifiedByDefault="false" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonClear"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="8dp"
|
||||
android:backgroundTint="@color/warning"
|
||||
android:textColor="@color/onWarning"
|
||||
app:cornerRadius="8dp"
|
||||
android:text="清除"
|
||||
android:textSize="24sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginTop="8dp">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recyclerSearchText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textSearchStatus"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:text="請輸入您要搜尋的文字"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="18sp"
|
||||
android:visibility="visible" />
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recyclerProductSearch"
|
||||
@ -33,35 +90,50 @@
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginBottom="0dp"
|
||||
app:layout_constraintBottom_toTopOf="@id/linearLayout2"
|
||||
app:layout_constraintTop_toBottomOf="@+id/recyclerSearchText"
|
||||
app:layout_constraintBottom_toTopOf="@+id/bottomControlLayout"
|
||||
app:layout_constraintTop_toBottomOf="@+id/topControlLayout"
|
||||
app:layout_constraintVertical_bias="1.0">
|
||||
|
||||
</androidx.recyclerview.widget.RecyclerView>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout2"
|
||||
android:id="@+id/bottomControlLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:orientation="vertical"
|
||||
android:padding="8dp"
|
||||
android:background="@color/cardSurface"
|
||||
android:elevation="16dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent">
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonBack"
|
||||
android:layout_width="wrap_content"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:backgroundTint="@color/black"
|
||||
android:text="返回"
|
||||
android:textSize="24dp"/>
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonOk"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:backgroundTint="@color/black"
|
||||
android:text="確定"
|
||||
android:textSize="24dp"/>
|
||||
<Button
|
||||
android:id="@+id/buttonBack"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:backgroundTint="@color/gray"
|
||||
android:textColor="@color/black"
|
||||
android:layout_marginEnd="8dp"
|
||||
app:cornerRadius="8dp"
|
||||
android:text="返回"
|
||||
android:textSize="24dp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonOk"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginStart="8dp"
|
||||
android:backgroundTint="@color/primary"
|
||||
android:textColor="@color/onPrimary"
|
||||
android:text="確定"
|
||||
app:cornerRadius="8dp"
|
||||
android:textSize="24dp" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@ -5,87 +5,96 @@
|
||||
android:id="@+id/main"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/light_gray"
|
||||
android:background="@color/background"
|
||||
tools:context=".ui.devs.vmc.VmcSlotListActivity">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout1"
|
||||
android:id="@+id/topControlLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:background="@color/cardSurface"
|
||||
android:elevation="8dp"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="16dp"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonGotoVmcSlotList"
|
||||
<TextView
|
||||
android:id="@+id/textTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:visibility="gone"
|
||||
android:backgroundTint="@color/black"
|
||||
android:text="智販機"
|
||||
android:textSize="24dp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonoOneClickReplenishment"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:backgroundTint="@color/black"
|
||||
android:text="一鍵補貨"
|
||||
android:textSize="24dp"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonGotoElectricSlotList"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:visibility="gone"
|
||||
android:backgroundTint="@color/gray"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="貨道管理"
|
||||
android:textColor="@color/black"
|
||||
android:text="桌遊開桌空間出租" />
|
||||
android:textSize="28sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recyclerSlotList"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toTopOf="@+id/linearLayout"
|
||||
app:layout_constraintTop_toBottomOf="@+id/linearLayout1" />
|
||||
android:layout_marginTop="8dp"
|
||||
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
||||
app:spanCount="3"
|
||||
app:layout_constraintBottom_toTopOf="@+id/bottomControlLayout"
|
||||
app:layout_constraintTop_toBottomOf="@+id/topControlLayout"
|
||||
app:layout_constraintVertical_bias="0.0"
|
||||
tools:layout_editor_absoluteX="0dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout"
|
||||
android:id="@+id/bottomControlLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:orientation="vertical"
|
||||
android:padding="8dp"
|
||||
android:background="@color/cardSurface"
|
||||
android:elevation="16dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent">
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonBack"
|
||||
android:layout_width="0dp"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:visibility="gone"
|
||||
android:backgroundTint="@color/black"
|
||||
android:text="返回"
|
||||
android:textSize="28dp"/>
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSave"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:backgroundTint="@color/black"
|
||||
android:text="@string/upload_to_backend_and_return"
|
||||
android:textSize="28dp" />
|
||||
<Button
|
||||
android:id="@+id/buttonBack"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:visibility="gone"
|
||||
android:text="返回"
|
||||
android:textSize="24dp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonReload"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:visibility="gone"
|
||||
android:backgroundTint="@color/black"
|
||||
android:text="清空" />
|
||||
<Button
|
||||
android:id="@+id/buttonReload"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:visibility="gone"
|
||||
android:text="清空" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonoOneClickReplenishment"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:backgroundTint="@color/gray"
|
||||
android:textColor="@color/black"
|
||||
android:text="一鍵補貨"
|
||||
android:textSize="24dp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSave"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:backgroundTint="@color/primary"
|
||||
android:textColor="@color/onPrimary"
|
||||
android:text="儲存"
|
||||
android:textSize="24dp" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 中央浮動進度區塊 (預設隱藏) -->
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/passcode"
|
||||
android:textColor="@color/white"
|
||||
@ -43,7 +43,7 @@
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="@string/enter_passcode_or_scan_qrcode"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="36dp"
|
||||
android:background="@color/surface">
|
||||
android:background="@color/cardSurface">
|
||||
|
||||
<!-- 標題 -->
|
||||
<TextView
|
||||
@ -14,7 +14,7 @@
|
||||
android:text="登入後台管理帳號"
|
||||
android:textSize="28sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="@color/onSurface"
|
||||
android:textColor="@color/black"
|
||||
android:layout_marginBottom="24dp" />
|
||||
|
||||
<!-- 帳號標籤 -->
|
||||
@ -23,7 +23,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="管理員帳號"
|
||||
android:textSize="22sp"
|
||||
android:textColor="@color/onSurfaceVariant"
|
||||
android:textColor="@color/info"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginStart="4dp" />
|
||||
|
||||
@ -45,7 +45,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="管理員密碼"
|
||||
android:textSize="22sp"
|
||||
android:textColor="@color/onSurfaceVariant"
|
||||
android:textColor="@color/info"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginStart="4dp" />
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="記住帳號"
|
||||
android:textSize="22sp"
|
||||
android:textColor="@color/onSurfaceVariant"
|
||||
android:textColor="@color/info"
|
||||
android:layout_marginBottom="28dp" />
|
||||
|
||||
<!-- 按鈕區塊 -->
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="40dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/cart"
|
||||
android:visibility="gone"
|
||||
@ -45,7 +45,7 @@
|
||||
android:layout_weight="0.3"
|
||||
android:gravity="center"
|
||||
android:text="@string/total_amount"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@ -57,7 +57,7 @@
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="0"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/shopping_cart_cash_checkout"
|
||||
android:textColor="@color/white"
|
||||
@ -42,7 +42,7 @@
|
||||
android:layout_weight="1.10"
|
||||
android:gravity="center|end"
|
||||
android:text="@string/transaction_amount"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@ -54,7 +54,7 @@
|
||||
android:layout_weight="0.90"
|
||||
android:gravity="center|start"
|
||||
android:text="0"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
@ -73,7 +73,7 @@
|
||||
android:layout_weight="1.10"
|
||||
android:gravity="center|end"
|
||||
android:text="@string/amount_invested"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@ -85,7 +85,7 @@
|
||||
android:layout_weight="0.90"
|
||||
android:gravity="center|start"
|
||||
android:text="0"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="現金支付"
|
||||
android:textColor="@color/white"
|
||||
@ -43,7 +43,7 @@
|
||||
android:layout_weight="1.1"
|
||||
android:gravity="center|end"
|
||||
android:text="訂單金額:"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="40sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@ -55,7 +55,7 @@
|
||||
android:layout_weight="0.9"
|
||||
android:gravity="center|start"
|
||||
android:text="0"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="40sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
@ -75,7 +75,7 @@
|
||||
android:layout_weight="0.90"
|
||||
android:gravity="center"
|
||||
android:text="請投入硬幣或紙鈔"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="80sp"
|
||||
android:textStyle="bold" />
|
||||
<ImageView
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/shopping_cart_esun_payment_checkout"
|
||||
android:textColor="@color/white"
|
||||
@ -43,7 +43,7 @@
|
||||
android:layout_weight="1.10"
|
||||
android:gravity="center|end"
|
||||
android:text="@string/transaction_amount"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@ -55,7 +55,7 @@
|
||||
android:layout_weight="0.90"
|
||||
android:gravity="center|start"
|
||||
android:text="0"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
@ -75,7 +75,7 @@
|
||||
android:layout_weight="0.90"
|
||||
android:gravity="center"
|
||||
android:text="@string/transaction_status"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="40dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/shopping_cart_linepay_checkout"
|
||||
android:textColor="@color/white"
|
||||
@ -43,7 +43,7 @@
|
||||
android:layout_weight="1.10"
|
||||
android:gravity="center|end"
|
||||
android:text="@string/transaction_amount"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@ -55,7 +55,7 @@
|
||||
android:layout_weight="0.90"
|
||||
android:gravity="center|start"
|
||||
android:text="0"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
@ -76,7 +76,7 @@
|
||||
android:layout_weight="0.90"
|
||||
android:gravity="center"
|
||||
android:text="@string/transaction_status"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/shopping_cart_credit_card_checkout"
|
||||
android:textColor="@color/white"
|
||||
@ -43,7 +43,7 @@
|
||||
android:layout_weight="1.1"
|
||||
android:gravity="center|end"
|
||||
android:text="@string/transaction_amount"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@ -55,7 +55,7 @@
|
||||
android:layout_weight="0.90"
|
||||
android:gravity="center|start"
|
||||
android:text="0"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
@ -75,7 +75,7 @@
|
||||
android:layout_weight="0.90"
|
||||
android:gravity="center"
|
||||
android:text="@string/transaction_status"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/shopping_cart_mobile_payment_checkout"
|
||||
android:textColor="@color/white"
|
||||
@ -43,7 +43,7 @@
|
||||
android:layout_weight="1.1"
|
||||
android:gravity="center|end"
|
||||
android:text="@string/transaction_amount"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@ -55,7 +55,7 @@
|
||||
android:layout_weight="0.9"
|
||||
android:gravity="center|start"
|
||||
android:text="0"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
@ -75,7 +75,7 @@
|
||||
android:layout_weight="0.90"
|
||||
android:gravity="center"
|
||||
android:text="@string/transaction_status"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/shopping_cart_merchant_payment_checkout"
|
||||
android:textColor="@color/white"
|
||||
@ -43,7 +43,7 @@
|
||||
android:layout_weight="1.1"
|
||||
android:gravity="center|end"
|
||||
android:text="@string/transaction_amount"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@ -55,7 +55,7 @@
|
||||
android:layout_weight="0.90"
|
||||
android:gravity="center|start"
|
||||
android:text="0"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
@ -75,7 +75,7 @@
|
||||
android:layout_weight="0.90"
|
||||
android:gravity="center"
|
||||
android:text="@string/transaction_status"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/tappay_checkout"
|
||||
android:textColor="@color/white"
|
||||
@ -43,7 +43,7 @@
|
||||
android:layout_weight="1.10"
|
||||
android:gravity="center|end"
|
||||
android:text="交易金額:"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@ -55,7 +55,7 @@
|
||||
android:layout_weight="0.90"
|
||||
android:gravity="center|start"
|
||||
android:text="0"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
@ -75,7 +75,7 @@
|
||||
android:layout_weight="0.90"
|
||||
android:gravity="center"
|
||||
android:text="QRCode產生中,請等待片刻"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="40dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/passcode"
|
||||
android:textColor="@color/white"
|
||||
@ -43,7 +43,7 @@
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="@string/enter_passcode_or_scan_qrcode"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/invoice_account"
|
||||
android:textColor="@color/white"
|
||||
@ -43,7 +43,7 @@
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="@string/input_unified_number"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -4,15 +4,16 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/linearLayout3"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/light_gray">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout4"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:background="@color/light_gray"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
@ -21,10 +22,10 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="40dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/gray"
|
||||
android:gravity="center"
|
||||
android:text="@string/shopping_cart_checkout"
|
||||
android:textColor="@color/white"
|
||||
android:text="@string/dispatch_progress"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@ -44,14 +45,16 @@
|
||||
android:layout_weight="1.15"
|
||||
android:gravity="center"
|
||||
android:text="@string/shipping_goods"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@color/background"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
@ -67,130 +70,67 @@
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recyclerDialogDispatchList"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="450dp" />
|
||||
android:layout_height="match_parent" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="5dp"
|
||||
android:paddingBottom="5dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:layout_marginBottom="1dp"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center"
|
||||
android:background="@color/gray"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
android:background="@color/cardSurface"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="5dp"
|
||||
android:paddingBottom="5dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/shipping_goods"
|
||||
android:background="@color/primary"
|
||||
android:text="@string/processing"
|
||||
android:textSize="20sp"
|
||||
android:textColor="@color/white"/>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:layout_marginBottom="1dp"
|
||||
android:background="@color/white"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintDimensionRatio="16:9"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
android:textColor="@color/onPrimary" />
|
||||
|
||||
<RelativeLayout
|
||||
<ImageView
|
||||
android:id="@+id/imageProductPicture"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintDimensionRatio="16:9"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:paddingLeft="50dp"
|
||||
android:paddingRight="50dp"
|
||||
android:gravity="center">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageProductPicture"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/default_product"
|
||||
app:layout_constraintDimensionRatio="16:9"
|
||||
/>
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:layout_marginBottom="1dp"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center"
|
||||
android:background="@color/white"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
android:layout_height="240dp"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:paddingTop="5dp"
|
||||
android:paddingBottom="5dp"
|
||||
android:paddingLeft="20dp"
|
||||
android:paddingRight="20dp"
|
||||
android:src="@drawable/default_product" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textProductName"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="50dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/product_name"
|
||||
android:textSize="24sp"
|
||||
android:textColor="@color/black"/>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="180dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:layout_marginBottom="1dp"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center"
|
||||
android:background="@color/white"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
android:textColor="@color/black" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/dispatchtips"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="180dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/pick_up_goods_within_15_seconds_after_pick_up_port_opened"
|
||||
android:textSize="65sp"
|
||||
android:textColor="@color/red"/>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
android:textColor="@color/primary" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonOk"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:backgroundTint="@color/white"
|
||||
android:layout_height="50dp"
|
||||
android:backgroundTint="@color/warning"
|
||||
android:text="@string/cancel_40"
|
||||
android:textSize="20sp"
|
||||
android:textColor="@color/black" />
|
||||
android:textColor="@color/onWarning" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="40dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/gifts"
|
||||
android:textColor="@color/white"
|
||||
@ -43,7 +43,7 @@
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="@string/enter_gift_or_scan_qrcode"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/invoice_account"
|
||||
android:textColor="@color/white"
|
||||
@ -43,7 +43,7 @@
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="@string/scan_vehicle"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="40dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/select_combination"
|
||||
android:textColor="@color/white"
|
||||
|
||||
@ -9,80 +9,76 @@
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/light_gray"
|
||||
android:background="@color/cardSurface"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<!-- 標題列 -->
|
||||
<TextView
|
||||
android:id="@+id/textViewTitle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/primary"
|
||||
android:gravity="center"
|
||||
android:text="@string/member_card_pickup_title"
|
||||
android:textColor="@color/white"
|
||||
android:textColor="@color/onPrimary"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<!-- 資訊區:金額、提示文字、交易狀態 -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="300dp"
|
||||
android:layout_marginBottom="1dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/white"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
android:layout_marginBottom="1dp"
|
||||
android:orientation="vertical"
|
||||
android:paddingVertical="30dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:text="無需付款"
|
||||
android:textColor="@color/primary"
|
||||
android:textSize="40sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:text="請將員工卡靠近讀卡機"
|
||||
android:textColor="@color/primary"
|
||||
android:textSize="25sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textStatus"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:text="@string/please_tap_member_card"
|
||||
android:textColor="@color/red"
|
||||
android:textSize="35sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textDetectedCardNo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:gravity="center"
|
||||
android:text=""
|
||||
android:text="交易狀態:等待感應"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="25sp" />
|
||||
android:textSize="15sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 卡號輸入區 -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:background="@color/white"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageNfc"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="250dp"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
app:srcCompat="@drawable/checkout_nfc_card" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="20dp"
|
||||
android:gravity="center"
|
||||
android:background="@color/white"
|
||||
android:orientation="vertical">
|
||||
android:layout_marginBottom="1dp"
|
||||
android:orientation="vertical"
|
||||
android:padding="20dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="感應卡號:"
|
||||
android:text="卡號資訊:"
|
||||
android:textSize="20sp"
|
||||
android:textColor="@color/black" />
|
||||
|
||||
@ -96,34 +92,70 @@
|
||||
android:hint="請感應卡片"
|
||||
android:inputType="text"
|
||||
android:textSize="30sp"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/primary"
|
||||
android:textStyle="bold"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 支援方式示意圖區 -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/white"
|
||||
android:layout_marginBottom="1dp"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
android:orientation="vertical"
|
||||
android:paddingVertical="12dp">
|
||||
|
||||
<Button
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="180dp"
|
||||
android:background="@null"
|
||||
android:scaleType="fitCenter"
|
||||
app:srcCompat="@drawable/payment_accepted_types_idcard" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 提示圖區(滿版) -->
|
||||
<ImageView
|
||||
android:id="@+id/imageNfc"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitXY"
|
||||
app:srcCompat="@drawable/payment_channel_idcard" />
|
||||
|
||||
<!-- 底部按鈕列 -->
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="16dp">
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/buttonCancel"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:backgroundTint="@color/white"
|
||||
style="@style/Widget.MaterialComponents.Button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="64dp"
|
||||
android:paddingHorizontal="0dp"
|
||||
android:backgroundTint="@color/warning"
|
||||
android:text="@string/cancel_40"
|
||||
android:textSize="20sp"
|
||||
android:textColor="@color/black" />
|
||||
|
||||
<!-- Hidden simulation button for testing card 0640741922 -->
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp"
|
||||
app:elevation="4dp"
|
||||
app:cornerRadius="8dp" />
|
||||
|
||||
<!-- 隱藏模擬按鈕 (測試卡號 0640741922) -->
|
||||
<View
|
||||
android:id="@+id/viewSimulateTap"
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_gravity="end|center_vertical"
|
||||
android:background="@android:color/transparent" />
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="40dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/cart"
|
||||
android:textColor="@color/white"
|
||||
@ -44,7 +44,7 @@
|
||||
android:layout_weight="1.15"
|
||||
android:gravity="center|end"
|
||||
android:text="@string/total_amount"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@ -56,7 +56,7 @@
|
||||
android:layout_weight="0.85"
|
||||
android:gravity="center|start"
|
||||
android:text="0"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:background="@color/red"
|
||||
android:background="@color/error"
|
||||
android:gravity="center"
|
||||
android:text="@string/pickup_code"
|
||||
android:textColor="@color/white"
|
||||
@ -43,7 +43,7 @@
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="@string/enter_pickup_code_or_scan_qrcode"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
@ -4,14 +4,14 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/black"
|
||||
android:background="@color/background"
|
||||
tools:context=".ui.devs.electric.ElectricFragment">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recyclerBuy"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:background="@color/light_gray"
|
||||
android:background="@color/background"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@ -4,14 +4,14 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/black"
|
||||
android:background="@color/background"
|
||||
tools:context=".ui.devs.vmc.VmcFragment">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recyclerBuy"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:background="@color/light_gray"
|
||||
android:background="@color/background"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@ -117,7 +117,7 @@
|
||||
android:gravity="center"
|
||||
android:text="NT $0"
|
||||
android:textSize="80sp"
|
||||
android:textColor="@color/red"
|
||||
android:textColor="@color/error"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
|
||||
@ -1,136 +1,112 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<com.google.android.material.card.MaterialCardView 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="wrap_content"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingBottom="1dp"
|
||||
>
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginBottom="4dp"
|
||||
app:cardBackgroundColor="@color/cardSurface"
|
||||
app:cardCornerRadius="8dp"
|
||||
app:cardElevation="4dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="70dp"
|
||||
android:baselineAligned="false"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingBottom="1dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textSlot"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="0.3"
|
||||
android:gravity="center"
|
||||
android:text="0"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:visibility="visible" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageProductPicture"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:paddingTop="5dp"
|
||||
android:paddingBottom="5dp"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/default_product" />
|
||||
|
||||
<!-- 商品名稱 + 出貨狀況標籤(垂直排列) -->
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="70dp"
|
||||
android:background="@color/white"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textSlot"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="0.3"
|
||||
android:gravity="center"
|
||||
android:text="0"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:visibility="visible" />
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingTop="5dp"
|
||||
android:paddingBottom="5dp"
|
||||
android:layout_weight="1">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageProductPicture"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/default_product"
|
||||
app:layout_constraintDimensionRatio="16:9" />
|
||||
</RelativeLayout>
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="3"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center_vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textProductName"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="3"
|
||||
android:gravity="center"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="start"
|
||||
android:text="@string/product_name"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textCount"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="0.5"
|
||||
android:gravity="right|center"
|
||||
android:text="0"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:text="/"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="0.5">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textQuantity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="left|center"
|
||||
android:text="0"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold" />
|
||||
</RelativeLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textDelete"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="@string/delete"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:visibility="gone" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="1dp"
|
||||
android:background="@color/white"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textDispatchStatus"
|
||||
android:layout_width="0dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:gravity="center"
|
||||
android:layout_weight="2"
|
||||
android:layout_marginTop="4dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:paddingTop="3dp"
|
||||
android:paddingBottom="3dp"
|
||||
android:text="@string/shipping_status"
|
||||
android:textSize="24sp"/>
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textCount"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1.5"
|
||||
android:gravity="center"
|
||||
android:text="已出貨數量(0 / 0)"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textDelete"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="@string/delete"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:visibility="gone" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
@ -61,7 +61,7 @@
|
||||
android:id="@+id/textProductName"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/transparent_white"
|
||||
android:background="#80FFFFFF"
|
||||
android:gravity="center"
|
||||
android:text="@string/product_name"
|
||||
android:textSize="20sp" />
|
||||
|
||||
@ -1,70 +1,79 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<com.google.android.material.card.MaterialCardView 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:id="@+id/cardProduct"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingBottom="1dp"
|
||||
>
|
||||
android:layout_margin="8dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
app:cardCornerRadius="12dp"
|
||||
app:cardElevation="4dp"
|
||||
app:cardBackgroundColor="@color/background"
|
||||
app:strokeColor="@color/gray"
|
||||
app:strokeWidth="1dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="80dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:background="@color/white"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textProductId"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="@string/product_number"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold" />
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="16dp">
|
||||
|
||||
<!-- 圖片區域 1:1 -->
|
||||
<ImageView
|
||||
android:id="@+id/imageProductPicture"
|
||||
android:layout_width="110dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/default_product"
|
||||
app:layout_constraintDimensionRatio="16:9"
|
||||
app:layout_constraintDimensionRatio="1:1"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<!-- 商品編號標籤 (左上角) -->
|
||||
<TextView
|
||||
android:id="@+id/textProductName"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="4"
|
||||
android:gravity="center"
|
||||
android:text="@string/product_name"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSlotProductSelect"
|
||||
android:id="@+id/textProductId"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0.9"
|
||||
android:backgroundTint="@color/black"
|
||||
android:textColor="@color/white"
|
||||
android:text="@string/choose" />
|
||||
</LinearLayout>
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:background="@color/primary"
|
||||
android:paddingHorizontal="10dp"
|
||||
android:paddingVertical="4dp"
|
||||
android:textColor="@color/onPrimary"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
<!-- 商品名稱 -->
|
||||
<TextView
|
||||
android:id="@+id/textProductName"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginHorizontal="12dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="2"
|
||||
android:minLines="1"
|
||||
android:text="@string/product_name"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="22sp"
|
||||
android:textStyle="bold"
|
||||
android:gravity="center"
|
||||
app:layout_constraintTop_toBottomOf="@id/imageProductPicture" />
|
||||
|
||||
<!-- 保留隱藏的按鈕 ID 避免 Adapter 崩潰,但設為 GONE -->
|
||||
<Button
|
||||
android:id="@+id/buttonSlotProductSelect"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
@ -12,9 +12,11 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/click"
|
||||
android:textSize="20sp"
|
||||
android:backgroundTint="@color/black"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:textColor="@color/black"
|
||||
android:background="@drawable/button_outline_black"
|
||||
android:backgroundTint="@null"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
||||
@ -1,123 +1,128 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.cardview.widget.CardView 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="350dp">
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
app:cardCornerRadius="8dp"
|
||||
app:cardElevation="2dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:layout_marginBottom="1dp"
|
||||
android:padding="1dp"
|
||||
android:background="@color/white"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toTopOf="@+id/linearLayout2"
|
||||
app:layout_constraintDimensionRatio="16:9"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<RelativeLayout
|
||||
<!-- 商品圖片 1:1 -->
|
||||
<ImageView
|
||||
android:id="@+id/imageProductPicture"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_constraintDimensionRatio="16:9"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:gravity="center">
|
||||
android:layout_height="0dp"
|
||||
android:src="@drawable/default_product"
|
||||
android:scaleType="centerCrop"
|
||||
app:layout_constraintDimensionRatio="1:1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageProductPicture"
|
||||
android:layout_width="1876dp"
|
||||
android:layout_height="323dp"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/default_product"
|
||||
app:layout_constraintDimensionRatio="16:9" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
<!-- 貨道資訊 (左上角) -->
|
||||
<TextView
|
||||
android:id="@+id/textSlot"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:paddingStart="8dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:background="@color/primary"
|
||||
android:text="貨道: 01"
|
||||
android:textColor="@color/onPrimary"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:layout_marginBottom="1dp"
|
||||
android:padding="1dp"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
<!-- 庫存資訊 (右下角) -->
|
||||
<TextView
|
||||
android:id="@+id/textStock"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:paddingStart="8dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:background="@color/gray"
|
||||
android:text="庫存: 0"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/imageProductPicture"
|
||||
app:layout_constraintEnd_toEndOf="@+id/imageProductPicture" />
|
||||
|
||||
<!-- 商品名稱 -->
|
||||
<TextView
|
||||
android:id="@+id/textProductName"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/transparent_white"
|
||||
android:gravity="center"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:text="@string/product_name"
|
||||
android:textSize="20sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textSlot"
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:background="@drawable/rounded_background"
|
||||
android:gravity="center"
|
||||
android:text="000"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="20sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textPrice"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:background="@drawable/rounded_background_red"
|
||||
android:gravity="center"
|
||||
android:text="NT$ 000"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="20sp"
|
||||
app:layout_constraintBottom_toTopOf="@+id/linearLayout2"
|
||||
app:layout_constraintEnd_toEndOf="@+id/linearLayout" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/mask"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
android:visibility="visible"
|
||||
android:background="@color/transparent_black"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textMask"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:text="@string/product_sold_out"
|
||||
android:textColor="@color/white"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
android:textSize="30sp"/>
|
||||
</LinearLayout>
|
||||
app:layout_constraintTop_toBottomOf="@+id/imageProductPicture"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
<!-- 商品價格 (左下角) -->
|
||||
<TextView
|
||||
android:id="@+id/textPrice"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:text="NT$ 000"
|
||||
android:textColor="@color/primary"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintTop_toBottomOf="@+id/textProductName"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent" />
|
||||
|
||||
<!-- 售罄覆蓋層 -->
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/mask"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="@color/transparent_black"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textMask"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/product_sold_out"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
@ -1,104 +1,211 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
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="wrap_content"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingBottom="1dp"
|
||||
>
|
||||
android:layout_margin="6dp"
|
||||
app:cardCornerRadius="8dp"
|
||||
app:cardElevation="3dp"
|
||||
app:cardBackgroundColor="@color/cardSurface"
|
||||
app:strokeWidth="0dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="110dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:background="@color/white"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="15dp">
|
||||
|
||||
<!-- 第一列:貨道編號 | 啟用狀態 -->
|
||||
<TextView
|
||||
android:id="@+id/textSlot"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/lane_number"
|
||||
android:textSize="24sp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:textStyle="bold"/>
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="15sp"
|
||||
android:textStyle="bold"
|
||||
android:text="貨道1"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/layoutLock" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/layoutLock"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textLockStatus"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:textSize="15sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="@color/black"
|
||||
android:text="販售中" />
|
||||
|
||||
<com.google.android.material.materialswitch.MaterialSwitch
|
||||
android:id="@+id/textLock"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:scaleX="0.8"
|
||||
android:scaleY="0.8"
|
||||
app:switchPadding="0dp"
|
||||
app:thumbTint="@color/switch_thumb_selector"
|
||||
app:trackTint="@color/switch_track_selector" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 第二列:圖片區域 1:1 -->
|
||||
<ImageView
|
||||
android:id="@+id/imageProduct"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:src="@drawable/slot_no_product"
|
||||
app:layout_constraintTop_toBottomOf="@id/layoutLock"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintDimensionRatio="1:1"
|
||||
android:layout_marginTop="16dp"
|
||||
android:scaleType="centerCrop"
|
||||
android:background="#0D000000" /> <!-- 預留空間,灰色透明度5% -->
|
||||
|
||||
<View
|
||||
android:id="@+id/viewProductMask"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="@color/transparent_black"
|
||||
app:layout_constraintTop_toTopOf="@id/imageProduct"
|
||||
app:layout_constraintBottom_toBottomOf="@id/imageProduct"
|
||||
app:layout_constraintStart_toStartOf="@id/imageProduct"
|
||||
app:layout_constraintEnd_toEndOf="@id/imageProduct"
|
||||
android:visibility="gone" />
|
||||
|
||||
<!-- 第三列:商品名稱(點擊可選擇商品) -->
|
||||
<TextView
|
||||
android:id="@+id/textProductName"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="4"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="50dp"
|
||||
android:gravity="center"
|
||||
android:paddingHorizontal="0dp"
|
||||
android:paddingVertical="0dp"
|
||||
android:background="@null"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="@string/product_name"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold" />
|
||||
app:layout_constraintTop_toBottomOf="@id/imageProduct"
|
||||
android:layout_marginTop="0dp" />
|
||||
|
||||
<!-- 第四列:庫存數量控制列 - Minus -->
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/buttonCountMinus"
|
||||
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginTop="0dp"
|
||||
android:text="−"
|
||||
android:textSize="30sp"
|
||||
app:backgroundTint="@color/background"
|
||||
android:textColor="@color/primary"
|
||||
app:layout_constraintTop_toBottomOf="@+id/textProductName"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/textCount" />
|
||||
|
||||
<!-- 庫存數量控制列 - Count -->
|
||||
<TextView
|
||||
android:id="@+id/textCount"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="0dp"
|
||||
android:gravity="center"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:text="@string/amount"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"/>
|
||||
android:textSize="22sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="@color/black"
|
||||
android:text="0"
|
||||
app:layout_constraintTop_toTopOf="@+id/buttonCountMinus"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/buttonCountMinus"
|
||||
app:layout_constraintStart_toEndOf="@+id/buttonCountMinus"
|
||||
app:layout_constraintEnd_toStartOf="@+id/buttonCountPlus" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/editCount"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="0dp"
|
||||
android:gravity="center"
|
||||
android:focusableInTouchMode="true"
|
||||
android:focusable="true"
|
||||
android:descendantFocusability="blocksDescendants"
|
||||
android:text="0"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:inputType="number"
|
||||
android:visibility="gone"
|
||||
android:textSize="24sp"
|
||||
android:inputType="numberPassword"
|
||||
android:textSize="22sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="@color/black"
|
||||
android:visibility="gone"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:imeOptions="actionSend"
|
||||
>
|
||||
</EditText>
|
||||
android:background="@android:color/transparent"
|
||||
app:layout_constraintTop_toTopOf="@+id/buttonCountMinus"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/buttonCountMinus"
|
||||
app:layout_constraintStart_toEndOf="@+id/buttonCountMinus"
|
||||
app:layout_constraintEnd_toStartOf="@+id/buttonCountPlus" />
|
||||
|
||||
<!-- 庫存數量控制列 - Plus -->
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/buttonCountPlus"
|
||||
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="60dp"
|
||||
android:text="+"
|
||||
android:textSize="24sp"
|
||||
android:paddingHorizontal="0dp"
|
||||
app:backgroundTint="@color/background"
|
||||
android:textColor="@color/primary"
|
||||
app:layout_constraintTop_toTopOf="@+id/buttonCountMinus"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/buttonCountMinus"
|
||||
app:layout_constraintStart_toEndOf="@+id/textCount"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<!-- 第五列:按鈕 -->
|
||||
<LinearLayout
|
||||
android:id="@+id/layoutButtons"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="10dp"
|
||||
app:layout_constraintTop_toBottomOf="@+id/buttonCountMinus">
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/textDelete"
|
||||
style="@style/Widget.MaterialComponents.Button"
|
||||
app:backgroundTint="@color/warning"
|
||||
android:textColor="@color/onWarning"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="清空貨道" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 隱藏元件,保留避免崩潰 -->
|
||||
<Button
|
||||
android:id="@+id/buttonRestocking"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="補貨"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toBottomOf="@id/buttonCountMinus"
|
||||
app:layout_constraintStart_toStartOf="parent"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textLock"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="@string/lock"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:textColor="@color/light_gray"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"/>
|
||||
android:id="@+id/textIsZg"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="购物车"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toBottomOf="@id/buttonRestocking"
|
||||
app:layout_constraintStart_toStartOf="parent"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textDelete"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="@string/delete"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"/>
|
||||
</LinearLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<resources>
|
||||
<string name="app_name">Taiwan Star</string>
|
||||
<string name="app_name">StarCloud</string>
|
||||
<string name="title_activity_fontend">FontendActivity</string>
|
||||
<string name="title_home">Home</string>
|
||||
<string name="title_dashboard">Dashboard</string>
|
||||
@ -274,6 +274,8 @@
|
||||
<string name="input_complete">Input Complete</string>
|
||||
<!-- dialog_dispatch.xml -->
|
||||
<string name="shipping_goods">Shipping goods</string>
|
||||
<string name="processing">Processing</string>
|
||||
<string name="dispatch_progress">Shipping Progress</string>
|
||||
<string name="product_name">Product Name</string>
|
||||
<string name="error_report">Error Report</string>
|
||||
<!-- dialog_invoice_barcode.xml -->
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<resources>
|
||||
<string name="app_name">Taiwan Star</string>
|
||||
<string name="app_name">StarCloud</string>
|
||||
<string name="title_activity_fontend">FontendActivity</string>
|
||||
<string name="title_home">表紙</string>
|
||||
<string name="title_dashboard">ダッシュボード</string>
|
||||
@ -274,6 +274,8 @@
|
||||
<string name="input_complete">入力完了</string>
|
||||
<!-- dialog_dispatch.xml -->
|
||||
<string name="shipping_goods">商品の発送</string>
|
||||
<string name="processing">処理中</string>
|
||||
<string name="dispatch_progress">出荷進度</string>
|
||||
<string name="product_name">製品名</string>
|
||||
<string name="error_report">エラーレポート</string>
|
||||
<!-- dialog_invoice_barcode.xml -->
|
||||
|
||||
@ -2,6 +2,5 @@
|
||||
<!-- Base application theme. -->
|
||||
<style name="Base.Theme.SmartDevice" parent="Theme.Material3.DayNight.NoActionBar">
|
||||
<!-- Customize your dark theme here. -->
|
||||
<!-- <item name="colorPrimary">@color/my_dark_primary</item> -->
|
||||
</style>
|
||||
</resources>
|
||||
@ -1,64 +1,49 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="black">#272727</color>
|
||||
<color name="white">#FFFFFFFF</color>
|
||||
<color name="red">#FFFF0000</color>
|
||||
<color name="light_gray">#FFA9A9A9</color>
|
||||
<color name="gray">#FFCCCCCC</color>
|
||||
<color name="transparent_black">#AA000000</color>
|
||||
<color name="transparent_white">#80FFFFFF</color>
|
||||
<color name="transparent">#00000000</color>
|
||||
|
||||
<!-- 全域系統色彩系統 (Material 3 標準色系 - 沉穩藍視角) -->
|
||||
<!-- Primary 主色 (#005DAD) -->
|
||||
<!-- ═══════════════════════════════════════════
|
||||
基礎色(骨幹,直接使用)
|
||||
═══════════════════════════════════════════ -->
|
||||
<color name="black">#272727</color> <!-- 主要文字、邊框 -->
|
||||
<color name="white">#FFFFFF</color> <!-- 背景、反色文字 -->
|
||||
<color name="light_gray">#A9A9A9</color> <!-- 停用狀態 -->
|
||||
<color name="gray">#CCCCCC</color> <!-- 邊框、分隔線 -->
|
||||
|
||||
<!-- ═══════════════════════════════════════════
|
||||
工具色
|
||||
═══════════════════════════════════════════ -->
|
||||
<color name="transparent_black">#AA000000</color> <!-- 遮罩層 -->
|
||||
|
||||
<!-- ═══════════════════════════════════════════
|
||||
語意色(兩層架構:色 / on色)
|
||||
on色 = 該背景色上方的文字或圖示顏色
|
||||
═══════════════════════════════════════════ -->
|
||||
|
||||
<!-- Primary 主色 -->
|
||||
<color name="primary">#005DAD</color>
|
||||
<color name="onPrimary">#FFFFFF</color>
|
||||
<color name="primaryContainer">#D1E4FF</color>
|
||||
<color name="onPrimaryContainer">#001D36</color>
|
||||
|
||||
<!-- Secondary 次色 (藍灰色調) -->
|
||||
<color name="secondary">#535F70</color>
|
||||
<color name="onSecondary">#FFFFFF</color>
|
||||
<color name="secondaryContainer">#D7E3F7</color>
|
||||
<color name="onSecondaryContainer">#101C2B</color>
|
||||
|
||||
<!-- Semantic: Success 成功狀態 -->
|
||||
<color name="success">#2E7D32</color>
|
||||
<color name="onSuccess">#FFFFFF</color>
|
||||
<color name="successContainer">#C8E6C9</color>
|
||||
<color name="onSuccessContainer">#003300</color>
|
||||
|
||||
<!-- Semantic: Warning 警告狀態 -->
|
||||
<color name="warning">#EF6C00</color>
|
||||
<color name="onWarning">#FFFFFF</color>
|
||||
<color name="warningContainer">#FFE0B2</color>
|
||||
<color name="onWarningContainer">#4A2600</color>
|
||||
|
||||
<!-- Semantic: Error / Dangerous 錯誤與危險狀態 -->
|
||||
<color name="error">#BA1A1A</color>
|
||||
<color name="onError">#FFFFFF</color>
|
||||
<color name="errorContainer">#FFDAD6</color>
|
||||
<color name="onErrorContainer">#410002</color>
|
||||
|
||||
<!-- Semantic: Info 提示狀態 -->
|
||||
<!-- Info 提示(次要說明、補充資訊) -->
|
||||
<color name="info">#00639B</color>
|
||||
<color name="onInfo">#FFFFFF</color>
|
||||
<color name="infoContainer">#D1E4FF</color>
|
||||
<color name="onInfoContainer">#001D35</color>
|
||||
|
||||
<!-- Background & Surface 背景與表面 (調整為微冷調白) -->
|
||||
<color name="paperColor">#F5F7FA</color>
|
||||
<!-- Success 成功 -->
|
||||
<color name="success">#2E7D32</color>
|
||||
<color name="onSuccess">#FFFFFF</color>
|
||||
|
||||
<color name="surface">#F8F9FF</color>
|
||||
<color name="onSurface">#191C1E</color>
|
||||
<color name="surfaceVariant">#DFE2EB</color>
|
||||
<color name="onSurfaceVariant">#43474E</color>
|
||||
<!-- Warning 警告 -->
|
||||
<color name="warning">#EF6C00</color>
|
||||
<color name="onWarning">#FFFFFF</color>
|
||||
|
||||
<color name="background">#F8F9FF</color>
|
||||
<color name="onBackground">#191C1E</color>
|
||||
<!-- Error 錯誤 -->
|
||||
<color name="error">#BA1A1A</color>
|
||||
<color name="onError">#FFFFFF</color>
|
||||
|
||||
<!-- ═══════════════════════════════════════════
|
||||
背景與表面
|
||||
═══════════════════════════════════════════ -->
|
||||
<color name="background">#F8F9FF</color> <!-- 頁面底層背景 -->
|
||||
<color name="cardSurface">#FFFFFF</color> <!-- 卡片、對話框(與背景形成層次區隔) -->
|
||||
<color name="outline">#73777F</color> <!-- 邊框線 -->
|
||||
|
||||
<!-- Outlines & Dividers 邊框與分隔線 -->
|
||||
<color name="outline">#73777F</color>
|
||||
<color name="outlineVariant">#C3C7CF</color>
|
||||
<color name="divider">#DFE2EB</color>
|
||||
</resources>
|
||||
@ -1,5 +1,5 @@
|
||||
<resources>
|
||||
<string name="app_name">Taiwan Star</string>
|
||||
<string name="app_name">StarCloud</string>
|
||||
<string name="title_activity_fontend">FontendActivity</string>
|
||||
<string name="title_home">Home</string>
|
||||
<string name="title_dashboard">Dashboard</string>
|
||||
@ -184,6 +184,8 @@
|
||||
<string name="input_complete">輸入完成</string>
|
||||
<!-- dialog_dispatch.xml -->
|
||||
<string name="shipping_goods">出貨商品</string>
|
||||
<string name="processing">正在處理</string>
|
||||
<string name="dispatch_progress">出貨進度</string>
|
||||
<string name="product_name">商品名稱</string>
|
||||
<string name="error_report">錯誤回報</string>
|
||||
<!-- dialog_invoice_barcode.xml -->
|
||||
@ -300,7 +302,7 @@
|
||||
<string name="there_is_something_at_the_pickup_port">取貨口有東西,請先取出</string>
|
||||
<string name="i_knew">知道了</string>
|
||||
<string name="input_vehicle">輸入載具</string>
|
||||
<string name="member_card_pickup_title">領取確認</string>
|
||||
<string name="member_card_pickup_title">員工卡支付</string>
|
||||
<string name="please_tap_member_card">請將員工卡靠近讀卡機</string>
|
||||
<string name="sync_product">下載商品資料</string>
|
||||
<string name="sync_product_warning">確定要從雲端下載商品資料嗎?這將會更新所有商品的品名、價格與圖片,並覆蓋目前的資訊。</string>
|
||||
|
||||
@ -2,7 +2,6 @@
|
||||
<!-- Base application theme. -->
|
||||
<style name="Base.Theme.SmartDevice" parent="Theme.Material3.DayNight.NoActionBar">
|
||||
<!-- Customize your light theme here. -->
|
||||
<!-- <item name="colorPrimary">@color/my_light_primary</item> -->
|
||||
</style>
|
||||
|
||||
<style name="Theme.SmartDevice" parent="Base.Theme.SmartDevice" />
|
||||
|
||||