102 lines
3.6 KiB
Kotlin
102 lines
3.6 KiB
Kotlin
/*
|
|
* Copyright 2016 Christian Basler
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package ch.dissem.apps.abit
|
|
|
|
import android.app.Fragment
|
|
import android.os.Bundle
|
|
import android.view.*
|
|
import android.widget.Toast
|
|
import com.github.angads25.filepicker.model.DialogConfigs
|
|
import com.github.angads25.filepicker.model.DialogProperties
|
|
import com.github.angads25.filepicker.view.FilePickerDialog
|
|
import kotlinx.android.synthetic.main.fragment_import_input.*
|
|
import java.io.ByteArrayOutputStream
|
|
import java.io.File
|
|
import java.io.FileInputStream
|
|
import java.io.IOException
|
|
|
|
/**
|
|
* @author Christian Basler
|
|
*/
|
|
class InputWifFragment : Fragment() {
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
setHasOptionsMenu(true)
|
|
}
|
|
|
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View =
|
|
inflater.inflate(R.layout.fragment_import_input, container, false)
|
|
|
|
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
|
|
super.onViewCreated(view, savedInstanceState)
|
|
next.setOnClickListener {
|
|
val bundle = Bundle()
|
|
bundle.putString(ImportIdentitiesFragment.WIF_DATA, wif_input.text.toString())
|
|
|
|
val fragment = ImportIdentitiesFragment().apply {
|
|
arguments = bundle
|
|
}
|
|
|
|
fragmentManager.beginTransaction()
|
|
.replace(R.id.content, fragment)
|
|
.commit()
|
|
}
|
|
}
|
|
|
|
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) =
|
|
inflater.inflate(R.menu.import_input_data, menu)
|
|
|
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
|
val properties = DialogProperties()
|
|
properties.selection_mode = DialogConfigs.SINGLE_MODE
|
|
properties.selection_type = DialogConfigs.FILE_SELECT
|
|
properties.root = File(DialogConfigs.DEFAULT_DIR)
|
|
properties.error_dir = File(DialogConfigs.DEFAULT_DIR)
|
|
properties.extensions = null
|
|
val dialog = FilePickerDialog(activity, properties)
|
|
dialog.setTitle(getString(R.string.select_file_title))
|
|
dialog.setDialogSelectionListener { files ->
|
|
if (files.isNotEmpty()) {
|
|
try {
|
|
FileInputStream(files[0]).use { inputStream ->
|
|
val data = ByteArrayOutputStream()
|
|
val buffer = ByteArray(1024)
|
|
|
|
var length: Int = inputStream.read(buffer)
|
|
|
|
while (length != -1) {
|
|
data.write(buffer, 0, length)
|
|
length = inputStream.read(buffer)
|
|
}
|
|
wif_input.setText(data.toByteArray().toString())
|
|
}
|
|
} catch (e: IOException) {
|
|
Toast.makeText(
|
|
activity,
|
|
R.string.error_loading_data,
|
|
Toast.LENGTH_SHORT
|
|
).show()
|
|
}
|
|
|
|
}
|
|
}
|
|
dialog.show()
|
|
return true
|
|
}
|
|
}
|