From 3d7252fd5337d9d1acbca2db92ed88b638986f1e Mon Sep 17 00:00:00 2001 From: Kazuki Yamaguchi Date: Sun, 15 Oct 2017 23:19:50 +0900 Subject: poststate moved to postfragmetn --- .../smileessence/view/adapter/PageListAdapter.kt | 140 --------------------- 1 file changed, 140 deletions(-) delete mode 100644 app/src/main/java/net/lacolaco/smileessence/view/adapter/PageListAdapter.kt (limited to 'app/src/main/java/net/lacolaco/smileessence/view/adapter') 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() - private val fragmentCache = HashMap>() - - @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, 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): Int { - for (i in pages.indices) { - if (pages[i].fragmentClass == fragmentClass) { - return i - } - } - return -1 - } - - private class PageInfo internal constructor(val fragmentClass: Class, 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 - } -} -- cgit v1.2.3