diff --git a/app/build.gradle b/app/build.gradle index 1f0aa91..ad7466d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -33,7 +33,7 @@ dependencies { implementation 'com.android.support:gridlayout-v7:28.0.0-rc01' api 'com.google.guava:guava:26.0-android' - implementation 'com.github.isabsent:filepicker:1.1.01' + implementation 'com.github.codekidX:storage-chooser:2.0.4.2' // implementation 'com.github.mjdev:libaums:0.5.5' implementation project(':libaums') implementation project(':dmg2img') diff --git a/app/src/main/java/eu/depau/etchdroid/activities/WizardActivity.kt b/app/src/main/java/eu/depau/etchdroid/activities/WizardActivity.kt index 71b377e..b888d03 100644 --- a/app/src/main/java/eu/depau/etchdroid/activities/WizardActivity.kt +++ b/app/src/main/java/eu/depau/etchdroid/activities/WizardActivity.kt @@ -1,25 +1,12 @@ package eu.depau.etchdroid.activities import android.content.Intent -import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.view.View -import com.github.isabsent.filepicker.SimpleFilePickerDialog import eu.depau.etchdroid.StateKeeper import eu.depau.etchdroid.fragments.WizardFragment -abstract class WizardActivity : AppCompatActivity(), SimpleFilePickerDialog.InteractionListenerString { - override fun onResult(dialogTag: String, which: Int, extras: Bundle): Boolean { - if (StateKeeper.currentFragment is SimpleFilePickerDialog.InteractionListenerString) - return (StateKeeper.currentFragment as SimpleFilePickerDialog.InteractionListenerString).onResult(dialogTag, which, extras) - throw RuntimeException("Wrong fragment fsType") - } - - override fun showListItemDialog(title: String?, folderPath: String?, mode: SimpleFilePickerDialog.CompositeMode?, dialogTag: String?) { - if (StateKeeper.currentFragment is SimpleFilePickerDialog.InteractionListenerString) - return (StateKeeper.currentFragment as SimpleFilePickerDialog.InteractionListenerString).showListItemDialog(title, folderPath, mode, dialogTag) - } - +abstract class WizardActivity : AppCompatActivity() { abstract fun goToNewFragment(fragment: WizardFragment) open fun onCheckBoxClicked(view: View) { diff --git a/app/src/main/java/eu/depau/etchdroid/fragments/ImageLocationFragment.kt b/app/src/main/java/eu/depau/etchdroid/fragments/ImageLocationFragment.kt index f9be3bc..a845b3c 100644 --- a/app/src/main/java/eu/depau/etchdroid/fragments/ImageLocationFragment.kt +++ b/app/src/main/java/eu/depau/etchdroid/fragments/ImageLocationFragment.kt @@ -14,17 +14,17 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import com.github.isabsent.filepicker.SimpleFilePickerDialog +import com.codekidlabs.storagechooser.StorageChooser import eu.depau.etchdroid.R import eu.depau.etchdroid.StateKeeper import eu.depau.etchdroid.activities.WizardActivity import eu.depau.etchdroid.adapters.PartitionTableRecyclerViewAdapter -import eu.depau.etchdroid.kotlin_exts.getFileName -import eu.depau.etchdroid.kotlin_exts.snackbar import eu.depau.etchdroid.enums.FlashMethod import eu.depau.etchdroid.enums.ImageLocation import eu.depau.etchdroid.enums.WizardStep import eu.depau.etchdroid.img_types.DMGImage +import eu.depau.etchdroid.kotlin_exts.getFileName +import eu.depau.etchdroid.kotlin_exts.snackbar import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.fragment_select_location.* import java.io.File @@ -33,8 +33,7 @@ import java.io.File /** * A placeholder fragment containing a simple view. */ -class ImageLocationFragment : WizardFragment(), SimpleFilePickerDialog.InteractionListenerString { - +class ImageLocationFragment : WizardFragment() { val READ_REQUEST_CODE = 42 val MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE = 29 val TAG = "ImageLocationFragment" @@ -100,7 +99,21 @@ class ImageLocationFragment : WizardFragment(), SimpleFilePickerDialog.Interacti FlashMethod.FLASH_DMG_API -> { if (checkAndRequestStorageReadPerm()) { val sdcard = Environment.getExternalStorageDirectory().absolutePath - showListItemDialog("Select a DMG file", sdcard, SimpleFilePickerDialog.CompositeMode.FILE_ONLY_DIRECT_CHOICE_IMMEDIATE, PICKER_DIALOG_TAG) + + + val chooser = StorageChooser.Builder() + .withActivity(activity) + .withFragmentManager(activity!!.fragmentManager) + .withMemoryBar(true) + .allowCustomPath(true) + .setType(StorageChooser.FILE_PICKER) + .customFilter(arrayListOf("dmg")) + .build() + chooser.show() + chooser.setOnSelectListener { + StateKeeper.imageFile = Uri.fromFile(File(it)) + loadImageChanges(activity as WizardActivity) + } } } FlashMethod.FLASH_UNETBOOTIN -> { @@ -259,25 +272,4 @@ class ImageLocationFragment : WizardFragment(), SimpleFilePickerDialog.Interacti } } } - - - override fun onResult(dialogTag: String, which: Int, extras: Bundle): Boolean { - when (dialogTag) { - PICKER_DIALOG_TAG -> { - if (extras.containsKey(SimpleFilePickerDialog.SELECTED_SINGLE_PATH)) { - val path = extras.getString(SimpleFilePickerDialog.SELECTED_SINGLE_PATH) - StateKeeper.imageFile = Uri.fromFile(File(path)) - loadImageChanges(activity as WizardActivity) - } - } - } - return false - } - - override fun showListItemDialog(title: String?, folderPath: String?, mode: SimpleFilePickerDialog.CompositeMode?, dialogTag: String?) { - - SimpleFilePickerDialog.build(folderPath, mode) - .title(title) - .show(this, dialogTag) - } } diff --git a/build.gradle b/build.gradle index 23c11fb..2ac0e46 100644 --- a/build.gradle +++ b/build.gradle @@ -25,6 +25,7 @@ allprojects { repositories { google() jcenter() + maven { url "https://jitpack.io" } } }