Skip to content

Commit

Permalink
fix facebook open link in new window issue; make saving history faste…
Browse files Browse the repository at this point in the history
…r;add debugt for tracking time
  • Loading branch information
plateaukao committed Sep 20, 2021
1 parent 2164636 commit 75bb651
Show file tree
Hide file tree
Showing 8 changed files with 102 additions and 24 deletions.
24 changes: 9 additions & 15 deletions app/src/main/java/de/baumann/browser/activity/BrowserActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ import de.baumann.browser.unit.IntentUnit
import de.baumann.browser.unit.ViewUnit
import de.baumann.browser.unit.ViewUnit.dp
import de.baumann.browser.util.Constants
import de.baumann.browser.util.DebugT
import de.baumann.browser.view.*
import de.baumann.browser.view.adapter.*
import de.baumann.browser.view.dialog.*
Expand Down Expand Up @@ -446,7 +447,6 @@ open class BrowserActivity : AppCompatActivity(), BrowserController, OnClickList
when (v.id) {
R.id.button_size -> showFontSizeChangeDialog()
R.id.omnibox_title -> {
toolbarViewController.hide()
focusOnInput()
}
R.id.omnibox_input_clear -> binding.omniboxInput.text.clear()
Expand Down Expand Up @@ -505,10 +505,7 @@ open class BrowserActivity : AppCompatActivity(), BrowserController, OnClickList
R.id.toolbar_rotate -> rotateScreen()
R.id.toolbar_translate -> showTranslation()
R.id.toolbar_close_tab -> removeAlbum(currentAlbumController!!)
R.id.toolbar_input_url -> {
toolbarViewController.hide()
focusOnInput()
}
R.id.toolbar_input_url -> focusOnInput()
else -> {
}
}
Expand Down Expand Up @@ -741,6 +738,8 @@ open class BrowserActivity : AppCompatActivity(), BrowserController, OnClickList
(keyEvent.action == ACTION_DOWN && keyEvent.keyCode == KEYCODE_ENTER)
) {
binding.omniboxInput.dismissDropDown()
isAutoCompleteOutdated = true

val query = binding.omniboxInput.text.toString().trim { it <= ' ' }
if (query.isEmpty()) {
NinjaToast.show(this, getString(R.string.toast_input_empty))
Expand Down Expand Up @@ -1120,20 +1119,12 @@ open class BrowserActivity : AppCompatActivity(), BrowserController, OnClickList

override fun updateTitle(title: String?) = updateTitle()

override fun addHistory(url: String?) {
val url = url ?: return

if (recordDb.checkHistory(url)) {
recordDb.deleteHistoryItemByURL(url)
}

override fun addHistory(url: String) {
recordDb.addHistory(Record(ninjaWebView.albumTitle, url, System.currentTimeMillis()))

recordDb.purgeOldHistoryItem(14)
}

@Synchronized
override fun updateProgress(progress: Int) {
DebugT("updateProgress:$progress")
progressBar.progress = progress

if (progress < BrowserUnit.PROGRESS_MAX) {
Expand All @@ -1150,7 +1141,10 @@ open class BrowserActivity : AppCompatActivity(), BrowserController, OnClickList
// to keep track of whether data is changed for auto completion
private var isAutoCompleteOutdated = true
private fun focusOnInput() {
toolbarViewController.hide()
binding.omniboxInput.requestFocus()
binding.omniboxInput.selectAll()

if (isAutoCompleteOutdated) {
updateAutoComplete()
isAutoCompleteOutdated = false
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/java/de/baumann/browser/browser/AdBlock.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import de.baumann.browser.database.RecordDb;
import de.baumann.browser.preference.ConfigManager;
import de.baumann.browser.unit.RecordUnit;
import de.baumann.browser.util.DebugT;

public class AdBlock {
private static final String FILE = "hosts.txt";
Expand All @@ -31,6 +32,7 @@ public class AdBlock {
private static void loadHosts(final Context context) {
config = new ConfigManager(context);
Thread thread = new Thread(() -> {
DebugT debugT = new DebugT("loadHosts");
AssetManager manager = context.getAssets();
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(manager.open(FILE)));
Expand All @@ -41,6 +43,7 @@ private static void loadHosts(final Context context) {
} catch (IOException i) {
Log.w("browser", "Error loading hosts", i);
}
debugT.printTime();
});
thread.start();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@ class NinjaWebChromeClient(private val ninjaWebView: NinjaWebView) : WebChromeCl

override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
val urlString = request?.url?.toString() ?: return false
return if (urlString.contains("google") || urlString.contains("facebook")) {

// handle login requests
return if (urlString.contains("google") ||
(urlString.contains("facebook") && !urlString.contains("story") && !urlString.contains("l.php"))
) {
view?.loadUrl(urlString)
true
} else if (!isUrlProcessed) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ import kotlin.collections.HashMap
import android.graphics.BitmapFactory

import android.util.Base64
import de.baumann.browser.util.DebugT
import de.baumann.browser.view.dTLoadUrl
import java.io.ByteArrayInputStream


Expand Down Expand Up @@ -65,6 +67,8 @@ class NinjaWebViewClient(
ninjaWebView.hideTranslateContext()
}, 2000)
}
dTLoadUrl?.printTime()
dTLoadUrl = null
}

private fun isTranslationDomain(url: String): Boolean {
Expand All @@ -80,6 +84,11 @@ class NinjaWebViewClient(
handleUri(view, request.url)

private fun handleUri(webView: WebView, uri: Uri): Boolean {
if (dTLoadUrl != null) {
dTLoadUrl?.printPath(uri.toString())
} else {
dTLoadUrl = DebugT("loadUrl:${uri}")
}
val url = uri.toString()
val parsedUri = Uri.parse(url)
val packageManager = context.packageManager
Expand Down
18 changes: 18 additions & 0 deletions app/src/main/java/de/baumann/browser/database/History.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package de.baumann.browser.database

import androidx.room.Entity
import androidx.room.PrimaryKey

@Entity(tableName = "history")
data class History(
var title: String,
var url: String,
var time: Int
) {
@PrimaryKey(autoGenerate = true)
var id: Int = 0

override fun toString(): String {
return title
}
}
16 changes: 14 additions & 2 deletions app/src/main/java/de/baumann/browser/database/RecordDb.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import android.content.ContentValues
import android.content.Context
import android.database.Cursor
import android.database.sqlite.SQLiteDatabase
import androidx.core.database.sqlite.transaction
import de.baumann.browser.unit.RecordUnit
import java.util.*

Expand All @@ -20,8 +21,19 @@ class RecordDb(context: Context?) {
helper.close()
}

fun addHistory(record: Record?) {
if (record?.title == null || record.title.trim { it <= ' ' }.isEmpty()
fun addHistory(record: Record) {
database.transaction {
if (checkHistory(record.url)) {
deleteHistoryItemByURL(record.url)
}

internalAddHistory(record)
purgeOldHistoryItem(14)
}
}

private fun internalAddHistory(record: Record) {
if (record.title == null || record.title.trim { it <= ' ' }.isEmpty()
|| record.url == null || record.url.trim { it <= ' ' }.isEmpty()
|| record.time < 0L
) {
Expand Down
31 changes: 31 additions & 0 deletions app/src/main/java/de/baumann/browser/util/DebugT.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package de.baumann.browser.util

import android.util.Log
import de.baumann.browser.Ninja.BuildConfig

class DebugT(private val tag: String) {
private val currentTimeInMilli = System.currentTimeMillis()
init {
if (BuildConfig.DEBUG) {
Log.d(TAG, "[debugT][$tag]: start")
}
}

fun printPath(intermediateTag: String) {
if (BuildConfig.DEBUG) {
val newTime = System.currentTimeMillis()
Log.d(TAG, "[debugT][$tag][$intermediateTag]: ${(newTime - currentTimeInMilli)}")
}
}

fun printTime() {
if (BuildConfig.DEBUG) {
val newTime = System.currentTimeMillis()
Log.d(TAG, "[debugT][$tag]: ${(newTime - currentTimeInMilli)}")
}
}

companion object {
private const val TAG = "debugT"
}
}
19 changes: 13 additions & 6 deletions app/src/main/java/de/baumann/browser/view/NinjaWebView.kt
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import de.baumann.browser.preference.ConfigManager
import de.baumann.browser.preference.TranslationMode
import de.baumann.browser.unit.BrowserUnit
import de.baumann.browser.unit.ViewUnit.dp
import de.baumann.browser.util.DebugT
import de.baumann.browser.util.PdfDocumentAdapter
import org.apache.commons.text.StringEscapeUtils
import java.io.IOException
Expand Down Expand Up @@ -238,6 +239,14 @@ class NinjaWebView : WebView, AlbumController {

@SuppressLint("SetJavaScriptEnabled")
override fun loadUrl(url: String) {
dTLoadUrl = DebugT("loadUrl")
albumTitle = ""

// show progress right away
if (url.startsWith("https")) {
update(5)
}

settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK
if (url.trim { it <= ' ' }.isEmpty()) {
NinjaToast.show(context, R.string.toast_load_error)
Expand Down Expand Up @@ -305,16 +314,13 @@ class NinjaWebView : WebView, AlbumController {
if (isForeground) {
browserController?.updateProgress(progress)
}

if (isLoadFinish) {
Handler(
Looper.getMainLooper()).postDelayed({
Handler(Looper.getMainLooper()).postDelayed({
favicon?.let { setAlbumCover(it) }
} ,
250
250
)
if (prepareRecord()) {
browserController?.updateAutoComplete()
}
}
}

Expand Down Expand Up @@ -731,3 +737,4 @@ class NinjaWebView : WebView, AlbumController {
}
}

var dTLoadUrl: DebugT? = null

0 comments on commit 75bb651

Please sign in to comment.