Pārlūkot izejas kodu

+ add apong
+ bug still exist (not sending token when installed)

Dola TENG 2 gadi atpakaļ
vecāks
revīzija
108cc23959

+ 1 - 0
.idea/misc.xml

@@ -67,6 +67,7 @@
         <entry key="..\:/PartTimeProject/Yuki/Yuki-Mobile/app/src/main/res/layout/view_square.xml" value="0.18802083333333333" />
         <entry key="..\:/PartTimeProject/Yuki/Yuki-Mobile/app/src/main/res/mipmap-anydpi-v26/ic_logo.xml" value="0.196" />
         <entry key="..\:/android/SBC_Main_Android/app/src/main/res/drawable/app_background.xml" value="0.185" />
+        <entry key="..\:/android/SBC_Main_Android/app/src/main/res/layout/activity_login.xml" value="0.25416666666666665" />
         <entry key="..\:/android/SBC_Main_Android/app/src/main/res/layout/app_bar.xml" value="0.25416666666666665" />
         <entry key="..\:/android/SBC_Main_Android/app/src/main/res/layout/bet_detail_item.xml" value="0.25416666666666665" />
         <entry key="..\:/android/SBC_Main_Android/app/src/main/res/layout/betting_detail.xml" value="0.25416666666666665" />

+ 18 - 1
app/src/main/AndroidManifest.xml

@@ -10,7 +10,13 @@
     <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
-    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
+    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
+
+    <queries>
+        <intent>
+            <action android:name="android.intent.action.MAIN" />
+        </intent>
+    </queries>
 
     <meta-data
         android:name="firebase_crashlytics_collection_enabled"
@@ -26,6 +32,17 @@
         android:usesCleartextTraffic="true"
         tools:targetApi="m">
 
+        <receiver
+            android:name="com.khmer9.sbcmain.screen.main.PackageChangeReceiver"
+            android:exported="true">
+            <intent-filter android:priority="999">
+                <action android:name="android.intent.action.PACKAGE_FULLY_REMOVED" />
+                <action android:name="android.intent.action.PACKAGE_CHANGED" />
+
+                <data android:scheme="package" />
+            </intent-filter>
+        </receiver>
+
         <provider
             android:name="androidx.core.content.FileProvider"
             android:authorities="${applicationId}.provider"

+ 4 - 23
app/src/main/java/com/khmer9/sbcmain/app/DownloadController.kt

@@ -9,12 +9,10 @@ import android.net.Uri
 import android.os.Build
 import android.os.Bundle
 import android.os.Environment
-import android.os.Handler
-import android.util.Log
 import android.widget.Toast
 import androidx.core.content.FileProvider
 import com.khmer9.sbcmain.R
-import okhttp3.internal.wait
+import com.khmer9.sbcmain.screen.main.PackageChangeReceiver
 import java.io.File
 
 
@@ -80,16 +78,7 @@ class DownloadController(private val context: Context, private val url: String,
                     context.unregisterReceiver(this)
                     (context as ShareActivity).apply {
                         startActivity(install)
-
-                        Handler().postDelayed({
-                            val launchIntent = packageManager.getLaunchIntentForPackage("com.sambath.apong")
-                            if (launchIntent != null) {
-                                launchIntent?.putExtra("token", token)
-                                Log.d("XXX>>>", "luanch activity")
-                                startActivity(launchIntent)
-                                finish()
-                            }
-                        }, 1000)
+                        PackageChangeReceiver.token = token
                         //finish()
                     }
                 } else {
@@ -107,18 +96,10 @@ class DownloadController(private val context: Context, private val url: String,
                     bundle.putString("token", token)
                     install.putExtra("token", bundle)
 
-                    //context.unregisterReceiver(this)
+                    context.unregisterReceiver(this)
                     (context as ShareActivity).apply {
                         startActivity(install)
-
-                        Handler().postDelayed({
-                            val launchIntent = packageManager.getLaunchIntentForPackage("com.sambath.apong")
-                            if (launchIntent != null) {
-                                launchIntent?.putExtra("token", token)
-                                startActivity(launchIntent)
-                                finish()
-                            }
-                        }, 3000)
+                        PackageChangeReceiver.token = token
                         //finish()
                     }
                 }

+ 1 - 1
app/src/main/java/com/khmer9/sbcmain/screen/main/MainFragment.kt

@@ -49,7 +49,7 @@ class MainFragment : BaseFragment(R.layout.layout_fragment_main_yuki) {
     private val COCK_FIGHT_PACKAGE = "com.sambath.sbc"
 
     private val APONG_APP_ID = "631c1d1a0d213229fc5fd11a"
-    private val APONG_DOWNLOAD = "https://www.dropbox.com/s/1dnq57w73egso9z/APONG_devDebug_1.0.1-dev.apk?dl=1"
+    private val APONG_DOWNLOAD = "https://www.dropbox.com/s/2aht1p54yvpnb4e/APONG_devDebug_1.0.12-dev.apk?dl=1"
     private val APONG_PACKAGE = "com.sambath.apong"
 
     override fun onCreate(savedInstanceState: Bundle?) {

+ 43 - 0
app/src/main/java/com/khmer9/sbcmain/screen/main/PackageChangeReceiver.kt

@@ -0,0 +1,43 @@
+package com.khmer9.sbcmain.screen.main
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.widget.Toast
+
+class PackageChangeReceiver : BroadcastReceiver() {
+    companion object {
+        var token: String? = null
+    }
+
+    override fun onReceive(context: Context?, intent: Intent?) {
+        // fetching package names from extras
+        val packageName = intent?.data?.encodedSchemeSpecificPart
+        when (intent?.action) {
+            Intent.ACTION_PACKAGE_FULLY_REMOVED -> Toast.makeText(
+                context,
+                "${packageName.toString()} uninstalled",
+                Toast.LENGTH_SHORT
+            ).show()
+
+            Intent.ACTION_PACKAGE_CHANGED -> {
+                Toast.makeText(
+                    context,
+                    "${packageName.toString()} installed",
+                    Toast.LENGTH_SHORT
+                ).show()
+
+                try {
+                    val launchIntent = context?.packageManager?.getLaunchIntentForPackage(packageName.toString())
+                    if (launchIntent != null) {
+                        if (token != null) {
+                            launchIntent?.putExtra("token", token)
+                            context?.startActivity(launchIntent)
+                        }
+                    }
+                } catch (e: Exception) {
+                }
+            }
+        }
+    }
+}

+ 63 - 56
app/src/main/res/layout/activity_login.xml

@@ -1,14 +1,13 @@
 <?xml version="1.0" encoding="utf-8"?>
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    xmlns:tools="http://schemas.android.com/tools"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:background="@drawable/app_background"
     tools:context=".screen.login.LoginActivity">
 
 
-
     <androidx.constraintlayout.widget.Guideline
         android:id="@+id/left_guideline"
         android:layout_width="wrap_content"
@@ -24,155 +23,163 @@
         app:layout_constraintGuide_percent="0.90" />
 
     <View
+        android:id="@+id/v_bg"
         android:layout_width="0dp"
         android:layout_height="350dp"
-        android:id="@+id/v_bg"
         android:background="@drawable/bg_white_login"
-        app:layout_constraintStart_toStartOf="@+id/left_guideline"
+        app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="@+id/right_guideline"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintBottom_toBottomOf="parent"/>
+        app:layout_constraintStart_toStartOf="@+id/left_guideline"
+        app:layout_constraintTop_toTopOf="parent" />
+
     <View
+        android:id="@+id/v_header"
         android:layout_width="0dp"
         android:layout_height="1dp"
         android:layout_marginTop="50dp"
-        android:id="@+id/v_header"
-        app:layout_constraintStart_toStartOf="@+id/left_guideline"
         app:layout_constraintEnd_toEndOf="@+id/right_guideline"
-        app:layout_constraintTop_toTopOf="@+id/v_bg"/>
+        app:layout_constraintStart_toStartOf="@+id/left_guideline"
+        app:layout_constraintTop_toTopOf="@+id/v_bg" />
+
     <ImageView
         android:id="@+id/iv_logo"
         android:layout_width="100dp"
         android:layout_height="100dp"
-        android:scaleType="fitXY"
         android:adjustViewBounds="true"
-        app:layout_constraintStart_toStartOf="@+id/left_guideline"
-        app:layout_constraintEnd_toEndOf="@+id/right_guideline"
+        android:scaleType="fitXY"
+        android:src="@drawable/ic_logo_big"
         app:layout_constraintBottom_toTopOf="@+id/v_header"
-        android:src="@drawable/ic_logo_big"/>
+        app:layout_constraintEnd_toEndOf="@+id/right_guideline"
+        app:layout_constraintStart_toStartOf="@+id/left_guideline" />
 
     <TextView
+        android:id="@+id/tv_member_label"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_marginTop="8dp"
         android:layout_marginBottom="16dp"
         android:gravity="center"
+        android:text="Member Login"
+        android:textColor="@color/color_black"
         android:textSize="18sp"
         android:textStyle="bold"
-        android:text="Member Login"
-        android:id="@+id/tv_member_label"
-        app:layout_constraintTop_toBottomOf="@id/v_header"
-        app:layout_constraintStart_toStartOf="@+id/v_bg"
         app:layout_constraintEnd_toEndOf="@id/v_bg"
-        android:textColor="@color/color_black" />
+        app:layout_constraintStart_toStartOf="@+id/v_bg"
+        app:layout_constraintTop_toBottomOf="@id/v_header" />
+
     <TextView
+        android:id="@+id/tv_username_label"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_marginStart="36dp"
         android:layout_marginTop="20dp"
-        android:id="@+id/tv_username_label"
         android:text="Username"
-        app:layout_constraintTop_toBottomOf="@id/tv_member_label"
-        app:layout_constraintStart_toStartOf="@+id/v_bg"
+        android:textColor="@color/color_black"
         app:layout_constraintEnd_toEndOf="@+id/v_bg"
-        android:textColor="@color/color_black" />
+        app:layout_constraintStart_toStartOf="@+id/v_bg"
+        app:layout_constraintTop_toBottomOf="@id/tv_member_label" />
+
     <com.google.android.material.textfield.TextInputLayout
         android:id="@+id/til_username"
         style="@style/GDTTextInputLayout.ClearText"
         android:layout_width="0dp"
         android:layout_height="35dp"
-        android:layout_marginTop="4dp"
         android:layout_marginStart="24dp"
+        android:layout_marginTop="4dp"
         android:layout_marginEnd="24dp"
-        app:hintEnabled="false"
-        app:layout_constraintTop_toBottomOf="@id/tv_username_label"
-        app:layout_constraintStart_toStartOf="@+id/v_bg"
-        app:layout_constraintEnd_toEndOf="@+id/v_bg"
-        app:startIconTint="@color/color_login_icon"
-        app:boxCornerRadiusTopEnd="@dimen/login_edit_text_corner"
-        app:boxCornerRadiusTopStart="@dimen/login_edit_text_corner"
         app:boxCornerRadiusBottomEnd="@dimen/login_edit_text_corner"
         app:boxCornerRadiusBottomStart="@dimen/login_edit_text_corner"
-        app:startIconDrawable="@drawable/ic_user1">
+        app:boxCornerRadiusTopEnd="@dimen/login_edit_text_corner"
+        app:boxCornerRadiusTopStart="@dimen/login_edit_text_corner"
+        app:hintEnabled="false"
+        app:layout_constraintEnd_toEndOf="@+id/v_bg"
+        app:layout_constraintStart_toStartOf="@+id/v_bg"
+        app:layout_constraintTop_toBottomOf="@id/tv_username_label"
+        app:startIconDrawable="@drawable/ic_user1"
+        app:startIconTint="@color/color_login_icon">
 
         <androidx.appcompat.widget.AppCompatEditText
             android:id="@+id/et_username"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:inputType="text"
-            android:padding="0dp"
             android:maxLength="50"
+            android:padding="0dp"
             android:textColor="@color/colorPrimary"
             android:textSize="12sp" />
     </com.google.android.material.textfield.TextInputLayout>
+
     <TextView
+        android:id="@+id/tv_password_label"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_marginStart="36dp"
         android:layout_marginTop="16dp"
-        android:id="@+id/tv_password_label"
         android:text="Password"
-        app:layout_constraintTop_toBottomOf="@id/til_username"
-        app:layout_constraintStart_toStartOf="@+id/v_bg"
+        android:textColor="@color/color_black"
         app:layout_constraintEnd_toEndOf="@+id/v_bg"
-        android:textColor="@color/color_black" />
+        app:layout_constraintStart_toStartOf="@+id/v_bg"
+        app:layout_constraintTop_toBottomOf="@id/til_username" />
+
     <com.google.android.material.textfield.TextInputLayout
         android:id="@+id/til_password"
         style="@style/GDTTextInputLayout.PasswordToggle"
         android:layout_width="0dp"
         android:layout_height="35dp"
-        android:layout_marginTop="4dp"
         android:layout_marginStart="24dp"
+        android:layout_marginTop="4dp"
         android:layout_marginEnd="24dp"
-        app:hintEnabled="false"
-        app:layout_constraintTop_toBottomOf="@id/tv_password_label"
-        app:layout_constraintStart_toStartOf="@+id/v_bg"
-        app:layout_constraintEnd_toEndOf="@+id/v_bg"
-        app:startIconTint="@color/color_login_icon"
-        app:boxCornerRadiusTopEnd="@dimen/login_edit_text_corner"
-        app:boxCornerRadiusTopStart="@dimen/login_edit_text_corner"
         app:boxCornerRadiusBottomEnd="@dimen/login_edit_text_corner"
         app:boxCornerRadiusBottomStart="@dimen/login_edit_text_corner"
-        app:startIconDrawable="@drawable/ic_lock">
+        app:boxCornerRadiusTopEnd="@dimen/login_edit_text_corner"
+        app:boxCornerRadiusTopStart="@dimen/login_edit_text_corner"
+        app:hintEnabled="false"
+        app:layout_constraintEnd_toEndOf="@+id/v_bg"
+        app:layout_constraintStart_toStartOf="@+id/v_bg"
+        app:layout_constraintTop_toBottomOf="@id/tv_password_label"
+        app:startIconDrawable="@drawable/ic_lock"
+        app:startIconTint="@color/color_login_icon">
 
         <androidx.appcompat.widget.AppCompatEditText
             android:id="@+id/et_password"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:inputType="textPassword"
-            android:padding="0dp"
             android:maxLength="50"
+            android:padding="0dp"
             android:textColor="@color/colorPrimary"
             android:textSize="12sp" />
     </com.google.android.material.textfield.TextInputLayout>
+
     <com.google.android.material.button.MaterialButton
         android:id="@+id/btn_login"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
         android:layout_marginTop="24dp"
-        android:paddingStart="36dp"
-        android:paddingEnd="36dp"
-        app:cornerRadius="12dp"
         android:backgroundTint="@color/colorPrimary"
         android:gravity="center"
         android:padding="12dp"
+        android:paddingStart="36dp"
+        android:paddingEnd="36dp"
         android:text="LOGIN"
         android:textColor="@color/color_white"
         android:textSize="16sp"
-        app:layout_constraintTop_toBottomOf="@id/til_password"
+        app:cornerRadius="12dp"
+        app:layout_constraintEnd_toEndOf="@+id/v_bg"
         app:layout_constraintStart_toStartOf="@+id/v_bg"
-        app:layout_constraintEnd_toEndOf="@+id/v_bg" />
+        app:layout_constraintTop_toBottomOf="@id/til_password" />
+
     <TextView
+        android:id="@+id/tv_error"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_marginTop="8dp"
-        android:id="@+id/tv_error"
         android:gravity="center"
-        app:layout_constraintTop_toBottomOf="@id/btn_login"
-        app:layout_constraintStart_toStartOf="@+id/v_bg"
+        android:textColor="@color/color_red_800"
         app:layout_constraintEnd_toEndOf="@+id/v_bg"
-        android:textColor="@color/color_red_800" />
+        app:layout_constraintStart_toStartOf="@+id/v_bg"
+        app:layout_constraintTop_toBottomOf="@id/btn_login" />
 
 
 </androidx.constraintlayout.widget.ConstraintLayout>