Commit 90c5534e authored by wanglei's avatar wanglei

...

parent c5f71740
......@@ -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.PermissionDialog.showPermissionBottomSheet
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.BarUtils
import com.base.browserwhite.utils.LogEx
......@@ -90,6 +91,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
showPermissionBottomSheet(launcher) {}
}
BrowserAppWidget.updateAllWidget(this)
addDeskShortCut()
}
......
......@@ -23,6 +23,7 @@ import com.base.browserwhite.help.EventUtils
import com.base.browserwhite.help.WeatherUtils
import com.base.browserwhite.service.StayNotificationService.Companion.startStayNotification
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.BarUtils
import com.base.browserwhite.utils.LogEx
......@@ -74,7 +75,6 @@ class Splash2Activity : BaseActivity<ActivitySplash2Binding>(),
onAgreePrivacy()
}
} else {
startAnimation(false) {
PrivacyManager(binding, this, this)
}
......
......@@ -2,8 +2,13 @@ package com.base.browserwhite.ui.views
import android.annotation.SuppressLint
import android.app.AlertDialog
import android.app.PendingIntent
import android.appwidget.AppWidgetManager
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
......@@ -34,14 +39,17 @@ import com.base.browserwhite.help.Constants
import com.base.browserwhite.help.RxBus
import com.base.browserwhite.ui.activity.about.AboutActivity
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.AppPreferences
import com.base.browserwhite.utils.LogEx
import com.base.browserwhite.utils.RoleManagerUtils.isDefaultBrowser
import com.base.browserwhite.utils.RoleManagerUtils.requestRoleBrowser
import com.base.browserwhite.utils.SpBeanUtils
import com.base.browserwhite.utils.SpBeanUtils.HISTORY_SP_KEY
import com.base.browserwhite.utils.SpBeanUtils.SEARCH_RECORD_SP_KEY
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.BottomSheetDialog
......@@ -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 {
showCleanRecordDialog()
......@@ -190,6 +214,7 @@ object DialogViews {
binding.tvCancel.setOnClickListener {
dialog.dismiss()
}
}
fun Context.showCleanRecordDialog() {
......
......@@ -3,21 +3,29 @@ package com.base.browserwhite.ui.widget
import android.app.PendingIntent
import android.appwidget.AppWidgetManager
import android.appwidget.AppWidgetProvider
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import android.widget.RemoteViews
import com.base.browserwhite.R
import com.base.browserwhite.bean.ConstObject
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
/**
* Implementation of App Widget functionality.
*/
private val TAG = "BrowserAppWidget"
class BrowserAppWidget : AppWidgetProvider() {
override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {
// There may be multiple widgets active, so update all of them
for (appWidgetId in appWidgetIds) {
LogEx.logDebug(TAG, "appWidgetId=$appWidgetId")
updateAppWidget(context, appWidgetManager, appWidgetId)
}
}
......@@ -29,9 +37,20 @@ class BrowserAppWidget : AppWidgetProvider() {
override fun onDisabled(context: Context) {
// 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) {
LogEx.logDebug(TAG, "updateAppWidget appWidgetId=$appWidgetId")
// Construct the RemoteViews object
val views = RemoteViews(context.packageName, R.layout.browser_app_widget)
views.setTextViewText(R.id.tv_app_name, context.resources.getString(R.string.app_name))
......
......@@ -34,6 +34,7 @@
android:includeFontPadding="false"
android:paddingBottom="2dp"
android:singleLine="true"
android:text="@string/app_name"
android:textColor="#666666"
android:textSize="12sp"
tools:text="Al Browser&amp;Privacy" />
......@@ -48,9 +49,10 @@
android:layout_marginEnd="5dp"
android:layout_toStartOf="@id/tv_clean"
android:singleLine="true"
android:text="88%.."
android:textColor="#DF2C28"
android:textSize="21sp"
tools:text="88%.." />
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_clean"
......
......@@ -247,6 +247,7 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_widget"
android:layout_width="match_parent"
android:layout_height="wrap_content">
......
......@@ -10,5 +10,5 @@
android:resizeMode="none"
android:targetCellWidth="3"
android:targetCellHeight="1"
android:updatePeriodMillis="86400000"
android:updatePeriodMillis="60000"
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