Commit 5634f6b3 authored by wanglei's avatar wanglei

...

parent 99d00b35
...@@ -38,6 +38,9 @@ ...@@ -38,6 +38,9 @@
android:theme="@style/Theme.BrowserWhite" android:theme="@style/Theme.BrowserWhite"
android:usesCleartextTraffic="true" android:usesCleartextTraffic="true"
tools:targetApi="34"> tools:targetApi="34">
<activity
android:name=".ui.activity.bookmark.BookmarkEditActivity"
android:exported="false" />
<activity <activity
android:name=".ui.activity.bookmark.BookMarkActivity" android:name=".ui.activity.bookmark.BookMarkActivity"
android:exported="false" /> android:exported="false" />
......
package com.base.browserwhite.bean
data class BookmarkBean(
val folder: String = "",
var name: String = "",
var url: String = "",
val time: Long = 0,
) {
var showTime:Boolean=false
val viewType: Int = 0
}
\ No newline at end of file
package com.base.browserwhite.ui.activity.bookmark package com.base.browserwhite.ui.activity.bookmark
import android.graphics.Color
import androidx.activity.addCallback
import androidx.core.view.updatePadding
import com.base.browserwhite.bean.BookmarkBean
import com.base.browserwhite.databinding.ActivityBookMarkBinding import com.base.browserwhite.databinding.ActivityBookMarkBinding
import com.base.browserwhite.ui.activity.BaseActivity import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.utils.BarUtils
import com.base.browserwhite.utils.KotlinExt.toFormatTime
import com.base.browserwhite.utils.SpBeanUtils
import com.base.browserwhite.utils.SpBeanUtils.BOOKMARK_SP_KEY
import com.google.gson.Gson
class BookMarkActivity : BaseActivity<ActivityBookMarkBinding>() { class BookMarkActivity : BaseActivity<ActivityBookMarkBinding>() {
...@@ -9,9 +18,64 @@ class BookMarkActivity : BaseActivity<ActivityBookMarkBinding>() { ...@@ -9,9 +18,64 @@ class BookMarkActivity : BaseActivity<ActivityBookMarkBinding>() {
ActivityBookMarkBinding.inflate(layoutInflater) ActivityBookMarkBinding.inflate(layoutInflater)
} }
private lateinit var adapter: BookmarkAdapter
override fun initView() { override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.WHITE)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
adapter = BookmarkAdapter()
initData()
}
private fun initData() {
initBookmarkData()
}
private fun initBookmarkData() {
val list = SpBeanUtils.getSpBeanList(BOOKMARK_SP_KEY)
val items = list.map { Gson().fromJson(it, BookmarkBean::class.java) }
var time = ""
items.sortedBy { it.time }.forEach {
if (time != it.time.toFormatTime()) {
it.showTime = true
} else {
time = it.time.toFormatTime()
}
}
adapter.submitList(items)
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
finishToMain()
}
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
binding.tvTabBookmark.setOnClickListener {
if (binding.tvTabBookmark.isSelected) {
return@setOnClickListener
}
binding.tvTabBookmark.isSelected = true
binding.tvTabHistory.isSelected = false
}
binding.tvTabBookmark.callOnClick()
binding.tvTabHistory.setOnClickListener {
if (binding.tvTabHistory.isSelected) {
return@setOnClickListener
}
binding.tvTabHistory.isSelected = true
binding.tvTabBookmark.isSelected = false
}
} }
} }
\ No newline at end of file
package com.base.browserwhite.ui.activity.bookmark
import android.content.Context
import android.view.View
import android.view.ViewGroup
import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.base.browserwhite.R
import com.base.browserwhite.bean.BookmarkBean
import com.base.browserwhite.databinding.ItemBookmarkBinding
import com.base.browserwhite.utils.KotlinExt.toFormatTime
import com.base.browserwhite.utils.XmlEx.inflate
import com.chad.library.adapter4.BaseQuickAdapter
class BookmarkAdapter : BaseQuickAdapter<BookmarkBean, BookmarkAdapter.BookmarkHolder>() {
inner class BookmarkHolder(view: View) : ViewHolder(view)
override fun onBindViewHolder(holder: BookmarkHolder, position: Int, item: BookmarkBean?) {
if (item == null) {
return
}
val binding = ItemBookmarkBinding.bind(holder.itemView)
binding.flTime.isVisible = item.showTime
binding.tvTime.text = item.time.toFormatTime()
}
override fun getItemViewType(position: Int, list: List<BookmarkBean>): Int {
return list[position].viewType
}
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): BookmarkHolder {
val layout = when (viewType) {
0 -> R.layout.item_bookmark
else -> R.layout.item_bookmark
}
return BookmarkHolder(layout.inflate(parent))
}
}
\ No newline at end of file
package com.base.browserwhite.ui.activity.bookmark
import android.annotation.SuppressLint
import android.graphics.Color
import androidx.activity.addCallback
import androidx.core.view.updatePadding
import com.base.browserwhite.bean.BookmarkBean
import com.base.browserwhite.databinding.ActivityBookmarkEditBinding
import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.utils.BarUtils
class BookmarkEditActivity : BaseActivity<ActivityBookmarkEditBinding>() {
override val binding: ActivityBookmarkEditBinding by lazy {
ActivityBookmarkEditBinding.inflate(layoutInflater)
}
@SuppressLint("SetTextI18n")
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.WHITE)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
binding.editName.setText(editBookmark?.name)
binding.editUrl.setText(editBookmark?.url)
binding.ivSelectorNav.isSelected = true
if (editBookmark?.folder.equals("")) {
binding.tvFolder.text = "Root Folder"
} else {
binding.tvFolder.text = editBookmark?.folder
}
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
finishToMain()
}
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
}
companion object {
var editBookmark: BookmarkBean? = null
}
}
\ No newline at end of file
package com.base.browserwhite.ui.activity.webbrowser package com.base.browserwhite.ui.activity.webbrowser
import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.view.KeyEvent import android.view.KeyEvent
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
...@@ -17,7 +18,9 @@ import com.base.browserwhite.bean.ConstObject.GOOGLE ...@@ -17,7 +18,9 @@ import com.base.browserwhite.bean.ConstObject.GOOGLE
import com.base.browserwhite.bean.ConstObject.searchEngineSp import com.base.browserwhite.bean.ConstObject.searchEngineSp
import com.base.browserwhite.databinding.ActivityWebBrowserBinding import com.base.browserwhite.databinding.ActivityWebBrowserBinding
import com.base.browserwhite.ui.activity.BaseActivity import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.ui.activity.bookmark.BookmarkEditActivity
import com.base.browserwhite.ui.views.DialogViews.showSearchEngineDialog import com.base.browserwhite.ui.views.DialogViews.showSearchEngineDialog
import com.base.browserwhite.ui.views.DialogViews.showWebBrowserMoreDialog
import com.base.browserwhite.utils.BarUtils import com.base.browserwhite.utils.BarUtils
import com.base.browserwhite.utils.LinkSearchUtils.getBaiduSearch import com.base.browserwhite.utils.LinkSearchUtils.getBaiduSearch
import com.base.browserwhite.utils.LinkSearchUtils.getBingSearch import com.base.browserwhite.utils.LinkSearchUtils.getBingSearch
...@@ -197,7 +200,15 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() { ...@@ -197,7 +200,15 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() {
} }
} }
} }
binding.ivMore.setOnClickListener {
showWebBrowserMoreDialog(joinAction = {
// val url = currentFragment?.url ?: ""
// val value = Gson().toJson(BookmarkBean(url = url, time = System.currentTimeMillis()))
// SpBeanUtils.addSpBean(BOOKMARK, value)
BookmarkEditActivity.editBookmark = currentFragment?.bookmarkBean
startActivity(Intent(this, BookmarkEditActivity::class.java))
})
}
} }
private fun addNewWebSite(uri: String) { private fun addNewWebSite(uri: String) {
......
...@@ -16,6 +16,7 @@ import android.webkit.WebStorage ...@@ -16,6 +16,7 @@ import android.webkit.WebStorage
import android.webkit.WebView import android.webkit.WebView
import android.webkit.WebViewClient import android.webkit.WebViewClient
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.browserwhite.bean.BookmarkBean
import com.base.browserwhite.bean.DownloadBean import com.base.browserwhite.bean.DownloadBean
import com.base.browserwhite.databinding.FragmentWebViewBinding import com.base.browserwhite.databinding.FragmentWebViewBinding
import com.base.browserwhite.ui.activity.download.DownloadAdapter import com.base.browserwhite.ui.activity.download.DownloadAdapter
...@@ -45,6 +46,7 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() { ...@@ -45,6 +46,7 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
private val TAG = "WebViewFragment" private val TAG = "WebViewFragment"
var url: String = "" var url: String = ""
private val downloadList = arrayListOf<DownloadBean>() private val downloadList = arrayListOf<DownloadBean>()
var bookmarkBean: BookmarkBean = BookmarkBean()
override val binding: FragmentWebViewBinding by lazy { override val binding: FragmentWebViewBinding by lazy {
FragmentWebViewBinding.inflate(layoutInflater) FragmentWebViewBinding.inflate(layoutInflater)
...@@ -187,6 +189,7 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() { ...@@ -187,6 +189,7 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
LogEx.logDebug(TAG, "shouldOverrideUrlLoading") LogEx.logDebug(TAG, "shouldOverrideUrlLoading")
val url = request?.url.toString() val url = request?.url.toString()
binding.llError.visibility = View.GONE binding.llError.visibility = View.GONE
bookmarkBean.url = url
view?.loadUrl(url) view?.loadUrl(url)
return true return true
} }
...@@ -194,6 +197,7 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() { ...@@ -194,6 +197,7 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
override fun onPageFinished(view: WebView?, url: String?) { override fun onPageFinished(view: WebView?, url: String?) {
LogEx.logDebug(TAG, "onPageFinished") LogEx.logDebug(TAG, "onPageFinished")
super.onPageFinished(view, url) super.onPageFinished(view, url)
bookmarkBean.name = view?.title.toString()
onPageFinished?.invoke(url) onPageFinished?.invoke(url)
} }
......
package com.base.browserwhite.ui.views
import android.app.AlertDialog
import android.content.Context
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.widget.FrameLayout
import com.base.browserwhite.R
import com.base.browserwhite.databinding.DialogBookmarkMoreBinding
object BookmarkDialog {
fun Context.showBookmarkMoreDialog(
anchorView: View,
isDir: Boolean,
) {
val binding = DialogBookmarkMoreBinding.inflate(LayoutInflater.from(this))
val dialog = AlertDialog.Builder(this).create()
dialog.setView(binding.root)
dialog.show()
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
val params = dialog.window?.attributes
params?.dimAmount = 0f
params?.width = resources.getDimensionPixelOffset(R.dimen.dp_258)
// params?.width = FrameLayout.LayoutParams.WRAP_CONTENT
params?.height = FrameLayout.LayoutParams.WRAP_CONTENT
params?.gravity = Gravity.TOP
val location = IntArray(2)
anchorView.getLocationOnScreen(location)
params?.x = location[0]
params?.y = location[1] - resources.getDimensionPixelOffset(R.dimen.dp_200)
dialog.window?.attributes = params
if (isDir) {
binding.llOpenNewTab.visibility = View.GONE
binding.vOpenNewTab.visibility = View.GONE
binding.llAddNavigation.visibility = View.GONE
binding.vAddNavigation.visibility = View.GONE
binding.llAddDesktop.visibility = View.GONE
binding.vAddDesktop.visibility = View.GONE
}
binding.llOpenNewTab.setOnClickListener { }
binding.llDelete.setOnClickListener { }
binding.llEdit.setOnClickListener { }
binding.llAddNavigation.setOnClickListener { }
binding.llAddDesktop.setOnClickListener { }
binding.llSelect.setOnClickListener { }
}
}
\ No newline at end of file
...@@ -23,10 +23,12 @@ import com.base.browserwhite.databinding.DialogCleanerReocordBinding ...@@ -23,10 +23,12 @@ import com.base.browserwhite.databinding.DialogCleanerReocordBinding
import com.base.browserwhite.databinding.DialogDefaultBrowserBinding import com.base.browserwhite.databinding.DialogDefaultBrowserBinding
import com.base.browserwhite.databinding.DialogDeleteTipBinding import com.base.browserwhite.databinding.DialogDeleteTipBinding
import com.base.browserwhite.databinding.DialogMediaMoreBinding import com.base.browserwhite.databinding.DialogMediaMoreBinding
import com.base.browserwhite.databinding.DialogMoreWebbrowserBinding
import com.base.browserwhite.databinding.DialogMyAccountBinding import com.base.browserwhite.databinding.DialogMyAccountBinding
import com.base.browserwhite.databinding.DialogSearchEngineBinding import com.base.browserwhite.databinding.DialogSearchEngineBinding
import com.base.browserwhite.ui.activity.about.AboutActivity import com.base.browserwhite.ui.activity.about.AboutActivity
import com.base.browserwhite.ui.activity.feedback.FeedbackActivity import com.base.browserwhite.ui.activity.feedback.FeedbackActivity
import com.base.browserwhite.ui.views.DialogViews.showDefaultBrowserDialog
import com.base.browserwhite.ui.views.DialogViews.showSearchEngineDialog import com.base.browserwhite.ui.views.DialogViews.showSearchEngineDialog
import com.base.browserwhite.utils.ActivityLauncher import com.base.browserwhite.utils.ActivityLauncher
import com.base.browserwhite.utils.AppPreferences import com.base.browserwhite.utils.AppPreferences
...@@ -323,5 +325,27 @@ object DialogViews { ...@@ -323,5 +325,27 @@ object DialogViews {
} }
fun Context.showWebBrowserMoreDialog(joinAction: (() -> Unit)? = null) {
val dialog = BottomSheetDialog(this)
val binding = DialogMoreWebbrowserBinding.inflate(LayoutInflater.from(this))
dialog.setContentView(binding.root)
dialog.setCanceledOnTouchOutside(false)
dialog.show()
val parentView = binding.root.parent as View
val behavior = BottomSheetBehavior.from(parentView)
//展开
behavior.state = BottomSheetBehavior.STATE_EXPANDED
binding.tvCancel.setOnClickListener {
dialog.dismiss()
}
binding.llJoinBookmark.setOnClickListener {
joinAction?.invoke()
}
}
} }
\ No newline at end of file
package com.base.browserwhite.utils package com.base.browserwhite.utils
object SearchRecordUtils { object SpBeanUtils {
const val SEARCH_RECORD_SP_KEY = "SEARCH_RECORD_SP_KEY"
const val BOOKMARK_SP_KEY = "bookmark_sp_key"
const val SEARCH_RECORD_SP_KEY = "SEARCH_RECORD_SP_KEY"
private fun getSearchRecord(): List<String> { fun getSpBeanList(key: String): List<String> {
val sp = AppPreferences.getInstance().getString(SEARCH_RECORD_SP_KEY, "") val sp = AppPreferences.getInstance().getString(key, "")
return if (sp.equals("")) { return if (sp.equals("")) {
listOf() listOf()
} else { } else {
...@@ -14,25 +15,24 @@ object SearchRecordUtils { ...@@ -14,25 +15,24 @@ object SearchRecordUtils {
} }
} }
fun deleteSearchRecord(value: String) { fun deleteSpBean(key: String, value: String) {
val list = getSearchRecord().toMutableList() val list = getSpBeanList(key).toMutableList()
list.remove(value) list.remove(value)
val string = list.joinToString(separator = ",") val string = list.joinToString(separator = ",")
AppPreferences.getInstance().put(SEARCH_RECORD_SP_KEY, string) AppPreferences.getInstance().put(key, string)
} }
fun addSearchRecord(value: String) { fun addSpBean(key: String, value: String) {
val list = getSearchRecord().toMutableList() val list = getSpBeanList(key).toMutableList()
list.add(value) list.add(value)
val string = list.joinToString(separator = ",") val string = list.joinToString(separator = ",")
AppPreferences.getInstance().put(SEARCH_RECORD_SP_KEY, string) AppPreferences.getInstance().put(key, string)
} }
fun clearSearchRecord() { fun clearSpBean(key: String) {
AppPreferences.getInstance().put(SEARCH_RECORD_SP_KEY, "") AppPreferences.getInstance().put(key, "")
} }
} }
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#000000" android:state_selected="true" />
<item android:color="#797A7F" android:state_selected="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/x_weixuan_nav" android:state_selected="false" />
<item android:drawable="@mipmap/x_xuanze_nav" android:state_selected="true" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#EDF1F4"/>
<corners android:radius="10dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#EEF1F6" />
<corners android:radius="15dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bg_ffffff_15" android:state_selected="true" />
<item android:drawable="@android:color/transparent" android:state_selected="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main" android:id="@+id/main"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.activity.bookmark.BookMarkActivity"> tools:context=".ui.activity.bookmark.BookMarkActivity">
</androidx.constraintlayout.widget.ConstraintLayout> <FrameLayout
\ No newline at end of file android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|start"
android:layout_marginVertical="10dp"
android:layout_marginStart="10dp">
<FrameLayout
android:id="@+id/fl_fanhui"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="10dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/h_fanhui"
tools:ignore="ContentDescription" />
</FrameLayout>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:background="@drawable/bg_eef1f6_15"
android:padding="5dp"
android:text="Feedback"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
tools:ignore="UselessParent">
<TextView
android:id="@+id/tv_tab_bookmark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/bg_selector_bookmark"
android:gravity="center"
android:paddingHorizontal="12dp"
android:paddingVertical="11dp"
android:text="Bookmark"
android:textColor="@color/color_tab_bookmark"
android:textSize="18sp" />
<TextView
android:id="@+id/tv_tab_history"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:background="@drawable/bg_selector_bookmark"
android:gravity="center"
android:paddingHorizontal="12dp"
android:paddingVertical="11dp"
android:text="History"
android:textColor="@color/color_tab_bookmark"
android:textSize="18sp" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
<ImageView
android:id="@+id/iv_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="20dp"
android:gravity="center"
android:src="@mipmap/tianjia_bookmark"
android:textColor="#AEAEB0"
android:textSize="16sp"
tools:ignore="ContentDescription,HardcodedText" />
</FrameLayout>
<SearchView
android:layout_width="match_parent"
android:layout_height="44dp"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="6dp"
android:background="@drawable/bg_eef1f6_15"
android:queryHint="Search" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginVertical="10dp"
android:layout_weight="1"
tools:ignore="UselessLeaf">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/item_bookmark" />
</FrameLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.activity.bookmark.BookmarkEditActivity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|start"
android:layout_marginVertical="10dp"
android:layout_marginStart="10dp">
<FrameLayout
android:id="@+id/fl_fanhui"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/h_fanhui"
tools:ignore="ContentDescription" />
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Edit Bookmark"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</LinearLayout>
<TextView
android:id="@+id/tv_save"
android:layout_width="90dp"
android:layout_height="35dp"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="16dp"
android:background="@drawable/bg_0571ed_25"
android:enabled="false"
android:gravity="center"
android:text="Save"
android:textColor="@color/white"
android:textSize="18sp"
tools:ignore="ContentDescription,HardcodedText" />
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="22dp"
android:text="Name"
android:textColor="@color/black"
android:textSize="15sp"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/edit_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="20dp"
android:textSize="17sp"
tools:ignore="Autofill,LabelFor,TextFields"
tools:text="Google" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="36dp"
android:text="URL"
android:textColor="@color/black"
android:textSize="15sp"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/edit_url"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="20dp"
android:textSize="17sp"
tools:ignore="Autofill,LabelFor,TextFields"
tools:text="https://google.com" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="36dp"
android:background="@drawable/bg_edf1f4_15">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="15dp"
android:text="Parent Folder"
android:textColor="@color/black"
android:textSize="14sp"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_folder"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:gravity="end"
android:paddingHorizontal="8dp"
android:textColor="@color/black"
android:textSize="16sp"
tools:text="Root Folder" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="11dp"
android:src="@mipmap/jiantou"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="28dp"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/iv_selector_nav"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@drawable/bg_add_nav_selector"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="6dp"
android:text="Also add to navigation"
android:textColor="@color/black"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
...@@ -160,7 +160,6 @@ ...@@ -160,7 +160,6 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@mipmap/gengduo" android:src="@mipmap/gengduo"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/tv_label" app:layout_constraintStart_toEndOf="@id/tv_label"
......
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<androidx.cardview.widget.CardView
android:layout_width="258dp"
android:layout_height="wrap_content"
android:layout_margin="10dp"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="10dp"
app:cardElevation="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_open_new_tab"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="8dp"
android:layout_weight="1"
android:background="?android:attr/selectableItemBackground"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:src="@mipmap/b_open"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
android:text="Open in a new tab"
android:textColor="#010101"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</LinearLayout>
<View
android:id="@+id/v_open_new_tab"
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginHorizontal="20dp"
android:background="#E5E6EB" />
<LinearLayout
android:id="@+id/ll_delete"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="8dp"
android:layout_weight="1"
android:background="?android:attr/selectableItemBackground"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:src="@mipmap/f_del"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
android:text="Delete"
android:textColor="#010101"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginHorizontal="20dp"
android:background="#E5E6EB" />
<LinearLayout
android:id="@+id/ll_edit"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="8dp"
android:layout_weight="1"
android:background="?android:attr/selectableItemBackground"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:src="@mipmap/b_bianji"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
android:text="Edit"
android:textColor="#010101"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginHorizontal="20dp"
android:background="#E5E6EB" />
<LinearLayout
android:id="@+id/ll_add_navigation"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="8dp"
android:layout_weight="1"
android:background="?android:attr/selectableItemBackground"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:src="@mipmap/b_join"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
android:text="Add to Navigation"
android:textColor="#010101"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</LinearLayout>
<View
android:id="@+id/v_add_navigation"
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginHorizontal="20dp"
android:background="#E5E6EB" />
<LinearLayout
android:id="@+id/ll_add_desktop"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="8dp"
android:layout_weight="1"
android:background="?android:attr/selectableItemBackground"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:src="@mipmap/h_zhuomian"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
android:text="Add to desktop"
android:textColor="#010101"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</LinearLayout>
<View
android:id="@+id/v_add_desktop"
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginHorizontal="20dp"
android:background="#E5E6EB" />
<LinearLayout
android:id="@+id/ll_select"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="8dp"
android:layout_weight="1"
android:background="?android:attr/selectableItemBackground"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:src="@mipmap/b_select"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
android:text="Select"
android:textColor="#010101"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</FrameLayout>
\ No newline at end of file
This diff is collapsed.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal">
<FrameLayout
android:id="@+id/fl_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/card"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="10dp"
android:layout_marginStart="15dp"
android:text="Today"
android:textColor="@color/black"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_gravity="bottom"
android:background="#E5E6EB" />
</FrameLayout>
<androidx.cardview.widget.CardView
android:id="@+id/card"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginVertical="4dp"
android:layout_marginStart="15dp"
app:cardElevation="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/fl_time">
<ImageView
android:id="@+id/iv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/wenjiajia_bookmark"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/iv_shipin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@mipmap/h_shipin"
android:visibility="gone"
tools:ignore="ContentDescription" />
</androidx.cardview.widget.CardView>
<LinearLayout
android:id="@+id/ll"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="5dp"
android:layout_marginStart="16dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="@id/card"
app:layout_constraintEnd_toStartOf="@id/fl_more"
app:layout_constraintStart_toEndOf="@id/card"
app:layout_constraintTop_toTopOf="@id/card">
<TextView
android:id="@+id/tv_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:text="My Favorite"
android:textColor="#010101"
android:textSize="18sp"
tools:ignore="HardcodedText" />
</LinearLayout>
<FrameLayout
android:id="@+id/fl_more"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="8dp"
android:background="?android:attr/selectableItemBackground"
android:padding="8dp"
app:layout_constraintBottom_toBottomOf="@id/card"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/card">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/geduo"
tools:ignore="ContentDescription" />
</FrameLayout>
<View
android:layout_width="0dp"
android:layout_height="1px"
android:layout_marginTop="15dp"
android:background="#E5E6EB"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/ll"
app:layout_constraintTop_toBottomOf="@id/ll" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -17,10 +17,6 @@ ...@@ -17,10 +17,6 @@
<dimen name="dp_7">7dp</dimen> <dimen name="dp_7">7dp</dimen>
<dimen name="dp_20">20dp</dimen> <dimen name="dp_20">20dp</dimen>
<dimen name="dp_26">26dp</dimen> <dimen name="dp_26">26dp</dimen>
<!--
Refer to App Widget Documentation for margin information
http://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout
-->
<dimen name="widget_margin">0dp</dimen> <dimen name="widget_margin">0dp</dimen>
<dimen name="dp_258">258dp</dimen>
</resources> </resources>
\ No newline at end of file
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