pinpad sound enable/disable toggle added

This commit is contained in:
moon 2026-05-06 15:27:19 +06:30
parent 6f3f6d553b
commit 9c8dc0be95
4 changed files with 115 additions and 1 deletions

View File

@ -4,6 +4,8 @@ import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import androidx.databinding.ObservableBoolean;
import com.nexgo.oaf.apiv3.APIProxy; import com.nexgo.oaf.apiv3.APIProxy;
import com.nexgo.oaf.apiv3.DeviceEngine; import com.nexgo.oaf.apiv3.DeviceEngine;
import com.nexgo.oaf.apiv3.DeviceInfo; import com.nexgo.oaf.apiv3.DeviceInfo;
@ -12,6 +14,7 @@ import com.nexgo.oaf.apiv3.device.printer.AlignEnum;
import com.nexgo.oaf.apiv3.device.printer.GrayLevelEnum; import com.nexgo.oaf.apiv3.device.printer.GrayLevelEnum;
import com.nexgo.oaf.apiv3.device.printer.LineOptionEntity; import com.nexgo.oaf.apiv3.device.printer.LineOptionEntity;
import com.nexgo.oaf.apiv3.device.printer.Printer; import com.nexgo.oaf.apiv3.device.printer.Printer;
import com.utsmyanmar.baselib.BaseApplication;
import com.utsmyanmar.baselib.fragment.DataBindingFragment; import com.utsmyanmar.baselib.fragment.DataBindingFragment;
import com.utsmyanmar.baselib.network.model.sirius.SiriusHost; import com.utsmyanmar.baselib.network.model.sirius.SiriusHost;
import com.utsmyanmar.baselib.network.model.sirius.SiriusMerchant; import com.utsmyanmar.baselib.network.model.sirius.SiriusMerchant;
@ -20,12 +23,14 @@ import com.utsmyanmar.baselib.util.DataBindingConfig;
import com.utsmyanmar.paylibs.Constant; import com.utsmyanmar.paylibs.Constant;
import com.utsmyanmar.paylibs.sign_on.EchoTestProcess; import com.utsmyanmar.paylibs.sign_on.EchoTestProcess;
import com.utsmyanmar.paylibs.sign_on.SignOnListener; import com.utsmyanmar.paylibs.sign_on.SignOnListener;
import com.utsmyanmar.paylibs.utils.LogUtil;
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation; import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
import com.utsmm.kbz.BR; import com.utsmm.kbz.BR;
import com.utsmm.kbz.R; import com.utsmm.kbz.R;
import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel; import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel;
import java.util.List; import java.util.List;
import java.util.Observable;
public class NaviMainFragment extends DataBindingFragment { public class NaviMainFragment extends DataBindingFragment {
@ -115,6 +120,36 @@ public class NaviMainFragment extends DataBindingFragment {
public class ClickEvent { public class ClickEvent {
private static final String PREF_NAME = "pinpad_prefs";
private static final String KEY_PINPAD_SOUND = "pinpad_sound_enabled";
public final ObservableBoolean pinpadSoundEnabled;
public ClickEvent() {
boolean savedValue = loadPinpadSoundState();
this.pinpadSoundEnabled = new ObservableBoolean(savedValue);
BaseApplication.getInstance().deviceEngine.getPlatform().enablePinpadBeep(savedValue);
}
public boolean loadPinpadSoundState(){
return BaseApplication.getInstance().getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE).getBoolean(KEY_PINPAD_SOUND, true);
}
public void savePinpadSoundState(boolean enabled){
BaseApplication.getInstance().getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE).edit().putBoolean(KEY_PINPAD_SOUND, enabled).apply();
}
public void onClickPinpadSound(){
boolean newState = !pinpadSoundEnabled.get();
int result = BaseApplication.getInstance().deviceEngine.getPlatform().enablePinpadBeep(newState);
if(result == SdkResult.Success){
pinpadSoundEnabled.set(newState);
savePinpadSoundState(newState);
// LogUtil.d("NaviMainFragment", "pinpad enabled");
}
}
public void onClickEcho() { public void onClickEcho() {
showLoadingDialog("Sending Echo!"); showLoadingDialog("Sending Echo!");
processEchoTest(false); processEchoTest(false);

View File

@ -5,6 +5,7 @@
<data> <data>
<import type="androidx.databinding.ObservableBoolean"/>
<variable <variable
name="sharedViewModel" name="sharedViewModel"
type="com.utsmm.kbz.ui.core_viewmodel.SharedViewModel" /> type="com.utsmm.kbz.ui.core_viewmodel.SharedViewModel" />
@ -376,6 +377,84 @@
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
tools:fontFamily="sans-serif-medium" /> tools:fontFamily="sans-serif-medium" />
<!-- Pinpad Sound Card -->
<androidx.cardview.widget.CardView
android:id="@+id/pinpadSoundCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
android:clickable="true"
android:foreground="?android:attr/selectableItemBackground"
android:onClick="@{()->click.onClickPinpadSound()}"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="16dp"
app:cardElevation="2dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="20dp">
<androidx.cardview.widget.CardView
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginEnd="16dp"
app:cardBackgroundColor="@color/colorPrimary"
app:cardCornerRadius="24dp"
app:cardElevation="0dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center"
android:src="@drawable/ic_audio"
app:tint="@color/white" />
</androidx.cardview.widget.CardView>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/rubik_medium"
android:text="Enable Pinpad Sound"
android:textColor="@color/colorTextTitle"
android:textSize="18sp"
android:textStyle="bold"
tools:fontFamily="sans-serif-medium" />
<TextView
android:id="@+id/pinpadSoundSummary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:fontFamily="@font/rubik_regular"
android:text="Pinpad key press sound disabled"
android:textColor="@color/colorTextContent"
android:textSize="14sp"
tools:fontFamily="sans-serif" />
</LinearLayout>
<Switch
android:id="@+id/pinpadSoundSwitch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:checked="@{click.pinpadSoundEnabled}"
android:clickable="false"
android:focusable="false" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- Function Card --> <!-- Function Card -->
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView

View File

@ -1,2 +1,2 @@
configurations.maybeCreate("default") configurations.maybeCreate("default")
artifacts.add("default", file('nexgo-smartpos-sdk-v3.08.006_20241216.aar')) artifacts.add("default", file('nexgo-smartpos-sdk-v3.08.013_20260416.aar'))

Binary file not shown.