[add] registViewをDataBindingUtilからinflateする
1 parent 017b516 commit 66bdbc61ed185318c5a4fbadb82f19482abab793
KeijuMatsumoto authored on 1 Nov 2017
Showing 3 changed files
View
17
app/src/main/kotlin/jackall/moncalc/service/MainService.kt
 
import android.app.Service
import android.content.Context
import android.content.Intent
import android.databinding.DataBindingUtil
import android.graphics.PixelFormat
import android.graphics.Point
import android.os.Build
import android.os.IBinder
import jackall.moncalc.Const
import jackall.moncalc.R
import jackall.moncalc.common.PreferenceKeys
import jackall.moncalc.common.PreferenceNames
import jackall.moncalc.databinding.RegistOverlayBinding
import jackall.moncalc.utils.MySharedPref
import jackall.moncalc.viewmodel.OverlayRegistViewModel
 
/**
* Created by matsumoto_k on 2017/11/01.
*/
class MainService : Service() {
 
val mySharedPref by lazy { MySharedPref(this, PreferenceNames.CONFIG) }
val moveOverlayView: ViewGroup by lazy { LayoutInflater.from(this).inflate(R.layout.move_overlay, null) as ViewGroup }
val registOverlayView: ViewGroup by lazy { LayoutInflater.from(this).inflate(R.layout.regist_overlay, null) as ViewGroup }
val registBinding by lazy {
DataBindingUtil.inflate<RegistOverlayBinding>(LayoutInflater.from(this), R.layout.regist_overlay, null, false)
}
val windowManager: WindowManager by lazy { applicationContext.getSystemService(Context.WINDOW_SERVICE) as WindowManager }
var moveViewParams: WindowManager.LayoutParams? = null
var registViewParams: WindowManager.LayoutParams? = null
val displaySize: Point by lazy {
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT)
}
 
registBinding.registViewModel = OverlayRegistViewModel()
 
registViewParams?.gravity = Gravity.TOP
}
 
private fun showMoveView() {
moveViewParams?.x = mySharedPref.getValue(PreferenceKeys.VIEWX, Int::class.java, 0) as Int
moveViewParams?.y = mySharedPref.getValue(PreferenceKeys.VIEWY, Int::class.java, 0) as Int
 
if (registOverlayView.isShown) {
windowManager.removeView(registOverlayView)
if (registBinding.root.isShown) {
windowManager.removeView(registBinding.root)
}
 
windowManager.addView(moveOverlayView, moveViewParams)
}
if (moveOverlayView.isShown) {
windowManager.removeView(moveOverlayView)
}
 
windowManager.addView(registOverlayView, registViewParams)
windowManager.addView(registBinding.root, registViewParams)
}
 
private fun setMoveViewClickListener(): View.() -> Unit {
return {
View
14
app/src/main/kotlin/jackall/moncalc/viewmodel/OverlayRegistViewModel.kt 0 → 100644
package jackall.moncalc.viewmodel
 
import android.arch.lifecycle.ViewModel
import android.arch.lifecycle.ViewModelProvider
import android.view.View
 
/**
* Created by matsumoto_k on 2017/11/01.
*/
class OverlayRegistViewModel : ViewModel() {
fun onClickMin(view: View) {
println("onClickMin")
}
}
View
98
app/src/main/res/layout/regist_overlay.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
 
<Button
android:id="@+id/registButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="regist"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<data>
 
<Button
android:id="@+id/minButton"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="min"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/registButton" />
<variable
name="registViewModel"
type="jackall.moncalc.viewmodel.OverlayRegistViewModel" />
</data>
 
</android.support.constraint.ConstraintLayout>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
 
<Button
android:id="@+id/registButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="regist"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
 
<Button
android:id="@+id/minButton"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:onClick="@{registViewModel.onClickMin}"
android:text="min"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/registButton" />
 
</android.support.constraint.ConstraintLayout>
</layout>