aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/net/lacolaco/smileessence/view/adapter
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2017-10-15 23:19:50 +0900
committerKazuki Yamaguchi <k@rhe.jp>2017-10-15 23:23:10 +0900
commit3d7252fd5337d9d1acbca2db92ed88b638986f1e (patch)
tree06e4f06572e4300ed6e1d91ac816d5991268eb2f /app/src/main/java/net/lacolaco/smileessence/view/adapter
parent95de1cbdd911f0f003ca19ef1421004d315d0ef4 (diff)
downloadSmileEssence-3d7252fd5337d9d1acbca2db92ed88b638986f1e.tar.gz
poststate moved to postfragmetn
Diffstat (limited to 'app/src/main/java/net/lacolaco/smileessence/view/adapter')
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/view/adapter/PageListAdapter.kt140
1 files changed, 0 insertions, 140 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/view/adapter/PageListAdapter.kt b/app/src/main/java/net/lacolaco/smileessence/view/adapter/PageListAdapter.kt
deleted file mode 100644
index 9589ffef..00000000
--- a/app/src/main/java/net/lacolaco/smileessence/view/adapter/PageListAdapter.kt
+++ /dev/null
@@ -1,140 +0,0 @@
-package net.lacolaco.smileessence.view.adapter
-
-import android.app.Fragment
-import android.app.FragmentManager
-import android.app.FragmentTransaction
-import android.os.Bundle
-import android.support.v4.view.PagerAdapter
-import android.view.View
-import android.view.ViewGroup
-import net.lacolaco.smileessence.BuildConfig
-import net.lacolaco.smileessence.activity.MainActivity
-import net.lacolaco.smileessence.logging.Logger
-import net.lacolaco.smileessence.view.page.PageFragment
-import java.lang.ref.WeakReference
-import java.util.*
-
-class PageListAdapter(_activity: MainActivity) : PagerAdapter() {
- private val mFragmentManager: FragmentManager = _activity.fragmentManager
- private var mCurTransaction: FragmentTransaction? = null
- private var mCurrentPrimaryItem: Fragment? = null
- private val pages = ArrayList<PageInfo>()
- private val fragmentCache = HashMap<Int, WeakReference<PageFragment>>()
-
- @Synchronized
- fun getItem(position: Int): PageFragment {
- val pf: PageFragment
- val info = pages[position]
- try {
- pf = info.fragmentClass.newInstance()
- } catch (e: Exception) {
- Logger.error("should not happen: fragmentClass is private or Android is broken?")
- e.printStackTrace()
- throw RuntimeException(e)
- }
-
- pf.arguments = info.args
- fragmentCache.put(position, WeakReference(pf))
- return pf
- }
-
- @Synchronized
- fun getCachedFragment(pos: Int): PageFragment? {
- val wpf = fragmentCache[pos]
- return wpf?.get()
- }
-
- @Synchronized override fun getCount(): Int {
- return pages.size
- }
-
- fun addPage(klass: Class<out PageFragment>, name: String, args: Bundle, notifyChanged: Boolean) {
- pages.add(PageInfo(klass, name, args))
- if (notifyChanged) notifyDataSetChanged()
- }
-
- fun getName(pos: Int): String {
- return pages[pos].name
- }
-
- @Deprecated("")
- fun getIndex(fragmentClass: Class<out PageFragment>): Int {
- for (i in pages.indices) {
- if (pages[i].fragmentClass == fragmentClass) {
- return i
- }
- }
- return -1
- }
-
- private class PageInfo internal constructor(val fragmentClass: Class<out PageFragment>, val name: String, val args: Bundle)
-
- override fun startUpdate(container: ViewGroup) {
- assert(container.id != View.NO_ID)
- }
-
- override fun instantiateItem(container: ViewGroup, position: Int): Any {
- if (mCurTransaction == null) {
- mCurTransaction = mFragmentManager.beginTransaction()
- }
-
- val itemId = position.toLong()
-
- // Do we already have this fragment?
- val name = "android:switcher:${container.id}:$itemId"
- var fragment: Fragment? = mFragmentManager.findFragmentByTag(name)
- if (fragment != null) {
- if (BuildConfig.DEBUG)
- Logger.verbose("Attaching item #$itemId: f=$fragment")
- mCurTransaction!!.attach(fragment)
- } else {
- fragment = getItem(position)
- if (BuildConfig.DEBUG)
- Logger.verbose("Adding item #$itemId: f=$fragment")
- mCurTransaction!!.add(container.id, fragment, "android:switcher:${container.id}:$itemId")
- }
- if (fragment !== mCurrentPrimaryItem) {
- fragment.setMenuVisibility(false)
- fragment.userVisibleHint = false
- }
-
- return fragment
- }
-
- override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
- if (mCurTransaction == null) {
- mCurTransaction = mFragmentManager.beginTransaction()
- }
- if (BuildConfig.DEBUG)
- Logger.verbose("Detaching item #" + position + ": f=" + `object`
- + " v=" + (`object` as Fragment).view)
- mCurTransaction!!.detach(`object` as Fragment)
- }
-
- override fun setPrimaryItem(container: ViewGroup, position: Int, `object`: Any) {
- val fragment = `object` as Fragment?
- if (fragment !== mCurrentPrimaryItem) {
- if (mCurrentPrimaryItem != null) {
- mCurrentPrimaryItem!!.setMenuVisibility(false)
- mCurrentPrimaryItem!!.userVisibleHint = false
- }
- if (fragment != null) {
- fragment.setMenuVisibility(true)
- fragment.userVisibleHint = true
- }
- mCurrentPrimaryItem = fragment
- }
- }
-
- override fun finishUpdate(container: ViewGroup) {
- if (mCurTransaction != null) {
- mCurTransaction!!.commitAllowingStateLoss()
- mCurTransaction = null
- mFragmentManager.executePendingTransactions()
- }
- }
-
- override fun isViewFromObject(view: View, `object`: Any): Boolean {
- return (`object` as Fragment).view === view
- }
-}