mirror of
https://github.com/AllanWang/Frost-for-Facebook.git
synced 2024-11-10 04:52:38 +01:00
commit
e732e30d97
30
.idea/jarRepositories.xml
Normal file
30
.idea/jarRepositories.xml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="RemoteRepositoriesConfiguration">
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="central" />
|
||||||
|
<option name="name" value="Maven Central repository" />
|
||||||
|
<option name="url" value="https://repo1.maven.org/maven2" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="jboss.community" />
|
||||||
|
<option name="name" value="JBoss Community repository" />
|
||||||
|
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="BintrayJCenter" />
|
||||||
|
<option name="name" value="BintrayJCenter" />
|
||||||
|
<option name="url" value="https://jcenter.bintray.com/" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="maven" />
|
||||||
|
<option name="name" value="maven" />
|
||||||
|
<option name="url" value="https://jitpack.io" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="Google" />
|
||||||
|
<option name="name" value="Google" />
|
||||||
|
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
|
||||||
|
</remote-repository>
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -4,7 +4,7 @@ jdk:
|
|||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
- ANDROID_API=29
|
- ANDROID_API=29
|
||||||
- ANDROID_BUILD_TOOLS=29.0.0
|
- ANDROID_BUILD_TOOLS=29.0.2
|
||||||
- secure: X3J97ccW+8K0bXPXhX608vPx7Pr/G4ju7quxydqMaYGgClHxoL/WpXOBAyyllde5P28PY4kioaqcI21BEhnAw0QUbmnzVLA1Qd5VS7aMPHpEnInKuOxGZ2d570OZd1f+ozFVt05vzG0VBJlBAkVhz2GWNxQdmIV1sO28MH526JMuYaEREuuywVSZmAeY7AAbW9MeCC2wvHvNmhk2nk6NLRQcsrDHcBsimy9fnnQ9lT/QsvToi1ZJd/MN7YkGDUULR+YmaotBzG546UJ1EiZQX91bFEJfP0oL43Pk7t5snzmHnKjLOr8Mt5QsIUXaiy/uzhUVmuDh1i0GEpZmhqM7nz/T6P7ogaLbbyJeauNmf15nu+e3hSvNiTzKyIwfSSflv8Do3g8/Eo3dKfIi3I8/OKF/uZ76kywh2LRqtZAqxRDiAMDZVwsRgD4aztoWm5AWa3tSoGy1J7i1eoqX6bNqokRbjgheTqcjN13kCdSZi3pZX7UBYm2Vumhn4izhTume19Rh9SqTmRgQ8jM7ynxHh7vVsJPPJG0HbQ623xz+d9mtXGy1fAb0dcUJMXdOhFN3m6AnKuHiF7cmsqje7Euk/TOZyqZmu0xEhTkugMbNKwGrklJiwRr3IoLtPdhLE38u3/auloUqBQ4K/iA9ZdhAreTSHEaI9d3J4N6kqCj3U30=
|
- secure: X3J97ccW+8K0bXPXhX608vPx7Pr/G4ju7quxydqMaYGgClHxoL/WpXOBAyyllde5P28PY4kioaqcI21BEhnAw0QUbmnzVLA1Qd5VS7aMPHpEnInKuOxGZ2d570OZd1f+ozFVt05vzG0VBJlBAkVhz2GWNxQdmIV1sO28MH526JMuYaEREuuywVSZmAeY7AAbW9MeCC2wvHvNmhk2nk6NLRQcsrDHcBsimy9fnnQ9lT/QsvToi1ZJd/MN7YkGDUULR+YmaotBzG546UJ1EiZQX91bFEJfP0oL43Pk7t5snzmHnKjLOr8Mt5QsIUXaiy/uzhUVmuDh1i0GEpZmhqM7nz/T6P7ogaLbbyJeauNmf15nu+e3hSvNiTzKyIwfSSflv8Do3g8/Eo3dKfIi3I8/OKF/uZ76kywh2LRqtZAqxRDiAMDZVwsRgD4aztoWm5AWa3tSoGy1J7i1eoqX6bNqokRbjgheTqcjN13kCdSZi3pZX7UBYm2Vumhn4izhTume19Rh9SqTmRgQ8jM7ynxHh7vVsJPPJG0HbQ623xz+d9mtXGy1fAb0dcUJMXdOhFN3m6AnKuHiF7cmsqje7Euk/TOZyqZmu0xEhTkugMbNKwGrklJiwRr3IoLtPdhLE38u3/auloUqBQ4K/iA9ZdhAreTSHEaI9d3J4N6kqCj3U30=
|
||||||
android:
|
android:
|
||||||
components:
|
components:
|
||||||
|
@ -10,20 +10,20 @@ apply plugin: 'com.gladed.androidgitversion'
|
|||||||
buildscript {
|
buildscript {
|
||||||
repositories {
|
repositories {
|
||||||
jcenter()
|
jcenter()
|
||||||
|
maven { url "https://plugins.gradle.org/m2/" }
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath "com.moowork.gradle:gradle-node-plugin:${Versions.nodeGradle}"
|
classpath "com.github.node-gradle:gradle-node-plugin:${Versions.nodeGradle}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
apply plugin: com.moowork.gradle.node.NodePlugin
|
apply plugin: 'com.github.node-gradle.node'
|
||||||
|
|
||||||
apply from: '../spotless.gradle'
|
apply from: '../spotless.gradle'
|
||||||
group = APP_GROUP
|
group = APP_GROUP
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion Versions.targetSdk
|
compileSdkVersion Versions.targetSdk
|
||||||
buildToolsVersion kau.Versions.buildTools
|
|
||||||
|
|
||||||
androidGitVersion {
|
androidGitVersion {
|
||||||
codeFormat = 'MMNNPPXX'
|
codeFormat = 'MMNNPPXX'
|
||||||
@ -75,8 +75,8 @@ android {
|
|||||||
textOutput 'stdout'
|
textOutput 'stdout'
|
||||||
}
|
}
|
||||||
|
|
||||||
viewBinding {
|
buildFeatures {
|
||||||
enabled = true
|
viewBinding = true
|
||||||
}
|
}
|
||||||
|
|
||||||
def testKeystoreFile = file('../files/test.keystore')
|
def testKeystoreFile = file('../files/test.keystore')
|
||||||
@ -199,8 +199,8 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
node {
|
node {
|
||||||
version = '12.4.0'
|
version = '13.8.0'
|
||||||
npmVersion = '6.9.0'
|
npmVersion = '6.13.7'
|
||||||
download = true
|
download = true
|
||||||
nodeModulesDir = file("${project.projectDir}/src/web")
|
nodeModulesDir = file("${project.projectDir}/src/web")
|
||||||
}
|
}
|
||||||
@ -283,7 +283,7 @@ dependencies {
|
|||||||
//noinspection GradleDependency
|
//noinspection GradleDependency
|
||||||
kapt kau.Dependencies.glideKapt
|
kapt kau.Dependencies.glideKapt
|
||||||
|
|
||||||
debugImplementation "com.squareup.leakcanary:leakcanary-android:${Versions.leakCanary}"
|
debugImplementation kau.Dependencies.leakCanary
|
||||||
|
|
||||||
//Icons
|
//Icons
|
||||||
implementation kau.Dependencies.iconicsMaterial
|
implementation kau.Dependencies.iconicsMaterial
|
||||||
|
@ -48,7 +48,7 @@ abstract class BaseActivity : KauBaseActivity() {
|
|||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
if (this !is WebOverlayActivityBase) setFrostTheme()
|
if (this !is WebOverlayActivityBase) setFrostTheme(prefs)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onStop() {
|
override fun onStop() {
|
||||||
|
@ -313,7 +313,7 @@ abstract class BaseMainActivity : BaseActivity(), MainActivityContract,
|
|||||||
val item = FbItem.values[it.itemId]
|
val item = FbItem.values[it.itemId]
|
||||||
frostEvent("Drawer Tab", "name" to item.name)
|
frostEvent("Drawer Tab", "name" to item.name)
|
||||||
drawer.closeDrawer(navigation)
|
drawer.closeDrawer(navigation)
|
||||||
launchWebOverlay(item.url, fbCookie)
|
launchWebOverlay(item.url, fbCookie, prefs)
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
val navBg = prefs.bgColor.withMinAlpha(200)
|
val navBg = prefs.bgColor.withMinAlpha(200)
|
||||||
@ -464,7 +464,7 @@ abstract class BaseMainActivity : BaseActivity(), MainActivityContract,
|
|||||||
setOptionsIcon(GoogleMaterial.Icon.gmd_exit_to_app)
|
setOptionsIcon(GoogleMaterial.Icon.gmd_exit_to_app)
|
||||||
setOnClickListener {
|
setOnClickListener {
|
||||||
launch {
|
launch {
|
||||||
val currentCookie = cookieDao.currentCookie()
|
val currentCookie = cookieDao.currentCookie(prefs)
|
||||||
if (currentCookie == null) {
|
if (currentCookie == null) {
|
||||||
toast(R.string.account_not_found)
|
toast(R.string.account_not_found)
|
||||||
fbCookie.reset()
|
fbCookie.reset()
|
||||||
@ -596,7 +596,7 @@ abstract class BaseMainActivity : BaseActivity(), MainActivityContract,
|
|||||||
.into(this)
|
.into(this)
|
||||||
setOnClickListener {
|
setOnClickListener {
|
||||||
if (primary) {
|
if (primary) {
|
||||||
launchWebOverlay(FbItem.PROFILE.url, fbCookie)
|
launchWebOverlay(FbItem.PROFILE.url, fbCookie, prefs)
|
||||||
} else {
|
} else {
|
||||||
switchAccount(cookie.id)
|
switchAccount(cookie.id)
|
||||||
}
|
}
|
||||||
@ -661,11 +661,11 @@ abstract class BaseMainActivity : BaseActivity(), MainActivityContract,
|
|||||||
}
|
}
|
||||||
textDebounceInterval = 300
|
textDebounceInterval = 300
|
||||||
searchCallback =
|
searchCallback =
|
||||||
{ query, _ -> launchWebOverlay("${FbItem._SEARCH.url}/?q=$query", fbCookie); true }
|
{ query, _ -> launchWebOverlay("${FbItem._SEARCH.url}/?q=$query", fbCookie, prefs); true }
|
||||||
closeListener = { _ -> searchViewCache.clear() }
|
closeListener = { _ -> searchViewCache.clear() }
|
||||||
foregroundColor = prefs.textColor
|
foregroundColor = prefs.textColor
|
||||||
backgroundColor = prefs.bgColor.withMinAlpha(200)
|
backgroundColor = prefs.bgColor.withMinAlpha(200)
|
||||||
onItemClick = { _, key, _, _ -> launchWebOverlay(key, fbCookie) }
|
onItemClick = { _, key, _, _ -> launchWebOverlay(key, fbCookie, prefs) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -723,7 +723,7 @@ abstract class BaseMainActivity : BaseActivity(), MainActivityContract,
|
|||||||
fragmentChannel.offer(REQUEST_REFRESH)
|
fragmentChannel.offer(REQUEST_REFRESH)
|
||||||
}
|
}
|
||||||
if (hasRequest(REQUEST_NAV)) {
|
if (hasRequest(REQUEST_NAV)) {
|
||||||
frostNavigationBar()
|
frostNavigationBar(prefs)
|
||||||
}
|
}
|
||||||
if (hasRequest(REQUEST_TEXT_ZOOM)) {
|
if (hasRequest(REQUEST_TEXT_ZOOM)) {
|
||||||
fragmentChannel.offer(REQUEST_TEXT_ZOOM)
|
fragmentChannel.offer(REQUEST_TEXT_ZOOM)
|
||||||
|
@ -114,7 +114,7 @@ class IntroActivity : KauBaseActivity(), ViewPager.PageTransformer,
|
|||||||
indicator.invalidate()
|
indicator.invalidate()
|
||||||
}
|
}
|
||||||
fragments.forEach { it.themeFragment() }
|
fragments.forEach { it.themeFragment() }
|
||||||
setFrostTheme(true)
|
setFrostTheme(prefs, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -40,6 +40,7 @@ import com.afollestad.materialdialogs.list.listItems
|
|||||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||||
import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial
|
import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial
|
||||||
import com.pitchedapps.frost.R
|
import com.pitchedapps.frost.R
|
||||||
|
import com.pitchedapps.frost.db.NotificationDao
|
||||||
import com.pitchedapps.frost.enums.Support
|
import com.pitchedapps.frost.enums.Support
|
||||||
import com.pitchedapps.frost.facebook.FbCookie
|
import com.pitchedapps.frost.facebook.FbCookie
|
||||||
import com.pitchedapps.frost.settings.getAppearancePrefs
|
import com.pitchedapps.frost.settings.getAppearancePrefs
|
||||||
@ -70,6 +71,7 @@ import org.koin.android.ext.android.inject
|
|||||||
class SettingsActivity : KPrefActivity() {
|
class SettingsActivity : KPrefActivity() {
|
||||||
|
|
||||||
val fbCookie: FbCookie by inject()
|
val fbCookie: FbCookie by inject()
|
||||||
|
val notifDao: NotificationDao by inject()
|
||||||
val prefs: Prefs by inject()
|
val prefs: Prefs by inject()
|
||||||
|
|
||||||
private var resultFlag = Activity.RESULT_CANCELED
|
private var resultFlag = Activity.RESULT_CANCELED
|
||||||
@ -218,7 +220,7 @@ class SettingsActivity : KPrefActivity() {
|
|||||||
|
|
||||||
@SuppressLint("MissingSuperCall")
|
@SuppressLint("MissingSuperCall")
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
setFrostTheme(true)
|
setFrostTheme(prefs, true)
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
animate = prefs.animate
|
animate = prefs.animate
|
||||||
themeExterior(false)
|
themeExterior(false)
|
||||||
@ -229,7 +231,7 @@ class SettingsActivity : KPrefActivity() {
|
|||||||
else bgCanvas.set(prefs.bgColor)
|
else bgCanvas.set(prefs.bgColor)
|
||||||
if (animate) toolbarCanvas.ripple(prefs.headerColor, RippleCanvas.MIDDLE, RippleCanvas.END)
|
if (animate) toolbarCanvas.ripple(prefs.headerColor, RippleCanvas.MIDDLE, RippleCanvas.END)
|
||||||
else toolbarCanvas.set(prefs.headerColor)
|
else toolbarCanvas.set(prefs.headerColor)
|
||||||
frostNavigationBar()
|
frostNavigationBar(prefs)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBackPressed() {
|
override fun onBackPressed() {
|
||||||
|
@ -68,4 +68,4 @@ suspend fun CookieDao.selectById(id: Long) = dao { _selectById(id) }
|
|||||||
suspend fun CookieDao.save(cookie: CookieEntity) = dao { _save(cookie) }
|
suspend fun CookieDao.save(cookie: CookieEntity) = dao { _save(cookie) }
|
||||||
suspend fun CookieDao.save(cookies: List<CookieEntity>) = dao { _save(cookies) }
|
suspend fun CookieDao.save(cookies: List<CookieEntity>) = dao { _save(cookies) }
|
||||||
suspend fun CookieDao.deleteById(id: Long) = dao { _deleteById(id) }
|
suspend fun CookieDao.deleteById(id: Long) = dao { _deleteById(id) }
|
||||||
suspend fun CookieDao.currentCookie() = selectById(Prefs.get().userId)
|
suspend fun CookieDao.currentCookie(prefs: Prefs) = selectById(prefs.userId)
|
||||||
|
@ -22,6 +22,7 @@ import androidx.room.Room
|
|||||||
import androidx.room.RoomDatabase
|
import androidx.room.RoomDatabase
|
||||||
import com.pitchedapps.frost.BuildConfig
|
import com.pitchedapps.frost.BuildConfig
|
||||||
import org.koin.core.context.GlobalContext
|
import org.koin.core.context.GlobalContext
|
||||||
|
import org.koin.core.context.KoinContextHandler
|
||||||
import org.koin.dsl.module
|
import org.koin.dsl.module
|
||||||
|
|
||||||
interface FrostPrivateDao {
|
interface FrostPrivateDao {
|
||||||
@ -100,11 +101,5 @@ class FrostDatabase(
|
|||||||
single { get<FrostDatabase>().notifDao() }
|
single { get<FrostDatabase>().notifDao() }
|
||||||
single { get<FrostDatabase>().genericDao() }
|
single { get<FrostDatabase>().genericDao() }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get from koin
|
|
||||||
* For the most part, you can retrieve directly from other koin components
|
|
||||||
*/
|
|
||||||
fun get(): FrostDatabase = GlobalContext.get().koin.get()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ import android.content.Context
|
|||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import ca.allanwang.kau.utils.string
|
import ca.allanwang.kau.utils.string
|
||||||
import com.pitchedapps.frost.R
|
import com.pitchedapps.frost.R
|
||||||
|
import com.pitchedapps.frost.utils.Prefs
|
||||||
import com.pitchedapps.frost.utils.sendFrostEmail
|
import com.pitchedapps.frost.utils.sendFrostEmail
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -40,6 +40,6 @@ class NotificationFragment : FrostParserFragment<FrostNotifs, NotificationIItem>
|
|||||||
response.data.notifs.map { NotificationIItem(it, response.cookie) }
|
response.data.notifs.map { NotificationIItem(it, response.cookie) }
|
||||||
|
|
||||||
override fun bindImpl(recyclerView: FrostRecyclerView) {
|
override fun bindImpl(recyclerView: FrostRecyclerView) {
|
||||||
NotificationIItem.bindEvents(adapter, fbCookie)
|
NotificationIItem.bindEvents(adapter, fbCookie, prefs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,20 +44,20 @@ interface ClickableIItemContract {
|
|||||||
|
|
||||||
val url: String?
|
val url: String?
|
||||||
|
|
||||||
fun click(context: Context, fbCookie: FbCookie) {
|
fun click(context: Context, fbCookie: FbCookie, prefs: Prefs) {
|
||||||
val url = url ?: return
|
val url = url ?: return
|
||||||
context.launchWebOverlay(url, fbCookie)
|
context.launchWebOverlay(url, fbCookie, prefs)
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun bindEvents(adapter: IAdapter<GenericItem>, fbCookie: FbCookie) {
|
fun bindEvents(adapter: IAdapter<GenericItem>, fbCookie: FbCookie, prefs: Prefs) {
|
||||||
adapter.fastAdapter?.apply {
|
adapter.fastAdapter?.apply {
|
||||||
selectExtension {
|
selectExtension {
|
||||||
isSelectable = false
|
isSelectable = false
|
||||||
}
|
}
|
||||||
onClickListener = { v, _, item, _ ->
|
onClickListener = { v, _, item, _ ->
|
||||||
if (item is ClickableIItemContract) {
|
if (item is ClickableIItemContract) {
|
||||||
item.click(v!!.context, fbCookie)
|
item.click(v!!.context, fbCookie, prefs)
|
||||||
true
|
true
|
||||||
} else
|
} else
|
||||||
false
|
false
|
||||||
@ -76,7 +76,8 @@ open class HeaderIItem(
|
|||||||
itemId: Int = R.layout.iitem_header
|
itemId: Int = R.layout.iitem_header
|
||||||
) : KauIItem<HeaderIItem.ViewHolder>(R.layout.iitem_header, ::ViewHolder, itemId) {
|
) : KauIItem<HeaderIItem.ViewHolder>(R.layout.iitem_header, ::ViewHolder, itemId) {
|
||||||
|
|
||||||
class ViewHolder(itemView: View) : FastAdapter.ViewHolder<HeaderIItem>(itemView), KoinComponent {
|
class ViewHolder(itemView: View) : FastAdapter.ViewHolder<HeaderIItem>(itemView),
|
||||||
|
KoinComponent {
|
||||||
|
|
||||||
private val prefs: Prefs by inject()
|
private val prefs: Prefs by inject()
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ class NotificationIItem(val notification: FrostNotif, val cookie: String) :
|
|||||||
) {
|
) {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun bindEvents(adapter: ItemAdapter<NotificationIItem>, fbCookie: FbCookie) {
|
fun bindEvents(adapter: ItemAdapter<NotificationIItem>, fbCookie: FbCookie, prefs: Prefs) {
|
||||||
adapter.fastAdapter?.apply {
|
adapter.fastAdapter?.apply {
|
||||||
selectExtension {
|
selectExtension {
|
||||||
isSelectable = false
|
isSelectable = false
|
||||||
@ -65,7 +65,7 @@ class NotificationIItem(val notification: FrostNotif, val cookie: String) :
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
// TODO temp fix. If url is dependent, we cannot load it directly
|
// TODO temp fix. If url is dependent, we cannot load it directly
|
||||||
v!!.context.launchWebOverlay(if (notif.url.isIndependent) notif.url else FbItem.NOTIFICATIONS.url, fbCookie)
|
v!!.context.launchWebOverlay(if (notif.url.isIndependent) notif.url else FbItem.NOTIFICATIONS.url, fbCookie, prefs)
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,7 @@ import com.pitchedapps.frost.R
|
|||||||
import com.pitchedapps.frost.activities.FrostWebActivity
|
import com.pitchedapps.frost.activities.FrostWebActivity
|
||||||
import com.pitchedapps.frost.db.CookieEntity
|
import com.pitchedapps.frost.db.CookieEntity
|
||||||
import com.pitchedapps.frost.db.FrostDatabase
|
import com.pitchedapps.frost.db.FrostDatabase
|
||||||
|
import com.pitchedapps.frost.db.NotificationDao
|
||||||
import com.pitchedapps.frost.db.latestEpoch
|
import com.pitchedapps.frost.db.latestEpoch
|
||||||
import com.pitchedapps.frost.db.saveNotifications
|
import com.pitchedapps.frost.db.saveNotifications
|
||||||
import com.pitchedapps.frost.enums.OverlayContext
|
import com.pitchedapps.frost.enums.OverlayContext
|
||||||
@ -112,8 +113,7 @@ enum class NotificationType(
|
|||||||
* Returns the number of notifications generated,
|
* Returns the number of notifications generated,
|
||||||
* or -1 if an error occurred
|
* or -1 if an error occurred
|
||||||
*/
|
*/
|
||||||
suspend fun fetch(context: Context, data: CookieEntity, prefs: Prefs): Int {
|
suspend fun fetch(context: Context, data: CookieEntity, prefs: Prefs, notifDao: NotificationDao): Int {
|
||||||
val notifDao = FrostDatabase.get().notifDao()
|
|
||||||
val response = try {
|
val response = try {
|
||||||
parser.parse(data.cookie)
|
parser.parse(data.cookie)
|
||||||
} catch (ignored: Exception) {
|
} catch (ignored: Exception) {
|
||||||
@ -170,7 +170,7 @@ enum class NotificationType(
|
|||||||
val ringtone = ringtoneProvider(prefs)
|
val ringtone = ringtoneProvider(prefs)
|
||||||
notifs.forEachIndexed { i, notif ->
|
notifs.forEachIndexed { i, notif ->
|
||||||
// Ring at most twice
|
// Ring at most twice
|
||||||
notif.withAlert(context, i < 2, ringtone).notify(context)
|
notif.withAlert(context, i < 2, ringtone, prefs).notify(context)
|
||||||
}
|
}
|
||||||
return notifs.size
|
return notifs.size
|
||||||
}
|
}
|
||||||
@ -307,8 +307,8 @@ data class FrostNotification(
|
|||||||
val notif: NotificationCompat.Builder
|
val notif: NotificationCompat.Builder
|
||||||
) {
|
) {
|
||||||
|
|
||||||
fun withAlert(context: Context, enable: Boolean, ringtone: String): FrostNotification {
|
fun withAlert(context: Context, enable: Boolean, ringtone: String, prefs: Prefs): FrostNotification {
|
||||||
notif.setFrostAlert(context, enable, ringtone)
|
notif.setFrostAlert(context, enable, ringtone, prefs)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@ import com.pitchedapps.frost.BuildConfig
|
|||||||
import com.pitchedapps.frost.R
|
import com.pitchedapps.frost.R
|
||||||
import com.pitchedapps.frost.db.CookieDao
|
import com.pitchedapps.frost.db.CookieDao
|
||||||
import com.pitchedapps.frost.db.CookieEntity
|
import com.pitchedapps.frost.db.CookieEntity
|
||||||
|
import com.pitchedapps.frost.db.NotificationDao
|
||||||
import com.pitchedapps.frost.db.selectAll
|
import com.pitchedapps.frost.db.selectAll
|
||||||
import com.pitchedapps.frost.utils.L
|
import com.pitchedapps.frost.utils.L
|
||||||
import com.pitchedapps.frost.utils.Prefs
|
import com.pitchedapps.frost.utils.Prefs
|
||||||
@ -34,7 +35,6 @@ import kotlinx.coroutines.launch
|
|||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import kotlinx.coroutines.yield
|
import kotlinx.coroutines.yield
|
||||||
import org.koin.android.ext.android.inject
|
import org.koin.android.ext.android.inject
|
||||||
import org.koin.core.inject
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Allan Wang on 2017-06-14.
|
* Created by Allan Wang on 2017-06-14.
|
||||||
@ -47,6 +47,7 @@ import org.koin.core.inject
|
|||||||
class NotificationService : BaseJobService() {
|
class NotificationService : BaseJobService() {
|
||||||
|
|
||||||
private val prefs: Prefs by inject()
|
private val prefs: Prefs by inject()
|
||||||
|
private val notifDao: NotificationDao by inject()
|
||||||
private val cookieDao: CookieDao by inject()
|
private val cookieDao: CookieDao by inject()
|
||||||
|
|
||||||
override fun onStopJob(params: JobParameters?): Boolean {
|
override fun onStopJob(params: JobParameters?): Boolean {
|
||||||
@ -119,7 +120,7 @@ class NotificationService : BaseJobService() {
|
|||||||
* Also normalized the output to return the number of notifications received
|
* Also normalized the output to return the number of notifications received
|
||||||
*/
|
*/
|
||||||
private suspend fun fetch(jobId: Int, type: NotificationType, cookie: CookieEntity): Int {
|
private suspend fun fetch(jobId: Int, type: NotificationType, cookie: CookieEntity): Int {
|
||||||
val count = type.fetch(this, cookie, prefs)
|
val count = type.fetch(this, cookie, prefs, notifDao)
|
||||||
if (count < 0) {
|
if (count < 0) {
|
||||||
if (jobId == NOTIFICATION_JOB_NOW)
|
if (jobId == NOTIFICATION_JOB_NOW)
|
||||||
generalNotification(666, R.string.error_notification, BuildConfig.DEBUG)
|
generalNotification(666, R.string.error_notification, BuildConfig.DEBUG)
|
||||||
@ -135,7 +136,7 @@ class NotificationService : BaseJobService() {
|
|||||||
|
|
||||||
private fun generalNotification(id: Int, textRes: Int, withDefaults: Boolean) {
|
private fun generalNotification(id: Int, textRes: Int, withDefaults: Boolean) {
|
||||||
val notifBuilder = frostNotification(NOTIF_CHANNEL_GENERAL)
|
val notifBuilder = frostNotification(NOTIF_CHANNEL_GENERAL)
|
||||||
.setFrostAlert(this, withDefaults, prefs.notificationRingtone)
|
.setFrostAlert(this, withDefaults, prefs.notificationRingtone, prefs)
|
||||||
.setContentTitle(string(R.string.frost_name))
|
.setContentTitle(string(R.string.frost_name))
|
||||||
.setContentText(string(textRes))
|
.setContentText(string(textRes))
|
||||||
NotificationManagerCompat.from(this).notify(id, notifBuilder.build())
|
NotificationManagerCompat.from(this).notify(id, notifBuilder.build())
|
||||||
|
@ -92,10 +92,9 @@ fun Context.frostNotification(id: String) =
|
|||||||
fun NotificationCompat.Builder.setFrostAlert(
|
fun NotificationCompat.Builder.setFrostAlert(
|
||||||
context: Context,
|
context: Context,
|
||||||
enable: Boolean,
|
enable: Boolean,
|
||||||
ringtone: String
|
ringtone: String,
|
||||||
|
prefs: Prefs
|
||||||
): NotificationCompat.Builder {
|
): NotificationCompat.Builder {
|
||||||
val prefs = Prefs.get()
|
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
setGroupAlertBehavior(
|
setGroupAlertBehavior(
|
||||||
if (enable) NotificationCompat.GROUP_ALERT_CHILDREN
|
if (enable) NotificationCompat.GROUP_ALERT_CHILDREN
|
||||||
|
@ -56,7 +56,7 @@ fun SettingsActivity.getAppearancePrefs(): KPrefAdapterBuilder.() -> Unit = {
|
|||||||
item.pref = index
|
item.pref = index
|
||||||
shouldRestartMain()
|
shouldRestartMain()
|
||||||
reload()
|
reload()
|
||||||
setFrostTheme(true)
|
setFrostTheme(prefs, true)
|
||||||
themeExterior()
|
themeExterior()
|
||||||
invalidateOptionsMenu()
|
invalidateOptionsMenu()
|
||||||
frostEvent("Theme", "Count" to Theme(index).name)
|
frostEvent("Theme", "Count" to Theme(index).name)
|
||||||
@ -103,7 +103,7 @@ fun SettingsActivity.getAppearancePrefs(): KPrefAdapterBuilder.() -> Unit = {
|
|||||||
prefs.customBackgroundColor = it
|
prefs.customBackgroundColor = it
|
||||||
bgCanvas.ripple(it, duration = 500L)
|
bgCanvas.ripple(it, duration = 500L)
|
||||||
invalidateCustomTheme()
|
invalidateCustomTheme()
|
||||||
setFrostTheme(true)
|
setFrostTheme(prefs, true)
|
||||||
shouldRestartMain()
|
shouldRestartMain()
|
||||||
}) {
|
}) {
|
||||||
dependsOnCustom()
|
dependsOnCustom()
|
||||||
@ -112,7 +112,7 @@ fun SettingsActivity.getAppearancePrefs(): KPrefAdapterBuilder.() -> Unit = {
|
|||||||
|
|
||||||
colorPicker(R.string.header_color, prefs::customHeaderColor, {
|
colorPicker(R.string.header_color, prefs::customHeaderColor, {
|
||||||
prefs.customHeaderColor = it
|
prefs.customHeaderColor = it
|
||||||
frostNavigationBar()
|
frostNavigationBar(prefs)
|
||||||
toolbarCanvas.ripple(it, RippleCanvas.MIDDLE, RippleCanvas.END, duration = 500L)
|
toolbarCanvas.ripple(it, RippleCanvas.MIDDLE, RippleCanvas.END, duration = 500L)
|
||||||
reload()
|
reload()
|
||||||
shouldRestartMain()
|
shouldRestartMain()
|
||||||
@ -161,7 +161,7 @@ fun SettingsActivity.getAppearancePrefs(): KPrefAdapterBuilder.() -> Unit = {
|
|||||||
|
|
||||||
checkbox(R.string.tint_nav, prefs::tintNavBar, {
|
checkbox(R.string.tint_nav, prefs::tintNavBar, {
|
||||||
prefs.tintNavBar = it
|
prefs.tintNavBar = it
|
||||||
frostNavigationBar()
|
frostNavigationBar(prefs)
|
||||||
setFrostResult(REQUEST_NAV)
|
setFrostResult(REQUEST_NAV)
|
||||||
}) {
|
}) {
|
||||||
descRes = R.string.tint_nav_desc
|
descRes = R.string.tint_nav_desc
|
||||||
|
@ -37,13 +37,14 @@ import com.pitchedapps.frost.facebook.parsers.MessageParser
|
|||||||
import com.pitchedapps.frost.facebook.parsers.NotifParser
|
import com.pitchedapps.frost.facebook.parsers.NotifParser
|
||||||
import com.pitchedapps.frost.facebook.parsers.SearchParser
|
import com.pitchedapps.frost.facebook.parsers.SearchParser
|
||||||
import com.pitchedapps.frost.utils.L
|
import com.pitchedapps.frost.utils.L
|
||||||
|
import com.pitchedapps.frost.utils.Prefs
|
||||||
import com.pitchedapps.frost.utils.frostUriFromFile
|
import com.pitchedapps.frost.utils.frostUriFromFile
|
||||||
import com.pitchedapps.frost.utils.sendFrostEmail
|
import com.pitchedapps.frost.utils.sendFrostEmail
|
||||||
import java.io.File
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
import kotlinx.coroutines.channels.Channel
|
import kotlinx.coroutines.channels.Channel
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Allan Wang on 2017-06-30.
|
* Created by Allan Wang on 2017-06-30.
|
||||||
|
@ -185,7 +185,7 @@ fun SettingsActivity.getNotificationPrefs(): KPrefAdapterBuilder.() -> Unit = {
|
|||||||
plainText(R.string.reset_notif_epoch) {
|
plainText(R.string.reset_notif_epoch) {
|
||||||
onClick = {
|
onClick = {
|
||||||
launch {
|
launch {
|
||||||
FrostDatabase.get().notifDao().deleteAll()
|
notifDao.deleteAll()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,7 @@ import com.pitchedapps.frost.enums.MainActivityLayout
|
|||||||
import com.pitchedapps.frost.enums.Theme
|
import com.pitchedapps.frost.enums.Theme
|
||||||
import com.pitchedapps.frost.injectors.InjectorContract
|
import com.pitchedapps.frost.injectors.InjectorContract
|
||||||
import org.koin.core.context.GlobalContext
|
import org.koin.core.context.GlobalContext
|
||||||
|
import org.koin.core.context.KoinContextHandler
|
||||||
import org.koin.dsl.module
|
import org.koin.dsl.module
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -202,7 +203,7 @@ class Prefs(factory: KPrefFactory) : KPref("${BuildConfig.APPLICATION_ID}.prefs"
|
|||||||
get() = MainActivityLayout(mainActivityLayoutType)
|
get() = MainActivityLayout(mainActivityLayoutType)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun get(): Prefs = GlobalContext.get().koin.get()
|
fun get(): Prefs = KoinContextHandler.get().get()
|
||||||
|
|
||||||
fun module() = module {
|
fun module() = module {
|
||||||
single { Prefs(get()) }
|
single { Prefs(get()) }
|
||||||
|
@ -125,9 +125,9 @@ fun Activity.cookies(): ArrayList<CookieEntity> {
|
|||||||
*/
|
*/
|
||||||
private inline fun <reified T : WebOverlayActivityBase> Context.launchWebOverlayImpl(
|
private inline fun <reified T : WebOverlayActivityBase> Context.launchWebOverlayImpl(
|
||||||
url: String,
|
url: String,
|
||||||
fbCookie: FbCookie
|
fbCookie: FbCookie,
|
||||||
|
prefs: Prefs
|
||||||
) {
|
) {
|
||||||
val prefs = Prefs.get()
|
|
||||||
val argUrl = url.formattedFbUrl
|
val argUrl = url.formattedFbUrl
|
||||||
L.v { "Launch received: $url\nLaunch web overlay: $argUrl" }
|
L.v { "Launch received: $url\nLaunch web overlay: $argUrl" }
|
||||||
if (argUrl.isFacebookUrl && argUrl.contains("/logout.php")) {
|
if (argUrl.isFacebookUrl && argUrl.contains("/logout.php")) {
|
||||||
@ -142,15 +142,15 @@ private inline fun <reified T : WebOverlayActivityBase> Context.launchWebOverlay
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Context.launchWebOverlay(url: String, fbCookie: FbCookie) =
|
fun Context.launchWebOverlay(url: String, fbCookie: FbCookie, prefs: Prefs) =
|
||||||
launchWebOverlayImpl<WebOverlayActivity>(url, fbCookie)
|
launchWebOverlayImpl<WebOverlayActivity>(url, fbCookie, prefs)
|
||||||
|
|
||||||
// TODO Currently, default is overlay. Switch this if default changes
|
// TODO Currently, default is overlay. Switch this if default changes
|
||||||
fun Context.launchWebOverlayDesktop(url: String, fbCookie: FbCookie) =
|
fun Context.launchWebOverlayDesktop(url: String, fbCookie: FbCookie, prefs: Prefs) =
|
||||||
launchWebOverlay(url, fbCookie)
|
launchWebOverlay(url, fbCookie, prefs)
|
||||||
|
|
||||||
fun Context.launchWebOverlayMobile(url: String, fbCookie: FbCookie) =
|
fun Context.launchWebOverlayMobile(url: String, fbCookie: FbCookie, prefs: Prefs) =
|
||||||
launchWebOverlayImpl<WebOverlayMobileActivity>(url, fbCookie)
|
launchWebOverlayImpl<WebOverlayMobileActivity>(url, fbCookie, prefs)
|
||||||
|
|
||||||
private fun Context.fadeBundle() = ActivityOptions.makeCustomAnimation(
|
private fun Context.fadeBundle() = ActivityOptions.makeCustomAnimation(
|
||||||
this,
|
this,
|
||||||
@ -178,8 +178,7 @@ fun WebOverlayActivity.url(): String {
|
|||||||
return intent.getStringExtra(ARG_URL) ?: FbItem.FEED.url
|
return intent.getStringExtra(ARG_URL) ?: FbItem.FEED.url
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Activity.setFrostTheme(forceTransparent: Boolean = false) {
|
fun Activity.setFrostTheme(prefs: Prefs, forceTransparent: Boolean = false) {
|
||||||
val prefs = Prefs.get()
|
|
||||||
val isTransparent =
|
val isTransparent =
|
||||||
forceTransparent || (Color.alpha(prefs.bgColor) != 255) || (Color.alpha(prefs.headerColor) != 255)
|
forceTransparent || (Color.alpha(prefs.bgColor) != 255) || (Color.alpha(prefs.headerColor) != 255)
|
||||||
if (prefs.bgColor.isColorDark) {
|
if (prefs.bgColor.isColorDark) {
|
||||||
@ -267,8 +266,7 @@ private inline fun frostSnackbar(crossinline builder: Snackbar.() -> Unit): Snac
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Activity.frostNavigationBar() {
|
fun Activity.frostNavigationBar(prefs: Prefs) {
|
||||||
val prefs = Prefs.get()
|
|
||||||
navigationBarColor = if (prefs.tintNavBar) prefs.headerColor else Color.BLACK
|
navigationBarColor = if (prefs.tintNavBar) prefs.headerColor else Color.BLACK
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ enum class WebContextType(
|
|||||||
OPEN_LINK(
|
OPEN_LINK(
|
||||||
R.string.open_link,
|
R.string.open_link,
|
||||||
{ it.hasUrl },
|
{ it.hasUrl },
|
||||||
{ c, wc, fc -> c.launchWebOverlay(wc.url!!, fc) }),
|
{ c, wc, fc -> c.launchWebOverlay(wc.url!!, fc, Prefs.get()) }),
|
||||||
COPY_LINK(R.string.copy_link, { it.hasUrl }, { c, wc, _ -> c.copyToClipboard(wc.url) }),
|
COPY_LINK(R.string.copy_link, { it.hasUrl }, { c, wc, _ -> c.copyToClipboard(wc.url) }),
|
||||||
COPY_TEXT(R.string.copy_text, { it.hasText }, { c, wc, _ -> c.copyToClipboard(wc.text) }),
|
COPY_TEXT(R.string.copy_text, { it.hasText }, { c, wc, _ -> c.copyToClipboard(wc.text) }),
|
||||||
SHARE_LINK(R.string.share_link, { it.hasUrl }, { c, wc, _ -> c.shareText(wc.url) }),
|
SHARE_LINK(R.string.share_link, { it.hasUrl }, { c, wc, _ -> c.shareText(wc.url) }),
|
||||||
|
@ -41,7 +41,7 @@ import com.devbrackets.android.exomedia.listener.VideoControlsVisibilityListener
|
|||||||
import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial
|
import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial
|
||||||
import com.pitchedapps.frost.R
|
import com.pitchedapps.frost.R
|
||||||
import com.pitchedapps.frost.databinding.ViewVideoBinding
|
import com.pitchedapps.frost.databinding.ViewVideoBinding
|
||||||
import com.pitchedapps.frost.db.FrostDatabase
|
import com.pitchedapps.frost.db.CookieDao
|
||||||
import com.pitchedapps.frost.db.currentCookie
|
import com.pitchedapps.frost.db.currentCookie
|
||||||
import com.pitchedapps.frost.utils.L
|
import com.pitchedapps.frost.utils.L
|
||||||
import com.pitchedapps.frost.utils.Prefs
|
import com.pitchedapps.frost.utils.Prefs
|
||||||
@ -88,6 +88,7 @@ class FrostVideoViewer @JvmOverloads constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private val prefs: Prefs by inject()
|
private val prefs: Prefs by inject()
|
||||||
|
private val cookieDao: CookieDao by inject()
|
||||||
|
|
||||||
private val binding: ViewVideoBinding =
|
private val binding: ViewVideoBinding =
|
||||||
ViewVideoBinding.inflate(LayoutInflater.from(context), this, true)
|
ViewVideoBinding.inflate(LayoutInflater.from(context), this, true)
|
||||||
@ -116,8 +117,7 @@ class FrostVideoViewer @JvmOverloads constructor(
|
|||||||
when (it.itemId) {
|
when (it.itemId) {
|
||||||
R.id.action_pip -> video.isExpanded = false
|
R.id.action_pip -> video.isExpanded = false
|
||||||
R.id.action_download -> context.ctxCoroutine.launchMain {
|
R.id.action_download -> context.ctxCoroutine.launchMain {
|
||||||
val cookie =
|
val cookie = cookieDao.currentCookie(prefs) ?: return@launchMain
|
||||||
FrostDatabase.get().cookieDao().currentCookie() ?: return@launchMain
|
|
||||||
context.frostDownload(cookie, video.videoUri)
|
context.frostDownload(cookie, video.videoUri)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,7 @@ import ca.allanwang.kau.utils.launchMain
|
|||||||
import com.pitchedapps.frost.contracts.FrostContentContainer
|
import com.pitchedapps.frost.contracts.FrostContentContainer
|
||||||
import com.pitchedapps.frost.contracts.FrostContentCore
|
import com.pitchedapps.frost.contracts.FrostContentCore
|
||||||
import com.pitchedapps.frost.contracts.FrostContentParent
|
import com.pitchedapps.frost.contracts.FrostContentParent
|
||||||
|
import com.pitchedapps.frost.db.CookieDao
|
||||||
import com.pitchedapps.frost.db.FrostDatabase
|
import com.pitchedapps.frost.db.FrostDatabase
|
||||||
import com.pitchedapps.frost.db.currentCookie
|
import com.pitchedapps.frost.db.currentCookie
|
||||||
import com.pitchedapps.frost.facebook.FB_HOME_URL
|
import com.pitchedapps.frost.facebook.FB_HOME_URL
|
||||||
@ -62,6 +63,7 @@ class FrostWebView @JvmOverloads constructor(
|
|||||||
|
|
||||||
val fbCookie: FbCookie by inject()
|
val fbCookie: FbCookie by inject()
|
||||||
val prefs: Prefs by inject()
|
val prefs: Prefs by inject()
|
||||||
|
val cookieDao: CookieDao by inject()
|
||||||
|
|
||||||
override fun reload(animate: Boolean) {
|
override fun reload(animate: Boolean) {
|
||||||
if (parent.registerTransition(false, animate))
|
if (parent.registerTransition(false, animate))
|
||||||
@ -92,10 +94,9 @@ class FrostWebView @JvmOverloads constructor(
|
|||||||
webChromeClient = FrostChromeClient(this)
|
webChromeClient = FrostChromeClient(this)
|
||||||
addJavascriptInterface(FrostJSI(this), "Frost")
|
addJavascriptInterface(FrostJSI(this), "Frost")
|
||||||
setBackgroundColor(Color.TRANSPARENT)
|
setBackgroundColor(Color.TRANSPARENT)
|
||||||
val db = FrostDatabase.get()
|
|
||||||
setDownloadListener { url, userAgent, contentDisposition, mimetype, contentLength ->
|
setDownloadListener { url, userAgent, contentDisposition, mimetype, contentLength ->
|
||||||
context.ctxCoroutine.launchMain {
|
context.ctxCoroutine.launchMain {
|
||||||
val cookie = db.cookieDao().currentCookie() ?: return@launchMain
|
val cookie = cookieDao.currentCookie(prefs) ?: return@launchMain
|
||||||
context.frostDownload(
|
context.frostDownload(
|
||||||
cookie,
|
cookie,
|
||||||
url,
|
url,
|
||||||
|
@ -80,19 +80,19 @@ fun FrostWebView.requestWebOverlay(url: String): Boolean {
|
|||||||
// already overlay; manage user agent
|
// already overlay; manage user agent
|
||||||
if (userAgentString != USER_AGENT_DESKTOP_CONST && shouldUseDesktop) {
|
if (userAgentString != USER_AGENT_DESKTOP_CONST && shouldUseDesktop) {
|
||||||
L._i { "Switch to desktop agent overlay" }
|
L._i { "Switch to desktop agent overlay" }
|
||||||
context.launchWebOverlayDesktop(url, fbCookie)
|
context.launchWebOverlayDesktop(url, fbCookie, prefs)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if (userAgentString == USER_AGENT_DESKTOP_CONST && !shouldUseDesktop) {
|
if (userAgentString == USER_AGENT_DESKTOP_CONST && !shouldUseDesktop) {
|
||||||
L._i { "Switch from desktop agent" }
|
L._i { "Switch from desktop agent" }
|
||||||
context.launchWebOverlayMobile(url, fbCookie)
|
context.launchWebOverlayMobile(url, fbCookie, prefs)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
L._i { "return false switch" }
|
L._i { "return false switch" }
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
L.v { "Request web overlay passed" }
|
L.v { "Request web overlay passed" }
|
||||||
context.launchWebOverlay(url, fbCookie)
|
context.launchWebOverlay(url, fbCookie, prefs)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,10 +18,6 @@ buildscript {
|
|||||||
wrapper.setDistributionType(Wrapper.DistributionType.ALL)
|
wrapper.setDistributionType(Wrapper.DistributionType.ALL)
|
||||||
}
|
}
|
||||||
|
|
||||||
task clean(type: Delete) {
|
|
||||||
delete rootProject.buildDir
|
|
||||||
}
|
|
||||||
|
|
||||||
task generateChangelogMd() {
|
task generateChangelogMd() {
|
||||||
def changelog = kau.ChangelogGenerator.generate("${project.rootDir}/app/src/main/res/xml/frost_changelog.xml", "${project.rootDir}/docs/Changelog.md")
|
def changelog = kau.ChangelogGenerator.generate("${project.rootDir}/app/src/main/res/xml/frost_changelog.xml", "${project.rootDir}/docs/Changelog.md")
|
||||||
// If we have no changelog, something is wrong
|
// If we have no changelog, something is wrong
|
||||||
|
@ -14,9 +14,7 @@ object Versions {
|
|||||||
const val mockk = "1.9.3"
|
const val mockk = "1.9.3"
|
||||||
|
|
||||||
// https://github.com/jhy/jsoup/releases
|
// https://github.com/jhy/jsoup/releases
|
||||||
const val jsoup = "1.12.1"
|
const val jsoup = "1.13.1"
|
||||||
// https://square.github.io/leakcanary/changelog/
|
|
||||||
const val leakCanary = "2.2"
|
|
||||||
// https://square.github.io/okhttp/changelog/
|
// https://square.github.io/okhttp/changelog/
|
||||||
const val okhttp = "4.3.1"
|
const val okhttp = "4.3.1"
|
||||||
// https://developer.android.com/jetpack/androidx/releases/room
|
// https://developer.android.com/jetpack/androidx/releases/room
|
||||||
@ -25,6 +23,6 @@ object Versions {
|
|||||||
const val roboelectric = "4.3"
|
const val roboelectric = "4.3"
|
||||||
// https://github.com/davemorrissey/subsampling-scale-image-view#quick-start
|
// https://github.com/davemorrissey/subsampling-scale-image-view#quick-start
|
||||||
const val scaleImageView = "3.10.0"
|
const val scaleImageView = "3.10.0"
|
||||||
// https://github.com/srs/gradle-node-plugin/releases
|
// https://github.com/node-gradle/gradle-node-plugin/releases
|
||||||
const val nodeGradle = "1.3.1"
|
const val nodeGradle = "2.2.3"
|
||||||
}
|
}
|
@ -16,7 +16,7 @@ org.gradle.daemon = true
|
|||||||
APP_ID=Frost
|
APP_ID=Frost
|
||||||
APP_GROUP=com.pitchedapps
|
APP_GROUP=com.pitchedapps
|
||||||
|
|
||||||
KAU=5038b93
|
KAU=33e117a
|
||||||
|
|
||||||
android.useAndroidX=true
|
android.useAndroidX=true
|
||||||
android.enableJetifier=true
|
android.enableJetifier=true
|
||||||
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
|||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.1-all.zip
|
||||||
|
Loading…
Reference in New Issue
Block a user