Snap for 12098010 from b0e0e00660 to 24Q4-release
Change-Id: Id3a94186d8b6384d0b6e67eba2935869b8ec0472
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2024 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<com.android.launcher3.taskbar.TaskbarDragLayer
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/taskbar_container"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:clipChildren="false">
|
||||
|
||||
<!-- TODO(b/349885828) : to be removed in future cl. -->
|
||||
<com.android.launcher3.taskbar.TaskbarView
|
||||
android:id="@+id/taskbar_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:focusable="true"
|
||||
android:importantForAccessibility="yes"
|
||||
android:forceHasOverlappingRendering="false"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginBottom="@dimen/transient_taskbar_bottom_margin"
|
||||
android:clipChildren="false" />
|
||||
|
||||
<com.android.launcher3.taskbar.customization.CustomizableTaskbarView
|
||||
android:id="@+id/customizable_taskbar_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:focusable="true"
|
||||
android:importantForAccessibility="yes"
|
||||
android:forceHasOverlappingRendering="false"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginBottom="@dimen/transient_taskbar_bottom_margin"
|
||||
android:clipChildren="false" />
|
||||
|
||||
<com.android.launcher3.taskbar.TaskbarScrimView
|
||||
android:id="@+id/taskbar_scrim"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
<com.android.launcher3.taskbar.bubbles.BubbleBarView
|
||||
android:id="@+id/taskbar_bubbles"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/bubblebar_size_with_pointer"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_marginHorizontal="@dimen/transient_taskbar_bottom_margin"
|
||||
android:paddingTop="@dimen/bubblebar_pointer_visible_size"
|
||||
android:paddingEnd="@dimen/taskbar_icon_spacing"
|
||||
android:paddingStart="@dimen/taskbar_icon_spacing"
|
||||
android:visibility="gone"
|
||||
android:gravity="center"
|
||||
android:clipChildren="false"
|
||||
android:elevation="@dimen/bubblebar_elevation"
|
||||
/>
|
||||
|
||||
<com.android.launcher3.taskbar.navbutton.NearestTouchFrame
|
||||
android:id="@+id/navbuttons_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom" >
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/start_contextual_buttons"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingStart="@dimen/taskbar_contextual_button_padding"
|
||||
android:paddingEnd="@dimen/taskbar_contextual_button_padding"
|
||||
android:paddingTop="@dimen/taskbar_contextual_padding_top"
|
||||
android:gravity="center_vertical"
|
||||
android:layout_gravity="start"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/end_nav_buttons"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical"
|
||||
android:layout_gravity="end"/>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/end_contextual_buttons"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingTop="@dimen/taskbar_contextual_padding_top"
|
||||
android:gravity="center_vertical"
|
||||
android:layout_gravity="end"/>
|
||||
</com.android.launcher3.taskbar.navbutton.NearestTouchFrame>
|
||||
|
||||
<com.android.launcher3.taskbar.StashedHandleView
|
||||
android:id="@+id/stashed_handle"
|
||||
tools:comment1="The actual size and shape will be set as a ViewOutlineProvider at runtime"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/taskbar_stashed_handle_dark_color"
|
||||
android:clipToOutline="true"
|
||||
android:layout_gravity="bottom"/>
|
||||
|
||||
<com.android.launcher3.taskbar.StashedHandleView
|
||||
android:id="@+id/stashed_bubble_handle"
|
||||
tools:comment1="The actual size and shape will be set as a ViewOutlineProvider at runtime"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:background="@color/taskbar_stashed_handle_dark_color"
|
||||
android:clipToOutline="true"
|
||||
android:layout_gravity="bottom"/>
|
||||
|
||||
</com.android.launcher3.taskbar.TaskbarDragLayer>
|
||||
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2024 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<com.android.launcher3.taskbar.customization.TaskbarAllAppsButtonContainer
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="@id/guideline1"/>
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.1" />
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.5" />
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline3"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.7" />
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline4"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.9" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -122,7 +122,7 @@
|
||||
<string name="taskbar_edu_close" msgid="887022990168191073">"மூடுக"</string>
|
||||
<string name="taskbar_edu_done" msgid="6880178093977704569">"முடிந்தது"</string>
|
||||
<string name="taskbar_button_home" msgid="2151398979630664652">"முகப்பு"</string>
|
||||
<string name="taskbar_button_a11y" msgid="5241161324875094465">"அணுகல்தன்மை"</string>
|
||||
<string name="taskbar_button_a11y" msgid="5241161324875094465">"மாற்றுத்திறன் வசதி"</string>
|
||||
<string name="taskbar_button_back" msgid="8558862226461164514">"பின்செல்லும்"</string>
|
||||
<string name="taskbar_button_ime_switcher" msgid="1730244360907588541">"IME சுவிட்ச்சர்"</string>
|
||||
<string name="taskbar_button_recents" msgid="7273376136216613134">"சமீபத்தியவை"</string>
|
||||
|
||||
@@ -112,6 +112,8 @@ import com.android.launcher3.taskbar.bubbles.BubbleDragController;
|
||||
import com.android.launcher3.taskbar.bubbles.BubblePinController;
|
||||
import com.android.launcher3.taskbar.bubbles.BubbleStashController;
|
||||
import com.android.launcher3.taskbar.bubbles.BubbleStashedHandleViewController;
|
||||
import com.android.launcher3.taskbar.customization.TaskbarFeatureEvaluator;
|
||||
import com.android.launcher3.taskbar.customization.TaskbarSpecsEvaluator;
|
||||
import com.android.launcher3.taskbar.navbutton.NearestTouchFrame;
|
||||
import com.android.launcher3.taskbar.overlay.TaskbarOverlayController;
|
||||
import com.android.launcher3.testing.TestLogging;
|
||||
@@ -205,6 +207,10 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
|
||||
|
||||
private final LauncherPrefs mLauncherPrefs;
|
||||
|
||||
private final TaskbarFeatureEvaluator mTaskbarFeatureEvaluator;
|
||||
|
||||
private final TaskbarSpecsEvaluator mTaskbarSpecsEvaluator;
|
||||
|
||||
public TaskbarActivityContext(Context windowContext,
|
||||
@Nullable Context navigationBarPanelContext, DeviceProfile launcherDp,
|
||||
TaskbarNavButtonController buttonController, ScopedUnfoldTransitionProgressProvider
|
||||
@@ -215,6 +221,13 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
|
||||
applyDeviceProfile(launcherDp);
|
||||
final Resources resources = getResources();
|
||||
|
||||
mTaskbarFeatureEvaluator = TaskbarFeatureEvaluator.getInstance(this);
|
||||
mTaskbarSpecsEvaluator = new TaskbarSpecsEvaluator(
|
||||
this,
|
||||
mTaskbarFeatureEvaluator,
|
||||
mDeviceProfile.inv.numRows,
|
||||
mDeviceProfile.inv.numColumns);
|
||||
|
||||
mImeDrawsImeNavBar = getBoolByName(IME_DRAWS_IME_NAV_BAR_RES_NAME, resources, false);
|
||||
mIsSafeModeEnabled = TraceHelper.allowIpcs("isSafeMode",
|
||||
() -> getPackageManager().isSafeMode());
|
||||
@@ -1649,6 +1662,14 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
|
||||
return mControllers.taskbarStashController.isInStashedLauncherState();
|
||||
}
|
||||
|
||||
public TaskbarFeatureEvaluator getTaskbarFeatureEvaluator() {
|
||||
return mTaskbarFeatureEvaluator;
|
||||
}
|
||||
|
||||
public TaskbarSpecsEvaluator getTaskbarSpecsEvaluator() {
|
||||
return mTaskbarSpecsEvaluator;
|
||||
}
|
||||
|
||||
protected void dumpLogs(String prefix, PrintWriter pw) {
|
||||
pw.println(prefix + "TaskbarActivityContext:");
|
||||
|
||||
|
||||
@@ -356,6 +356,13 @@ public class BubbleBarController extends IBubblesListener.Stub {
|
||||
}
|
||||
}
|
||||
|
||||
// if a bubble was updated upstream, but removed before the update was received, add it back
|
||||
if (update.updatedBubble != null && !mBubbles.containsKey(update.updatedBubble.getKey())) {
|
||||
mBubbles.put(update.updatedBubble.getKey(), update.updatedBubble);
|
||||
mBubbleBarViewController.addBubble(
|
||||
update.updatedBubble, isExpanding, suppressAnimation);
|
||||
}
|
||||
|
||||
if (update.addedBubble != null && isCollapsed) {
|
||||
// If we're collapsed, the most recently added bubble will be selected.
|
||||
bubbleToSelect = update.addedBubble;
|
||||
|
||||
@@ -89,6 +89,8 @@ public class BubbleBarViewController {
|
||||
|
||||
private BubbleBarViewAnimator mBubbleBarViewAnimator;
|
||||
|
||||
private TimeSource mTimeSource = System::currentTimeMillis;
|
||||
|
||||
@Nullable
|
||||
private BubbleBarBoundsChangeListener mBoundsChangeListener;
|
||||
|
||||
@@ -576,7 +578,7 @@ public class BubbleBarViewController {
|
||||
* @param bubble dismissed bubble item
|
||||
*/
|
||||
public void onDismissBubbleWhileDragging(@NonNull BubbleBarItem bubble) {
|
||||
mSystemUiProxy.dragBubbleToDismiss(bubble.getKey());
|
||||
mSystemUiProxy.dragBubbleToDismiss(bubble.getKey(), mTimeSource.currentTimeMillis());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -601,6 +603,11 @@ public class BubbleBarViewController {
|
||||
void onBoundsChanged();
|
||||
}
|
||||
|
||||
/** Interface for getting the current timestamp. */
|
||||
interface TimeSource {
|
||||
long currentTimeMillis();
|
||||
}
|
||||
|
||||
/** Dumps the state of BubbleBarViewController. */
|
||||
public void dump(PrintWriter pw) {
|
||||
pw.println("Bubble bar view controller state:");
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (C) 2024 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.launcher3.taskbar.customization
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Rect
|
||||
import android.util.AttributeSet
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import com.android.launcher3.Insettable
|
||||
import com.android.launcher3.R
|
||||
import com.android.launcher3.taskbar.TaskbarActivityContext
|
||||
import com.android.launcher3.views.ActivityContext
|
||||
|
||||
/** TaskbarView that is customizeable via Taskbar containers. */
|
||||
class CustomizableTaskbarView(context: Context, attrs: AttributeSet? = null) :
|
||||
ConstraintLayout(context, attrs), Insettable {
|
||||
private val activityContext: TaskbarActivityContext = ActivityContext.lookupContext(context)
|
||||
|
||||
init {
|
||||
inflate(context, R.layout.customizable_taskbar_view, this)
|
||||
}
|
||||
|
||||
override fun setInsets(insets: Rect?) {
|
||||
// Ignore, we just implement Insettable to draw behind system insets.
|
||||
}
|
||||
}
|
||||
+97
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* Copyright (C) 2024 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.launcher3.taskbar.customization
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.widget.LinearLayout
|
||||
import androidx.annotation.DimenRes
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.core.view.setPadding
|
||||
import com.android.launcher3.R
|
||||
import com.android.launcher3.Utilities.dpToPx
|
||||
import com.android.launcher3.config.FeatureFlags
|
||||
import com.android.launcher3.taskbar.TaskbarActivityContext
|
||||
import com.android.launcher3.views.ActivityContext
|
||||
import com.android.launcher3.views.IconButtonView
|
||||
|
||||
/** Taskbar all apps button container for customizable taskbar. */
|
||||
class TaskbarAllAppsButtonContainer
|
||||
@JvmOverloads
|
||||
constructor(
|
||||
context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0,
|
||||
) : LinearLayout(context, attrs), TaskbarContainer {
|
||||
|
||||
private val allAppsButton: IconButtonView =
|
||||
LayoutInflater.from(context).inflate(R.layout.taskbar_all_apps_button, this, false)
|
||||
as IconButtonView
|
||||
private val activityContext: TaskbarActivityContext = ActivityContext.lookupContext(context)
|
||||
|
||||
override val spaceNeeded: Int
|
||||
get() {
|
||||
return dpToPx(activityContext.taskbarSpecsEvaluator.taskbarIconSize.size.toFloat())
|
||||
}
|
||||
|
||||
init {
|
||||
setUpIcon()
|
||||
}
|
||||
|
||||
@SuppressLint("UseCompatLoadingForDrawables", "ResourceAsColor")
|
||||
private fun setUpIcon() {
|
||||
val drawable =
|
||||
resources.getDrawable(
|
||||
getAllAppsButton(activityContext.taskbarFeatureEvaluator.isTransient)
|
||||
)
|
||||
val padding = activityContext.taskbarSpecsEvaluator.taskbarIconPadding
|
||||
|
||||
allAppsButton.setIconDrawable(drawable)
|
||||
allAppsButton.setPadding(/* left= */ padding)
|
||||
allAppsButton.setForegroundTint(activityContext.getColor(R.color.all_apps_button_color))
|
||||
|
||||
// TODO(jagrutdesai) : add click listeners in future cl
|
||||
addView(allAppsButton)
|
||||
}
|
||||
|
||||
@DrawableRes
|
||||
private fun getAllAppsButton(isTransientTaskbar: Boolean): Int {
|
||||
val shouldSelectTransientIcon =
|
||||
isTransientTaskbar ||
|
||||
(FeatureFlags.enableTaskbarPinning() && !activityContext.isThreeButtonNav)
|
||||
return if (FeatureFlags.ENABLE_ALL_APPS_SEARCH_IN_TASKBAR.get()) {
|
||||
if (shouldSelectTransientIcon) R.drawable.ic_transient_taskbar_all_apps_search_button
|
||||
else R.drawable.ic_taskbar_all_apps_search_button
|
||||
} else {
|
||||
if (shouldSelectTransientIcon) R.drawable.ic_transient_taskbar_all_apps_button
|
||||
else R.drawable.ic_taskbar_all_apps_button
|
||||
}
|
||||
}
|
||||
|
||||
@DimenRes
|
||||
fun getAllAppsButtonTranslationXOffset(isTransientTaskbar: Boolean): Int {
|
||||
return if (isTransientTaskbar) {
|
||||
R.dimen.transient_taskbar_all_apps_button_translation_x_offset
|
||||
} else if (FeatureFlags.ENABLE_ALL_APPS_SEARCH_IN_TASKBAR.get()) {
|
||||
R.dimen.taskbar_all_apps_search_button_translation_x_offset
|
||||
} else {
|
||||
R.dimen.taskbar_all_apps_button_translation_x_offset
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,15 +13,13 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.launcher3.taskbar.customization
|
||||
|
||||
/** Enums for all feature container that taskbar supports. */
|
||||
enum class TaskbarContainer {
|
||||
ALL_APPS,
|
||||
DIVIDER,
|
||||
APP_ICONS,
|
||||
RECENTS,
|
||||
NAV_BUTTONS,
|
||||
BUBBLES,
|
||||
import androidx.annotation.Dimension
|
||||
|
||||
/**
|
||||
* Interface to be implemented by all taskbar container to expose [spaceNeeded] for each container.
|
||||
*/
|
||||
interface TaskbarContainer {
|
||||
@get:Dimension(unit = Dimension.DP) val spaceNeeded: Int
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright (C) 2024 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.launcher3.taskbar.customization
|
||||
|
||||
/** Enums for all feature container that taskbar supports. */
|
||||
enum class TaskbarContainers {
|
||||
ALL_APPS,
|
||||
DIVIDER,
|
||||
APP_ICONS,
|
||||
RECENTS,
|
||||
NAV_BUTTONS,
|
||||
BUBBLES,
|
||||
}
|
||||
+22
-6
@@ -16,27 +16,43 @@
|
||||
|
||||
package com.android.launcher3.taskbar.customization
|
||||
|
||||
import com.android.launcher3.Flags.enableRecentsInTaskbar
|
||||
import com.android.launcher3.config.FeatureFlags.enableTaskbarPinning
|
||||
import com.android.launcher3.taskbar.TaskbarActivityContext
|
||||
import com.android.launcher3.taskbar.TaskbarControllers
|
||||
import com.android.launcher3.util.DisplayController
|
||||
|
||||
/** Evaluates all the features taskbar can have. */
|
||||
class TaskbarFeatureEvaluator(
|
||||
class TaskbarFeatureEvaluator
|
||||
private constructor(
|
||||
private val taskbarActivityContext: TaskbarActivityContext,
|
||||
private val taskbarControllers: TaskbarControllers,
|
||||
) {
|
||||
|
||||
companion object {
|
||||
@Volatile private lateinit var taskbarFeatureEvaluator: TaskbarFeatureEvaluator
|
||||
|
||||
@JvmStatic
|
||||
fun getInstance(
|
||||
taskbarActivityContext: TaskbarActivityContext,
|
||||
): TaskbarFeatureEvaluator {
|
||||
synchronized(this) {
|
||||
if (!::taskbarFeatureEvaluator.isInitialized) {
|
||||
taskbarFeatureEvaluator = TaskbarFeatureEvaluator(taskbarActivityContext)
|
||||
}
|
||||
return taskbarFeatureEvaluator
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val hasAllApps = true
|
||||
val hasAppIcons = true
|
||||
val hasBubbles = false
|
||||
val hasNavButtons = taskbarActivityContext.isThreeButtonNav
|
||||
|
||||
val hasRecents: Boolean
|
||||
get() = taskbarControllers.taskbarRecentAppsController.shownTasks.isNotEmpty()
|
||||
val isRecentsEnabled: Boolean
|
||||
get() = enableRecentsInTaskbar()
|
||||
|
||||
val hasDivider: Boolean
|
||||
get() = enableTaskbarPinning() || hasRecents
|
||||
get() = enableTaskbarPinning() || isRecentsEnabled
|
||||
|
||||
val isTransient: Boolean
|
||||
get() = DisplayController.isTransientTaskbar(taskbarActivityContext)
|
||||
|
||||
@@ -29,6 +29,13 @@ object TaskbarIconSpecs {
|
||||
val defaultPersistentIconSize = iconSize40dp
|
||||
val defaultTransientIconSize = iconSize44dp
|
||||
|
||||
val minimumIconSize = iconSize40dp
|
||||
|
||||
val defaultPersistentIconMargin = TaskbarIconMarginSize(6)
|
||||
val defaultTransientIconMargin = TaskbarIconMarginSize(12)
|
||||
|
||||
val minimumTaskbarIconTouchSize = TaskbarIconSize(48)
|
||||
|
||||
val transientTaskbarIconSizeByGridSize =
|
||||
mapOf(
|
||||
TransientTaskbarIconSizeKey(6, 5, false) to iconSize52dp,
|
||||
|
||||
@@ -16,8 +16,33 @@
|
||||
|
||||
package com.android.launcher3.taskbar.customization
|
||||
|
||||
import com.android.launcher3.taskbar.TaskbarActivityContext
|
||||
|
||||
/** Evaluates the taskbar specs based on the taskbar grid size and the taskbar icon size. */
|
||||
class TaskbarSpecsEvaluator(private val taskbarFeatureEvaluator: TaskbarFeatureEvaluator) {
|
||||
class TaskbarSpecsEvaluator(
|
||||
private val taskbarActivityContext: TaskbarActivityContext,
|
||||
private val taskbarFeatureEvaluator: TaskbarFeatureEvaluator,
|
||||
numRows: Int = taskbarActivityContext.deviceProfile.inv.numRows,
|
||||
numColumns: Int = taskbarActivityContext.deviceProfile.inv.numColumns,
|
||||
) {
|
||||
var taskbarIconSize: TaskbarIconSize = getIconSizeByGrid(numRows, numColumns)
|
||||
|
||||
// TODO(b/341146605) : initialize it to taskbar container in later cl.
|
||||
private var taskbarContainer: List<TaskbarContainer> = emptyList()
|
||||
|
||||
val taskbarIconPadding: Int =
|
||||
if (TaskbarIconSpecs.minimumTaskbarIconTouchSize.size > taskbarIconSize.size) {
|
||||
(TaskbarIconSpecs.minimumTaskbarIconTouchSize.size - taskbarIconSize.size) / 2
|
||||
} else {
|
||||
0
|
||||
}
|
||||
|
||||
val taskbarIconMargin: TaskbarIconMarginSize =
|
||||
if (taskbarFeatureEvaluator.isTransient) {
|
||||
TaskbarIconSpecs.defaultTransientIconMargin
|
||||
} else {
|
||||
TaskbarIconSpecs.defaultPersistentIconMargin
|
||||
}
|
||||
|
||||
fun getIconSizeByGrid(row: Int, column: Int): TaskbarIconSize {
|
||||
return if (taskbarFeatureEvaluator.isTransient) {
|
||||
@@ -36,8 +61,11 @@ class TaskbarSpecsEvaluator(private val taskbarFeatureEvaluator: TaskbarFeatureE
|
||||
val currentIconSizeIndex = TaskbarIconSpecs.transientTaskbarIconSizes.indexOf(iconSize)
|
||||
// return the current icon size if supplied icon size is unknown or we have reached the
|
||||
// min icon size.
|
||||
return if (currentIconSizeIndex == -1 || currentIconSizeIndex == 0) iconSize
|
||||
else TaskbarIconSpecs.transientTaskbarIconSizes[currentIconSizeIndex - 1]
|
||||
return if (currentIconSizeIndex == -1 || currentIconSizeIndex == 0) {
|
||||
iconSize
|
||||
} else {
|
||||
TaskbarIconSpecs.transientTaskbarIconSizes[currentIconSizeIndex - 1]
|
||||
}
|
||||
}
|
||||
|
||||
fun getIconSizeStepUp(iconSize: TaskbarIconSize): TaskbarIconSize {
|
||||
@@ -52,11 +80,28 @@ class TaskbarSpecsEvaluator(private val taskbarFeatureEvaluator: TaskbarFeatureE
|
||||
) {
|
||||
iconSize
|
||||
} else {
|
||||
TaskbarIconSpecs.transientTaskbarIconSizes.get(currentIconSizeIndex + 1)
|
||||
TaskbarIconSpecs.transientTaskbarIconSizes[currentIconSizeIndex + 1]
|
||||
}
|
||||
}
|
||||
|
||||
// TODO(jagrutdesai) : Call this in init once the containers are ready.
|
||||
private fun calculateTaskbarIconSize() {
|
||||
while (
|
||||
taskbarIconSize != TaskbarIconSpecs.minimumIconSize &&
|
||||
taskbarActivityContext.transientTaskbarBounds.width() <
|
||||
calculateSpaceNeeded(taskbarContainer)
|
||||
) {
|
||||
taskbarIconSize = getIconSizeStepDown(taskbarIconSize)
|
||||
}
|
||||
}
|
||||
|
||||
private fun calculateSpaceNeeded(containers: List<TaskbarContainer>): Int {
|
||||
return containers.sumOf { it.spaceNeeded }
|
||||
}
|
||||
}
|
||||
|
||||
data class TaskbarIconSize(val size: Int)
|
||||
|
||||
data class TransientTaskbarIconSizeKey(val row: Int, val column: Int, val isLandscape: Boolean)
|
||||
|
||||
data class TaskbarIconMarginSize(val size: Int)
|
||||
|
||||
@@ -67,13 +67,15 @@ public class OrientationRectF extends RectF {
|
||||
}
|
||||
|
||||
public boolean applyTransform(MotionEvent event, int deltaRotation, boolean forceTransform) {
|
||||
if (deltaRotation == 0) {
|
||||
return contains(event.getX(), event.getY());
|
||||
}
|
||||
mTmpMatrix.reset();
|
||||
postDisplayRotation(deltaRotation, mHeight, mWidth, mTmpMatrix);
|
||||
if (forceTransform) {
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "Transforming rotation due to forceTransform, "
|
||||
+ "deltaRotation: " + deltaRotation
|
||||
+ "mRotation: " + mRotation
|
||||
+ " this: " + this);
|
||||
}
|
||||
event.applyTransform(mTmpMatrix);
|
||||
|
||||
@@ -34,12 +34,18 @@ public class SimpleOrientationTouchTransformer implements
|
||||
|
||||
private final Context mContext;
|
||||
private OrientationRectF mOrientationRectF;
|
||||
private OrientationRectF mTouchingOrientationRectF;
|
||||
private int mViewRotation;
|
||||
|
||||
public SimpleOrientationTouchTransformer(Context context) {
|
||||
this(context, DisplayController.INSTANCE.get(context));
|
||||
}
|
||||
|
||||
@androidx.annotation.VisibleForTesting
|
||||
public SimpleOrientationTouchTransformer(Context context, DisplayController displayController) {
|
||||
mContext = context;
|
||||
DisplayController.INSTANCE.get(context).addChangeListener(this);
|
||||
onDisplayInfoChanged(context, DisplayController.INSTANCE.get(context).getInfo(),
|
||||
CHANGE_ALL);
|
||||
displayController.addChangeListener(this);
|
||||
onDisplayInfoChanged(context, displayController.getInfo(), CHANGE_ALL);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -56,7 +62,29 @@ public class SimpleOrientationTouchTransformer implements
|
||||
info.rotation);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the touch is started. This preserves the touching orientation until the touch is
|
||||
* done (i.e. ACTION_CANCEL or ACTION_UP). So the transform won't produce inconsistent position
|
||||
* if display is changed during the touch.
|
||||
*/
|
||||
public void updateTouchingOrientation(int viewRotation) {
|
||||
mViewRotation = viewRotation;
|
||||
mTouchingOrientationRectF = new OrientationRectF(mOrientationRectF.left,
|
||||
mOrientationRectF.top, mOrientationRectF.right, mOrientationRectF.bottom,
|
||||
mOrientationRectF.getRotation());
|
||||
}
|
||||
|
||||
/** Called when the touch is finished. */
|
||||
public void clearTouchingOrientation() {
|
||||
mTouchingOrientationRectF = null;
|
||||
}
|
||||
|
||||
public void transform(MotionEvent ev, int rotation) {
|
||||
if (mTouchingOrientationRectF != null) {
|
||||
mTouchingOrientationRectF.applyTransformToRotation(ev, mViewRotation,
|
||||
true /* forceTransform */);
|
||||
return;
|
||||
}
|
||||
mOrientationRectF.applyTransformToRotation(ev, rotation, true /* forceTransform */);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -842,12 +842,14 @@ public class SystemUiProxy implements ISystemUiProxy, NavHandle, SafeCloseable {
|
||||
|
||||
/**
|
||||
* Tells SysUI to dismiss the bubble with the provided key.
|
||||
*
|
||||
* @param key the key of the bubble to dismiss.
|
||||
* @param timestamp the timestamp when the removal happened.
|
||||
*/
|
||||
public void dragBubbleToDismiss(String key) {
|
||||
public void dragBubbleToDismiss(String key, long timestamp) {
|
||||
if (mBubbles == null) return;
|
||||
try {
|
||||
mBubbles.dragBubbleToDismiss(key);
|
||||
mBubbles.dragBubbleToDismiss(key, timestamp);
|
||||
} catch (RemoteException e) {
|
||||
Log.w(TAG, "Failed call dragBubbleToDismiss");
|
||||
}
|
||||
|
||||
@@ -108,19 +108,28 @@ public class InputConsumerProxy {
|
||||
return false;
|
||||
}
|
||||
|
||||
final SimpleOrientationTouchTransformer touchTransformer =
|
||||
SimpleOrientationTouchTransformer.INSTANCE.get(mContext);
|
||||
final int viewRotation = mRotationSupplier.get();
|
||||
final boolean needTransform = viewRotation != ev.getSurfaceRotation();
|
||||
if (action == ACTION_DOWN) {
|
||||
mTouchInProgress = true;
|
||||
if (needTransform) {
|
||||
touchTransformer.updateTouchingOrientation(viewRotation);
|
||||
}
|
||||
initInputConsumerIfNeeded(/* isFromTouchDown= */ true);
|
||||
} else if (action == ACTION_CANCEL || action == ACTION_UP) {
|
||||
// Finish any pending actions
|
||||
mTouchInProgress = false;
|
||||
touchTransformer.clearTouchingOrientation();
|
||||
if (mDestroyPending) {
|
||||
destroy();
|
||||
}
|
||||
}
|
||||
if (mInputConsumer != null) {
|
||||
SimpleOrientationTouchTransformer.INSTANCE.get(mContext).transform(ev,
|
||||
mRotationSupplier.get());
|
||||
if (needTransform) {
|
||||
touchTransformer.transform(ev, viewRotation);
|
||||
}
|
||||
mInputConsumer.onMotionEvent(ev);
|
||||
}
|
||||
|
||||
|
||||
+16
-22
@@ -16,12 +16,13 @@
|
||||
|
||||
package com.android.launcher3.taskbar.rules
|
||||
|
||||
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
|
||||
import com.android.launcher3.ConstantItem
|
||||
import com.android.launcher3.LauncherPrefs
|
||||
import android.platform.test.flag.junit.FlagsParameterization
|
||||
import android.platform.test.flag.junit.SetFlagsRule
|
||||
import com.android.launcher3.Flags.FLAG_ENABLE_TASKBAR_PINNING
|
||||
import com.android.launcher3.LauncherPrefs.Companion.TASKBAR_PINNING
|
||||
import com.android.launcher3.LauncherPrefs.Companion.TASKBAR_PINNING_IN_DESKTOP_MODE
|
||||
import kotlin.reflect.KProperty
|
||||
import com.android.launcher3.util.DisplayController
|
||||
import org.junit.rules.RuleChain
|
||||
import org.junit.rules.TestRule
|
||||
import org.junit.runner.Description
|
||||
import org.junit.runners.model.Statement
|
||||
@@ -39,33 +40,26 @@ import org.junit.runners.model.Statement
|
||||
*/
|
||||
class TaskbarPinningPreferenceRule(context: TaskbarWindowSandboxContext) : TestRule {
|
||||
|
||||
private val prefs = LauncherPrefs.get(context)
|
||||
private val setFlagsRule =
|
||||
SetFlagsRule(FlagsParameterization(mapOf(FLAG_ENABLE_TASKBAR_PINNING to true)))
|
||||
private val pinningRule = TaskbarPreferenceRule(context, TASKBAR_PINNING)
|
||||
private val desktopPinningRule = TaskbarPreferenceRule(context, TASKBAR_PINNING_IN_DESKTOP_MODE)
|
||||
private val ruleChain =
|
||||
RuleChain.outerRule(setFlagsRule).around(pinningRule).around(desktopPinningRule)
|
||||
|
||||
var isPinned by PinningPreference(TASKBAR_PINNING)
|
||||
var isPinnedInDesktopMode by PinningPreference(TASKBAR_PINNING_IN_DESKTOP_MODE)
|
||||
var isPinned by pinningRule::value
|
||||
var isPinnedInDesktopMode by desktopPinningRule::value
|
||||
|
||||
override fun apply(base: Statement, description: Description): Statement {
|
||||
return object : Statement() {
|
||||
override fun evaluate() {
|
||||
val wasPinned = isPinned
|
||||
val wasPinnedInDesktopMode = isPinnedInDesktopMode
|
||||
DisplayController.enableTaskbarModePreferenceForTests(true)
|
||||
try {
|
||||
base.evaluate()
|
||||
ruleChain.apply(base, description).evaluate()
|
||||
} finally {
|
||||
isPinned = wasPinned
|
||||
isPinnedInDesktopMode = wasPinnedInDesktopMode
|
||||
DisplayController.enableTaskbarModePreferenceForTests(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private inner class PinningPreference(private val constantItem: ConstantItem<Boolean>) {
|
||||
operator fun getValue(thisRef: Any?, property: KProperty<*>): Boolean {
|
||||
return prefs.get(constantItem)
|
||||
}
|
||||
|
||||
operator fun setValue(thisRef: Any?, property: KProperty<*>, value: Boolean) {
|
||||
getInstrumentation().runOnMainSync { prefs.put(constantItem, value) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+20
-6
@@ -19,6 +19,8 @@ package com.android.launcher3.taskbar.rules
|
||||
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
|
||||
import com.android.launcher3.util.DisplayController
|
||||
import com.android.launcher3.util.LauncherMultivalentJUnit
|
||||
import com.android.launcher3.util.window.WindowManagerProxy
|
||||
import com.google.android.apps.nexuslauncher.deviceemulator.TestWindowManagerProxy
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Test
|
||||
import org.junit.runner.Description
|
||||
@@ -51,6 +53,11 @@ class TaskbarPinningPreferenceRuleTest {
|
||||
|
||||
@Test
|
||||
fun testEnableDesktopPinning_verifyDisplayController() {
|
||||
context.applicationContext.putObject(
|
||||
WindowManagerProxy.INSTANCE,
|
||||
TestWindowManagerProxy(context).apply { isInDesktopMode = true },
|
||||
)
|
||||
|
||||
onSetup {
|
||||
preferenceRule.isPinned = false
|
||||
preferenceRule.isPinnedInDesktopMode = true
|
||||
@@ -60,6 +67,11 @@ class TaskbarPinningPreferenceRuleTest {
|
||||
|
||||
@Test
|
||||
fun testDisableDesktopPinning_verifyDisplayController() {
|
||||
context.applicationContext.putObject(
|
||||
WindowManagerProxy.INSTANCE,
|
||||
TestWindowManagerProxy(context).apply { isInDesktopMode = true },
|
||||
)
|
||||
|
||||
onSetup {
|
||||
preferenceRule.isPinned = false
|
||||
preferenceRule.isPinnedInDesktopMode = false
|
||||
@@ -83,12 +95,14 @@ class TaskbarPinningPreferenceRuleTest {
|
||||
|
||||
/** Executes [runTest] after the [preferenceRule] setup phase completes. */
|
||||
private fun onSetup(runTest: () -> Unit) {
|
||||
preferenceRule.apply(
|
||||
object : Statement() {
|
||||
override fun evaluate() = runTest()
|
||||
},
|
||||
DESCRIPTION,
|
||||
)
|
||||
preferenceRule
|
||||
.apply(
|
||||
object : Statement() {
|
||||
override fun evaluate() = runTest()
|
||||
},
|
||||
DESCRIPTION,
|
||||
)
|
||||
.evaluate()
|
||||
}
|
||||
|
||||
private companion object {
|
||||
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Copyright (C) 2024 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.launcher3.taskbar.rules
|
||||
|
||||
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
|
||||
import com.android.launcher3.ConstantItem
|
||||
import com.android.launcher3.LauncherPrefs
|
||||
import org.junit.rules.TestRule
|
||||
import org.junit.runner.Description
|
||||
import org.junit.runners.model.Statement
|
||||
|
||||
/**
|
||||
* Rule for modifying a Taskbar preference.
|
||||
*
|
||||
* The original preference value is restored on teardown.
|
||||
*/
|
||||
class TaskbarPreferenceRule<T : Any>(
|
||||
context: TaskbarWindowSandboxContext,
|
||||
private val constantItem: ConstantItem<T>
|
||||
) : TestRule {
|
||||
|
||||
private val prefs = LauncherPrefs.get(context)
|
||||
|
||||
var value: T
|
||||
get() = prefs.get(constantItem)
|
||||
set(value) = getInstrumentation().runOnMainSync { prefs.put(constantItem, value) }
|
||||
|
||||
override fun apply(base: Statement, description: Description): Statement {
|
||||
return object : Statement() {
|
||||
override fun evaluate() {
|
||||
val originalValue = value
|
||||
try {
|
||||
base.evaluate()
|
||||
} finally {
|
||||
value = originalValue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Copyright (C) 2024 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.launcher3.taskbar.rules
|
||||
|
||||
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
|
||||
import com.android.launcher3.LauncherPrefs.Companion.TASKBAR_PINNING
|
||||
import com.android.launcher3.util.LauncherMultivalentJUnit
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Test
|
||||
import org.junit.runner.Description
|
||||
import org.junit.runner.RunWith
|
||||
import org.junit.runners.model.Statement
|
||||
|
||||
@RunWith(LauncherMultivalentJUnit::class)
|
||||
class TaskbarPreferenceRuleTest {
|
||||
|
||||
private val context = TaskbarWindowSandboxContext.create(getInstrumentation().targetContext)
|
||||
private val preferenceRule = TaskbarPreferenceRule(context, TASKBAR_PINNING)
|
||||
|
||||
@Test
|
||||
fun testSetup_toggleBoolean_updatesPreferences() {
|
||||
val originalValue = preferenceRule.value
|
||||
onSetup {
|
||||
preferenceRule.value = !preferenceRule.value
|
||||
assertThat(preferenceRule.value).isNotEqualTo(originalValue)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testTeardown_afterTogglingBoolean_preferenceReset() {
|
||||
val originalValue = preferenceRule.value
|
||||
onSetup { preferenceRule.value = !preferenceRule.value }
|
||||
assertThat(preferenceRule.value).isEqualTo(originalValue)
|
||||
}
|
||||
|
||||
private fun onSetup(runTest: () -> Unit) {
|
||||
preferenceRule
|
||||
.apply(
|
||||
object : Statement() {
|
||||
override fun evaluate() = runTest()
|
||||
},
|
||||
DESCRIPTION,
|
||||
)
|
||||
.evaluate()
|
||||
}
|
||||
|
||||
private companion object {
|
||||
private val DESCRIPTION =
|
||||
Description.createSuiteDescription(TaskbarPreferenceRule::class.java)
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -50,7 +50,7 @@ private constructor(private val application: SandboxContext, base: Context) : Co
|
||||
)
|
||||
}
|
||||
|
||||
override fun getApplicationContext() = application
|
||||
override fun getApplicationContext(): SandboxContext = application
|
||||
|
||||
companion object {
|
||||
/** Creates a [TaskbarWindowSandboxContext] to sandbox [base] for Taskbar tests. */
|
||||
|
||||
+4
-1
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.quickstep.taskbar.customization
|
||||
|
||||
import com.android.launcher3.taskbar.TaskbarActivityContext
|
||||
import com.android.launcher3.taskbar.customization.TaskbarFeatureEvaluator
|
||||
import com.android.launcher3.taskbar.customization.TaskbarIconSpecs
|
||||
import com.android.launcher3.taskbar.customization.TaskbarSpecsEvaluator
|
||||
@@ -32,7 +33,9 @@ import org.mockito.kotlin.whenever
|
||||
class TaskbarSpecsEvaluatorTest {
|
||||
|
||||
private val taskbarFeatureEvaluator = mock<TaskbarFeatureEvaluator>()
|
||||
private val taskbarSpecsEvaluator = spy(TaskbarSpecsEvaluator(taskbarFeatureEvaluator))
|
||||
private val taskbarActivityContext = mock<TaskbarActivityContext>()
|
||||
private var taskbarSpecsEvaluator =
|
||||
spy(TaskbarSpecsEvaluator(taskbarActivityContext, taskbarFeatureEvaluator, 0, 0))
|
||||
|
||||
@Test
|
||||
fun testGetIconSizeByGrid_whenTaskbarIsTransient_withValidRowAndColumnInLandscape() {
|
||||
|
||||
@@ -21,6 +21,7 @@ import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
|
||||
|
||||
import static com.android.launcher3.util.NavigationMode.NO_BUTTON;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
@@ -288,6 +289,34 @@ public class OrientationTouchTransformerTest {
|
||||
assertTrue(mTouchTransformer.touchInValidSwipeRegions(inRegion2.getX(), inRegion2.getY()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleOrientationTouchTransformer() {
|
||||
final DisplayController displayController = mock(DisplayController.class);
|
||||
doReturn(mInfo).when(displayController).getInfo();
|
||||
final SimpleOrientationTouchTransformer transformer =
|
||||
new SimpleOrientationTouchTransformer(getApplicationContext(), displayController);
|
||||
final MotionEvent move1 = generateMotionEvent(MotionEvent.ACTION_MOVE, 100, 10);
|
||||
transformer.transform(move1, Surface.ROTATION_90);
|
||||
// The position is transformed to 90 degree.
|
||||
assertEquals(10, move1.getX(), 0f /* delta */);
|
||||
assertEquals(NORMAL_SCREEN_SIZE.getWidth() - 100, move1.getY(), 0f /* delta */);
|
||||
|
||||
// If the touching state is specified, the position is still transformed to 90 degree even
|
||||
// if the given rotation is changed.
|
||||
final MotionEvent move2 = generateMotionEvent(MotionEvent.ACTION_MOVE, 100, 10);
|
||||
transformer.updateTouchingOrientation(Surface.ROTATION_90);
|
||||
transformer.transform(move2, Surface.ROTATION_0);
|
||||
assertEquals(move1.getX(), move2.getX(), 0f /* delta */);
|
||||
assertEquals(move1.getY(), move2.getY(), 0f /* delta */);
|
||||
|
||||
// If the touching state is cleared, it restores to use the given rotation.
|
||||
final MotionEvent move3 = generateMotionEvent(MotionEvent.ACTION_MOVE, 100, 10);
|
||||
transformer.clearTouchingOrientation();
|
||||
transformer.transform(move3, Surface.ROTATION_0);
|
||||
assertEquals(100, move3.getX(), 0f /* delta */);
|
||||
assertEquals(10, move3.getY(), 0f /* delta */);
|
||||
}
|
||||
|
||||
private DisplayController.Info createDisplayInfo(Size screenSize, int rotation) {
|
||||
Point displaySize = new Point(screenSize.getWidth(), screenSize.getHeight());
|
||||
RotationUtils.rotateSize(displaySize, rotation);
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Legstukke gedeaktiveer in Veiligmodus"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Kortpad is nie beskikbaar nie"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Tuis"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Stel <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> as verstektuisskermapp in Instellings"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Verdeelde skerm"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Programinligting vir %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Gebruikinstellings vir %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"ምግብሮች በደህንነቱ የተጠበቀ ሁኔታ ተሰናክለዋል"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"አቋራጭ አይገኝም"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"መነሻ"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"በቅንብሮች ውስጥ <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g>ን እንደ ነባሪ የHome መተግበሪያ ያቀናብሩ"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"የተከፈለ ማያ ገፅ"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"የመተግበሪያ መረጃ ለ%1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"የ%1$s የአጠቃቀም ቅንብሮች"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"الأدوات غير مفعّلة في الوضع الآمن"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"الاختصار غير متاح"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"الشاشة الرئيسية"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"يمكن ضبط \"<xliff:g id="LAUNCHER_NAME">%1$s</xliff:g>\" كتطبيق الشاشة الرئيسية التلقائي من خلال \"الإعدادات\""</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"تقسيم الشاشة"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"معلومات تطبيق %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"إعدادات استخدام \"%1$s\""</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"ৱিজেটবোৰক সুৰক্ষিত ম\'ডত অক্ষম কৰা হ’ল"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"শ্বৰ্টকাট নাই"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"গৃহ স্ক্ৰীন"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"ছেটিঙত <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g>ক ডিফ’ল্ট গৃহপৃষ্ঠা এপ্ হিচাপে ছেট কৰক"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"বিভাজিত স্ক্ৰীন"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$sৰ বাবে এপৰ তথ্য"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$sৰ বাবে ব্যৱহাৰৰ ছেটিং"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Vidcetlər Güvənli rejimdə deaktiv edilib"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Qısayol əlçatan deyil"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Əsas səhifə"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Ayarlarda <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> tətbiqini defolt əsas ekran tətbiqi kimi ayarlayın"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Ekran bölünməsi"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s ilə bağlı tətbiq məlumatı"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s üzrə istifadə ayarları"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Vidžeti su onemogućeni u Bezbednom režimu"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Prečica nije dostupna"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Početni ekran"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Podesite <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> kao podrazumevanu početnu aplikaciju u Podešavanjima"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Podeljeni ekran"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Informacije o aplikaciji za: %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Podešavanja potrošnje za %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Віджэты адключаны ў Бяспечным рэжыме"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Ярлык недаступны"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Галоўны экран"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Зрабіць <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> стандартнай праграмай для галоўнага экрана, перайшоўшы ў Налады"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Падзелены экран"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Інфармацыя пра праграму для: %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s: налады выкарыстання"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Приспособленията са деактивирани в безопасния режим"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Няма достъп до прекия път"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Начален екран"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"От настройките задайте <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> като основното приложение за начален екран"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Разделен екран"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Информация за приложението за %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Настройки за използването на %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"সুরক্ষিত মোডে উইজেট নিষ্ক্রিয় থাকে"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"শর্টকাটগুলি অনুপলব্ধ"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"হোম"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"সেটিংসে গিয়ে <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> অ্যাপকে ডিফল্ট হোম অ্যাপ হিসেবে সেট করুন"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"স্প্লিট স্ক্রিন"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s-এর জন্য অ্যাপ সম্পর্কিত তথ্য"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s-এর জন্য ব্যবহারের সেটিংস"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Vidžeti su onemogućeni u sigurnom načinu rada."</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Prečica nije dostupna"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Početni ekran"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Postavite <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> kao zadanu aplikaciju za početni ekran u Postavkama"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Podijeljeni ekran"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Informacije o aplikaciji %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Postavke korištenja za: %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"En Mode segur, els widgets estan desactivats."</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"La drecera no està disponible"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Inici"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Defineix <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> com a aplicació d\'inici predeterminada a Configuració"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Pantalla dividida"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Informació de l\'aplicació %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Configuració d\'ús de %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"V nouzovém režimu jsou widgety zakázány."</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Zkratka není k dispozici"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Domů"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Nastavit <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> jako výchozí vstupní aplikaci v Nastavení"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Rozdělit obrazovku"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Informace o aplikaci %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Nastavení využití pro aplikaci %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgets er deaktiveret i Beskyttet tilstand"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Genvejen er ikke tilgængelig"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Startskærm"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Angiv <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> som standardstartapp i Indstillinger"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Opdel skærm"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Appinfo for %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Indstillinger for brug af %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgets im abgesicherten Modus deaktiviert"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Verknüpfung nicht verfügbar"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Startbildschirm"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"<xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> in den Einstellungen als Stand-Start-App festlegen"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Splitscreen"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"App-Info für %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Nutzungseinstellungen für %1$s"</string>
|
||||
@@ -37,7 +36,7 @@
|
||||
<string name="app_pair_unlaunchable_at_screen_size" msgid="3446551575502685376">"Dieses App-Paar wird auf diesem Gerät nicht unterstützt"</string>
|
||||
<string name="app_pair_needs_unfold" msgid="4588897528143807002">"Gerät aufklappen, um dieses App-Paar zu verwenden"</string>
|
||||
<string name="app_pair_not_available" msgid="3556767440808032031">"App-Paar nicht verfügbar"</string>
|
||||
<string name="long_press_widget_to_add" msgid="3587712543577675817">"Zum Verschieben des Widgets berühren und halten"</string>
|
||||
<string name="long_press_widget_to_add" msgid="3587712543577675817">"Zum Verschieben des Widgets gedrückt halten"</string>
|
||||
<string name="long_accessible_way_to_add" msgid="2733588281439571974">"Doppeltippen und halten, um ein Widget zu bewegen oder benutzerdefinierte Aktionen zu nutzen."</string>
|
||||
<string name="widget_dims_format" msgid="2370757736025621599">"%1$d × %2$d"</string>
|
||||
<string name="widget_accessible_dims_format" msgid="3640149169885301790">"%1$d breit und %2$d hoch"</string>
|
||||
@@ -75,7 +74,7 @@
|
||||
<string name="label_application" msgid="8531721983832654978">"App"</string>
|
||||
<string name="all_apps_label" msgid="5015784846527570951">"Alle Apps"</string>
|
||||
<string name="notifications_header" msgid="1404149926117359025">"Benachrichtigungen"</string>
|
||||
<string name="long_press_shortcut_to_add" msgid="5405328730817637737">"Zum Verschieben einer Verknüpfung berühren und halten"</string>
|
||||
<string name="long_press_shortcut_to_add" msgid="5405328730817637737">"Zum Verschieben einer Verknüpfung gedrückt halten"</string>
|
||||
<string name="long_accessible_way_to_add_shortcut" msgid="2199537273817090740">"Doppeltippen und halten, um eine Verknüpfung zu bewegen oder benutzerdefinierte Aktionen zu nutzen."</string>
|
||||
<string name="out_of_space" msgid="6455557115204099579">"Auf diesem Startbildschirm ist kein Platz mehr vorhanden"</string>
|
||||
<string name="hotseat_out_of_space" msgid="7448809638125333693">"Ablage \"Favoriten\" ist voll."</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Τα γραφικά στοιχεία απενεργοποιήθηκαν στην ασφαλή λειτουργία"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Η συντόμευση δεν είναι διαθέσιμη"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Αρχική οθόνη"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Ορίστε το <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> ως την προεπιλεγμένη εφαρμογή αρχικής οθόνης στις Ρυθμίσεις"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Διαχωρισμός οθόνης"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Πληροφορίες εφαρμογής για %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Ρυθμίσεις χρήσης για %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgets disabled in Safe mode"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Shortcut isn\'t available"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Home"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Set <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> as the default home app in Settings"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Split screen"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"App info for %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Usage settings for %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgets disabled in Safe mode"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Shortcut isn\'t available"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Home"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Set <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> as the default home app in Settings"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Split screen"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"App info for %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Usage settings for %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgets disabled in Safe mode"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Shortcut isn\'t available"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Home"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Set <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> as the default home app in Settings"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Split screen"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"App info for %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Usage settings for %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgets inhabilitados en modo seguro"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"El acceso directo no está disponible"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Pantalla principal"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Establece <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> como la app de inicio predeterminada en Configuración"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Pantalla dividida"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Información de la app de %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Configuración del uso de %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgets inhabilitados en modo Seguro"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Acceso directo no disponible"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Inicio"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Define <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> como aplicación de inicio predeterminada en Ajustes"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Pantalla dividida"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Información de la aplicación %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Ajustes de uso para %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Turvarežiimis on vidinad keelatud"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Otsetee pole saadaval"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Avakuva"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Määrake rakendus <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> seadetes avakuva vaikerakenduseks"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Jagatud ekraanikuva"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Rakenduse teave: %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Kasutuse seaded: %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgetak desgaitu egin dira modu seguruan"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Lasterbideak ez daude erabilgarri"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Orri nagusia"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Ezarri <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> hasierako aplikazio lehenetsi gisa ezarpenetan"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Pantaila zatitzea"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s aplikazioari buruzko informazioa"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s aplikazioaren erabilera-ezarpenak"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"ابزارکها در حالت ایمن غیرفعال هستند"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"میانبر دردسترس نیست"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"صفحه اصلی"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"تنظیم <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> بهعنوان برنامه صفحه اصلی پیشفرض در «تنظیمات»"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"صفحهٔ دونیمه"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"اطلاعات برنامه %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"تنظیمات مصرف برای %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgetit poistettu käytöstä vikasietotilassa"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Pikakuvake ei ole käytettävissä."</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Etusivu"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Valitse <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> oletusaloitusnäyttösovellukseksi asetuksissa"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Jaettu näyttö"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Sovellustiedot: %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Käyttöasetus tälle: %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgets désactivés en mode sans échec"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Le raccourci n\'est pas disponible"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Accueil"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Définissez <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> comme appli d\'accueil par défaut dans les paramètres"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Écran divisé"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Renseignements sur l\'appli pour %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Paramètres d\'utilisation pour %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Les widgets sont désactivés en mode sécurisé."</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Raccourci non disponible"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Accueil"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Définissez <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> comme application d\'accueil par défaut dans Paramètres"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Écran partagé"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Infos sur l\'appli pour %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Paramètres d\'utilisation pour %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Os widgets están desactivados no modo seguro"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"O atallo non está dispoñible"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Inicio"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Define <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> como aplicación de inicio predeterminada en Configuración"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Pantalla dividida"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Información da aplicación para %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Configuración de uso para %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"સુરક્ષિત મોડમાં વિજેટ્સ અક્ષમ કર્યા"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"શૉર્ટકટ ઉપલબ્ધ નથી"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"હોમ સ્ક્રીન"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"સેટિંગમાં <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g>ને ડિફૉલ્ટ હોમ ઍપ તરીકે સેટ કરો"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"સ્ક્રીનને વિભાજિત કરો"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s માટે ઍપ માહિતી"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$sના વપરાશ સંબંધિત સેટિંગ"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"विजेट सुरक्षित मोड में अक्षम हैं"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"शॉर्टकट उपलब्ध नहीं है"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"होम स्क्रीन"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"सेटिंग में जाकर, <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> को डिफ़ॉल्ट होम ऐप्लिकेशन के तौर पर सेट करें"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"स्प्लिट स्क्रीन"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s के लिए ऐप्लिकेशन की जानकारी"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s के लिए खर्च की सेटिंग"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgeti su onemogućeni u Sigurnom načinu rada"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Prečac nije dostupan"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Početni zaslon"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Postavite aplikaciju <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> kao zadanu aplikaciju početnog zaslona u postavkama"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Podijeljeni zaslon"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Informacije o aplikaciji %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Postavke upotrebe za %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"A modulok ki vannak kapcsolva Csökkentett módban"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"A gyorsparancs nem áll rendelkezésre"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Kezdőképernyő"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"A(z) <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> appot a Beállításokban adhatja meg alapértelmezett kezdőalkalmazásként."</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Osztott képernyő"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Alkalmazásinformáció a következőhöz: %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"A(z) %1$s használati beállításai"</string>
|
||||
@@ -188,7 +187,7 @@
|
||||
<string name="remote_action_failed" msgid="1383965239183576790">"Sikertelen: <xliff:g id="WHAT">%1$s</xliff:g>"</string>
|
||||
<string name="private_space_label" msgid="2359721649407947001">"Privát terület"</string>
|
||||
<string name="private_space_secondary_label" msgid="9203933341714508907">"Koppintson a beállításhoz vagy a megnyitáshoz"</string>
|
||||
<string name="ps_container_title" msgid="4391796149519594205">"Privát terület"</string>
|
||||
<string name="ps_container_title" msgid="4391796149519594205">"Privát"</string>
|
||||
<string name="ps_container_settings" msgid="6059734123353320479">"Privát terület beállításai"</string>
|
||||
<string name="ps_container_unlock_button_content_description" msgid="9181551784092204234">"Privát, feloldott."</string>
|
||||
<string name="ps_container_lock_button_content_description" msgid="5961993384382649530">"Privát, zárolt."</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Վիջեթներն անջատված են անվտանգ ռեժիմում"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Դյուրանցումն անհասանելի է"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Հիմնական էկրան"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Սահմանել <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> գործարկիչը որպես մեկնարկի կանխադրված հավելված Կարգավորումներում"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Տրոհել էկրանը"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Տեղեկություններ %1$s հավելվածի մասին"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Օգտագործման կարգավորումներ (%1$s)"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widget dinonaktifkan dalam mode Aman"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Pintasan tidak tersedia"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Layar utama"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Jadikan <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> sebagai aplikasi layar utama default di Setelan"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Layar terpisah"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Info aplikasi untuk %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Setelan penggunaan untuk %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Græjur eru óvirkar í öruggri stillingu"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Flýtileið er ekki tiltæk"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Heim"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Stilltu <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> sem sjálfgefið heimaforrit í stillingunum"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Skipta skjá"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Upplýsingar um forrit fyrir %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Notkunarstillingar fyrir %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widget disabilitati in modalità provvisoria"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"La scorciatoia non è disponibile"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Home"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Imposta <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> come app iniziale predefinita nelle Impostazioni"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Schermo diviso"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Informazioni sull\'app %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Impostazioni di utilizzo per %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"ווידג\'טים מושבתים במצב בטוח"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"קיצור הדרך אינו זמין"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"בית"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"הגדרה של <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> כאפליקציית הבית ב\'הגדרות\'"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"מסך מפוצל"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"פרטים על האפליקציה %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"הגדרות שימוש ב-%1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"セーフモードではウィジェットは無効です"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"ショートカットは使用できません"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"ホーム"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"[設定] で <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> をデフォルトのホームアプリに設定します"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"分割画面"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s のアプリ情報"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s の使用設定"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"უსაფრთხო რეჟიმში ვიჯეტი გამორთულია"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"მალსახმობი მიუწვდომელია"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"მთავარი გვერდი"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"<xliff:g id="LAUNCHER_NAME">%1$s</xliff:g>-ის დაყენება ნაგულისხმევ Home აპად პარამეტრებში"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"ეკრანის გაყოფა"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s-ის აპის ინფო"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"გამოყენების პარამეტრები %1$s-ისთვის"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Қауіпсіз режимде виджеттер өшіріледі"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Таңбаша қолжетімді емес"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Негізгі экран"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Параметрлерден <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> қолданбасын әдепкі негізгі экран қолданбасы ретінде орнатыңыз."</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Экранды бөлу"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s қолданбасы туралы ақпарат"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s пайдалану параметрлері"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"បានបិទធាតុក្រាហ្វិកក្នុងរបៀបសុវត្ថិភាព"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"ផ្លូវកាត់មិនអាចប្រើបានទេ"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"អេក្រង់ដើម"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"កំណត់ <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> ជាកម្មវិធីអេក្រង់ដើមលំនាំដើមនៅក្នុង \"ការកំណត់\""</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"មុខងារបំបែកអេក្រង់"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"ព័ត៌មានកម្មវិធីសម្រាប់ %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"ការកំណត់ការប្រើប្រាស់សម្រាប់ %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"ಸುರಕ್ಷಿತ ಮೋಡ್ನಲ್ಲಿ ವಿಜೆಟ್ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"ಶಾರ್ಟ್ಕಟ್ ಲಭ್ಯವಿಲ್ಲ"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"ಹೋಮ್"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> ಅನ್ನು ಡೀಫಾಲ್ಟ್ ಹೋಮ್ ಆ್ಯಪ್ ಆಗಿ ಸೆಟ್ ಮಾಡಿ"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"ಸ್ಪ್ಲಿಟ್ ಸ್ಕ್ರೀನ್"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s ಗಾಗಿ ಆ್ಯಪ್ ಮಾಹಿತಿ"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s ಗೆ ಸಂಬಂಧಿಸಿದ ಬಳಕೆಯ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"안전 모드에서 위젯 사용 중지됨"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"바로가기를 사용할 수 없음"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"홈"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"설정에서 <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> 런처를 기본 홈 앱으로 설정하세요."</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"화면 분할"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s 앱 정보"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s의 사용량 설정"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Виджеттер Коопсуз режимде өчүрүлгөн"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Кыска жол жок"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Башкы экран"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Параметрлерден <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> жүргүзгүчүн демейки башкы бет колдонмосу катары коюу"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Экранды бөлүү"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s колдонмосу жөнүндө маалымат"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s колдонмосун пайдалануу параметрлери"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"ວິດເຈັດຖືກປິດໃນ Safe mode"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"ບໍ່ສາມາດໃຊ້ທາງລັດໄດ້"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"ໂຮມສະກຣີນ"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"ຕັ້ງ <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> ເປັນແອັບໂຮມເລີ່ມຕົ້ນໃນການຕັ້ງຄ່າ"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"ແບ່ງໜ້າຈໍ"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"ຂໍ້ມູນແອັບສຳລັບ %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"ການຕັ້ງຄ່າການນຳໃຊ້ສຳລັບ %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Valdikliai išjungti Saugiame režime"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Sparčiojo klavišo negalima naudoti"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Pagrindinis"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Nustatykite „<xliff:g id="LAUNCHER_NAME">%1$s</xliff:g>“ kaip numatytąją pagrindinę programą skiltyje „Nustatymai“"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Išskaidyto ekrano režimas"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Programos „%1$s“ informacija"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"„%1$s“ naudojimo nustatymai"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Logrīki atspējoti drošajā režīmā"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Saīsne nav pieejama."</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Sākums"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Iestatiet <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> kā noklusējuma sākuma lietotni iestatījumos."</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Sadalīt ekrānu"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s: informācija par lietotni"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Lietojuma iestatījumi: %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Додатоците се оневозможени во безбеден режим"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Кратенката не е достапна"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Почетен екран"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Поставете <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> да биде стандардна апликација за почетен екран во „Поставки“"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Поделен екран"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Податоци за апликација за %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Поставки за користење за %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"സുരക്ഷിത മോഡിൽ വിജറ്റുകൾ പ്രവർത്തനരഹിതമാക്കി"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"കുറുക്കുവഴി ലഭ്യമല്ല"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"ഹോം"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"ക്രമീകരണത്തിൽ <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> എന്നത് ഡിഫോൾട്ട് ഹോം ആപ്പായി സജ്ജീകരിക്കുക"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"സ്ക്രീൻ വിഭജന മോഡ്"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s എന്നതിന്റെ ആപ്പ് വിവരങ്ങൾ"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s എന്നതിനുള്ള ഉപയോഗ ക്രമീകരണം"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Safe горимд виджетүүдийг идэвхгүйжүүлсэн"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Товчлол алга"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Нүүр"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"<xliff:g id="LAUNCHER_NAME">%1$s</xliff:g>-г Тохиргоонд өгөгдмөл үндсэн аппаар тохируулна уу"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Дэлгэцийг хуваах"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s-н аппын мэдээлэл"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s-н ашиглалтын тохиргоо"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"विजेट सुरक्षित मोडमध्ये अक्षम झाले"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"शॉर्टकट उपलब्ध नाही"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"होम"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"सेटिंग्ज मध्ये <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> हे डीफॉल्ट होम अॅप म्हणून सेट करा"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"स्प्लिट स्क्रीन"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s साठी ॲपशी संबंधित माहिती"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s साठी वापरासंबंधित सेटिंग्ज"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widget dilumpuhkan dalam mod Selamat"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Pintasan tidak tersedia"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Rumah"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Tetapkan <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> sebagai apl skrin utama lalai dalam Tetapan"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Skrin pisah"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Maklumat apl untuk %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Tetapan penggunaan sebanyak %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"လုံခြုံရေး မုဒ်ထဲမှာ ဝီဂျက်များကို ပိတ်ထား"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"ဖြတ်လမ်း မရနိုင်ပါ"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"ပင်မစာမျက်နှာ"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"ဆက်တင်များတွင် <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> ကို မူရင်းပင်မစာမျက်နှာအက်ပ်အဖြစ် သတ်မှတ်ရန်"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"မျက်နှာပြင် ခွဲ၍ပြသခြင်း"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s အတွက် အက်ပ်အချက်အလက်"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s အတွက် အသုံးပြုမှုဆက်တင်များ"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Moduler er deaktivert i sikker modus"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Snarveien er ikke tilgjengelig"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Startskjerm"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Angi <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> som standard startsideapp i innstillingene"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Delt skjerm"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Appinformasjon for %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Bruksinnstillinger for %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"सुरक्षित मोडमा विगेटहरू अक्षम गरियो"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"सर्टकट उपलब्ध छैन"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"होम"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"सेटिङमा गई <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> लाई डिफल्ट होम एपका रूपमा सेट गर्नुहोस्"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"स्प्लिट स्क्रिन"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s का हकमा एपसम्बन्धी जानकारी"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s को प्रयोगसम्बन्धी सेटिङ"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgets uitgezet in veilige modus"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Snelkoppeling is niet beschikbaar"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Startscherm"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Stel <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> in als de standaard startscherm-app in Instellingen"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Gesplitst scherm"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"App-info voor %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Gebruiksinstellingen voor %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"ନିରାପଦ ମୋଡରେ ୱିଜେଟ୍ ଅକ୍ଷମ କରାଗଲା"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"ଶର୍ଟକଟ୍ ଉପଲବ୍ଧ ନାହିଁ"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"ହୋମ"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"ସେଟିଂସରେ <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g>କୁ ଡିଫଲ୍ଟ Home ଆପ ଭାବରେ ସେଟ କରନ୍ତୁ"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"ସ୍କ୍ରିନକୁ ସ୍ପ୍ଲିଟ କରନ୍ତୁ"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s ପାଇଁ ଆପ ସୂଚନା"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s ପାଇଁ ବ୍ୟବହାର ସେଟିଂସ"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"ਵਿਜੇਟ ਸੁਰੱਖਿਅਤ ਮੋਡ ਵਿੱਚ ਅਸਮਰਥਿਤ"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"ਸ਼ਾਰਟਕੱਟ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"ਮੁੱਖ ਪੰਨਾ"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਜਾ ਕੇ <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> ਨੂੰ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਹੋਮ ਐਪ ਵਜੋਂ ਸੈੱਟ ਕਰੋ"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"ਸਪਲਿਟ ਸਕ੍ਰੀਨ"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s ਲਈ ਐਪ ਜਾਣਕਾਰੀ"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s ਲਈ ਵਰਤੋਂ ਸੈਟਿੰਗਾਂ"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widżety są wyłączone w trybie bezpiecznym"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Skrót nie jest dostępny"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Ekran główny"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Otwórz Ustawienia i ustaw aplikację <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> jako domyślną aplikację ekranu głównego"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Podziel ekran"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Informacje o aplikacji: %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s – ustawienia użycia"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgets desativados no Modo de segurança"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"O atalho não está disponível"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Página inicial"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Defina a app <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> como a app inicial predefinida nas Definições"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Ecrã dividido"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Informações da app para %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Definições de utilização para %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgets desativados no modo de segurança"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"O atalho não está disponível"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Início"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Definir <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> como app de início padrão nas Configurações"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Tela dividida"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Informações do app %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Configurações de uso de %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgeturile sunt dezactivate în modul de siguranță"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Comanda rapidă nu este disponibilă"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Pagina de pornire"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Setează <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> drept aplicație ecran de pornire prestabilită, în Setări"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Ecran împărțit"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Informații despre aplicație pentru %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Setări de utilizare pentru %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Виджеты отключены в безопасном режиме"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Ярлык недоступен"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Главный экран"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Установить \"<xliff:g id="LAUNCHER_NAME">%1$s</xliff:g>\" в качестве приложения главного экрана по умолчанию в настройках"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Разделить экран"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Сведения о приложении \"%1$s\""</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Настройки использования приложения \"%1$s\""</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"සුරක්ෂිත ආකාරය තුළ විජටය අබල කරන ලදි"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"කෙටි මග ලබා ගත නොහැකිය"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"මුල් පිටුව"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"<xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> සැකසීම් තුළ පෙරනිමි මුල් පිටුව යෙදුම ලෙස සකසන්න"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"බෙදුම් තිරය"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s සඳහා යෙදුම් තතු"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s සඳහා භාවිත සැකසීම්"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Miniaplikácie sú v núdzovom režime zakázané"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Skratky nie sú k dispozícii"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Domov"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Nastaviť aplikáciu <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> ako predvolenú vstupnú aplikáciu v Nastaveniach"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Rozdeliť obrazovku"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Informácie o aplikácii pre %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Nastavenia používania pre %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Pripomočki so onemogočeni v varnem načinu"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Bližnjica ni na voljo"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Začetni zaslon"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Nastavitev zaganjalnika <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> kot privzete aplikacije za začetni zaslon v nastavitvah"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Razdeljen zaslon"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Podatki o aplikaciji za: %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Nastavitve uporabe za »%1$s«"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Miniaplikacionet janë të çaktivizuara në modalitetin e sigurt"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Shkurtorja nuk është e disponueshme"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Ekrani bazë"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Cakto <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> si aplikacionin e parazgjedhur të ekranit bazë te \"Cilësimet\""</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Ekrani i ndarë"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Informacioni i aplikacionit për %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Cilësimet e përdorimit për \"%1$s\""</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Виџети су онемогућени у Безбедном режиму"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Пречица није доступна"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Почетни екран"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Подесите <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> као подразумевану почетну апликацију у Подешавањима"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Подељени екран"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Информације о апликацији за: %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Подешавања потрошње за %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Widgets är inaktiverade i felsäkert läge"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Genvägen är inte tillgänglig"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Startskärm"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Ställ in <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> som standardstartskärmsapp i Inställningar"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Delad skärm"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Appinformation för %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Användningsinställningar för %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Wijeti zimezimwa katika hali ya Usalama"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Hakuna njia ya mkato"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Skrini ya kwanza"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Weka <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> iwe programu chaguomsingi ya mwanzo kwenye Mipangilio"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Gawa skrini"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Maelezo ya programu ya %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Mipangilio ya matumizi ya %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"பாதுகாப்புப் பயன்முறையில் விட்ஜெட்கள் முடக்கப்பட்டுள்ளன"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"ஷார்ட்கட் இல்லை"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"முகப்பு"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"அமைப்புகளில் <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> என்பதை இயல்பு முகப்பு ஆப்ஸாக அமையுங்கள்"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"திரைப் பிரிப்பு"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$sக்கான ஆப்ஸ் தகவல்கள்"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$sக்கான உபயோக அமைப்புகள்"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"సురక్షిత మోడ్లో విడ్జెట్లు నిలిపివేయబడ్డాయి"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"షార్ట్కట్ అందుబాటులో లేదు"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"మొదటి ట్యాబ్"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"సెట్టింగ్లలో <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g>ను ఆటోమేటిక్ సెట్టింగ్ మొదటి స్క్రీన్ యాప్గా సెట్ చేయండి"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"స్ప్లిట్ స్క్రీన్"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s కోసం యాప్ సమాచారం"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$sకు సంబంధించిన వినియోగ సెట్టింగ్లు"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"มีการปิดใช้งานวิดเจ็ตในเซฟโหมด"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"ทางลัดไม่พร้อมใช้งาน"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"หน้าแรก"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"ตั้ง <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> เป็นแอปหน้าแรกเริ่มต้นในการตั้งค่า"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"แยกหน้าจอ"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"ข้อมูลแอปสำหรับ %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"การตั้งค่าการใช้งานสำหรับ %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Naka-disable ang mga widget sa Safe mode"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Hindi available ang shortcut"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Home"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Itakda ang <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> bilang default na home app sa Mga Setting"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Split screen"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Impormasyon ng app para sa %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Mga setting ng paggamit para sa %1$s"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"Güvenli modda widget\'lar devre dışı"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Kısayol kullanılamıyor"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Ana ekran"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"<xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> başlatıcısını Ayarlar\'da varsayılan ana ekran uygulaması olarak ayarlayın"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Bölünmüş ekran"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s uygulama bilgileri"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s ile ilgili kullanım ayarları"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"У безпечному режимі віджети вимкнено"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"Ярлик недоступний"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"Головний екран"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"Зробити <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> додатком головного екрана за умовчанням у налаштуваннях"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"Розділити екран"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"Інформація про додаток для %1$s"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"Параметри використання (%1$s)"</string>
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
<string name="safemode_widget_error" msgid="4863470563535682004">"ویجیٹس کو محفوظ وضع میں غیر فعال کر دیا گیا"</string>
|
||||
<string name="shortcut_not_available" msgid="2536503539825726397">"شارٹ کٹ دستیاب نہیں ہے"</string>
|
||||
<string name="home_screen" msgid="5629429142036709174">"ہوم"</string>
|
||||
<!-- no translation found for set_default_home_app (5808906607627586381) -->
|
||||
<skip />
|
||||
<string name="set_default_home_app" msgid="5808906607627586381">"ترتیبات میں <xliff:g id="LAUNCHER_NAME">%1$s</xliff:g> کو بطور ڈیفالٹ ہوم ایپ سیٹ کریں"</string>
|
||||
<string name="recent_task_option_split_screen" msgid="6690461455618725183">"اسپلٹ اسکرین"</string>
|
||||
<string name="split_app_info_accessibility" msgid="5475288491241414932">"%1$s کے لیے ایپ کی معلومات"</string>
|
||||
<string name="split_app_usage_settings" msgid="7214375263347964093">"%1$s کیلئے استعمال کی ترتیبات"</string>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user