safe mode shortcut to skip analysis on launch
This commit is contained in:
parent
0584e8ffa7
commit
924de597bf
6 changed files with 58 additions and 1 deletions
|
@ -251,6 +251,11 @@ open class MainActivity : FlutterFragmentActivity() {
|
|||
open fun extractIntentData(intent: Intent?): MutableMap<String, Any?> {
|
||||
when (val action = intent?.action) {
|
||||
Intent.ACTION_MAIN -> {
|
||||
if (intent.getBooleanExtra(EXTRA_KEY_SAFE_MODE, false)) {
|
||||
return hashMapOf(
|
||||
INTENT_DATA_KEY_SAFE_MODE to true,
|
||||
)
|
||||
}
|
||||
intent.getStringExtra(EXTRA_KEY_PAGE)?.let { page ->
|
||||
val filters = extractFiltersFromIntent(intent)
|
||||
return hashMapOf(
|
||||
|
@ -393,7 +398,16 @@ open class MainActivity : FlutterFragmentActivity() {
|
|||
)
|
||||
.build()
|
||||
|
||||
ShortcutManagerCompat.setDynamicShortcuts(this, listOf(videos, search))
|
||||
val safeMode = ShortcutInfoCompat.Builder(this, "safeMode")
|
||||
.setShortLabel(getString(R.string.safe_mode_shortcut_short_label))
|
||||
.setIcon(IconCompat.createWithResource(this, if (supportAdaptiveIcon) R.mipmap.ic_shortcut_safe_mode else R.drawable.ic_shortcut_safe_mode))
|
||||
.setIntent(
|
||||
Intent(Intent.ACTION_MAIN, null, this, MainActivity::class.java)
|
||||
.putExtra(EXTRA_KEY_SAFE_MODE, true)
|
||||
)
|
||||
.build()
|
||||
|
||||
ShortcutManagerCompat.setDynamicShortcuts(this, listOf(videos, search, safeMode))
|
||||
}
|
||||
|
||||
private fun onAnalysisCompleted() {
|
||||
|
@ -428,12 +442,14 @@ open class MainActivity : FlutterFragmentActivity() {
|
|||
const val INTENT_DATA_KEY_MIME_TYPE = "mimeType"
|
||||
const val INTENT_DATA_KEY_PAGE = "page"
|
||||
const val INTENT_DATA_KEY_QUERY = "query"
|
||||
const val INTENT_DATA_KEY_SAFE_MODE = "safeMode"
|
||||
const val INTENT_DATA_KEY_URI = "uri"
|
||||
const val INTENT_DATA_KEY_WIDGET_ID = "widgetId"
|
||||
|
||||
const val EXTRA_KEY_PAGE = "page"
|
||||
const val EXTRA_KEY_FILTERS_ARRAY = "filters"
|
||||
const val EXTRA_KEY_FILTERS_STRING = "filtersString"
|
||||
const val EXTRA_KEY_SAFE_MODE = "safeMode"
|
||||
const val EXTRA_KEY_WIDGET_ID = "widgetId"
|
||||
|
||||
// request code to pending runnable
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="48dp"
|
||||
android:height="48dp"
|
||||
android:viewportWidth="48"
|
||||
android:viewportHeight="48">
|
||||
<path
|
||||
android:fillColor="@color/ic_shortcut_background"
|
||||
android:pathData="M0,24 A1,1 0 1,1 48,24 A1,1 0 1,1 0,24" />
|
||||
<group
|
||||
android:translateX="12"
|
||||
android:translateY="12">
|
||||
<path
|
||||
android:fillColor="@color/ic_shortcut_foreground"
|
||||
android:pathData="M12,2C6.48,2 2,6.48 2,12c0,5.52 4.48,10 10,10s10,-4.48 10,-10C22,6.48 17.52,2 12,2zM19.46,9.12l-2.78,1.15c-0.51,-1.36 -1.58,-2.44 -2.95,-2.94l1.15,-2.78C16.98,5.35 18.65,7.02 19.46,9.12zM12,15c-1.66,0 -3,-1.34 -3,-3s1.34,-3 3,-3s3,1.34 3,3S13.66,15 12,15zM9.13,4.54l1.17,2.78c-1.38,0.5 -2.47,1.59 -2.98,2.97L4.54,9.13C5.35,7.02 7.02,5.35 9.13,4.54zM4.54,14.87l2.78,-1.15c0.51,1.38 1.59,2.46 2.97,2.96l-1.17,2.78C7.02,18.65 5.35,16.98 4.54,14.87zM14.88,19.46l-1.15,-2.78c1.37,-0.51 2.45,-1.59 2.95,-2.97l2.78,1.17C18.65,16.98 16.98,18.65 14.88,19.46z" />
|
||||
</group>
|
||||
</vector>
|
|
@ -0,0 +1,16 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:tint="@color/ic_shortcut_foreground"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<group
|
||||
android:scaleX="1.7226"
|
||||
android:scaleY="1.7226"
|
||||
android:translateX="33.3288"
|
||||
android:translateY="33.3288">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,2C6.48,2 2,6.48 2,12c0,5.52 4.48,10 10,10s10,-4.48 10,-10C22,6.48 17.52,2 12,2zM19.46,9.12l-2.78,1.15c-0.51,-1.36 -1.58,-2.44 -2.95,-2.94l1.15,-2.78C16.98,5.35 18.65,7.02 19.46,9.12zM12,15c-1.66,0 -3,-1.34 -3,-3s1.34,-3 3,-3s3,1.34 3,3S13.66,15 12,15zM9.13,4.54l1.17,2.78c-1.38,0.5 -2.47,1.59 -2.98,2.97L4.54,9.13C5.35,7.02 7.02,5.35 9.13,4.54zM4.54,14.87l2.78,-1.15c0.51,1.38 1.59,2.46 2.97,2.96l-1.17,2.78C7.02,18.65 5.35,16.98 4.54,14.87zM14.88,19.46l-1.15,-2.78c1.37,-0.51 2.45,-1.59 2.95,-2.97l2.78,1.17C18.65,16.98 16.98,18.65 14.88,19.46z" />
|
||||
</group>
|
||||
</vector>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_shortcut_background" />
|
||||
<foreground android:drawable="@drawable/ic_shortcut_safe_mode_foreground" />
|
||||
</adaptive-icon>
|
|
@ -3,6 +3,7 @@
|
|||
<string name="app_name">Aves</string>
|
||||
<string name="app_widget_label">Photo Frame</string>
|
||||
<string name="wallpaper">Wallpaper</string>
|
||||
<string name="safe_mode_shortcut_short_label">Safe mode</string>
|
||||
<string name="search_shortcut_short_label">Search</string>
|
||||
<string name="videos_shortcut_short_label">Videos</string>
|
||||
<string name="analysis_channel_name">Media scan</string>
|
||||
|
|
|
@ -73,6 +73,7 @@ class _HomePageState extends State<HomePage> {
|
|||
static const intentDataKeyMimeType = 'mimeType';
|
||||
static const intentDataKeyPage = 'page';
|
||||
static const intentDataKeyQuery = 'query';
|
||||
static const intentDataKeySafeMode = 'safeMode';
|
||||
static const intentDataKeyUri = 'uri';
|
||||
static const intentDataKeyWidgetId = 'widgetId';
|
||||
|
||||
|
@ -102,6 +103,7 @@ class _HomePageState extends State<HomePage> {
|
|||
|
||||
var appMode = AppMode.main;
|
||||
final intentData = widget.intentData ?? await IntentService.getIntentData();
|
||||
final safeMode = intentData[intentDataKeySafeMode] ?? false;
|
||||
final intentAction = intentData[intentDataKeyAction];
|
||||
_initialFilters = null;
|
||||
|
||||
|
@ -205,6 +207,7 @@ class _HomePageState extends State<HomePage> {
|
|||
final source = context.read<CollectionSource>();
|
||||
await source.init(
|
||||
loadTopEntriesFirst: settings.homePage == HomePageSetting.collection,
|
||||
canAnalyze: !safeMode,
|
||||
);
|
||||
break;
|
||||
case AppMode.screenSaver:
|
||||
|
|
Loading…
Reference in a new issue