Import UI update

dev
Laurent 7 years ago
parent 4be80d399c
commit 9a8182b00e
  1. 44
      app/src/main/java/net/pokeranalytics/android/ui/activity/ImportActivity.kt
  2. 1
      app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt
  3. 48
      app/src/main/java/net/pokeranalytics/android/ui/fragment/ImportFragment.kt

@ -1,7 +1,9 @@
package net.pokeranalytics.android.ui.activity
import android.Manifest
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Bundle
import android.os.PersistableBundle
import androidx.core.app.ActivityCompat
@ -9,11 +11,31 @@ import io.realm.Realm
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.fragment.ImportFragment
import net.pokeranalytics.android.util.csv.CSVImporter
import timber.log.Timber
class ImportActivity : PokerAnalyticsActivity() {
enum class IntentKey(val keyName: String) {
FILE_PATH("filepath")
}
companion object {
/**
* Create a new instance for result
*/
fun newInstance(context: Context, filePath: String) {
context.startActivity(getIntent(context, filePath))
}
private fun getIntent(context: Context, filePath: String) : Intent {
val intent = Intent(context, ImportActivity::class.java)
intent.putExtra(ImportActivity.IntentKey.FILE_PATH.keyName, filePath)
return intent
}
}
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
@ -37,20 +59,19 @@ class ImportActivity : PokerAnalyticsActivity() {
val fragmentTransaction = supportFragmentManager.beginTransaction()
val fragment = ImportFragment()
val filePath = intent.getStringExtra(ImportActivity.IntentKey.FILE_PATH.keyName)
fragment.setData(filePath)
fragmentTransaction.add(R.id.container, fragment)
fragmentTransaction.commit()
}
private fun csv() {
val path = "sdcard/Download/RunGoodSessions1.csv"
val csv = CSVImporter(path)
csv.start()
ActivityCompat.requestPermissions(
this, arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), PERMISSION_REQUEST_ACCESS_FINE_LOCATION
)
private fun requestPermission() {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {
ActivityCompat.requestPermissions(
this, arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), PERMISSION_REQUEST_ACCESS_FINE_LOCATION
)
}
}
override fun onNewIntent(intent: Intent?) {
@ -64,7 +85,6 @@ class ImportActivity : PokerAnalyticsActivity() {
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
}
}

@ -20,6 +20,7 @@ open class PokerAnalyticsActivity : AppCompatActivity() {
companion object {
const val PERMISSION_REQUEST_ACCESS_FINE_LOCATION = 1000
const val PERMISSION_REQUEST_READ_EXTERNAL_STORAGE = 1001
const val PLAY_SERVICES_RESOLUTION_REQUEST = 2000
}

@ -1,11 +1,59 @@
package net.pokeranalytics.android.ui.fragment
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.async
import kotlinx.coroutines.launch
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.fragment.components.RealmFragment
import net.pokeranalytics.android.util.csv.CSVImporter
import timber.log.Timber
import java.util.*
import kotlin.coroutines.CoroutineContext
class ImportFragment : RealmFragment() {
val coroutineContext: CoroutineContext
get() = Dispatchers.Main
private lateinit var filePath: String
fun setData(path: String) {
this.filePath = path
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
super.onCreateView(inflater, container, savedInstanceState)
return inflater.inflate(R.layout.fragment_import, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
this.startImport()
}
fun startImport() {
GlobalScope.launch(coroutineContext) {
val test = GlobalScope.async {
val s = Date()
Timber.d(">>> start...")
val csv = CSVImporter(filePath)
csv.start()
val e = Date()
val duration = (e.time - s.time) / 1000.0
Timber.d(">>> Import ended in $duration seconds")
}
test.await()
}
}
}
Loading…
Cancel
Save