6
6
7
7
package org.readium.r2.testapp.bookshelf
8
8
9
- import android.Manifest
10
- import android.content.Intent
11
- import android.content.pm.PackageManager
12
9
import android.graphics.Rect
13
10
import android.net.Uri
14
11
import android.os.Bundle
15
- import android.provider.Settings
16
12
import android.text.TextUtils
17
13
import android.view.LayoutInflater
18
14
import android.view.View
@@ -22,7 +18,6 @@ import android.widget.EditText
22
18
import androidx.activity.result.ActivityResultLauncher
23
19
import androidx.activity.result.contract.ActivityResultContracts
24
20
import androidx.appcompat.app.AlertDialog
25
- import androidx.core.content.ContextCompat
26
21
import androidx.fragment.app.Fragment
27
22
import androidx.fragment.app.viewModels
28
23
import androidx.recyclerview.widget.RecyclerView
@@ -37,26 +32,15 @@ import org.readium.r2.testapp.domain.model.Book
37
32
import org.readium.r2.testapp.opds.GridAutoFitLayoutManager
38
33
import org.readium.r2.testapp.reader.ReaderContract
39
34
40
-
41
35
class BookshelfFragment : Fragment () {
42
36
43
37
private val bookshelfViewModel: BookshelfViewModel by viewModels()
44
38
private lateinit var bookshelfAdapter: BookshelfAdapter
45
39
private lateinit var documentPickerLauncher: ActivityResultLauncher <String >
46
40
private lateinit var readerLauncher: ActivityResultLauncher <ReaderContract .Input >
47
- private var permissionAsked: Boolean = false
48
41
private var _binding : FragmentBookshelfBinding ? = null
49
42
private val binding get() = _binding !!
50
43
51
- private val requestPermissionLauncher =
52
- registerForActivityResult(
53
- ActivityResultContracts .RequestPermission ()
54
- ) { isGranted: Boolean ->
55
- if (isGranted) {
56
- importBooks()
57
- }
58
- }
59
-
60
44
override fun onCreateView (
61
45
inflater : LayoutInflater ,
62
46
container : ViewGroup ? ,
@@ -103,8 +87,6 @@ class BookshelfFragment : Fragment() {
103
87
bookshelfAdapter.submitList(it)
104
88
})
105
89
106
- importBooks()
107
-
108
90
// FIXME embedded dialogs like this are ugly
109
91
binding.bookshelfAddBookFab.setOnClickListener {
110
92
var selected = 0
@@ -181,57 +163,6 @@ class BookshelfFragment : Fragment() {
181
163
}
182
164
}
183
165
184
- private fun requestStoragePermission () {
185
- if (shouldShowRequestPermissionRationale(Manifest .permission.WRITE_EXTERNAL_STORAGE )) {
186
- Snackbar .make(
187
- this .requireView(),
188
- R .string.permission_external_new_explanation,
189
- Snackbar .LENGTH_LONG
190
- )
191
- .setAction(R .string.permission_retry) {
192
- requestPermissionLauncher.launch(Manifest .permission.WRITE_EXTERNAL_STORAGE )
193
- }
194
- .show()
195
- } else {
196
- // FIXME this is an ugly hack for when user has said don't ask again
197
- if (permissionAsked) {
198
- Snackbar .make(
199
- this .requireView(),
200
- R .string.permission_external_new_explanation,
201
- Snackbar .LENGTH_INDEFINITE
202
- )
203
- .setAction(R .string.action_settings) {
204
- Intent (Settings .ACTION_APPLICATION_DETAILS_SETTINGS ).apply {
205
- addCategory(Intent .CATEGORY_DEFAULT )
206
- data = Uri .parse(" package:${view?.context?.packageName} " )
207
- }.run (::startActivity)
208
- }
209
- .setActionTextColor(
210
- ContextCompat .getColor(
211
- requireContext(),
212
- R .color.snackbar_text_color
213
- )
214
- )
215
- .show()
216
- } else {
217
- permissionAsked = true
218
- requestPermissionLauncher.launch(Manifest .permission.WRITE_EXTERNAL_STORAGE )
219
- }
220
- }
221
- }
222
-
223
- private fun importBooks () {
224
- if (ContextCompat .checkSelfPermission(
225
- requireContext(),
226
- Manifest .permission.WRITE_EXTERNAL_STORAGE
227
- )
228
- == PackageManager .PERMISSION_GRANTED
229
- ) {
230
- bookshelfViewModel.copySamplesFromAssetsToStorage()
231
- } else requestStoragePermission()
232
-
233
- }
234
-
235
166
private fun deleteBook (book : Book ) {
236
167
bookshelfViewModel.deleteBook(book)
237
168
}
0 commit comments