Dola TENG %!s(int64=2) %!d(string=hai) anos
pai
achega
2167be5784

+ 2 - 0
.idea/misc.xml

@@ -4,6 +4,8 @@
     <option name="filePathToZoomLevelMap">
       <map>
         <entry key="../../../../../../layout/custom_preview.xml" value="0.182370820668693" />
+        <entry key="..\:/3-Work/Android/klaklouk-android/app/src/main/res/layout/activity_main.xml" value="0.36666666666666664" />
+        <entry key="..\:/3-Work/Android/klaklouk-android/app/src/main/res/layout/content_main.xml" value="0.36666666666666664" />
         <entry key="..\:/3-Work/Android/rat-android/app/src/main/res/drawable/app_background.xml" value="0.3675" />
         <entry key="..\:/3-Work/Android/rat-android/app/src/main/res/drawable/bg_cicle_result_status.xml" value="0.3675" />
         <entry key="..\:/3-Work/Android/rat-android/app/src/main/res/drawable/bg_circle_white.xml" value="0.3675" />

+ 4 - 4
app/src/dev/java/com/sambath/klaklouk_main/config/Config.kt

@@ -3,9 +3,9 @@ package com.sambath.klaklouk_main.config
 object Config {
     //development
     const val BASE_URL = "http://143.198.207.249:30401"
-    const val SOCKET_1 = "http://159.89.118.124:3082/chicken-online"
-    const val SOCKET_2 = "http://159.89.118.124:3082/sabong-sl"
-    const val SOCKET_3 = "http://159.89.118.124:3082/sabong-sl-3"
-    const val SOCKET_4 = "http://159.89.118.124:3082/sabong-sl-4"
+    const val SOCKET_1 = "http://143.198.207.249:30406/klaklouk-1"
+    const val SOCKET_2 = "http://143.198.207.249:30406/klaklouk-2"
+    const val SOCKET_3 = "http://143.198.207.249:30406/klaklouk-3"
+    const val SOCKET_4 = "http://143.198.207.249:30406/klaklouk-4"
     const val APP_ID = "62fba94b2efe5521de0c3a34"
 }

+ 17 - 0
app/src/main/java/com/sambath/klaklouk_main/app/ShareActivity.kt

@@ -174,6 +174,23 @@ class ShareActivity : AutoLogoutBaseActivity() {
             })
             popup.show()
         }
+        shareViewModel.getStartCountDown.observe(this, Observer {
+            if (!it.isNullOrEmpty()) {
+                val obj = JSONObject(it)
+                var countDown = obj.getInt(K.CountDown)
+                var type = obj.getString(K.Type)
+
+                btnBettingTime.text = countDown.toString()
+
+                if (type.equals(K.Close, ignoreCase = true)) {
+                    btnBettingStatus.text = K.Close
+                    btnBettingStatus.isEnabled = false
+                } else if (type.equals(K.Open, ignoreCase = true)) {
+                    btnBettingStatus.text = K.Open
+                    btnBettingStatus.isEnabled = true
+                }
+            }
+        })
         shareViewModel.getUpdateChannelInfo.observe(this, Observer {
             Log.d("Socket", "getUpdateChannelInfo" + it.toString())
             if (!it.isNullOrEmpty()) {

+ 8 - 8
app/src/main/java/com/sambath/klaklouk_main/app/ShareViewModel.kt

@@ -102,7 +102,8 @@ class ShareViewModel(
     override fun onUpdateUserInfo(data: String?) {
         updateUserInfo.postValue(data)
     }
-    open fun resetUserInfo(){
+
+    open fun resetUserInfo() {
         updateUserInfo.postValue("")
     }
 
@@ -130,6 +131,12 @@ class ShareViewModel(
         resetAmount.postValue(data)
     }
 
+    private val startCountDown = MutableLiveData<String>()
+    val getStartCountDown: LiveData<String> = startCountDown
+    override fun onStartCountDown(data: String?) {
+        startCountDown.postValue(data)
+    }
+
     private val currentBetting = MutableLiveData<Boolean>()
     val getUpdateFlagMain: LiveData<Boolean> get() = currentBetting
     fun setUpdateFlagMain(isUpdate: Boolean) {
@@ -142,13 +149,6 @@ class ShareViewModel(
         currentBettingData.postValue(currentBetData)
     }
 
-//    private val channel = MutableLiveData<ChannelData>()
-//    val getChannel: LiveData<ChannelData> get() = channel
-//
-//    fun setChannel(channelObj: ChannelData) {
-//        channel.postValue(channelObj)
-//    }
-
     private val channelInfo = MutableLiveData<ChannelData>()
     val getChannelInfo: LiveData<ChannelData> get() = channelInfo
 

+ 6 - 0
app/src/main/java/com/sambath/klaklouk_main/remote/K.kt

@@ -33,5 +33,11 @@ class K {
         const val AmountRed = "amount_red"
         const val AmountBlue = "amount_blue"
         const val date = "date"
+
+        //Client CountDown
+        const val CountDown = "countDown"
+        const val Type = "type"
+        const val IsPlay = "isPlay"
+        const val IsCountDown = "isCountDown"
     }
 }

+ 2 - 1
app/src/main/java/com/sambath/klaklouk_main/remote/service/EventListener.java

@@ -4,7 +4,7 @@ public interface EventListener {
 
     void onConnect();
 
-    void onConnectionError() ;
+    void onConnectionError();
 
     void onReconnect();
 
@@ -26,4 +26,5 @@ public interface EventListener {
 
     void onResetAmount(String data);
 
+    void onStartCountDown(String data);
 }

+ 10 - 2
app/src/main/java/com/sambath/klaklouk_main/remote/service/SocketService.java

@@ -33,18 +33,19 @@ public class SocketService extends BaseObservable<EventListener> {
     private static final String EVENT_UPDATE_PAYOUT = "client-update-payout";
     private static final String EVENT_REVERSE_RESULT = "client-reserves-result";
     private static final String EVENT_RESET_AMOUNT = "client-reset-amount";
+    private static final String EVENT_START_COUNT_DOWN = "client-start-count-down";
     private Socket mSocket;
 
     public void startListening(String token, int channelType) throws URISyntaxException {
         IO.Options options = IO.Options.builder()
                 .setExtraHeaders(singletonMap("authorization", singletonList(token)))
                 .build();
-        Log.d("Socket", "startListening mSocket"+ channelType);
+        Log.d("Socket", "startListening mSocket" + channelType);
         if (channelType == 2) {
             mSocket = IO.socket(URI.create(SOCKET_2), options);
         } else if (channelType == 3) {
             mSocket = IO.socket(URI.create(SOCKET_3), options);
-        } else if(channelType == 4) {
+        } else if (channelType == 4) {
             mSocket = IO.socket(URI.create(SOCKET_4), options);
         } else {
             mSocket = IO.socket(URI.create(SOCKET_1), options);
@@ -57,6 +58,7 @@ public class SocketService extends BaseObservable<EventListener> {
         mSocket.on(EVENT_UPDATE_PAYOUT, updatePayout);
         mSocket.on(EVENT_REVERSE_RESULT, reverseResult);
         mSocket.on(EVENT_RESET_AMOUNT, resetAmount);
+        mSocket.on(EVENT_START_COUNT_DOWN, startCountDown);
         mSocket.on(EVENT_DISCONNECT, disconnectListener);
         mSocket.on(EVENT_CONNECT_ERROR, connectionErrorListener);
         mSocket.connect();
@@ -104,6 +106,12 @@ public class SocketService extends BaseObservable<EventListener> {
         for (EventListener listener : getListeners())
             listener.onResetAmount(rawMessage);
     };
+    private Emitter.Listener startCountDown = args -> {
+        Log.d("Socket", "startCountDown socketservice");
+        final String rawMessage = args[0].toString();
+        for (EventListener listener : getListeners())
+            listener.onStartCountDown(rawMessage);
+    };
     private Emitter.Listener connectListener = args -> {
         Log.d("Socket", "onConnect s...fghfhgfhgfhfghgf");
         for (EventListener listener : getListeners())

+ 18 - 0
app/src/main/java/com/sambath/klaklouk_main/screen/main/cflive/betting/CfBetFragment.kt

@@ -23,6 +23,7 @@ import com.sambath.klaklouk_main.util.PrefHelper
 import com.squareup.moshi.Moshi
 import kotlinx.android.synthetic.*
 import kotlinx.android.synthetic.main.app_bar.*
+import kotlinx.android.synthetic.main.content_main.*
 import kotlinx.android.synthetic.main.fragment_cf_betting.*
 import org.json.JSONArray
 import org.json.JSONObject
@@ -265,6 +266,23 @@ class CfBetFragment : BaseFragment(R.layout.fragment_cf_betting) {
                 }
             }
         })
+        shareViewModel.getStartCountDown.observe(viewLifecycleOwner, Observer {
+            if (!it.isNullOrEmpty()) {
+                val obj = JSONObject(it)
+                var countDown = obj.getInt(K.CountDown)
+                var type = obj.getString(K.Type)
+
+                btnBettingTime.text = countDown.toString()
+
+                if (type.equals(K.Close, ignoreCase = true)) {
+                    btnBettingStatus.text = K.Close
+                    btnBettingStatus.isEnabled = false
+                } else if (type.equals(K.Open, ignoreCase = true)) {
+                    btnBettingStatus.text = K.Open
+                    btnBettingStatus.isEnabled = true
+                }
+            }
+        })
         shareViewModel.getResetAmount.observe(viewLifecycleOwner, Observer {
             //Log.d("getResetAmount", "onUpdatePlayerBetting" + it)
             /*txtMeronAmount.text = "0"

+ 44 - 2
app/src/main/res/layout/content_main.xml

@@ -89,6 +89,48 @@
 
         </LinearLayout>
 
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_marginStart="2dp"
+            android:layout_marginEnd="2dp"
+            android:layout_weight="1"
+            android:background="@drawable/bg_main_color"
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@+id/txtTime"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:text="@string/label_time"
+                android:textColor="@android:color/white"
+                android:textStyle="bold" />
+
+            <androidx.constraintlayout.widget.ConstraintLayout
+                android:layout_width="match_parent"
+                android:layout_height="37dp"
+                android:background="@drawable/bg_black">
+
+                <com.google.android.material.button.MaterialButton
+                    android:id="@+id/btnBettingTime"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:backgroundTint="@color/betting_color_state"
+                    android:text="0"
+                    android:textColor="@android:color/white"
+                    android:textSize="12sp"
+                    app:cornerRadius="120dp"
+                    app:layout_constraintBottom_toBottomOf="parent"
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toTopOf="parent"
+                    app:layout_constraintVertical_bias="0.0" />
+            </androidx.constraintlayout.widget.ConstraintLayout>
+
+        </LinearLayout>
+
         <LinearLayout
             android:layout_width="0dp"
             android:layout_height="match_parent"
@@ -123,10 +165,10 @@
             android:layout_width="0dp"
             android:layout_height="match_parent"
             android:layout_marginStart="2dp"
-            android:visibility="gone"
             android:layout_weight="1"
             android:background="@drawable/bg_main_color"
-            android:orientation="vertical">
+            android:orientation="vertical"
+            android:visibility="gone">
 
             <TextView
                 android:layout_width="match_parent"

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

@@ -13,7 +13,7 @@
     <string name="err_wrong_pwd">សូមផ្ទៀងផ្ទាត់លេខសម្ងាត់ឡើងវិញ</string>
     <string name="label_winner">WINNER</string>
     <string name="label_status">STATUS</string>
-    <string name="label_fight_no">Fight No.</string>
+    <string name="label_fight_no">FIGHT NO.</string>
     <string name="login_title">LOGIN TO YOUR ACCOUNT</string>
     <string name="label_username">USERNAME</string>
     <string name="label_password">PASSWORD</string>
@@ -86,6 +86,7 @@
     <string name="number_six">Number-6</string>
     <string name="number_seven">Number-7</string>
     <string name="number_eight">Number-8</string>
+    <string name="label_time">TIME</string>
     <!--    <string name="hello_first_fragment">Hello first fragment</string>-->
     <!--    <string name="hello_second_fragment">Hello second fragment. Arg: %1$s</string>-->
 </resources>