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

@ -7,9 +7,7 @@ import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.model.realm.SessionSet import net.pokeranalytics.android.model.realm.SessionSet
import kotlin.math.max 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, * 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.app.KeyguardManager
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.net.Uri
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import com.google.android.material.bottomnavigation.BottomNavigationView 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.model.realm.Currency
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.adapter.HomePagerAdapter import net.pokeranalytics.android.ui.adapter.HomePagerAdapter
import net.pokeranalytics.android.ui.extensions.showAlertDialog
import net.pokeranalytics.android.util.billing.AppGuard import net.pokeranalytics.android.util.billing.AppGuard
import timber.log.Timber
class HomeActivity : PokerAnalyticsActivity() { 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() { private fun observeRealmObjects() {
val realm = getRealm() val realm = getRealm()
@ -125,4 +152,14 @@ class HomeActivity : PokerAnalyticsActivity() {
viewPager.setCurrentItem(index, false) 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 package net.pokeranalytics.android.ui.activity
import android.Manifest
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import androidx.core.app.ActivityCompat
import io.realm.Realm import io.realm.Realm
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
@ -18,7 +15,7 @@ class ImportActivity : PokerAnalyticsActivity() {
private lateinit var fileURI: Uri private lateinit var fileURI: Uri
enum class IntentKey(val keyName: String) { enum class IntentKey(val keyName: String) {
FILE_PATH("filepath") URI("uri")
} }
companion object { companion object {
@ -26,13 +23,13 @@ class ImportActivity : PokerAnalyticsActivity() {
/** /**
* Create a new instance for result * Create a new instance for result
*/ */
fun newInstance(context: Context, filePath: String) { fun newInstance(context: Context, uri: Uri) {
context.startActivity(getIntent(context, filePath)) 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) val intent = Intent(context, ImportActivity::class.java)
intent.putExtra(ImportActivity.IntentKey.FILE_PATH.keyName, filePath) intent.putExtra(ImportActivity.IntentKey.URI.keyName, uri)
return intent return intent
} }
} }
@ -40,10 +37,7 @@ class ImportActivity : PokerAnalyticsActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
Timber.d("Start ImportActivity with URI: ${intent.data}") this.fileURI = intent.getParcelableExtra(ImportActivity.IntentKey.URI.keyName)
intent?.data?.let {
this.fileURI = it
}
setContentView(R.layout.activity_import) setContentView(R.layout.activity_import)
initUI() initUI()
@ -69,34 +63,21 @@ class ImportActivity : PokerAnalyticsActivity() {
fragment.setData(it) 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.add(R.id.container, fragment)
fragmentTransaction.commit() fragmentTransaction.commit()
} }
private fun requestPermission() { // private fun requestPermission() {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) { // if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {
ActivityCompat.requestPermissions( // ActivityCompat.requestPermissions(
this, arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), PERMISSION_REQUEST_ACCESS_FINE_LOCATION // this, arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), PERMISSION_REQUEST_ACCESS_FINE_LOCATION
) // )
} // }
} // }
//
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { // override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults) // super.onRequestPermissionsResult(requestCode, permissions, grantResults)
} // }
} }

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

@ -31,6 +31,7 @@
<string name="launch_report">Launch Report</string> <string name="launch_report">Launch Report</string>
<string name="progress">Progress</string> <string name="progress">Progress</string>
<string name="save_report">Save Report</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="address">Address</string>
<string name="suggestions">Naming suggestions</string> <string name="suggestions">Naming suggestions</string>

Loading…
Cancel
Save