aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-07-06 02:52:18 -0400
committerGitHub <noreply@github.com>2017-07-06 02:52:18 -0400
commitbbe30297a216218ded4c2c6e3e8c2843652eb7a7 (patch)
treed120e124cb12d5474d37f1bc3e67fdaa5179c4c3
parent311c7eeb304048c31f986d2d06010d0a486555ad (diff)
downloadfrost-bbe30297a216218ded4c2c6e3e8c2843652eb7a7.tar.gz
frost-bbe30297a216218ded4c2c6e3e8c2843652eb7a7.tar.bz2
frost-bbe30297a216218ded4c2c6e3e8c2843652eb7a7.zip
Dev (#29) - micro fixes mostly from KAUv1.1.4
* Add changelog * Add play descriptions * Test build since tag * Adjust view on keyboard, fixes * Update kau, merge kpref singles, update swipe * Fix swipe background * Allow swipe customization
-rw-r--r--.travis.yml3
-rw-r--r--app/build.gradle11
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/WebOverlayActivity.kt19
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/settings/Behaviour.kt4
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt2
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/utils/Showcase.kt3
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt2
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt1
-rw-r--r--app/src/main/play/en-CA/listing/fulldescription24
-rw-r--r--app/src/main/play/en-CA/listing/shortdescription1
-rw-r--r--app/src/main/play/en-CA/whatsnew1
-rw-r--r--app/src/main/res/values/strings_preferences2
-rw-r--r--app/src/main/res/values/styles.xml2
-rw-r--r--app/src/main/res/xml/changelog.xml69
-rw-r--r--docs/Changelog.md67
-rw-r--r--gradle.properties3
16 files changed, 135 insertions, 79 deletions
diff --git a/.travis.yml b/.travis.yml
index 52a5ec31..4c247eda 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -18,10 +18,11 @@ before_install:
- tar xvf frost.tar
- chmod +x gradlew
after_success:
+- ./gradlew androidGitVersion
- if [[ "$TRAVIS_BRANCH" != "master" ]]; then chmod +x ./generate-apk-release.sh; ./generate-apk-release.sh; fi
script:
- cd $TRAVIS_BUILD_DIR/
-- if [[ "$TRAVIS_BRANCH" == "master" ]]; then ./gradlew app:publishApkRelease; else ./gradlew assembleReleaseTest; fi
+- if [[ "$TRAVIS_BRANCH" == "master" ]]; then ./gradlew publishRelease; else ./gradlew assembleReleaseTest; fi
notifications:
email: false
slack:
diff --git a/app/build.gradle b/app/build.gradle
index 169c0a77..921f0cf5 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -12,6 +12,7 @@ apply plugin: 'com.github.triplet.play'
play {
jsonFile = file('../files/gplay-keys.json')
track = 'alpha'
+ errorOnSizeLimit = true
uploadImages = false
untrackOld = true
}
@@ -20,11 +21,11 @@ android {
compileSdkVersion Integer.parseInt(project.TARGET_SDK)
buildToolsVersion project.BUILD_TOOLS
- def offset = Integer.parseInt(System.getenv("TRAVIS_BUILD_NUMBER") ?: "0")
+// def offset = Integer.parseInt(System.getenv("TRAVIS_BUILD_NUMBER") ?: "0")
androidGitVersion {
- baseCode offset
- codeFormat = 'MMNNPPXX'
+// baseCode offset
+ codeFormat = 'MMNNPPBB'
//since we use travis, all builds will be dirty
format = '%tag%%.count%%-commit%'
prefix 'v'
@@ -127,7 +128,7 @@ dependencies {
})
testCompile 'junit:junit:4.12'
- compile "ca.allanwang:kau:${KAU}"
+ compile "ca.allanwang.kau:core:${KAU}"
compile "org.jetbrains.kotlin:kotlin-stdlib:${KOTLIN}"
testCompile "org.jetbrains.kotlin:kotlin-test-junit:${KOTLIN}"
@@ -160,8 +161,6 @@ dependencies {
compile "nz.bradcampbell:paperparcel-kotlin:${PAPER_PARCEL}"
kapt "nz.bradcampbell:paperparcel-compiler:${PAPER_PARCEL}"
- compile "com.jude:swipebackhelper:${SWIPE_BACK}"
-
compile("com.crashlytics.sdk.android:crashlytics:${CRASHLYTICS}@aar") {
transitive = true;
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/WebOverlayActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/WebOverlayActivity.kt
index 1bd4777d..000a862e 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/WebOverlayActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/WebOverlayActivity.kt
@@ -10,8 +10,10 @@ import android.support.v7.widget.Toolbar
import android.webkit.ValueCallback
import android.webkit.WebChromeClient
import ca.allanwang.kau.permissions.kauOnRequestPermissionsResult
+import ca.allanwang.kau.swipe.kauSwipeOnCreate
+import ca.allanwang.kau.swipe.kauSwipeOnDestroy
+import ca.allanwang.kau.swipe.kauSwipeOnPostCreate
import ca.allanwang.kau.utils.*
-import com.jude.swipbackhelper.SwipeBackHelper
import com.mikepenz.google_material_typeface_library.GoogleMaterial
import com.pitchedapps.frost.contracts.ActivityWebContract
import com.pitchedapps.frost.contracts.FileChooserContract
@@ -49,12 +51,10 @@ open class WebOverlayActivity : AppCompatActivity(),
supportActionBar?.setDisplayHomeAsUpEnabled(true)
toolbar.navigationIcon = GoogleMaterial.Icon.gmd_close.toDrawable(this, 16, Prefs.iconColor)
toolbar.setNavigationOnClickListener { finishSlideOut() }
- SwipeBackHelper.onCreate(this)
- SwipeBackHelper.getCurrentPage(this)
- .setSwipeBackEnable(true)
- .setSwipeSensitivity(0.5f)
- .setSwipeRelateEnable(true)
- .setSwipeRelateOffset(300)
+ kauSwipeOnCreate {
+ if (!Prefs.overlayFullScreenSwipe) edgeSize = 20.dpToPx
+ transitionSystemBars = false
+ }
setFrostColors(toolbar, themeWindow = false)
coordinator.setBackgroundColor(Prefs.bgColor.withAlpha(255))
@@ -63,7 +63,6 @@ open class WebOverlayActivity : AppCompatActivity(),
if (userId != Prefs.userId) FbCookie.switchUser(userId) { frostWeb.web.loadBaseUrl() }
else frostWeb.web.loadBaseUrl()
if (Showcase.firstWebOverlay) {
- Showcase.firstWebOverlay = false
coordinator.frostSnackbar(R.string.web_overlay_swipe_hint) {
duration = Snackbar.LENGTH_INDEFINITE
setAction(R.string.kau_got_it) { _ -> this.dismiss() }
@@ -101,12 +100,12 @@ open class WebOverlayActivity : AppCompatActivity(),
override fun onPostCreate(savedInstanceState: Bundle?) {
super.onPostCreate(savedInstanceState)
- SwipeBackHelper.onPostCreate(this)
+ kauSwipeOnPostCreate()
}
override fun onDestroy() {
super.onDestroy()
- SwipeBackHelper.onDestroy(this)
+ kauSwipeOnDestroy()
}
override fun onBackPressed() {
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 28554092..ae7fd061 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Behaviour.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Behaviour.kt
@@ -22,4 +22,8 @@ fun SettingsActivity.getBehaviourPrefs(): KPrefAdapterBuilder.() -> Unit = {
descRes = R.string.analytics_desc
}
+ checkbox(R.string.overlay_full_screen_swipe, { Prefs.overlayFullScreenSwipe }, { Prefs.overlayFullScreenSwipe = it }) {
+ descRes = R.string.overlay_full_screen_swipe_desc
+ }
+
}
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 07127dd5..7b5eca2a 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt
@@ -99,4 +99,6 @@ object Prefs : KPref() {
var searchBar: Boolean by kpref("search_bar", Showcase.experimentalDefault)
+ var overlayFullScreenSwipe: Boolean by kpref("overlay_full_screen_swipe", true)
+
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Showcase.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Showcase.kt
index b1dbe6f1..57cbef7e 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Showcase.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Showcase.kt
@@ -2,6 +2,7 @@ package com.pitchedapps.frost.utils
import ca.allanwang.kau.kpref.KPref
import ca.allanwang.kau.kpref.kpref
+import ca.allanwang.kau.kpref.kprefSingle
/**
* Created by Allan Wang on 2017-07-03.
@@ -11,7 +12,7 @@ import ca.allanwang.kau.kpref.kpref
object Showcase : KPref() {
//check if this is the first time launching the web overlay; show snackbar if true
- var firstWebOverlay: Boolean by kpref("first_web_overlay", true)
+ val firstWebOverlay: Boolean by kprefSingle("first_web_overlay")
//not a showcase but cannot be in the same file as Prefs
var experimentalDefault: Boolean by kpref("experimental_by_default", false)
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt
index 44a392b9..a3124dea 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt
@@ -103,7 +103,7 @@ fun MaterialDialog.Builder.theme(): MaterialDialog.Builder {
fun Activity.setFrostTheme(forceTransparent: Boolean = false) {
val isTransparent = (Color.alpha(Prefs.bgColor) != 255) || forceTransparent
- if (Prefs.bgColor.isColorDark())
+ if (Prefs.bgColor.isColorDark)
setTheme(if (isTransparent) R.style.FrostTheme_Transparent else R.style.FrostTheme)
else
setTheme(if (isTransparent) R.style.FrostTheme_Light_Transparent else R.style.FrostTheme_Light)
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt
index a0ffa3b5..c2c89b8a 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewCore.kt
@@ -62,6 +62,7 @@ class FrostWebViewCore @JvmOverloads constructor(
javaScriptEnabled = true
userAgentString = USER_AGENT_BASIC
allowFileAccess = true
+ defaultFontSize
}
setLayerType(View.LAYER_TYPE_HARDWARE, null)
frostWebClient = baseEnum?.webClient?.invoke(this) ?: FrostWebViewClient(this)
diff --git a/app/src/main/play/en-CA/listing/fulldescription b/app/src/main/play/en-CA/listing/fulldescription
new file mode 100644
index 00000000..61c94833
--- /dev/null
+++ b/app/src/main/play/en-CA/listing/fulldescription
@@ -0,0 +1,24 @@
+Frost is a fully themable, fully functional alternative to the official Facebook app.
+While being a web wrapper, Frost contains many unique and native features such as:
+
+• True multi user interactions - More than just an option in a settings menu, Frost's account switcher is right in the drawer. You are one tap away from switching accounts, and everything refreshes on the switch so that you can view other accounts instantaneously. Furthermore, the notification service will fetch notifications from all accounts, and will let you know which account has the new notification.
+• Better multitasking - Frost contains an overlaying web browser that can be drawn on top of your foreground task. Open links and notifications with a full screen view, then swipe away to get back to your previous task.
+• Material Design - Built for lollipop and up, Frost focuses strongly on a good UI, and embraces material transitions and dimensions.
+• Complete theme engine - Frost contains very comprehensive themes that customize all components of the app. Frost is also the only app to support transparent themes.
+• Fully opened - Nothing speaks for privacy more than being open sourced. Frost is proud to be one of those apps, and can be found on github (Link in the app's about section)
+
+Permissions used and why:
+
+• Internet, Network State, Wifi State - Frost fetches the pages from Facebook's mobile website. It also needs the network state so as to limit internet usage when you are on a metered network.
+• Receive Boot Completed - Frost notifications persist on reboot, and need this permission to be added each time.
+• Read external storage - Needed to upload photos in a new status
+• That's it! No privacy intrusion and no extra demands.
+
+Permissions NOT used and why:
+
+• Wakelock - Frost takes advantage of Android's Job Scheduler, and lets the framework decide when to run background services. Frost therefore doesn't need to constantly run in the background, nor does it force your phone to stay awake.
+• Retrieve running apps - Frost has no need to access external apps or see what else is running
+• Identity - Frost manages its accounts internally and uses it solely to give you access to your account. We don't depend on other personal information and we don't even save your email.
+• Camera - While the camera permission can be added to allow you to directly take photos and upload them, we've decided that it would be best to allow you to do so externally and then share the photo with Frost
+
+* Frost is a third party app and is in no way affiliated with Facebook Inc.* \ No newline at end of file
diff --git a/app/src/main/play/en-CA/listing/shortdescription b/app/src/main/play/en-CA/listing/shortdescription
new file mode 100644
index 00000000..b1ac9928
--- /dev/null
+++ b/app/src/main/play/en-CA/listing/shortdescription
@@ -0,0 +1 @@
+A fast and extensive third party wrapper for Facebook. \ No newline at end of file
diff --git a/app/src/main/play/en-CA/whatsnew b/app/src/main/play/en-CA/whatsnew
new file mode 100644
index 00000000..1d15ce22
--- /dev/null
+++ b/app/src/main/play/en-CA/whatsnew
@@ -0,0 +1 @@
+A full changelog is available in the app \ No newline at end of file
diff --git a/app/src/main/res/values/strings_preferences b/app/src/main/res/values/strings_preferences
index 34fe5e9b..102faf40 100644
--- a/app/src/main/res/values/strings_preferences
+++ b/app/src/main/res/values/strings_preferences
@@ -14,6 +14,8 @@
<string name="exit_confirmation_desc">Show confirmation dialog before exiting the app</string>
<string name="analytics">Analytics</string>
<string name="analytics_desc">Enable anonymous analytics to help improve the app. No personal information is ever exposed.</string>
+ <string name="overlay_full_screen_swipe">Overlay Full Screen Swipe to Dismiss</string>
+ <string name="overlay_full_screen_swipe_desc">Swipe right from anywhere on the overlaying web to close the browser. If disabled, only swiping from the left edge will move it.</string>
<!--themes-->
<string name="theme">Theme</string>
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index cbea18c9..217bfb28 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -4,6 +4,7 @@
<item name="colorPrimary">@color/facebook_blue</item>
<item name="colorPrimaryDark">@color/facebook_blue_dark</item>
<item name="colorAccent">@android:color/white</item>
+ <item name="android:windowSoftInputMode">adjustResize</item>
</style>
<style name="FrostTheme" parent="@style/FrostThemeBase">
@@ -15,6 +16,7 @@
<item name="colorPrimary">@color/facebook_blue</item>
<item name="colorPrimaryDark">@color/facebook_blue_dark</item>
<item name="colorAccent">@android:color/black</item>
+ <item name="android:windowSoftInputMode">adjustResize</item>
</style>
<style name="FrostTheme.Transparent">
diff --git a/app/src/main/res/xml/changelog.xml b/app/src/main/res/xml/changelog.xml
index e5f267f5..ecd95c8d 100644
--- a/app/src/main/res/xml/changelog.xml
+++ b/app/src/main/res/xml/changelog.xml
@@ -6,57 +6,64 @@
<item text="" />
-->
+ <version title="v1.2"/>
+ <item text="Scale browser on keyboard pop up" />
+ <item text="Clean up web overlay" />
+ <item text="Allow customization of overlay swipe" />
+ <item text="" />
+ <item text="" />
+ <item text="" />
+
<version title="v1.1"/>
- <item text="Added universal experimental toggle" />
+ <item text="Add universal experimental toggle" />
<item text="Fixed up billing properties and add auto checker" />
<item text="Open status updates in new window" />
<item text="Allow for photo uploads" />
<item text="Improve search bar to stop when not in view" />
<item text="Integrate CI" />
- <item text="Added more theme fixes" />
- <item text="" />
- <item text="" />
+ <item text="Add more theme fixes" />
+ <item text="Initial Reddit beta release" />
<version title="v1.0"/>
- <item text="Added more global preferences" />
- <item text="Added fully customizable theme engine" />
- <item text="Added support for in app billing" />
+ <item text="Add more global preferences" />
+ <item text="Add fully customizable theme engine" />
+ <item text="Add support for in app billing" />
<item text="Huge changes internally from KAU" />
- <item text="Added credits section" />
- <item text="Added experimental section" />
- <item text="Added search option" />
- <item text="Fixed up main layout" />
+ <item text="Add credits section" />
+ <item text="Add experimental section" />
+ <item text="Add search option" />
+ <item text="Fix up main layout" />
<item text="Fix some theme components" />
- <item text="Added behaviour settings" />
- <item text="Added about section with links" />
+ <item text="Add behaviour settings" />
+ <item text="Add about section with links" />
<version title="v0.3" />
- <item text="Added rounded icons option" />
- <item text="Sorted preferences" />
- <item text="Added adblock base" />
- <item text="Added feed configurations" />
+ <item text="Add rounded icons option" />
+ <item text="Sort preferences" />
+ <item text="Add adblock base" />
+ <item text="Add feed configurations" />
<item text="Animated settings panels" />
<item text="Add notification filters" />
<version title="v0.2" />
- <item text="Removed unnecessary permissions" />
- <item text="Added notifications" />
- <item text="Themed more components" />
- <item text="Separated independent web overlay from in app overlay" />
+ <item text="Remove unnecessary permissions" />
+ <item text="Add notifications" />
+ <item text="Theme more components" />
+ <item text="Separate independent web overlay from in app overlay" />
<item text="Allow notifications from any account" />
- <item text="Smoothed transition from Settings and only restart when necessary" />
+ <item text="Smooth transition from Settings and only restart when necessary" />
<item text="Add logout option from drawer" />
- <item text="Added many more drawer urls" />
- <item text="Added anonymous analytics" />
- <item text="Moved settings to drawer" />
- <item text="Added feedback option" />
+ <item text="Add many more drawer urls" />
+ <item text="Add anonymous analytics" />
+ <item text="Move settings to drawer" />
+ <item text="Add feedback option" />
<version title="v0.1" />
<item text="Initial Changelog" />
- <item text="Created core databases" />
- <item text="Implemented CSS/Js injectors" />
- <item text="Implemented ripple preferences" />
- <item text="Created multiple account caching" />
- <item text="Created web overlay" />
+ <item text="Create core databases" />
+ <item text="Implement CSS/Js injectors" />
+ <item text="Implement ripple preferences" />
+ <item text="Create multiple account caching" />
+ <item text="Create web overlay" />
</resources> \ No newline at end of file
diff --git a/docs/Changelog.md b/docs/Changelog.md
index 6c000718..a21669f4 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -1,45 +1,58 @@
# Changelog
+## v1.2
+* Scale browser on keyboard pop up
+* Clean up web overlay
+* Allow customization of overlay swipe
+
## v1.1
+* Add universal experimental toggle
+* Fixed up billing properties and add auto checker
+* Open status updates in new window
+* Allow for photo uploads
+* Improve search bar to stop when not in view
+* Integrate CI
+* Add more theme fixes
+* Initial Reddit beta release
## v1.0
-* Added more global preferences
-* Added fully customizable theme engine
-* Added support for in app billing
+* Add more global preferences
+* Add fully customizable theme engine
+* Add support for in app billing
* Huge changes internally from KAU
-* Added credits section
-* Added experimental section
-* Added search option
-* Fixed up main layout
+* Add credits section
+* Add experimental section
+* Add search option
+* Fix up main layout
* Fix some theme components
-* Added behaviour settings
-* Added about section with links
+* Add behaviour settings
+* Add about section with links
## v0.3
-* Added rounded icons option
-* Sorted preferences
-* Added adblock base
-* Added feed configurations
+* Add rounded icons option
+* Sort preferences
+* Add adblock base
+* Add feed configurations
* Animated settings panels
* Add notification filters
## v0.2
-* Removed unnecessary permissions
-* Added notifications
-* Themed more components
-* Separated independent web overlay from in app overlay
+* Remove unnecessary permissions
+* Add notifications
+* Theme more components
+* Separate independent web overlay from in app overlay
* Allow notifications from any account
-* Smoothed transition from Settings and only restart when necessary
+* Smooth transition from Settings and only restart when necessary
* Add logout option from drawer
-* Added many more drawer urls
-* Added anonymous analytics
-* Moved settings to drawer
-* Added feedback option
+* Add many more drawer urls
+* Add anonymous analytics
+* Move settings to drawer
+* Add feedback option
## v0.1
* Initial Changelog
-* Created core databases
-* Implemented CSS/Js injectors
-* Implemented ripple preferences
-* Created multiple account caching
-* Created web overlay
+* Create core databases
+* Implement CSS/Js injectors
+* Implement ripple preferences
+* Create multiple account caching
+* Create web overlay
diff --git a/gradle.properties b/gradle.properties
index edf16070..31ca85ec 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -17,7 +17,7 @@ MIN_SDK=21
TARGET_SDK=26
BUILD_TOOLS=26.0.0
-KAU=fe4632c34a
+KAU=f073106905
KOTLIN=1.1.3
MATERIAL_DRAWER=5.9.3
MATERIAL_DRAWER_KT=1.0.4
@@ -27,6 +27,5 @@ JSOUP=1.10.3
GLIDE=4.0.0-RC1
DBFLOW=4.0.4
PAPER_PARCEL=2.0.1
-SWIPE_BACK=3.1.2
CRASHLYTICS=2.6.8
LEAK_CANARY=1.5.1 \ No newline at end of file