Ask confirmation before starting import

dev
Laurent 7 years ago
parent 01d9e5c53e
commit 8eb6174221
  1. 13
      app/src/main/AndroidManifest.xml
  2. 4
      app/src/main/java/net/pokeranalytics/android/model/utils/SessionSetManager.kt
  3. 37
      app/src/main/java/net/pokeranalytics/android/ui/activity/HomeActivity.kt
  4. 53
      app/src/main/java/net/pokeranalytics/android/ui/activity/ImportActivity.kt
  5. 1
      app/src/main/java/net/pokeranalytics/android/ui/fragment/ImportFragment.kt
  6. 1
      app/src/main/res/values/strings.xml

@ -22,6 +22,7 @@
<activity
android:name="net.pokeranalytics.android.ui.activity.HomeActivity"
android:launchMode="singleInstance"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
@ -30,11 +31,6 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="net.pokeranalytics.android.ui.activity.ImportActivity"
android:launchMode="singleTop">
<intent-filter tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW" />
@ -49,6 +45,13 @@
</activity>
<activity
android:name="net.pokeranalytics.android.ui.activity.ImportActivity"
android:screenOrientation="portrait"
android:launchMode="singleTop">
</activity>
<activity
android:name="net.pokeranalytics.android.ui.activity.SessionActivity"
android:launchMode="singleTop"

@ -7,9 +7,7 @@ import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.model.realm.SessionSet
import kotlin.math.max
class CorruptSessionSetException(message: String) : Exception(message) {
}
class CorruptSessionSetException(message: String) : Exception(message)
/**
* The manager is in charge of updating the abstract concept of timeline,

@ -3,6 +3,7 @@ package net.pokeranalytics.android.ui.activity
import android.app.KeyguardManager
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.os.Bundle
import com.google.android.material.bottomnavigation.BottomNavigationView
@ -13,7 +14,9 @@ import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.Currency
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.adapter.HomePagerAdapter
import net.pokeranalytics.android.ui.extensions.showAlertDialog
import net.pokeranalytics.android.util.billing.AppGuard
import timber.log.Timber
class HomeActivity : PokerAnalyticsActivity() {
@ -75,6 +78,30 @@ class HomeActivity : PokerAnalyticsActivity() {
}
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
intent?.let {
when (intent.action) {
"android.intent.action.VIEW" -> { // import
val data = it.data
if (data != null) {
this.requestImportConfirmation(data)
} else {
throw IllegalStateException("URI null on import")
}
}
else -> {
Timber.d("Intent ${intent.action} unmanaged")
}
}
}
}
private fun observeRealmObjects() {
val realm = getRealm()
@ -125,4 +152,14 @@ class HomeActivity : PokerAnalyticsActivity() {
viewPager.setCurrentItem(index, false)
}
// Import
fun requestImportConfirmation(uri: Uri) {
showAlertDialog(this, R.string.import_confirmation, showCancelButton = true, positiveAction = {
ImportActivity.newInstance(this, uri)
})
}
}

@ -1,12 +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.net.Uri
import android.os.Bundle
import androidx.core.app.ActivityCompat
import io.realm.Realm
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
@ -18,7 +15,7 @@ class ImportActivity : PokerAnalyticsActivity() {
private lateinit var fileURI: Uri
enum class IntentKey(val keyName: String) {
FILE_PATH("filepath")
URI("uri")
}
companion object {
@ -26,13 +23,13 @@ class ImportActivity : PokerAnalyticsActivity() {
/**
* Create a new instance for result
*/
fun newInstance(context: Context, filePath: String) {
context.startActivity(getIntent(context, filePath))
fun newInstance(context: Context, uri: Uri) {
context.startActivity(getIntent(context, uri))
}
private fun getIntent(context: Context, filePath: String) : Intent {
private fun getIntent(context: Context, uri: Uri) : Intent {
val intent = Intent(context, ImportActivity::class.java)
intent.putExtra(ImportActivity.IntentKey.FILE_PATH.keyName, filePath)
intent.putExtra(ImportActivity.IntentKey.URI.keyName, uri)
return intent
}
}
@ -40,10 +37,7 @@ class ImportActivity : PokerAnalyticsActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Timber.d("Start ImportActivity with URI: ${intent.data}")
intent?.data?.let {
this.fileURI = it
}
this.fileURI = intent.getParcelableExtra(ImportActivity.IntentKey.URI.keyName)
setContentView(R.layout.activity_import)
initUI()
@ -69,34 +63,21 @@ class ImportActivity : PokerAnalyticsActivity() {
fragment.setData(it)
}
// val
// CSVFormat.DEFAULT.parse()
// val path = fileURI.path(contentResolver)
// Timber.d("Load fragment with path: ${path}")
//
// val file = File(path)
// Timber.d(">>>> length = ${file.length()}")
//
// path?.let { filePath ->
// fragment.setData(filePath)
// }
fragmentTransaction.add(R.id.container, fragment)
fragmentTransaction.commit()
}
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 onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
}
// 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 onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
// super.onRequestPermissionsResult(requestCode, permissions, grantResults)
// }
}

@ -40,6 +40,7 @@ class ImportFragment : RealmFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
Timber.d("> onViewCreated...")
this.startImport()
}

@ -31,6 +31,7 @@
<string name="launch_report">Launch Report</string>
<string name="progress">Progress</string>
<string name="save_report">Save Report</string>
<string name="import_confirmation">Do you want to proceed with the file import?</string>
<string name="address">Address</string>
<string name="suggestions">Naming suggestions</string>

Loading…
Cancel
Save