diff options
author | Allan Wang <me@allanwang.ca> | 2017-07-23 13:21:44 -0700 |
---|---|---|
committer | Allan Wang <me@allanwang.ca> | 2017-07-23 13:21:44 -0700 |
commit | 70a56206b3cfb36e53ff9bafef899c5118b18591 (patch) | |
tree | 53f387b83de3b162dd35feb78d8ebde0b9d064ef | |
parent | 5b7c0e3e8ec2d48267329647140715798ae155c5 (diff) | |
download | frost-70a56206b3cfb36e53ff9bafef899c5118b18591.tar.gz frost-70a56206b3cfb36e53ff9bafef899c5118b18591.tar.bz2 frost-70a56206b3cfb36e53ff9bafef899c5118b18591.zip |
Do not delete temp file on save
10 files changed, 39 insertions, 36 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d60854b3..9a342e5e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -121,6 +121,9 @@ <activity android:name=".activities.ImageActivity" android:theme="@style/FrostTheme.Overlay.Fade" /> + <activity + android:name=".activities.ImagePickerActivity" + android:theme="@style/FrostTheme.Overlay.Slide" /> <service android:name=".services.NotificationService" @@ -135,8 +138,8 @@ </intent-filter> </receiver> <provider - android:authorities="${applicationId}.provider" android:name="android.support.v4.content.FileProvider" + android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true"> <meta-data diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt index 79d9f782..04b0046c 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt @@ -201,10 +201,7 @@ class ImageActivity : AppCompatActivity() { uiThread { val text = if (success) R.string.image_download_success else R.string.image_download_fail snackbar(text) - if (success) { - deleteTempFile() - fabAction = FabStates.SHARE - } + if (success) fabAction = FabStates.SHARE } } } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/ImagePickerActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/ImagePickerActivity.kt new file mode 100644 index 00000000..7ba26715 --- /dev/null +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/ImagePickerActivity.kt @@ -0,0 +1,10 @@ +package com.pitchedapps.frost.activities + +import ca.allanwang.kau.imagepicker.ImagePickerActivity + +/** + * Created by Allan Wang on 2017-07-23. + */ +class ImagePickerActivity : ImagePickerActivity() { + +}
\ No newline at end of file diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt index a45bd033..978659db 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt @@ -1,12 +1,12 @@ package com.pitchedapps.frost.activities +import android.annotation.SuppressLint import android.app.AlarmManager import android.app.PendingIntent import android.content.Context import android.content.Intent import android.graphics.drawable.ColorDrawable import android.net.Uri -import android.os.Build import android.os.Bundle import android.support.annotation.StringRes import android.support.design.widget.AppBarLayout @@ -392,9 +392,10 @@ class MainActivity : BaseActivity(), SearchWebView.SearchContract, } override fun openFileChooser(filePathCallback: ValueCallback<Array<Uri>>, fileChooserParams: WebChromeClient.FileChooserParams) { - openFileChooser(this, filePathCallback, fileChooserParams) + openImagePicker(filePathCallback, fileChooserParams) } + @SuppressLint("NewApi") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { if (onActivityResultWeb(requestCode, resultCode, data)) return super.onActivityResult(requestCode, resultCode, data) @@ -405,7 +406,7 @@ class MainActivity : BaseActivity(), SearchWebView.SearchContract, intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK) val pending = PendingIntent.getActivity(this, 666, intent, PendingIntent.FLAG_CANCEL_CURRENT) val alarm = getSystemService(Context.ALARM_SERVICE) as AlarmManager - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) + if (buildIsMarshmallowAndUp) alarm.setExactAndAllowWhileIdle(AlarmManager.RTC, System.currentTimeMillis() + 100, pending) else alarm.setExact(AlarmManager.RTC, System.currentTimeMillis() + 100, pending) diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt index f03c653c..13d72ffe 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt @@ -126,7 +126,7 @@ open class WebOverlayActivity : AppCompatActivity(), } override fun openFileChooser(filePathCallback: ValueCallback<Array<Uri>>, fileChooserParams: WebChromeClient.FileChooserParams) { - openFileChooser(this, filePathCallback, fileChooserParams) + openImagePicker(filePathCallback, fileChooserParams) } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { diff --git a/app/src/main/kotlin/com/pitchedapps/frost/contracts/FileChooser.kt b/app/src/main/kotlin/com/pitchedapps/frost/contracts/FileChooser.kt index 5b2cfa49..e36d7da3 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/contracts/FileChooser.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/contracts/FileChooser.kt @@ -5,14 +5,15 @@ import android.content.Intent import android.net.Uri import android.webkit.ValueCallback import android.webkit.WebChromeClient -import ca.allanwang.kau.permissions.PERMISSION_READ_EXTERNAL_STORAGE -import ca.allanwang.kau.permissions.kauRequestPermissions +import ca.allanwang.kau.imagepicker.kauLaunchImagePicker +import ca.allanwang.kau.imagepicker.kauOnImagePickerResult +import com.pitchedapps.frost.activities.ImagePickerActivity import com.pitchedapps.frost.utils.L /** * Created by Allan Wang on 2017-07-04. */ -const val FILE_CHOOSER_REQUEST = 67 +const val IMAGE_CHOOSER_REQUEST = 67 interface FileChooserActivityContract { fun openFileChooser(filePathCallback: ValueCallback<Array<Uri>>, fileChooserParams: WebChromeClient.FileChooserParams) @@ -20,35 +21,24 @@ interface FileChooserActivityContract { interface FileChooserContract { var filePathCallback: ValueCallback<Array<Uri>>? - fun openFileChooser(activity: Activity, filePathCallback: ValueCallback<Array<Uri>>, fileChooserParams: WebChromeClient.FileChooserParams) - fun onActivityResultWeb(requestCode: Int, resultCode: Int, intent: Intent?): Boolean + fun Activity.openImagePicker(filePathCallback: ValueCallback<Array<Uri>>, fileChooserParams: WebChromeClient.FileChooserParams) + fun Activity.onActivityResultWeb(requestCode: Int, resultCode: Int, intent: Intent?): Boolean } class FileChooserDelegate : FileChooserContract { override var filePathCallback: ValueCallback<Array<Uri>>? = null - override fun openFileChooser(activity: Activity, filePathCallback: ValueCallback<Array<Uri>>, fileChooserParams: WebChromeClient.FileChooserParams) { - activity.kauRequestPermissions(PERMISSION_READ_EXTERNAL_STORAGE) { - granted, _ -> - if (!granted) return@kauRequestPermissions - val contentSelectionIntent = Intent(Intent.ACTION_GET_CONTENT) - contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE) - contentSelectionIntent.type = fileChooserParams.acceptTypes?.joinToString(separator = "|") ?: "*/*" - activity.startActivityForResult(contentSelectionIntent, FILE_CHOOSER_REQUEST) - this.filePathCallback?.onReceiveValue(null) - this.filePathCallback = filePathCallback - } + override fun Activity.openImagePicker(filePathCallback: ValueCallback<Array<Uri>>, fileChooserParams: WebChromeClient.FileChooserParams) { + kauLaunchImagePicker(ImagePickerActivity::class.java, IMAGE_CHOOSER_REQUEST) } - override fun onActivityResultWeb(requestCode: Int, resultCode: Int, intent: Intent?): Boolean { + override fun Activity.onActivityResultWeb(requestCode: Int, resultCode: Int, intent: Intent?): Boolean { L.d("On activity results web $requestCode") - if (requestCode != FILE_CHOOSER_REQUEST) return false - var results: Uri? = null - - if (resultCode == Activity.RESULT_OK && intent != null) results = Uri.parse(intent.dataString) + if (requestCode != IMAGE_CHOOSER_REQUEST) return false + val results = kauOnImagePickerResult(resultCode, intent).map { Uri.parse(it.data) } L.d("Callback received; ${filePathCallback != null}") - filePathCallback?.onReceiveValue(if (results == null) null else arrayOf(results)) + filePathCallback?.onReceiveValue(results.toTypedArray()) filePathCallback = null return true } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Behaviour.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Behaviour.kt index 831b1bff..2af67602 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Behaviour.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Behaviour.kt @@ -27,6 +27,10 @@ fun SettingsActivity.getBehaviourPrefs(): KPrefAdapterBuilder.() -> Unit = { descRes = R.string.viewpager_swipe_desc } + checkbox(R.string.search_bar, { Prefs.searchBar }, { Prefs.searchBar = it; setFrostResult(MainActivity.REQUEST_SEARCH) }) { + descRes = R.string.search_bar_desc + } + checkbox(R.string.exit_confirmation, { Prefs.exitConfirmation }, { Prefs.exitConfirmation = it }) { descRes = R.string.exit_confirmation_desc } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt index 81758e7e..05a852ee 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt @@ -22,9 +22,7 @@ fun SettingsActivity.getExperimentalPrefs(): KPrefAdapterBuilder.() -> Unit = { // Experimental content starts here ------------------ - checkbox(R.string.search_bar, { Prefs.searchBar }, { Prefs.searchBar = it; setFrostResult(MainActivity.REQUEST_SEARCH) }) { - descRes = R.string.search_bar_desc - } + // Experimental content ends here -------------------- diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt index 63e57554..a20e755f 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt @@ -119,7 +119,7 @@ object Prefs : KPref() { var analytics: Boolean by kpref("analytics", true) - var searchBar: Boolean by kpref("search_bar", Showcase.experimentalDefault) + var searchBar: Boolean by kpref("search_bar", true) var overlayEnabled: Boolean by kpref("overlay_enabled", true) diff --git a/gradle.properties b/gradle.properties index 1538b932..6adf24e1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,7 +17,7 @@ MIN_SDK=21 TARGET_SDK=26 BUILD_TOOLS=26.0.0 -KAU=8e2fc5f +KAU=3.1.0 KOTLIN=1.1.3-2 CRASHLYTICS=2.6.8 DBFLOW=4.0.5 |