aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/activities
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/activities')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/AboutActivity.kt1
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt35
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/ImagePickerActivity.kt12
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt2
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt7
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt31
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt2
7 files changed, 66 insertions, 24 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/AboutActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/AboutActivity.kt
index b21cc3ab..80d2aa48 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/AboutActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/AboutActivity.kt
@@ -40,6 +40,7 @@ class AboutActivity : AboutActivityBase(null, {
val include = arrayOf(
"AboutLibraries",
"AndroidIconics",
+ "androidin_appbillingv3",
"androidslidinguppanel",
"Crashlytics",
"dbflow",
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..a7c59deb 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt
@@ -15,6 +15,7 @@ import android.view.View
import android.view.ViewGroup
import android.widget.ProgressBar
import android.widget.TextView
+import ca.allanwang.kau.email.sendEmail
import ca.allanwang.kau.permissions.PERMISSION_WRITE_EXTERNAL_STORAGE
import ca.allanwang.kau.permissions.kauOnRequestPermissionsResult
import ca.allanwang.kau.permissions.kauRequestPermissions
@@ -30,10 +31,7 @@ import com.mikepenz.google_material_typeface_library.GoogleMaterial
import com.mikepenz.iconics.typeface.IIcon
import com.pitchedapps.frost.BuildConfig
import com.pitchedapps.frost.R
-import com.pitchedapps.frost.utils.ARG_IMAGE_URL
-import com.pitchedapps.frost.utils.ARG_TEXT
-import com.pitchedapps.frost.utils.L
-import com.pitchedapps.frost.utils.Prefs
+import com.pitchedapps.frost.utils.*
import com.sothree.slidinguppanel.SlidingUpPanelLayout
import org.jetbrains.anko.doAsync
import org.jetbrains.anko.uiThread
@@ -194,6 +192,7 @@ class ImageActivity : AppCompatActivity() {
var success = true
try {
File(tempFilePath).copyTo(destination, true)
+ scanFile(destination)
} catch (e: Exception) {
success = false
} finally {
@@ -201,10 +200,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
}
}
}
@@ -212,6 +208,17 @@ class ImageActivity : AppCompatActivity() {
}
}
+ /**
+ * See <a href="https://developer.android.com/training/camera/photobasics.html#TaskGallery">Docs</a>
+ */
+ internal fun scanFile(file: File) {
+ if (!file.exists()) return
+ val mediaScanIntent = Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE)
+ val contentUri = Uri.fromFile(file)
+ mediaScanIntent.data = contentUri
+ this.sendBroadcast(mediaScanIntent)
+ }
+
internal fun deleteTempFile() {
if (tempFilePath != null) {
File(tempFilePath!!).delete()
@@ -233,7 +240,17 @@ class ImageActivity : AppCompatActivity() {
internal enum class FabStates(val iicon: IIcon, val iconColor: Int = Prefs.iconColor, val backgroundTint: Int = Prefs.iconBackgroundColor.withAlpha(255)) {
ERROR(GoogleMaterial.Icon.gmd_error, Color.WHITE, Color.RED) {
override fun onClick(activity: ImageActivity) {
- //todo add something
+ activity.materialDialogThemed {
+ title(R.string.kau_error)
+ content(R.string.bad_image_overlay)
+ positiveText(R.string.kau_yes)
+ onPositive { _, _ ->
+ activity.sendEmail(R.string.dev_email, R.string.debug_image_link_subject) {
+ addItem("Url", activity.imageUrl)
+ }
+ }
+ negativeText(R.string.kau_no)
+ }
}
},
NOTHING(GoogleMaterial.Icon.gmd_adjust) {
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..f18d358e
--- /dev/null
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/ImagePickerActivity.kt
@@ -0,0 +1,12 @@
+package com.pitchedapps.frost.activities
+
+import android.content.res.ColorStateList
+import android.os.Bundle
+import ca.allanwang.kau.imagepicker.ImagePickerActivityBase
+import ca.allanwang.kau.imagepicker.ImagePickerActivityOverlayBase
+import com.pitchedapps.frost.utils.Prefs
+
+/**
+ * Created by Allan Wang on 2017-07-23.
+ */
+class ImagePickerActivity : ImagePickerActivityOverlayBase() \ No newline at end of file
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt
index e4897be5..2dccbeb5 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt
@@ -106,7 +106,7 @@ class LoginActivity : BaseActivity() {
fun loadProfile(id: Long) {
- Glide.with(this@LoginActivity).load(PROFILE_PICTURE_URL(id)).withRoundIcon().listener(object : RequestListener<Drawable> {
+ Glide.with(profile).load(PROFILE_PICTURE_URL(id)).withRoundIcon().listener(object : RequestListener<Drawable> {
override fun onResourceReady(resource: Drawable?, model: Any?, target: Target<Drawable>?, dataSource: DataSource?, isFirstResource: Boolean): Boolean {
profileObservable.onSuccess(true)
return false
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/SettingsActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt
index a7ca6ce5..d073050b 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt
@@ -1,9 +1,11 @@
package com.pitchedapps.frost.activities
+import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
+import ca.allanwang.kau.about.kauLaunchAbout
import ca.allanwang.kau.changelog.showChangelog
import ca.allanwang.kau.kpref.activity.CoreAttributeContract
import ca.allanwang.kau.kpref.activity.KPrefActivity
@@ -27,11 +29,12 @@ import com.pitchedapps.frost.utils.iab.IS_FROST_PRO
*/
class SettingsActivity : KPrefActivity(), FrostBilling by IABSettings() {
+ var resultFlag = Activity.RESULT_CANCELED
+
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
- if (!onActivityResultBilling(requestCode, resultCode, data)) {
+ if (!onActivityResultBilling(requestCode, resultCode, data))
super.onActivityResult(requestCode, resultCode, data)
- adapter.notifyDataSetChanged()
- }
+ adapter.notifyDataSetChanged()
}
override fun kPrefCoreAttributes(): CoreAttributeContract.() -> Unit = {
@@ -65,15 +68,15 @@ class SettingsActivity : KPrefActivity(), FrostBilling by IABSettings() {
iicon = CommunityMaterial.Icon.cmd_flask_outline
}
- plainText(R.string.restore_purchases) {
- descRes = R.string.restore_purchases_desc
- iicon = GoogleMaterial.Icon.gmd_refresh
- onClick = { _, _, _ -> restorePurchases(false); true }
+ plainText(R.string.get_pro) {
+ descRes = R.string.get_pro_desc
+ iicon = GoogleMaterial.Icon.gmd_star
+ onClick = { _, _, _ -> restorePurchases(); true }
}
plainText(R.string.about_frost) {
iicon = GoogleMaterial.Icon.gmd_info
- onClick = { _, _, _ -> startActivity(AboutActivity::class.java, transition = true); true }
+ onClick = { _, _, _ -> kauLaunchAbout(AboutActivity::class.java); true }
}
if (BuildConfig.DEBUG) {
@@ -87,7 +90,7 @@ class SettingsActivity : KPrefActivity(), FrostBilling by IABSettings() {
}
fun shouldRestartMain() {
- setResult(MainActivity.REQUEST_RESTART)
+ setFrostResult(MainActivity.REQUEST_RESTART)
}
override fun onCreate(savedInstanceState: Bundle?) {
@@ -107,10 +110,14 @@ class SettingsActivity : KPrefActivity(), FrostBilling by IABSettings() {
}
override fun onBackPressed() {
- if (!super.backPress())
+ if (!super.backPress()) {
+ setResult(resultFlag)
finishSlideOut()
+ }
}
+
+
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.menu_settings, menu)
toolbar.tint(Prefs.iconColor)
@@ -135,6 +142,10 @@ class SettingsActivity : KPrefActivity(), FrostBilling by IABSettings() {
return true
}
+ fun setFrostResult(flag: Int) {
+ resultFlag = resultFlag and flag
+ }
+
override fun onDestroy() {
onDestroyBilling()
super.onDestroy()
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?) {