浏览代码

Android修改流程启动身份选择样式,修复一些bug

fancy 5 年之前
父节点
当前提交
9d89de935f

+ 26 - 8
o2android/app/src/main/java/net/zoneland/x/bpm/mobile/v1/zoneXBPM/app/im/O2ChatActivity.kt

@@ -553,14 +553,19 @@ class O2ChatActivity : BaseMVPActivity<O2ChatContract.View, O2ChatContract.Prese
                     }
         }
         ll_o2_chat_camera_btn.setOnClickListener {
-            val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
-            //return-data false 不是直接返回拍照后的照片Bitmap 因为照片太大会传输失败
-            intent.putExtra("return-data", false)
-            //改用Uri 传递
-            intent.putExtra(MediaStore.EXTRA_OUTPUT, cameraImageUri)
-            intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString())
-            intent.putExtra("noFaceDetection", true)
-            startActivityForResult(intent, camera_result_code)
+            PermissionRequester(this@O2ChatActivity).request(Manifest.permission.CAMERA)
+                    .o2Subscribe {
+                        onNext {  (granted, _, _) ->
+                            if (!granted){
+                                O2DialogSupport.openAlertDialog(this@O2ChatActivity, "拍照需要权限, 去设置", { permissionSetting() })
+                            } else {
+                                openCamera()
+                            }
+                        }
+                        onError { e, _ ->
+                            XLog.error("", e)
+                        }
+                    }
         }
         ll_o2_chat_location_btn.setOnClickListener {
             ActivityResult.of(this)
@@ -578,6 +583,19 @@ class O2ChatActivity : BaseMVPActivity<O2ChatContract.View, O2ChatContract.Prese
         }
     }
 
+
+    private fun openCamera() {
+        val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
+        //return-data false 不是直接返回拍照后的照片Bitmap 因为照片太大会传输失败
+        intent.putExtra("return-data", false)
+        //改用Uri 传递
+        intent.putExtra(MediaStore.EXTRA_OUTPUT, cameraImageUri)
+        intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString())
+        intent.putExtra("noFaceDetection", true)
+        startActivityForResult(intent, camera_result_code)
+    }
+
+
     private fun permissionSetting() {
         val packageUri = Uri.parse("package:$packageName")
         startActivity(Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, packageUri))

+ 6 - 4
o2android/app/src/main/java/net/zoneland/x/bpm/mobile/v1/zoneXBPM/app/o2/process/StartProcessStepTwoFragment.kt

@@ -72,14 +72,16 @@ class StartProcessStepTwoFragment : BaseMVPFragment<StartProcessStepTwoContract.
     override fun loadCurrentPersonIdentity(list: List<ProcessWOIdentityJson>) {
         radio_group_process_step_two_department.removeAllViews()
         identityList.clear()
-        identityList.addAll(list)
+        //根据主身份排序
+        val newList = list.sortedByDescending { id-> id.major }.toList()
+        identityList.addAll(newList)
         if (identityList.size>0) {
             identityList.mapIndexed { index, it ->
                 val radio = layoutInflater.inflate(R.layout.snippet_radio_button, null) as RadioButton
-                radio.text = if (TextUtils.isEmpty(it.unitName)) it.name else it.unitName
+                radio.text = if (TextUtils.isEmpty(it.unitLevelName)) it.unitName else it.unitLevelName
                 if (index==0) {
                     radio.isChecked = true
-                    tv_start_process_step_two_identity.text = it.name
+                    tv_start_process_step_two_identity.text = it.name + "("+it.unitName+")"
                     identity = it.distinguishedName
                 }
                 radio.id = 100 + index//这里必须添加id 否则后面获取选中Radio的时候 group.getCheckedRadioButtonId() 拿不到id 会有空指针异常
@@ -90,7 +92,7 @@ class StartProcessStepTwoFragment : BaseMVPFragment<StartProcessStepTwoContract.
         }
         radio_group_process_step_two_department.setOnCheckedChangeListener { _, checkedId ->
             val index = checkedId - 100
-            tv_start_process_step_two_identity.text = identityList[index].name
+            tv_start_process_step_two_identity.text = identityList[index].name + "("+identityList[index].unitName+")"
             identity = identityList[index].distinguishedName
 
         }

+ 2 - 1
o2android/app/src/main/res/layout/snippet_radio_button.xml

@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RadioButton
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:button="@null"
     android:drawableLeft="@drawable/radio_background_primary"
     android:drawablePadding="10dp"
     android:textColor="@color/z_color_text_primary"
-    android:text="兰德公司"/>
+    tools:text="兰德公司/兰德公司/兰德公司/兰德公司/兰德公司/兰德公司/兰德公司/兰德公司/兰德公司/兰德公司"/>

+ 2 - 2
o2android/gradle.properties

@@ -20,6 +20,6 @@ org.gradle.parallel=true
 
 
 # o2
-o2.versionName=5.1.3
-o2.versionCode=113
+o2.versionName=5.1.5
+o2.versionCode=115
 

+ 3 - 1
o2android/o2_auth_sdk/src/main/java/net/zoneland/x/bpm/mobile/v1/zoneXBPM/model/bo/api/main/identity/ProcessWOIdentityJson.kt

@@ -13,5 +13,7 @@ data class ProcessWOIdentityJson(
         var unit: String = "",
         var unitName: String = "",
         var unitLevel: Int = 0,
-        var unitLevelName: String = ""
+        var unitLevelName: String = "",
+        //是否主身份
+        var major: Boolean = false
 )