Commit 90c5534e authored by wanglei's avatar wanglei

...

parent c5f71740
...@@ -24,6 +24,7 @@ import com.base.browserwhite.ui.views.DialogViews.showDefaultBrowserDialog ...@@ -24,6 +24,7 @@ import com.base.browserwhite.ui.views.DialogViews.showDefaultBrowserDialog
import com.base.browserwhite.ui.views.DialogViews.showMyAccountDialog import com.base.browserwhite.ui.views.DialogViews.showMyAccountDialog
import com.base.browserwhite.ui.views.PermissionDialog.showPermissionBottomSheet import com.base.browserwhite.ui.views.PermissionDialog.showPermissionBottomSheet
import com.base.browserwhite.ui.views.RateDialog.showRateDialog import com.base.browserwhite.ui.views.RateDialog.showRateDialog
import com.base.browserwhite.ui.widget.BrowserAppWidget
import com.base.browserwhite.utils.AppPreferences import com.base.browserwhite.utils.AppPreferences
import com.base.browserwhite.utils.BarUtils import com.base.browserwhite.utils.BarUtils
import com.base.browserwhite.utils.LogEx import com.base.browserwhite.utils.LogEx
...@@ -90,6 +91,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -90,6 +91,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
showPermissionBottomSheet(launcher) {} showPermissionBottomSheet(launcher) {}
} }
BrowserAppWidget.updateAllWidget(this)
addDeskShortCut() addDeskShortCut()
} }
......
...@@ -23,6 +23,7 @@ import com.base.browserwhite.help.EventUtils ...@@ -23,6 +23,7 @@ import com.base.browserwhite.help.EventUtils
import com.base.browserwhite.help.WeatherUtils import com.base.browserwhite.help.WeatherUtils
import com.base.browserwhite.service.StayNotificationService.Companion.startStayNotification import com.base.browserwhite.service.StayNotificationService.Companion.startStayNotification
import com.base.browserwhite.ui.activity.BaseActivity import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.ui.widget.BrowserAppWidget
import com.base.browserwhite.utils.AnimationUtils import com.base.browserwhite.utils.AnimationUtils
import com.base.browserwhite.utils.BarUtils import com.base.browserwhite.utils.BarUtils
import com.base.browserwhite.utils.LogEx import com.base.browserwhite.utils.LogEx
...@@ -74,7 +75,6 @@ class Splash2Activity : BaseActivity<ActivitySplash2Binding>(), ...@@ -74,7 +75,6 @@ class Splash2Activity : BaseActivity<ActivitySplash2Binding>(),
onAgreePrivacy() onAgreePrivacy()
} }
} else { } else {
startAnimation(false) { startAnimation(false) {
PrivacyManager(binding, this, this) PrivacyManager(binding, this, this)
} }
......
...@@ -2,8 +2,13 @@ package com.base.browserwhite.ui.views ...@@ -2,8 +2,13 @@ package com.base.browserwhite.ui.views
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.AlertDialog import android.app.AlertDialog
import android.app.PendingIntent
import android.appwidget.AppWidgetManager
import android.content.ComponentName
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.net.Uri
import android.os.Build
import android.view.Gravity import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
...@@ -34,14 +39,17 @@ import com.base.browserwhite.help.Constants ...@@ -34,14 +39,17 @@ import com.base.browserwhite.help.Constants
import com.base.browserwhite.help.RxBus import com.base.browserwhite.help.RxBus
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.widget.BrowserAppWidget
import com.base.browserwhite.utils.ActivityLauncher import com.base.browserwhite.utils.ActivityLauncher
import com.base.browserwhite.utils.AppPreferences import com.base.browserwhite.utils.AppPreferences
import com.base.browserwhite.utils.LogEx
import com.base.browserwhite.utils.RoleManagerUtils.isDefaultBrowser import com.base.browserwhite.utils.RoleManagerUtils.isDefaultBrowser
import com.base.browserwhite.utils.RoleManagerUtils.requestRoleBrowser import com.base.browserwhite.utils.RoleManagerUtils.requestRoleBrowser
import com.base.browserwhite.utils.SpBeanUtils import com.base.browserwhite.utils.SpBeanUtils
import com.base.browserwhite.utils.SpBeanUtils.HISTORY_SP_KEY import com.base.browserwhite.utils.SpBeanUtils.HISTORY_SP_KEY
import com.base.browserwhite.utils.SpBeanUtils.SEARCH_RECORD_SP_KEY import com.base.browserwhite.utils.SpBeanUtils.SEARCH_RECORD_SP_KEY
import com.base.browserwhite.utils.ToastUtils.toast import com.base.browserwhite.utils.ToastUtils.toast
import com.google.android.datatransport.runtime.logging.Logging
import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialog
...@@ -176,6 +184,22 @@ object DialogViews { ...@@ -176,6 +184,22 @@ object DialogViews {
} }
} }
}
binding.clWidget.setOnClickListener {
val appWidgetManager = AppWidgetManager.getInstance(this)
val myProvider = ComponentName(this, BrowserAppWidget::class.java)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
LogEx.logDebug("Add Widget", "isRequestPinAppWidgetSupported=${appWidgetManager.isRequestPinAppWidgetSupported}")
if (appWidgetManager.isRequestPinAppWidgetSupported) {
val successCallback = PendingIntent.getBroadcast(this, 0, Intent(), PendingIntent.FLAG_IMMUTABLE)
appWidgetManager.requestPinAppWidget(myProvider, null, successCallback)
} else {
toast("please add widget in Desktop widgets")
}
}
} }
binding.clClearRecord.setOnClickListener { binding.clClearRecord.setOnClickListener {
showCleanRecordDialog() showCleanRecordDialog()
...@@ -190,6 +214,7 @@ object DialogViews { ...@@ -190,6 +214,7 @@ object DialogViews {
binding.tvCancel.setOnClickListener { binding.tvCancel.setOnClickListener {
dialog.dismiss() dialog.dismiss()
} }
} }
fun Context.showCleanRecordDialog() { fun Context.showCleanRecordDialog() {
......
...@@ -3,21 +3,29 @@ package com.base.browserwhite.ui.widget ...@@ -3,21 +3,29 @@ package com.base.browserwhite.ui.widget
import android.app.PendingIntent import android.app.PendingIntent
import android.appwidget.AppWidgetManager import android.appwidget.AppWidgetManager
import android.appwidget.AppWidgetProvider import android.appwidget.AppWidgetProvider
import android.content.ComponentName
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.widget.RemoteViews import android.widget.RemoteViews
import com.base.browserwhite.R import com.base.browserwhite.R
import com.base.browserwhite.bean.ConstObject import com.base.browserwhite.bean.ConstObject
import com.base.browserwhite.ui.activity.splash.Splash2Activity import com.base.browserwhite.ui.activity.splash.Splash2Activity
import com.base.browserwhite.ui.views.DialogViews.showMyAccountDialog
import com.base.browserwhite.utils.LogEx
import kotlin.random.Random import kotlin.random.Random
/** /**
* Implementation of App Widget functionality. * Implementation of App Widget functionality.
*/ */
private val TAG = "BrowserAppWidget"
class BrowserAppWidget : AppWidgetProvider() { class BrowserAppWidget : AppWidgetProvider() {
override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) { override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {
// There may be multiple widgets active, so update all of them // There may be multiple widgets active, so update all of them
for (appWidgetId in appWidgetIds) { for (appWidgetId in appWidgetIds) {
LogEx.logDebug(TAG, "appWidgetId=$appWidgetId")
updateAppWidget(context, appWidgetManager, appWidgetId) updateAppWidget(context, appWidgetManager, appWidgetId)
} }
} }
...@@ -29,9 +37,20 @@ class BrowserAppWidget : AppWidgetProvider() { ...@@ -29,9 +37,20 @@ class BrowserAppWidget : AppWidgetProvider() {
override fun onDisabled(context: Context) { override fun onDisabled(context: Context) {
// Enter relevant functionality for when the last widget is disabled // Enter relevant functionality for when the last widget is disabled
} }
companion object {
fun updateAllWidget(context: Context) {
val appWidgetManager = AppWidgetManager.getInstance(context)
val appWidgetIds = appWidgetManager.getAppWidgetIds(ComponentName(context, BrowserAppWidget::class.java))
BrowserAppWidget().onUpdate(context, appWidgetManager, appWidgetIds)
}
}
} }
internal fun updateAppWidget(context: Context, appWidgetManager: AppWidgetManager, appWidgetId: Int) { internal fun updateAppWidget(context: Context, appWidgetManager: AppWidgetManager, appWidgetId: Int) {
LogEx.logDebug(TAG, "updateAppWidget appWidgetId=$appWidgetId")
// Construct the RemoteViews object // Construct the RemoteViews object
val views = RemoteViews(context.packageName, R.layout.browser_app_widget) val views = RemoteViews(context.packageName, R.layout.browser_app_widget)
views.setTextViewText(R.id.tv_app_name, context.resources.getString(R.string.app_name)) views.setTextViewText(R.id.tv_app_name, context.resources.getString(R.string.app_name))
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
android:includeFontPadding="false" android:includeFontPadding="false"
android:paddingBottom="2dp" android:paddingBottom="2dp"
android:singleLine="true" android:singleLine="true"
android:text="@string/app_name"
android:textColor="#666666" android:textColor="#666666"
android:textSize="12sp" android:textSize="12sp"
tools:text="Al Browser&amp;Privacy" /> tools:text="Al Browser&amp;Privacy" />
...@@ -48,9 +49,10 @@ ...@@ -48,9 +49,10 @@
android:layout_marginEnd="5dp" android:layout_marginEnd="5dp"
android:layout_toStartOf="@id/tv_clean" android:layout_toStartOf="@id/tv_clean"
android:singleLine="true" android:singleLine="true"
android:text="88%.."
android:textColor="#DF2C28" android:textColor="#DF2C28"
android:textSize="21sp" android:textSize="21sp"
tools:text="88%.." /> tools:ignore="HardcodedText" />
<TextView <TextView
android:id="@+id/tv_clean" android:id="@+id/tv_clean"
......
...@@ -247,6 +247,7 @@ ...@@ -247,6 +247,7 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_widget"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
......
...@@ -10,5 +10,5 @@ ...@@ -10,5 +10,5 @@
android:resizeMode="none" android:resizeMode="none"
android:targetCellWidth="3" android:targetCellWidth="3"
android:targetCellHeight="1" android:targetCellHeight="1"
android:updatePeriodMillis="86400000" android:updatePeriodMillis="60000"
android:widgetCategory="home_screen" /> android:widgetCategory="home_screen" />
\ 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