first commit

This commit is contained in:
2023-07-23 19:01:45 +09:00
commit 3e62c754df
43 changed files with 1434 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
package kr.co.vividnext.sodalive.base
import android.annotation.SuppressLint
import android.content.pm.ActivityInfo
import android.os.Bundle
import android.view.LayoutInflater
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.viewbinding.ViewBinding
import io.reactivex.rxjava3.disposables.CompositeDisposable
abstract class BaseActivity<T : ViewBinding>(
private val inflate: (LayoutInflater) -> T
) : AppCompatActivity() {
val compositeDisposable = CompositeDisposable()
lateinit var binding: T
private set
val screenWidth: Int by lazy {
resources.displayMetrics.widthPixels
}
val screenHeight: Int by lazy {
resources.displayMetrics.heightPixels
}
@SuppressLint("SourceLockedOrientationActivity")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
binding = inflate(layoutInflater)
setContentView(binding.root)
setupView()
}
override fun onDestroy() {
compositeDisposable.clear()
super.onDestroy()
}
fun showToast(message: String) {
Toast.makeText(applicationContext, message, Toast.LENGTH_LONG).show()
}
abstract fun setupView()
}

View File

@@ -0,0 +1,47 @@
package kr.co.vividnext.sodalive.base
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.fragment.app.Fragment
import androidx.viewbinding.ViewBinding
import io.reactivex.rxjava3.disposables.CompositeDisposable
open class BaseFragment<T : ViewBinding>(
private val inflate: (LayoutInflater, ViewGroup?, Boolean) -> T
) : Fragment() {
val compositeDisposable = CompositeDisposable()
private var _binding: T? = null
val binding get() = _binding!!
val screenWidth: Int by lazy {
resources.displayMetrics.widthPixels
}
val screenHeight: Int by lazy {
resources.displayMetrics.heightPixels
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = inflate.invoke(inflater, container, false)
return binding.root
}
override fun onDestroyView() {
_binding = null
compositeDisposable.clear()
super.onDestroyView()
}
fun showToast(message: String) {
Toast.makeText(requireContext(), message, Toast.LENGTH_LONG).show()
}
}

View File

@@ -0,0 +1,13 @@
package kr.co.vividnext.sodalive.base
import androidx.lifecycle.ViewModel
import io.reactivex.rxjava3.disposables.CompositeDisposable
open class BaseViewModel : ViewModel() {
val compositeDisposable = CompositeDisposable()
override fun onCleared() {
compositeDisposable.dispose()
super.onCleared()
}
}