package jackall.moncalc.activity import android.arch.lifecycle.ViewModelProviders import android.databinding.DataBindingUtil import android.os.Bundle import android.support.v7.app.AppCompatActivity import com.google.gson.Gson import com.google.gson.stream.JsonReader import jackall.moncalc.Const import jackall.moncalc.R import jackall.moncalc.adapter.MainFragmentPagerAdapter import jackall.moncalc.common.PreferenceKeys import jackall.moncalc.common.PreferenceNames import jackall.moncalc.databinding.ActivityMainBinding import jackall.moncalc.db.MonstDataRealmHelper import jackall.moncalc.utils.MySharedPref import jackall.moncalc.viewmodel.MainViewModel import jackall.moncalc.vo.MonstData import kotlinx.android.synthetic.main.activity_main.view.* import java.io.InputStreamReader /** * Created by matsumoto_k on 2017/11/03. */ class MainActivity : AppCompatActivity() { val mainBinding by lazy { DataBindingUtil.setContentView<ActivityMainBinding>(this, R.layout.activity_main) } val mainViewModel by lazy { ViewModelProviders.of(this, MainViewModel.Factory(this)).get(MainViewModel::class.java) } val mySharedPref by lazy { MySharedPref(this, PreferenceNames.CONFIG) } val monstDataRealmHelper = MonstDataRealmHelper() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if ((mySharedPref.getValue(PreferenceKeys.QUESTDATAVERSION, Int::class.java, -1) as Int) < Const.questDataVersion) { val inputStream = assets.open("data.json") val jsonReader = JsonReader(InputStreamReader(inputStream)) val monstData = Gson().fromJson<MonstData>(jsonReader, MonstData::class.java) monstDataRealmHelper.update(monstData.fruit) monstDataRealmHelper.update(monstData.temple) monstDataRealmHelper.update(monstData.grade) mySharedPref.putValue(PreferenceKeys.QUESTDATAVERSION, Int::class.java, Const.questDataVersion) println("db update") } mainBinding.mainViewModel = mainViewModel lifecycle.addObserver(mainViewModel) mainBinding.root.main_view_pager.adapter = MainFragmentPagerAdapter(supportFragmentManager, this) mainBinding.root.main_tab_layout.setupWithViewPager(mainBinding.root.main_view_pager) } }