From 311cb3ba5367fc2b355983cefa4d18a29f4c0b4f Mon Sep 17 00:00:00 2001 From: Aidan Follestad Date: Tue, 14 May 2019 14:36:24 -0700 Subject: [PATCH] When requesting permission from Fragment, use child fragment manager. Resolves #13. --- .../main/java/com/afollestad/assent/internal/Extensions.kt | 7 ++----- .../assentsample/fragment/ExampleChildFragment.kt | 7 +++++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/library/src/main/java/com/afollestad/assent/internal/Extensions.kt b/library/src/main/java/com/afollestad/assent/internal/Extensions.kt index e92401e..8e851b1 100644 --- a/library/src/main/java/com/afollestad/assent/internal/Extensions.kt +++ b/library/src/main/java/com/afollestad/assent/internal/Extensions.kt @@ -79,13 +79,10 @@ internal fun FragmentActivity.transact(action: FragmentTransaction.(Context) -> } internal fun Fragment.transact(action: FragmentTransaction.(Context) -> Unit) { - val fm = fragmentManager ?: throw IllegalStateException( - "Fragment manager unexpectedly null." - ) - fm.beginTransaction() + childFragmentManager.beginTransaction() .apply { action(activity ?: throw IllegalStateException("Fragment's activity is null.")) commit() } - fm.executePendingTransactions() + childFragmentManager.executePendingTransactions() } diff --git a/sample/src/main/java/com/afollestad/assentsample/fragment/ExampleChildFragment.kt b/sample/src/main/java/com/afollestad/assentsample/fragment/ExampleChildFragment.kt index b5efda6..223b8e8 100644 --- a/sample/src/main/java/com/afollestad/assentsample/fragment/ExampleChildFragment.kt +++ b/sample/src/main/java/com/afollestad/assentsample/fragment/ExampleChildFragment.kt @@ -7,6 +7,7 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import com.afollestad.assent.Permission.CALL_PHONE +import com.afollestad.assent.Permission.READ_CALENDAR import com.afollestad.assent.Permission.WRITE_EXTERNAL_STORAGE import com.afollestad.assent.askForPermissions import com.afollestad.assentsample.R.layout @@ -27,8 +28,10 @@ class ExampleChildFragment : Fragment() { savedInstanceState: Bundle? ) { super.onViewCreated(view, savedInstanceState) - requestPermissionButtonChild.setOnClickListener { - askForPermissions(WRITE_EXTERNAL_STORAGE, CALL_PHONE) { } + askForPermissions(CALL_PHONE) { + requestPermissionButtonChild.setOnClickListener { + askForPermissions(WRITE_EXTERNAL_STORAGE, CALL_PHONE) { } + } } } } \ No newline at end of file