Commit dbfcf391 authored by leichao.gao's avatar leichao.gao

Merge branch 'master' of gitlab.huolea.com:koko/browser-white

parents 216c2185 1f651ced
......@@ -26,6 +26,7 @@ import com.base.browserwhite.MyApplication
import com.base.browserwhite.R
import com.base.browserwhite.bean.ConstObject
import com.base.browserwhite.bean.ConstObject.searchEngineSp
import com.base.browserwhite.bean.ConstObject.webPrivacy
import com.base.browserwhite.bean.SearchRecordBean
import com.base.browserwhite.databinding.ActivitySearchBinding
import com.base.browserwhite.help.Constants
......@@ -35,6 +36,7 @@ import com.base.browserwhite.help.SearchTipUtils.getSearchTip
import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity
import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import com.base.browserwhite.ui.views.ViewObject.setEditPrivacy
import com.base.browserwhite.utils.BarUtils.setStatusBarColor
import com.base.browserwhite.utils.BarUtils.setStatusBarLightMode
import com.base.browserwhite.utils.LinkSearchUtils
......@@ -71,13 +73,16 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
}, performSearch = {
link = LinkSearchUtils.getSpSearchAction(content)
})
lifecycleScope.launch(Dispatchers.IO) {
val list = SpBeanUtils.getSpBeanList(SEARCH_RECORD_SP_KEY).map { Gson().fromJson(it, SearchRecordBean::class.java) }
val old = list.find { TextUtils.equals(it.content, content) }
if (old != null) {
SpBeanUtils.deleteSpBeanCondition(SEARCH_RECORD_SP_KEY, old.id)
if (!webPrivacy) {
lifecycleScope.launch(Dispatchers.IO) {
val list = SpBeanUtils.getSpBeanList(SEARCH_RECORD_SP_KEY).map { Gson().fromJson(it, SearchRecordBean::class.java) }
val old = list.find { TextUtils.equals(it.content, content) }
if (old != null) {
SpBeanUtils.deleteSpBeanCondition(SEARCH_RECORD_SP_KEY, old.id)
}
SpBeanUtils.addSpBean(SEARCH_RECORD_SP_KEY, SearchRecordBean(content))
}
SpBeanUtils.addSpBean(SEARCH_RECORD_SP_KEY, SearchRecordBean(content))
}
LogEx.logDebug(TAG, "isHomeSearch=$isHomeSearch")
......@@ -96,6 +101,11 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
overridePendingTransition(0, 0)
}
override fun onResume() {
super.onResume()
setEditPrivacy(this, binding.editWeb)
}
override fun initView() {
setStatusBarLightMode(this, true)
setStatusBarColor(this, Color.TRANSPARENT)
......@@ -130,7 +140,13 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
binding.rvFlow.layoutManager = layoutManager
binding.rvFlow.adapter = searchRecordAdapter
showSearchRecord()
if (webPrivacy) {
binding.rv.visibility = View.GONE
binding.rvFlow.visibility = View.GONE
binding.llPrivacyMode.visibility = View.VISIBLE
} else {
showSearchRecord()
}
}
override fun initListener() {
......@@ -144,12 +160,19 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
binding.tvCancel.visibility = View.VISIBLE
binding.ivClear.visibility = View.GONE
binding.tvSearch.visibility = View.GONE
showSearchRecord()
binding.rv.visibility = View.GONE
if (webPrivacy) {
binding.rvFlow.visibility = View.GONE
binding.llPrivacyMode.visibility = View.VISIBLE
} else {
showSearchRecord()
}
return@addTextChangedListener
}
binding.rv.visibility = View.VISIBLE
binding.tvCancel.visibility = View.GONE
binding.rvFlow.visibility = View.GONE
binding.llPrivacyMode.visibility = View.GONE
binding.tvCancel.visibility = View.GONE
binding.ivClear.visibility = View.VISIBLE
binding.tvSearch.visibility = View.VISIBLE
......@@ -157,9 +180,6 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
querySearchTip(it.toString())
}
binding.editWeb.setOnFocusChangeListener { v, hasFocus ->
if (hasFocus) {
}
}
binding.editWeb.setOnEditorActionListener { v, actionId, event ->
......@@ -238,6 +258,7 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
}.start()
}
@Deprecated("Deprecated in Java")
@SuppressLint("MissingSuperCall")
override fun onBackPressed() {
finish()
......@@ -353,6 +374,7 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
private val searchRecordList = arrayListOf<SearchRecordBean>()
private fun showSearchRecord() {
binding.rv.visibility = View.GONE
binding.llPrivacyMode.visibility = View.GONE
binding.rvFlow.visibility = View.VISIBLE
searchRecordList.clear()
......
......@@ -16,6 +16,7 @@ import android.view.View
import android.view.inputmethod.EditorInfo
import android.widget.TextView
import androidx.activity.addCallback
import androidx.core.content.ContextCompat
import androidx.core.view.updatePadding
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentTransaction
......@@ -28,6 +29,7 @@ import com.base.browserwhite.bean.BookmarkBean
import com.base.browserwhite.bean.ConstObject
import com.base.browserwhite.bean.ConstObject.GOOGLE
import com.base.browserwhite.bean.ConstObject.searchEngineSp
import com.base.browserwhite.bean.ConstObject.webPrivacy
import com.base.browserwhite.databinding.ActivityWebBrowserBinding
import com.base.browserwhite.help.Constants
import com.base.browserwhite.help.RxBus
......@@ -41,6 +43,7 @@ import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import com.base.browserwhite.ui.views.DialogViews.showMyAccountDialog
import com.base.browserwhite.ui.views.DialogViews.showSearchEngineDialog
import com.base.browserwhite.ui.views.DialogViews.showWebBrowserMoreDialog
import com.base.browserwhite.ui.views.ViewObject.setEditPrivacy
import com.base.browserwhite.utils.BarUtils
import com.base.browserwhite.utils.LinkSearchUtils.getBaiduSearch
import com.base.browserwhite.utils.LinkSearchUtils.getBingSearch
......@@ -248,6 +251,25 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() {
}
}
}
binding.ivShare.setOnClickListener {
val shareIntent = Intent()
shareIntent.setAction(Intent.ACTION_SEND)
shareIntent.putExtra(Intent.EXTRA_TEXT, currentFragment?.url)
shareIntent.setType("text/plain")
runCatching {
startActivity(shareIntent)
}
}
binding.editWeb.setOnFocusChangeListener { v, hasFocus ->
if (hasFocus) {
binding.editWeb.selectAll()
binding.ivShare.visibility = View.INVISIBLE
SearchActivity.searchContent = binding.editWeb.text.toString()
SearchActivity.startActivityWithButtonExpandAnimation(this, binding.clSearch, 0)
v.clearFocus()
}
}
binding.ivMore.setOnClickListener {
val json = getAddedBookmarkJson(currentFragment?.bookmarkBean?.url ?: "")
......@@ -290,31 +312,18 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() {
},
settingAction = {
showMyAccountDialog(launcher)
},
privacyAction = {
setEditPrivacy(this, binding.editWeb)
}
)
}
binding.ivShare.setOnClickListener {
val shareIntent = Intent()
shareIntent.setAction(Intent.ACTION_SEND)
shareIntent.putExtra(Intent.EXTRA_TEXT, currentFragment?.url)
shareIntent.setType("text/plain")
runCatching {
startActivity(shareIntent)
}
}
binding.editWeb.setOnFocusChangeListener { v, hasFocus ->
if (hasFocus) {
binding.editWeb.selectAll()
binding.ivShare.visibility = View.INVISIBLE
SearchActivity.searchContent = binding.editWeb.text.toString()
SearchActivity.startActivityWithButtonExpandAnimation(this, binding.clSearch, 0)
v.clearFocus()
}
}
}
override fun onResume() {
super.onResume()
setEditPrivacy(this, binding.editWeb)
}
private fun addNewWebSite(uri: String) {
......
......@@ -30,6 +30,7 @@ import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope
import com.base.browserwhite.MyApplication
import com.base.browserwhite.bean.BookmarkBean
import com.base.browserwhite.bean.ConstObject.webPrivacy
import com.base.browserwhite.bean.DownloadBean
import com.base.browserwhite.bean.HistoryBean
import com.base.browserwhite.databinding.FragmentWebViewBinding
......@@ -257,15 +258,17 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
onPageFinished?.invoke(url)
onPageFinished = null
//添加历史记录
SpBeanUtils.addSpBean(
HISTORY_SP_KEY,
HistoryBean(
name = tittle, url = url ?: "",
time = System.currentTimeMillis(),
color = ColorUtils.getRandomColor()
if (!webPrivacy) {
//添加历史记录
SpBeanUtils.addSpBean(
HISTORY_SP_KEY,
HistoryBean(
name = tittle, url = url ?: "",
time = System.currentTimeMillis(),
color = ColorUtils.getRandomColor()
)
)
)
}
}
override fun onReceivedSslError(
......
......@@ -2,6 +2,7 @@ package com.base.browserwhite.ui.fragment
import android.animation.ObjectAnimator
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.text.TextUtils
import android.view.KeyEvent
......@@ -9,6 +10,7 @@ import android.view.View
import android.view.inputmethod.EditorInfo.IME_ACTION_DONE
import android.widget.TextView
import android.widget.Toast
import androidx.core.content.ContextCompat
import androidx.core.view.isVisible
import androidx.recyclerview.widget.LinearLayoutManager
import com.base.browserwhite.R
......@@ -27,6 +29,7 @@ import com.base.browserwhite.bean.ConstObject.NEWS
import com.base.browserwhite.bean.ConstObject.YAHOO
import com.base.browserwhite.bean.ConstObject.YANDEX
import com.base.browserwhite.bean.ConstObject.searchEngineSp
import com.base.browserwhite.bean.ConstObject.webPrivacy
import com.base.browserwhite.bean.WebSiteBean
import com.base.browserwhite.bean.defaultValue
import com.base.browserwhite.bean.webSiteGroupBeanList
......@@ -51,6 +54,7 @@ import com.base.browserwhite.ui.adapter.HeadWebsiteAdapter
import com.base.browserwhite.ui.adapter.HeaderAdapter
import com.base.browserwhite.ui.activity.news.NewsAdapter
import com.base.browserwhite.ui.views.DialogViews.showSearchEngineDialog
import com.base.browserwhite.ui.views.ViewObject.setEditPrivacy
import com.base.browserwhite.utils.AppPreferences
import com.base.browserwhite.utils.ClipboardUtils.copyText
import com.base.browserwhite.utils.LinkSearchUtils
......@@ -257,7 +261,8 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
override fun onResume() {
super.onResume()
setWebSiteData()
binding.editWeb.setText("")
binding.editWeb.text = ""
setEditPrivacy(requireContext(), binding.editWeb)
}
private fun setWebSiteData() {
......
......@@ -38,6 +38,7 @@ import com.base.browserwhite.utils.ActivityLauncher
import com.base.browserwhite.utils.AppPreferences
import com.base.browserwhite.utils.RoleManagerUtils.isDefaultBrowser
import com.base.browserwhite.utils.RoleManagerUtils.requestRoleBrowser
import com.base.browserwhite.utils.ToastUtils.toast
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog
......@@ -339,6 +340,7 @@ object DialogViews {
historyAction: (() -> Unit)? = null,//历史记录
downloadAction: (() -> Unit)? = null,//下载
settingAction: (() -> Unit)? = null,
privacyAction: (() -> Unit)? = null,//隐私模式
) {
val dialog = BottomSheetDialog(this, R.style.BottomSheetDialog)
......@@ -400,6 +402,12 @@ object DialogViews {
binding.switchTraceless.isChecked = webPrivacy
binding.switchTraceless.setOnCheckedChangeListener { buttonView, isChecked ->
webPrivacy = isChecked
if (webPrivacy) {
toast("Enable incognito")
} else {
toast("Disable incognito")
}
privacyAction?.invoke()
}
}
......
package com.base.browserwhite.ui.views
import android.content.Context
import android.widget.TextView
import androidx.core.content.ContextCompat
import com.base.browserwhite.R
import com.base.browserwhite.bean.ConstObject
object ViewObject {
fun setEditPrivacy(context: Context, view: TextView) {
if (ConstObject.webPrivacy) {
val padding = context.resources.getDimensionPixelOffset(R.dimen.dp_5)
val drawable = ContextCompat.getDrawable(context, R.mipmap.x_wuhen)
drawable?.setBounds(-padding, 0, drawable.intrinsicWidth - padding, drawable.intrinsicHeight)
view.setCompoundDrawables(drawable, null, null, null)
} else {
view.setCompoundDrawables(null, null, null, null)
}
}
}
\ No newline at end of file
......@@ -96,12 +96,12 @@
android:visibility="gone" />
<TextView
android:includeFontPadding="false"
android:id="@+id/tv_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:includeFontPadding="false"
android:text="Search"
android:textColor="#0571ED"
android:textSize="16sp"
......@@ -109,11 +109,11 @@
tools:ignore="HardcodedText" />
<TextView
android:includeFontPadding="false"
android:id="@+id/tv_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:includeFontPadding="false"
android:text="Cancel"
android:textColor="@color/black"
android:textSize="16sp"
......@@ -143,6 +143,43 @@
android:padding="16dp"
android:visibility="gone" />
<LinearLayout
android:id="@+id/ll_privacy_mode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="48dp"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@mipmap/d_wuhen"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="27dp"
android:text="Entered incognito browsing"
android:textColor="@color/black"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:gravity="center"
android:text="Incognito browsing ensures that your\n search and browsing history are not\nstored or record on your device."
android:textColor="#545456"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</FrameLayout>
<LinearLayout
......
......@@ -76,6 +76,7 @@
<EditText
android:id="@+id/edit_web"
android:layout_width="0dp"
android:layout_height="match_parent"
......@@ -84,12 +85,13 @@
android:gravity="center_vertical"
android:hint="Search or enter website address"
android:imeOptions="actionDone"
android:paddingHorizontal="15dp"
android:paddingHorizontal="5dp"
android:singleLine="true"
android:textColorHint="#858587"
android:textSize="14sp"
app:layout_constraintEnd_toStartOf="@id/fl_refresh"
app:layout_constraintStart_toEndOf="@id/fl_search_engine"
tools:drawableStart="@mipmap/x_wuhen"
tools:ignore="Autofill,HardcodedText,TextFields" />
<FrameLayout
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment