Skip to content

Commit

Permalink
增加原图按钮2,卸载kotlin ext插件
Browse files Browse the repository at this point in the history
  • Loading branch information
zguop committed May 14, 2021
1 parent b234029 commit d4d7571
Show file tree
Hide file tree
Showing 10 changed files with 161 additions and 98 deletions.
6 changes: 3 additions & 3 deletions app/src/main/java/com/waitou/wisdaoapp/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class MainActivity : AppCompatActivity() {
GlideEngine()
private var compressEngine: CompressEngine? = null
private var cropEngine: CropEngine? = null
private var selectLimit = 0
private var selectLimit = 2
private var isCrop = false
private var cropType = R.id.ucrop
private var compressId = R.id.tiny
Expand Down Expand Up @@ -234,8 +234,8 @@ class MainActivity : AppCompatActivity() {

private fun updateSelectLimit() {
selectLimit = if (num.text.isNullOrEmpty()) {
num.setText("1")
1
num.setText("2")
2
} else num.text.toString().toInt()
crop.visibility = if (selectLimit == 1) View.VISIBLE else View.GONE
radio3.visibility = crop.visibility
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import android.widget.TextView
import com.github.chrisbanes.photoview.OnOutsidePhotoTapListener
import com.to.aboomy.statusbar_lib.StatusBarUtil
import com.waitou.wisdom_impl.R
import com.waitou.wisdom_impl.view.CheckRadioView
import com.waitou.wisdom_impl.view.CheckView
import com.waitou.wisdom_lib.bean.Media
import com.waitou.wisdom_lib.config.WisdomConfig
Expand Down Expand Up @@ -51,6 +52,12 @@ class PhotoPreviewActivity : WisPreViewActivity(),
mediaCheckedChange(medias[currentPosition])
}

val original = findViewById<CheckRadioView>(R.id.original)
original.setChecked(fullImage)
findViewById<View>(R.id.originalLayout).setOnClickListener {
fullImage = !fullImage
original.setChecked(fullImage)
}
complete = findViewById(R.id.complete)
complete.setOnClickListener { onResultFinish(selectMedias.isNotEmpty()) }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,10 @@ class PhotoWallActivity : WisdomWallActivity() {
return original.isChecked()
}

override fun setFullImage(fullImage: Boolean) {
original.setChecked(fullImage)
}

private fun addAlbum(data: List<Album>?) {
data ?: return
data[0].albumName = getString(R.string.wis_all)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,40 @@ import com.waitou.wisdom_lib.utils.onlyVideos
* auth aboom
* date 2019-05-25
*/
class PhotoWallFragment : WisdomWallFragment(), MediasAdapter.OnCheckedChangedListener {
class PhotoWallFragment : WisdomWallFragment(),
MediasAdapter.OnCheckedChangedListener {

private lateinit var viewModule: PhotoWallViewModule
private lateinit var adapter: MediasAdapter
private val viewModule by lazy { ViewModelProviders.of(requireActivity())[PhotoWallViewModule::class.java] }
private val adapter by lazy {
MediasAdapter().apply {
checkedListener = this@PhotoWallFragment
cameraClick = View.OnClickListener {
when {
onlyImages() -> startCameraImage()
onlyVideos() -> startCameraVideo()
else -> startCameraImage()
}
}
mediaClick = { media, position, _ ->
if (isSingleImage()) {
//单选完成结束
if (!startCrop(media)) {
finish(listOf(media))
}
} else {
// val make = ActivityOptionsCompat.makeSceneTransitionAnimation(activity!!, view, "preview")
//没有相机的时候position的值是正确的,预览页面不存在相机的位置,有相机需要-1才对
startPreview(
PhotoPreviewActivity::class.java,
selectMedias,
if (WisdomConfig.getInstance().isCamera) position - 1 else position,
currentAlbumId,
null
)
}
}
}
}

override fun albumResult(albums: List<Album>) {
viewModule.albumLiveData.postValue(albums)
Expand All @@ -54,17 +84,16 @@ class PhotoWallFragment : WisdomWallFragment(), MediasAdapter.OnCheckedChangedLi

override fun checkPermissionOnDenied(permissionsDeniedForever: Array<String>, permissionsDenied: Array<String>) {
super.checkPermissionOnDenied(permissionsDeniedForever, permissionsDenied)
val msg =
if (Manifest.permission.READ_EXTERNAL_STORAGE == permissionsDenied[0]) "需要访问设备的存储权限来选择图片" else "需要访问设备的相机权限进行拍照或录像"
val msg = if (Manifest.permission.READ_EXTERNAL_STORAGE == permissionsDenied[0]) "需要访问设备的存储权限来选择图片" else "需要访问设备的相机权限进行拍照或录像"
Toast.makeText(
activity,
if (permissionsDeniedForever.isNotEmpty()) "$msg,请在“系统设置”或授权对话框中允许“存储空间”权限。" else msg,
Toast.LENGTH_SHORT
activity,
if (permissionsDeniedForever.isNotEmpty()) "$msg,请在“系统设置”或授权对话框中允许“存储空间”权限。" else msg,
Toast.LENGTH_SHORT
).show()
}

override fun onCameraResult(media: Media) {
if(!startCrop(media)){
if (!startCrop(media)) {
finish(listOf(media))
}
}
Expand All @@ -74,44 +103,15 @@ class PhotoWallFragment : WisdomWallFragment(), MediasAdapter.OnCheckedChangedLi
}

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val recyclerView = RecyclerView(requireActivity())
recyclerView.layoutParams =
ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
return RecyclerView(requireActivity()).apply {
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
recyclerView.layoutManager = GridLayoutManager(activity, 3)
recyclerView.addItemDecoration(GridSpacingItemDecoration(3, 4, false))
this.adapter = MediasAdapter()
recyclerView.adapter = adapter
adapter.checkedListener = this
adapter.cameraClick = View.OnClickListener {
when {
onlyImages() -> startCameraImage()
onlyVideos() -> startCameraVideo()
else -> startCameraImage()
}
}
adapter.mediaClick = { media, position, _ ->
if (isSingleImage()) {
//单选完成结束
if(!startCrop(media)){
finish(listOf(media))
}
} else {
// val make = ActivityOptionsCompat.makeSceneTransitionAnimation(activity!!, view, "preview")
//没有相机的时候position的值是正确的,预览页面不存在相机的位置,有相机需要-1才对
startPreview(
PhotoPreviewActivity::class.java,
adapter.selectMedias,
if (WisdomConfig.getInstance().isCamera) position - 1 else position,
currentAlbumId,
null
)
}
layoutManager = GridLayoutManager(activity, 3)
addItemDecoration(GridSpacingItemDecoration(3, 4, false))
adapter = this@PhotoWallFragment.adapter
}
viewModule = ViewModelProviders.of(requireActivity())[PhotoWallViewModule::class.java]
return recyclerView
}

override fun onChange() {
Expand Down
35 changes: 31 additions & 4 deletions wisdom_impl/src/main/res/layout/wis_activity_preview.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,17 +65,44 @@
android:layout_alignParentBottom="true"
android:background="#80000000">


<LinearLayout
android:id="@+id/originalLayout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingStart="20dp"
android:paddingEnd="20dp">

<com.waitou.wisdom_impl.view.CheckRadioView
android:id="@+id/original"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center_vertical"
tools:src="@drawable/wis_svg_ic_radio_normal_color" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:enabled="true"
android:paddingStart="4dp"
android:paddingEnd="4dp"
android:text="@string/wis_original"
android:textColor="@android:color/white"
android:textSize="14sp" />

</LinearLayout>


<TextView
android:id="@+id/complete"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:gravity="center"
android:minWidth="80dp"
android:paddingStart="15dp"
android:paddingLeft="15dp"
android:paddingEnd="15dp"
android:paddingRight="15dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:textColor="@android:color/white"
tools:text="完成"
tools:textColor="#f00" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ interface OnMediaListener {
*/
fun isFullImage(): Boolean

/**
* 同步原图状态
*/
fun setFullImage(fullImage: Boolean)

/**
* 预览页面回调
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,24 +40,26 @@ class WisdomPreviewBuilder(private val wisdom: Wisdom) {
val activity = o.activity
activity?.let {
val intent = WisPreViewActivity.getIntent(
activity,
clazz,
wisdomConfig.imgMedias!!,
position,
"",
WisPreViewActivity.WIS_PREVIEW_MODULE_TYPE_VISIT
activity,
clazz,
wisdomConfig.imgMedias!!,
position,
"",
false,
WisPreViewActivity.WIS_PREVIEW_MODULE_TYPE_VISIT
)
o.startActivity(intent)
}
}
if (o is Activity) {
val intent = WisPreViewActivity.getIntent(
o,
clazz,
wisdomConfig.imgMedias!!,
position,
"",
WisPreViewActivity.WIS_PREVIEW_MODULE_TYPE_VISIT
o,
clazz,
wisdomConfig.imgMedias!!,
position,
"",
false,
WisPreViewActivity.WIS_PREVIEW_MODULE_TYPE_VISIT
)
o.startActivity(intent)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ import com.waitou.wisdom_lib.loader.MediaCollection
* auth aboom
* date 2019-06-06
*/
abstract class WisPreViewActivity : AppCompatActivity(), LoaderMedia {
abstract class WisPreViewActivity : AppCompatActivity(),
LoaderMedia {

companion object {

Expand Down Expand Up @@ -57,19 +58,27 @@ abstract class WisPreViewActivity : AppCompatActivity(), LoaderMedia {
*/
internal const val EXTRA_PREVIEW_RESULT_EXIT = "extra_preview_exit"

/**
* 显示原图按钮
*/
internal const val EXTRA_FULL_IMAGE = "extra_full_image"

@JvmStatic
fun getIntent(context: Context,
clazz: Class<out WisPreViewActivity>,
selectMedias: List<Media>,
currentPosition: Int,
albumId: String?,
moduleType:Int
fun getIntent(
context: Context,
clazz: Class<out WisPreViewActivity>,
selectMedias: List<Media>,
currentPosition: Int,
albumId: String?,
fullImage: Boolean,
moduleType: Int
): Intent {
val i = Intent(context, clazz)
i.putParcelableArrayListExtra(EXTRA_PREVIEW_SELECT_MEDIA, ArrayList(selectMedias))
i.putExtra(EXTRA_PREVIEW_CURRENT_POSITION, currentPosition)
i.putExtra(EXTRA_PREVIEW_ALBUM_ID, albumId)
i.putExtra(EXTRA_PREVIEW_MODULE_TYPE, moduleType)
i.putExtra(EXTRA_FULL_IMAGE, fullImage)
return i
}
}
Expand All @@ -81,14 +90,17 @@ abstract class WisPreViewActivity : AppCompatActivity(), LoaderMedia {
private var previewModule: Int = WIS_PREVIEW_MODULE_TYPE_VISIT

lateinit var selectMedias: ArrayList<Media>
var currentPosition: Int = 0
protected var currentPosition: Int = 0
protected var fullImage: Boolean = false


override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
previewModule = intent.getIntExtra(EXTRA_PREVIEW_MODULE_TYPE, previewModule)
selectMedias = intent.getParcelableArrayListExtra(EXTRA_PREVIEW_SELECT_MEDIA)
currentPosition = intent.getIntExtra(EXTRA_PREVIEW_CURRENT_POSITION, currentPosition)
albumId = intent.getStringExtra(EXTRA_PREVIEW_ALBUM_ID)
fullImage = intent.getBooleanExtra(EXTRA_FULL_IMAGE, false)
}

override fun onStart() {
Expand Down Expand Up @@ -123,6 +135,7 @@ abstract class WisPreViewActivity : AppCompatActivity(), LoaderMedia {
val i = Intent()
i.putParcelableArrayListExtra(EXTRA_PREVIEW_SELECT_MEDIA, selectMedias)
i.putExtra(EXTRA_PREVIEW_RESULT_EXIT, exit)
i.putExtra(EXTRA_FULL_IMAGE, fullImage)
setResult(Activity.RESULT_OK, i)
//如果推出了就直接finish,否则就当做back返回
if (exit) finish() else super.onBackPressed()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ import com.waitou.wisdom_lib.config.WisdomConfig
* auth aboom
* date 2019-05-24
*/
abstract class WisdomWallActivity : AppCompatActivity(), OnMediaListener {
abstract class WisdomWallActivity : AppCompatActivity(),
OnMediaListener {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand All @@ -39,12 +40,13 @@ abstract class WisdomWallActivity : AppCompatActivity(), OnMediaListener {
) {
//当前点击的position 所有选择的数据 mediaId
val i = WisPreViewActivity.getIntent(
this,
clazz,
selectMedias,
currentPosition,
albumId,
WisPreViewActivity.WIS_PREVIEW_MODULE_TYPE_EDIT
this,
clazz,
selectMedias,
currentPosition,
albumId,
isFullImage(),
WisPreViewActivity.WIS_PREVIEW_MODULE_TYPE_EDIT
)
val fragment = supportFragmentManager.findFragmentByTag(WisdomWallFragment.TAG)
fragment?.startActivityForResult(i, WisPreViewActivity.WIS_PREVIEW_REQUEST_CODE, bundle)
Expand Down
Loading

0 comments on commit d4d7571

Please sign in to comment.