Skip to content

Commit 1d10c67

Browse files
Upgrade AGP and replace kotlin-android-extensions with viewbinding
1 parent ccbba0c commit 1d10c67

34 files changed

+708
-614
lines changed

SSffmpegVideoOperation/build.gradle

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,11 @@ repositories {
2525
}
2626

2727
android {
28-
compileSdkVersion 30
29-
buildToolsVersion "29.0.3"
30-
28+
namespace 'com.simform.videooperations'
3129
defaultConfig {
30+
compileSdk 35
3231
minSdkVersion 24
33-
targetSdkVersion 30
32+
targetSdkVersion 35
3433

3534
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
3635
consumerProguardFiles "consumer-rules.pro"

app/build.gradle

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
plugins {
22
id 'com.android.application'
33
id 'kotlin-android'
4-
id 'kotlin-android-extensions'
54
id 'kotlin-kapt'
65
}
76

87
android {
9-
compileSdkVersion 31
10-
8+
namespace 'com.simform.videoimageeditor'
9+
compileSdk 35
1110
defaultConfig {
1211
applicationId "com.simform.videoimageeditor"
1312
minSdkVersion 24
14-
targetSdkVersion 31
13+
targetSdkVersion 35
1514
versionCode 1
1615
versionName "1.0"
17-
testInstrumentationRunner "androidx...test.runner.AndroidJUnitRunner"
16+
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1817
}
1918

2019
buildTypes {
@@ -23,14 +22,21 @@ android {
2322
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
2423
}
2524
}
25+
26+
compileOptions {
27+
sourceCompatibility JavaVersion.VERSION_11
28+
targetCompatibility JavaVersion.VERSION_11
29+
}
30+
2631
kotlinOptions {
2732
jvmTarget = '11'
2833
}
29-
flavorDimensions "default"
30-
31-
androidExtensions {
32-
experimental = true
34+
35+
buildFeatures {
36+
viewBinding true
3337
}
38+
39+
flavorDimensions "default"
3440
}
3541

3642
final roomSchemaDir = "$projectDir/roomSchemas"

app/src/main/java/com/simform/videoimageeditor/BaseActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ abstract class BaseActivity(view: Int, title: Int) : AppCompatActivity(), View.O
2727

2828
override fun onCreate(savedInstanceState: Bundle?) {
2929
super.onCreate(savedInstanceState)
30-
setContentView(layoutView)
31-
utils.addSupportActionBar(this, toolbarTitle)
30+
// Content view will be set by individual activities using view binding
3231
initialization()
32+
utils.addSupportActionBar(this, toolbarTitle)
3333
}
3434

3535
protected abstract fun initialization()

app/src/main/java/com/simform/videoimageeditor/MainActivity.kt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
package com.simform.videoimageeditor
22

33
import android.view.View
4+
import com.simform.videoimageeditor.databinding.ActivityMainBinding
45
import com.simform.videoimageeditor.middlewareActivity.OtherFFMPEGProcessActivity
56
import com.simform.videoimageeditor.middlewareActivity.VideoProcessActivity
6-
import kotlinx.android.synthetic.main.activity_main.imageGifOperation
7-
import kotlinx.android.synthetic.main.activity_main.videoOperation
87

98
class MainActivity : BaseActivity(R.layout.activity_main, R.string.ffpmeg_title) {
9+
10+
private lateinit var binding: ActivityMainBinding
11+
1012
override fun initialization() {
13+
binding = ActivityMainBinding.inflate(layoutInflater)
14+
setContentView(binding.root)
15+
1116
supportActionBar?.title = getString(R.string.ffpmeg_title)
1217
supportActionBar?.setDisplayHomeAsUpEnabled(false)
1318
supportActionBar?.setDisplayShowHomeEnabled(false)
14-
videoOperation.setOnClickListener(this)
15-
imageGifOperation.setOnClickListener(this)
19+
binding.videoOperation.setOnClickListener(this)
20+
binding.imageGifOperation.setOnClickListener(this)
1621
}
1722

1823
override fun onClick(v: View?) {

app/src/main/java/com/simform/videoimageeditor/middlewareActivity/OtherFFMPEGProcessActivity.kt

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,30 @@ package com.simform.videoimageeditor.middlewareActivity
33
import android.view.View
44
import com.simform.videoimageeditor.BaseActivity
55
import com.simform.videoimageeditor.R
6+
import com.simform.videoimageeditor.databinding.ActivityOtherFfmpegProcessBinding
67
import com.simform.videoimageeditor.otherFFMPEGProcessActivity.AudiosMergeActivity
78
import com.simform.videoimageeditor.otherFFMPEGProcessActivity.ChangeAudioVolumeActivity
89
import com.simform.videoimageeditor.otherFFMPEGProcessActivity.CompressAudioActivity
910
import com.simform.videoimageeditor.otherFFMPEGProcessActivity.CropAudioActivity
1011
import com.simform.videoimageeditor.otherFFMPEGProcessActivity.FastAndSlowAudioActivity
1112
import com.simform.videoimageeditor.otherFFMPEGProcessActivity.MergeGIFActivity
12-
import kotlinx.android.synthetic.main.activity_other_ffmpeg_process.btnAudiosVolumeUpdate
13-
import kotlinx.android.synthetic.main.activity_other_ffmpeg_process.btnCompressAudio
14-
import kotlinx.android.synthetic.main.activity_other_ffmpeg_process.btnCutAudio
15-
import kotlinx.android.synthetic.main.activity_other_ffmpeg_process.btnFastAndSlowAudio
16-
import kotlinx.android.synthetic.main.activity_other_ffmpeg_process.btnMergeAudios
17-
import kotlinx.android.synthetic.main.activity_other_ffmpeg_process.btnMergeGIF
1813

1914
class OtherFFMPEGProcessActivity : BaseActivity(R.layout.activity_other_ffmpeg_process, R.string.other_ffmpeg_operations) {
15+
16+
private lateinit var binding: ActivityOtherFfmpegProcessBinding
17+
2018
override fun initialization() {
19+
binding = ActivityOtherFfmpegProcessBinding.inflate(layoutInflater)
20+
setContentView(binding.root)
2121
supportActionBar?.title = getString(R.string.other_ffmpeg_operations)
22-
btnMergeGIF.setOnClickListener(this)
23-
btnMergeAudios.setOnClickListener(this)
24-
btnAudiosVolumeUpdate.setOnClickListener(this)
25-
btnFastAndSlowAudio.setOnClickListener(this)
26-
btnCutAudio.setOnClickListener(this)
27-
btnCompressAudio.setOnClickListener(this)
22+
binding.apply {
23+
btnMergeGIF.setOnClickListener(this@OtherFFMPEGProcessActivity)
24+
btnMergeAudios.setOnClickListener(this@OtherFFMPEGProcessActivity)
25+
btnAudiosVolumeUpdate.setOnClickListener(this@OtherFFMPEGProcessActivity)
26+
btnFastAndSlowAudio.setOnClickListener(this@OtherFFMPEGProcessActivity)
27+
btnCutAudio.setOnClickListener(this@OtherFFMPEGProcessActivity)
28+
btnCompressAudio.setOnClickListener(this@OtherFFMPEGProcessActivity)
29+
}
2830
}
2931

3032
override fun onClick(v: View?) {

app/src/main/java/com/simform/videoimageeditor/middlewareActivity/VideoProcessActivity.kt

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,40 @@ package com.simform.videoimageeditor.middlewareActivity
33
import android.view.View
44
import com.simform.videoimageeditor.BaseActivity
55
import com.simform.videoimageeditor.R
6+
import com.simform.videoimageeditor.databinding.ActivityVideoProcessBinding
67
import com.simform.videoimageeditor.videoProcessActivity.*
7-
import kotlinx.android.synthetic.main.activity_video_process.*
88

99
/**
1010
* Created by Ashvin Vavaliya on 29,December,2020
1111
* Simform Solutions Pvt Ltd.
1212
*/
1313
class VideoProcessActivity : BaseActivity(R.layout.activity_video_process, R.string.video_operations) {
14+
private lateinit var binding: ActivityVideoProcessBinding
15+
1416
override fun initialization() {
17+
binding = ActivityVideoProcessBinding.inflate(layoutInflater)
18+
setContentView(binding.root)
19+
1520
supportActionBar?.title = getString(R.string.video_operations)
16-
btnCutVideo.setOnClickListener(this)
17-
btnImageToVideo.setOnClickListener(this)
18-
btnAddWaterMarkOnVideo.setOnClickListener(this)
19-
btnCombineImageVideo.setOnClickListener(this)
20-
btnCombineImages.setOnClickListener(this)
21-
btnCombineVideos.setOnClickListener(this)
22-
btnCompressVideo.setOnClickListener(this)
23-
btnExtractVideo.setOnClickListener(this)
24-
btnExtractAudio.setOnClickListener(this)
25-
btnMotion.setOnClickListener(this)
26-
btnReverseVideo.setOnClickListener(this)
27-
btnFadeInFadeOutVideo.setOnClickListener(this)
28-
btnVideoConvertIntoGIF.setOnClickListener(this)
29-
btnVideoRotateFlip.setOnClickListener(this)
30-
btnMergeVideoAndAudio.setOnClickListener(this)
31-
btnAddTextOnVideo.setOnClickListener(this)
32-
btnRemoveAudioFromVideo.setOnClickListener(this)
33-
btnMergeImageAndAudio.setOnClickListener(this)
34-
btnSetAspectRatio.setOnClickListener(this)
21+
binding.btnCutVideo.setOnClickListener(this)
22+
binding.btnImageToVideo.setOnClickListener(this)
23+
binding.btnAddWaterMarkOnVideo.setOnClickListener(this)
24+
binding.btnCombineImageVideo.setOnClickListener(this)
25+
binding.btnCombineImages.setOnClickListener(this)
26+
binding.btnCombineVideos.setOnClickListener(this)
27+
binding.btnCompressVideo.setOnClickListener(this)
28+
binding.btnExtractVideo.setOnClickListener(this)
29+
binding.btnExtractAudio.setOnClickListener(this)
30+
binding.btnMotion.setOnClickListener(this)
31+
binding.btnReverseVideo.setOnClickListener(this)
32+
binding.btnFadeInFadeOutVideo.setOnClickListener(this)
33+
binding.btnVideoConvertIntoGIF.setOnClickListener(this)
34+
binding.btnVideoRotateFlip.setOnClickListener(this)
35+
binding.btnMergeVideoAndAudio.setOnClickListener(this)
36+
binding.btnAddTextOnVideo.setOnClickListener(this)
37+
binding.btnRemoveAudioFromVideo.setOnClickListener(this)
38+
binding.btnMergeImageAndAudio.setOnClickListener(this)
39+
binding.btnSetAspectRatio.setOnClickListener(this)
3540
}
3641

3742
override fun onClick(v: View?) {

app/src/main/java/com/simform/videoimageeditor/otherFFMPEGProcessActivity/AudiosMergeActivity.kt

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,24 @@ import android.widget.Toast
66
import com.jaiselrahman.filepicker.model.MediaFile
77
import com.simform.videoimageeditor.BaseActivity
88
import com.simform.videoimageeditor.R
9+
import com.simform.videoimageeditor.databinding.ActivityAudiosMergeBinding
910
import com.simform.videooperations.CallBackOfQuery
1011
import com.simform.videooperations.Common
1112
import com.simform.videooperations.Common.DURATION_FIRST
1213
import com.simform.videooperations.FFmpegCallBack
13-
import com.simform.videooperations.FFmpegQueryExtension
1414
import com.simform.videooperations.LogMessage
1515
import com.simform.videooperations.Paths
16-
import kotlinx.android.synthetic.main.activity_audios_merge.btnAudioPath
17-
import kotlinx.android.synthetic.main.activity_audios_merge.btnMerge
18-
import kotlinx.android.synthetic.main.activity_audios_merge.mProgressView
19-
import kotlinx.android.synthetic.main.activity_audios_merge.tvInputPathAudio
20-
import kotlinx.android.synthetic.main.activity_audios_merge.tvOutputPath
2116

2217
class AudiosMergeActivity : BaseActivity(R.layout.activity_audios_merge, R.string.merge_audios) {
18+
private lateinit var binding: ActivityAudiosMergeBinding
2319
private var isInputAudioSelected: Boolean = false
20+
2421
override fun initialization() {
25-
btnAudioPath.setOnClickListener(this)
26-
btnMerge.setOnClickListener(this)
22+
binding = ActivityAudiosMergeBinding.inflate(layoutInflater)
23+
setContentView(binding.root)
24+
25+
binding.btnAudioPath.setOnClickListener(this)
26+
binding.btnMerge.setOnClickListener(this)
2727
}
2828

2929
override fun onClick(v: View?) {
@@ -59,11 +59,11 @@ class AudiosMergeActivity : BaseActivity(R.layout.activity_audios_merge, R.strin
5959

6060
CallBackOfQuery().callQuery(query, object : FFmpegCallBack {
6161
override fun process(logMessage: LogMessage) {
62-
tvOutputPath.text = logMessage.text
62+
binding.tvOutputPath.text = logMessage.text
6363
}
6464

6565
override fun success() {
66-
tvOutputPath.text = String.format(getString(R.string.output_path), outputPath)
66+
binding.tvOutputPath.text = String.format(getString(R.string.output_path), outputPath)
6767
processStop()
6868
}
6969

@@ -79,15 +79,19 @@ class AudiosMergeActivity : BaseActivity(R.layout.activity_audios_merge, R.strin
7979
}
8080

8181
private fun processStop() {
82-
btnAudioPath.isEnabled = true
83-
btnMerge.isEnabled = true
84-
mProgressView.visibility = View.GONE
82+
binding.apply {
83+
btnAudioPath.isEnabled = true
84+
btnMerge.isEnabled = true
85+
mProgressView.root.visibility = View.GONE
86+
}
8587
}
8688

8789
private fun processStart() {
88-
btnAudioPath.isEnabled = false
89-
btnMerge.isEnabled = false
90-
mProgressView.visibility = View.VISIBLE
90+
binding.apply {
91+
btnAudioPath.isEnabled = false
92+
btnMerge.isEnabled = false
93+
mProgressView.root.visibility = View.VISIBLE
94+
}
9195
}
9296

9397
@SuppressLint("NewApi")
@@ -97,7 +101,7 @@ class AudiosMergeActivity : BaseActivity(R.layout.activity_audios_merge, R.strin
97101
if (mediaFiles != null && mediaFiles.isNotEmpty()) {
98102
val size: Int = mediaFiles.size
99103
if (size > 1) {
100-
tvInputPathAudio.text = "$size Audio selected"
104+
binding.tvInputPathAudio.text = "$size Audio selected"
101105
isInputAudioSelected = true
102106
} else {
103107
Toast.makeText(this, getString(R.string.min_audio_selection_validation), Toast.LENGTH_SHORT).show()

app/src/main/java/com/simform/videoimageeditor/otherFFMPEGProcessActivity/ChangeAudioVolumeActivity.kt

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,22 @@ import android.widget.Toast
66
import com.jaiselrahman.filepicker.model.MediaFile
77
import com.simform.videoimageeditor.BaseActivity
88
import com.simform.videoimageeditor.R
9+
import com.simform.videoimageeditor.databinding.ActivityChangeAudioValumeBinding
910
import com.simform.videooperations.CallBackOfQuery
1011
import com.simform.videooperations.Common
1112
import com.simform.videooperations.FFmpegCallBack
12-
import com.simform.videooperations.FFmpegQueryExtension
1313
import com.simform.videooperations.LogMessage
14-
import kotlinx.android.synthetic.main.activity_change_audio_valume.btnAudioPath
15-
import kotlinx.android.synthetic.main.activity_change_audio_valume.btnChange
16-
import kotlinx.android.synthetic.main.activity_change_audio_valume.mProgressView
17-
import kotlinx.android.synthetic.main.activity_change_audio_valume.tvInputPathAudio
18-
import kotlinx.android.synthetic.main.activity_change_audio_valume.tvOutputPath
1914

2015
class ChangeAudioVolumeActivity : BaseActivity(R.layout.activity_change_audio_valume, R.string.change_audio_volume) {
16+
private lateinit var binding: ActivityChangeAudioValumeBinding
2117
private var isInputAudioSelected: Boolean = false
18+
2219
override fun initialization() {
23-
btnAudioPath.setOnClickListener(this)
24-
btnChange.setOnClickListener(this)
20+
binding = ActivityChangeAudioValumeBinding.inflate(layoutInflater)
21+
setContentView(binding.root)
22+
23+
binding.btnAudioPath.setOnClickListener(this)
24+
binding.btnChange.setOnClickListener(this)
2525
}
2626

2727
override fun onClick(v: View?) {
@@ -44,14 +44,14 @@ class ChangeAudioVolumeActivity : BaseActivity(R.layout.activity_change_audio_va
4444

4545
private fun mergeAudioProcess() {
4646
val outputPath = Common.getFilePath(this, Common.MP3)
47-
val query = ffmpegQueryExtension.audioVolumeUpdate(tvInputPathAudio.text.toString(), volume = 0.1f, output = outputPath)
47+
val query = ffmpegQueryExtension.audioVolumeUpdate(binding.tvInputPathAudio.text.toString(), volume = 0.1f, output = outputPath)
4848
CallBackOfQuery().callQuery(query, object : FFmpegCallBack {
4949
override fun process(logMessage: LogMessage) {
50-
tvOutputPath.text = logMessage.text
50+
binding.tvOutputPath.text = logMessage.text
5151
}
5252

5353
override fun success() {
54-
tvOutputPath.text = String.format(getString(R.string.output_path), outputPath)
54+
binding.tvOutputPath.text = String.format(getString(R.string.output_path), outputPath)
5555
processStop()
5656
}
5757

@@ -66,23 +66,27 @@ class ChangeAudioVolumeActivity : BaseActivity(R.layout.activity_change_audio_va
6666
}
6767

6868
private fun processStop() {
69-
btnAudioPath.isEnabled = true
70-
btnChange.isEnabled = true
71-
mProgressView.visibility = View.GONE
69+
binding.apply {
70+
btnAudioPath.isEnabled = true
71+
btnChange.isEnabled = true
72+
mProgressView.root.visibility = View.GONE
73+
}
7274
}
7375

7476
private fun processStart() {
75-
btnAudioPath.isEnabled = false
76-
btnChange.isEnabled = false
77-
mProgressView.visibility = View.VISIBLE
77+
binding.apply {
78+
btnAudioPath.isEnabled = false
79+
btnChange.isEnabled = false
80+
mProgressView.root.visibility = View.VISIBLE
81+
}
7882
}
7983

8084
@SuppressLint("NewApi")
8185
override fun selectedFiles(mediaFiles: List<MediaFile>?, requestCode: Int) {
8286
when (requestCode) {
8387
Common.AUDIO_FILE_REQUEST_CODE -> {
8488
if (mediaFiles != null && mediaFiles.isNotEmpty()) {
85-
tvInputPathAudio.text = mediaFiles[0].path
89+
binding.tvInputPathAudio.text = mediaFiles[0].path
8690
isInputAudioSelected = true
8791
} else {
8892
Toast.makeText(this, getString(R.string.min_audio_selection_validation), Toast.LENGTH_SHORT).show()

0 commit comments

Comments
 (0)